@atlaskit/react-ufo 3.14.0 → 3.14.2

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 (40) hide show
  1. package/CHANGELOG.md +16 -0
  2. package/dist/cjs/ignore-holds/index.js +62 -0
  3. package/dist/cjs/interaction-ignore/ufo-interaction-ignore.js +7 -49
  4. package/dist/cjs/segment/index.js +7 -0
  5. package/dist/cjs/segment/segment.js +3 -1
  6. package/dist/cjs/segment/third-party-segment.js +25 -0
  7. package/dist/cjs/vc/vc-observer-new/metric-calculator/fy25_03/index.js +12 -6
  8. package/dist/cjs/vc/vc-observer-new/viewport-observer/index.js +30 -6
  9. package/dist/cjs/vc/vc-observer-new/viewport-observer/utils/get-component-name-and-child-props.js +85 -0
  10. package/dist/es2019/ignore-holds/index.js +51 -0
  11. package/dist/es2019/interaction-ignore/ufo-interaction-ignore.js +7 -45
  12. package/dist/es2019/segment/index.js +2 -1
  13. package/dist/es2019/segment/segment.js +2 -1
  14. package/dist/es2019/segment/third-party-segment.js +18 -0
  15. package/dist/es2019/vc/vc-observer-new/metric-calculator/fy25_03/index.js +12 -6
  16. package/dist/es2019/vc/vc-observer-new/viewport-observer/index.js +32 -6
  17. package/dist/es2019/vc/vc-observer-new/viewport-observer/utils/get-component-name-and-child-props.js +71 -0
  18. package/dist/esm/ignore-holds/index.js +53 -0
  19. package/dist/esm/interaction-ignore/ufo-interaction-ignore.js +7 -47
  20. package/dist/esm/segment/index.js +2 -1
  21. package/dist/esm/segment/segment.js +3 -1
  22. package/dist/esm/segment/third-party-segment.js +18 -0
  23. package/dist/esm/vc/vc-observer-new/metric-calculator/fy25_03/index.js +12 -6
  24. package/dist/esm/vc/vc-observer-new/viewport-observer/index.js +30 -6
  25. package/dist/esm/vc/vc-observer-new/viewport-observer/utils/get-component-name-and-child-props.js +76 -0
  26. package/dist/types/ignore-holds/index.d.ts +31 -0
  27. package/dist/types/interaction-ignore/ufo-interaction-ignore.d.ts +6 -21
  28. package/dist/types/segment/index.d.ts +1 -0
  29. package/dist/types/segment/segment.d.ts +4 -2
  30. package/dist/types/segment/third-party-segment.d.ts +6 -0
  31. package/dist/types/vc/vc-observer-new/types.d.ts +1 -1
  32. package/dist/types/vc/vc-observer-new/viewport-observer/utils/get-component-name-and-child-props.d.ts +15 -0
  33. package/dist/types-ts4.5/ignore-holds/index.d.ts +31 -0
  34. package/dist/types-ts4.5/interaction-ignore/ufo-interaction-ignore.d.ts +6 -21
  35. package/dist/types-ts4.5/segment/index.d.ts +1 -0
  36. package/dist/types-ts4.5/segment/segment.d.ts +4 -2
  37. package/dist/types-ts4.5/segment/third-party-segment.d.ts +6 -0
  38. package/dist/types-ts4.5/vc/vc-observer-new/types.d.ts +1 -1
  39. package/dist/types-ts4.5/vc/vc-observer-new/viewport-observer/utils/get-component-name-and-child-props.d.ts +15 -0
  40. package/package.json +7 -4
@@ -1,23 +1,8 @@
1
- import React, { type ReactNode } from 'react';
1
+ import React from 'react';
2
+ import { UFOIgnoreHoldsProps } from '../ignore-holds';
2
3
  /**
3
- * Prevent a subtree from holding up an interaction
4
- * Use this when you have a component which loads in late, but
5
- * isn't considered to be a breach of SLO
6
- *
7
- * ```js
8
- * <App>
9
- * <Main />
10
- * <Sidebar>
11
- * <UFOInteractionIgnore>
12
- * <InsightsButton />
13
- * </UFOInteractionIgnore>
14
- * </Sidebar>
15
- * </App>
16
- * ```
17
- *
18
- * Has an `ignore` prop, to allow you to use it conditionally
4
+ * Legacy wrapper component that delegates to `UFOIgnoreHolds`.
5
+ * Use `UFOIgnoreHolds` instead for new implementations.
6
+ * This component is maintained for backward compatibility only.
19
7
  */
20
- export default function UFOInteractionIgnore({ children, ignore, }: {
21
- children?: ReactNode;
22
- ignore?: boolean;
23
- }): React.JSX.Element;
8
+ export default function UFOInteractionIgnore(props: UFOIgnoreHoldsProps): React.JSX.Element;
@@ -1,2 +1,3 @@
1
1
  import UFOSegment from './segment';
2
2
  export default UFOSegment;
3
+ export { UFOThirdPartySegment } from './third-party-segment';
@@ -1,11 +1,13 @@
1
1
  import React, { type ReactNode } from 'react';
2
- type Props = {
2
+ export type UFOSegmentType = 'third-party' | 'first-party';
3
+ export type Props = {
3
4
  name: string;
4
5
  children: ReactNode;
5
6
  mode?: 'list' | 'single';
7
+ type?: UFOSegmentType;
6
8
  };
7
9
  /** A portion of the page we apply measurement to */
8
- declare function UFOSegment({ name: segmentName, children, mode }: Props): React.JSX.Element;
10
+ declare function UFOSegment({ name: segmentName, children, mode, type, }: Props): React.JSX.Element;
9
11
  declare namespace UFOSegment {
10
12
  var displayName: string;
11
13
  }
@@ -0,0 +1,6 @@
1
+ import React from 'react';
2
+ import { Props as SegmentProps } from './segment';
3
+ export declare function UFOThirdPartySegment(props: Omit<SegmentProps, 'type'>): React.JSX.Element;
4
+ export declare namespace UFOThirdPartySegment {
5
+ var displayName: string;
6
+ }
@@ -1,5 +1,5 @@
1
1
  import type { ObservedWindowEvent } from './window-event-observer';
2
- export type VCObserverEntryType = 'mutation:child-element' | 'mutation:remount' | 'mutation:element' | 'mutation:element-replacement' | 'mutation:attribute:no-layout-shift' | 'mutation:attribute:non-visual-style' | 'mutation:attribute' | 'mutation:media' | 'mutation:rll-placeholder' | 'layout-shift' | 'window:event' | 'unknown';
2
+ export type VCObserverEntryType = 'mutation:child-element' | 'mutation:remount' | 'mutation:element' | 'mutation:element-replacement' | 'mutation:attribute:no-layout-shift' | 'mutation:attribute:non-visual-style' | 'mutation:attribute' | 'mutation:media' | 'mutation:rll-placeholder' | 'mutation:third-party-element' | 'layout-shift' | 'window:event' | 'unknown';
3
3
  export type ViewportEntryData = {
4
4
  readonly type: VCObserverEntryType;
5
5
  readonly elementName: string;
@@ -0,0 +1,15 @@
1
+ import { UFOIgnoreHoldsReason } from '../../../../ignore-holds';
2
+ import { VCObserverEntryType } from '../../types';
3
+ export declare function checkWithinComponentAndExtractChildProps<T = string>(node: HTMLElement, targetComponentName: string, childComponentConfig?: {
4
+ componentName: string;
5
+ propName: string;
6
+ extractValue?: (props: any) => T;
7
+ }): {
8
+ isWithin: boolean;
9
+ childProp?: T;
10
+ };
11
+ export declare function checkThirdPartySegmentWithIgnoreReason(node: HTMLElement): {
12
+ isWithinThirdPartySegment: boolean;
13
+ ignoredReason?: UFOIgnoreHoldsReason;
14
+ };
15
+ export declare function createMutationTypeWithIgnoredReason(reason: UFOIgnoreHoldsReason): VCObserverEntryType;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@atlaskit/react-ufo",
3
- "version": "3.14.0",
3
+ "version": "3.14.2",
4
4
  "description": "Parts of React UFO that are publicly available",
5
5
  "author": "Atlassian Pty Ltd",
6
6
  "license": "Apache-2.0",
@@ -157,9 +157,6 @@
157
157
  "platform_ufo_enable_events_observer": {
158
158
  "type": "boolean"
159
159
  },
160
- "platform_ufo_filter_out_aui_attribute_changes": {
161
- "type": "boolean"
162
- },
163
160
  "platform_ufo_vc_observer_new_ssr_abort_listener": {
164
161
  "type": "boolean"
165
162
  },
@@ -192,6 +189,12 @@
192
189
  },
193
190
  "platform_ufo_enable_unknown_interactions_elements": {
194
191
  "type": "boolean"
192
+ },
193
+ "platform_ufo_exclude_3p_elements_from_ttai": {
194
+ "type": "boolean"
195
+ },
196
+ "platform_ufo_exclude_3p_elements_from_ttvc": {
197
+ "type": "boolean"
195
198
  }
196
199
  }
197
200
  }