@amboss/design-system 4.9.4-canary.4 → 4.10.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.
Files changed (156) hide show
  1. package/build/cjs/components/CheckboxCard/CheckboxCard.d.ts +1 -1
  2. package/build/cjs/components/Content/ContentCheckbox/ContentCheckbox.d.ts +1 -1
  3. package/build/cjs/components/Content/ContentCitation/ContentCitation.d.ts +3 -3
  4. package/build/cjs/components/Content/ContentFontResizer/FontSizeOffsetContext.d.ts +1 -1
  5. package/build/cjs/components/Content/ContentText/ContentText.d.ts +1 -1
  6. package/build/cjs/components/Content/DosageButton/DosageButton.d.ts +1 -1
  7. package/build/cjs/components/DataTable/DataTable.d.ts +3 -2
  8. package/build/cjs/components/DataTable/TableCell.d.ts +1 -1
  9. package/build/cjs/components/DataTable/internal/tablePrimitives.d.ts +3 -3
  10. package/build/cjs/components/EntityList/styled-components.d.ts +8 -8
  11. package/build/cjs/components/Form/Checkbox/Checkbox.d.ts +2 -2
  12. package/build/cjs/components/Form/Combobox/StyledSelectComponents.d.ts +4 -4
  13. package/build/cjs/components/Form/DatePicker/DatePicker.d.ts +1 -1
  14. package/build/cjs/components/Form/MaskedInput/MaskedInput.d.ts +1 -1
  15. package/build/cjs/components/Form/Radio/Radio.d.ts +2 -2
  16. package/build/cjs/components/Form/RangeInput/RangeInput.d.ts +1 -1
  17. package/build/cjs/components/Form/Textarea/Textarea.d.ts +2 -2
  18. package/build/cjs/components/Form/Toggle/Toggle.d.ts +3 -3
  19. package/build/cjs/components/Form/ToggleButton/ToggleButton.d.ts +1 -1
  20. package/build/cjs/components/Grid/Grid.d.ts +1 -1
  21. package/build/cjs/components/Internal/Drawer/Drawer.js +3 -3
  22. package/build/cjs/components/Internal/LayoutFloat/LayoutFloat.d.ts +13 -1
  23. package/build/cjs/components/Internal/LayoutFloat/useLayoutFloatDrag.d.ts +1 -1
  24. package/build/cjs/components/Internal/Sandwich/useSandwichContext.d.ts +1 -1
  25. package/build/cjs/components/Layout/-types.d.ts +9 -0
  26. package/build/{esm/components/Layout/BottomBar → cjs/components/Layout/BottomBar/BottomBarItem}/LayoutBottomBarItem.d.ts +1 -1
  27. package/build/cjs/components/Layout/BottomBar/LayoutBottomBar.d.ts +2 -10
  28. package/build/cjs/components/Layout/BottomBar/StyledLayoutBottomBar.d.ts +1 -1
  29. package/build/cjs/components/Layout/BottomBar/StyledLayoutBottomBarSection.d.ts +2 -2
  30. package/build/cjs/components/Layout/BottomBar/StyledLayoutBottomBarSection.js +1 -1
  31. package/build/cjs/components/Layout/BottomBar/getBottomBarLayout.d.ts +1 -1
  32. package/build/cjs/components/Layout/BottomBar/getBottomBarLayout.js +1 -1
  33. package/build/cjs/components/Layout/Layout.d.ts +1 -1
  34. package/build/cjs/components/Layout/Layout.js +1 -1
  35. package/build/cjs/components/Layout/LeftPanel/useLeftBarContext.d.ts +1 -1
  36. package/build/cjs/components/Layout/LeftPanel/useLeftPanelCollapseContext.d.ts +1 -1
  37. package/build/cjs/components/Layout/Split/MobileSplitView/StyledMobileSplitSlideLayer.d.ts +1 -1
  38. package/build/cjs/components/Layout/Split/MobileSplitView/useMobileSplitStack.d.ts +1 -1
  39. package/build/cjs/components/Layout/context.d.ts +2 -2
  40. package/build/cjs/components/Layout/index.d.ts +0 -1
  41. package/build/cjs/components/Layout/registry.d.ts +6 -6
  42. package/build/cjs/components/Layout/useLeftPanelId.d.ts +1 -1
  43. package/build/cjs/components/Layout/usePanelAnimations.d.ts +1 -1
  44. package/build/cjs/components/NavBar/NavBar.d.ts +14 -18
  45. package/build/cjs/components/NavBar/NavBarContext.d.ts +1 -1
  46. package/build/cjs/components/NavBar/NavBarDropdownTriggerButton.d.ts +1 -1
  47. package/build/cjs/components/Patterns/Dialog/DialogContext.d.ts +1 -1
  48. package/build/cjs/components/Patterns/EmptyState/EmptyState.d.ts +2 -2
  49. package/build/cjs/components/Patterns/Modal/Modal.d.ts +4 -2
  50. package/build/cjs/components/Patterns/Popover/PopoverContext.d.ts +1 -1
  51. package/build/cjs/components/PromptInput/PromptInput.d.ts +1 -1
  52. package/build/cjs/components/RadioCard/RadioCard.d.ts +1 -1
  53. package/build/cjs/components/SearchResult/SearchResult.d.ts +3 -1
  54. package/build/cjs/components/Sheet/Sheet.js +1 -1
  55. package/build/cjs/components/Sheet/useSheetHeightSync.d.ts +26 -0
  56. package/build/cjs/components/Sheet/useSheetHeightSync.js +1 -0
  57. package/build/cjs/components/SubThemeProvider/SubThemeContext.d.ts +1 -1
  58. package/build/cjs/components/Tooltip/FloatingPositionedContext.d.ts +1 -1
  59. package/build/cjs/components/Utilities/ContainerQuery/ContainerQueryContext.d.ts +1 -1
  60. package/build/cjs/components/Utilities/ScreenReaderText/ScreenReaderText.d.ts +1 -1
  61. package/build/cjs/components/VirtualScrollList/VirtualScrollList.js +1 -1
  62. package/build/cjs/components/VirtualScrollList/VirtualScrollListReducer.d.ts +8 -1
  63. package/build/cjs/components/VirtualScrollList/VirtualScrollListReducer.js +1 -1
  64. package/build/cjs/shared/FocusTrapWrapper.d.ts +1 -1
  65. package/build/cjs/shared/FocusTrapWrapper.js +1 -1
  66. package/build/cjs/shared/components/SelectableButton.d.ts +1 -1
  67. package/build/cjs/shared/useExitAnimation.js +1 -0
  68. package/build/cjs/web-tokens/_sizes.json +55 -55
  69. package/build/cjs/web-tokens/visualConfig.d.ts +14 -0
  70. package/build/cjs/web-tokens/visualConfig.js +1 -1
  71. package/build/esm/components/CheckboxCard/CheckboxCard.d.ts +1 -1
  72. package/build/esm/components/Content/ContentCheckbox/ContentCheckbox.d.ts +1 -1
  73. package/build/esm/components/Content/ContentCitation/ContentCitation.d.ts +3 -3
  74. package/build/esm/components/Content/ContentFontResizer/FontSizeOffsetContext.d.ts +1 -1
  75. package/build/esm/components/Content/ContentText/ContentText.d.ts +1 -1
  76. package/build/esm/components/Content/DosageButton/DosageButton.d.ts +1 -1
  77. package/build/esm/components/DataTable/DataTable.d.ts +3 -2
  78. package/build/esm/components/DataTable/TableCell.d.ts +1 -1
  79. package/build/esm/components/DataTable/internal/tablePrimitives.d.ts +3 -3
  80. package/build/esm/components/EntityList/styled-components.d.ts +8 -8
  81. package/build/esm/components/Form/Checkbox/Checkbox.d.ts +2 -2
  82. package/build/esm/components/Form/Combobox/StyledSelectComponents.d.ts +4 -4
  83. package/build/esm/components/Form/DatePicker/DatePicker.d.ts +1 -1
  84. package/build/esm/components/Form/MaskedInput/MaskedInput.d.ts +1 -1
  85. package/build/esm/components/Form/Radio/Radio.d.ts +2 -2
  86. package/build/esm/components/Form/RangeInput/RangeInput.d.ts +1 -1
  87. package/build/esm/components/Form/Textarea/Textarea.d.ts +2 -2
  88. package/build/esm/components/Form/Toggle/Toggle.d.ts +3 -3
  89. package/build/esm/components/Form/ToggleButton/ToggleButton.d.ts +1 -1
  90. package/build/esm/components/Grid/Grid.d.ts +1 -1
  91. package/build/esm/components/Internal/Drawer/Drawer.js +3 -3
  92. package/build/esm/components/Internal/LayoutFloat/LayoutFloat.d.ts +13 -1
  93. package/build/esm/components/Internal/LayoutFloat/useLayoutFloatDrag.d.ts +1 -1
  94. package/build/esm/components/Internal/Sandwich/useSandwichContext.d.ts +1 -1
  95. package/build/esm/components/Layout/-types.d.ts +9 -0
  96. package/build/{cjs/components/Layout/BottomBar → esm/components/Layout/BottomBar/BottomBarItem}/LayoutBottomBarItem.d.ts +1 -1
  97. package/build/esm/components/Layout/BottomBar/LayoutBottomBar.d.ts +2 -10
  98. package/build/esm/components/Layout/BottomBar/StyledLayoutBottomBar.d.ts +1 -1
  99. package/build/esm/components/Layout/BottomBar/StyledLayoutBottomBarSection.d.ts +2 -2
  100. package/build/esm/components/Layout/BottomBar/StyledLayoutBottomBarSection.js +1 -1
  101. package/build/esm/components/Layout/BottomBar/getBottomBarLayout.d.ts +1 -1
  102. package/build/esm/components/Layout/BottomBar/getBottomBarLayout.js +1 -1
  103. package/build/esm/components/Layout/Layout.d.ts +1 -1
  104. package/build/esm/components/Layout/Layout.js +1 -1
  105. package/build/esm/components/Layout/LeftPanel/useLeftBarContext.d.ts +1 -1
  106. package/build/esm/components/Layout/LeftPanel/useLeftPanelCollapseContext.d.ts +1 -1
  107. package/build/esm/components/Layout/Split/MobileSplitView/StyledMobileSplitSlideLayer.d.ts +1 -1
  108. package/build/esm/components/Layout/Split/MobileSplitView/useMobileSplitStack.d.ts +1 -1
  109. package/build/esm/components/Layout/context.d.ts +2 -2
  110. package/build/esm/components/Layout/index.d.ts +0 -1
  111. package/build/esm/components/Layout/registry.d.ts +6 -6
  112. package/build/esm/components/Layout/useLeftPanelId.d.ts +1 -1
  113. package/build/esm/components/Layout/usePanelAnimations.d.ts +1 -1
  114. package/build/esm/components/NavBar/NavBar.d.ts +14 -18
  115. package/build/esm/components/NavBar/NavBarContext.d.ts +1 -1
  116. package/build/esm/components/NavBar/NavBarDropdownTriggerButton.d.ts +1 -1
  117. package/build/esm/components/Patterns/Dialog/DialogContext.d.ts +1 -1
  118. package/build/esm/components/Patterns/EmptyState/EmptyState.d.ts +2 -2
  119. package/build/esm/components/Patterns/Modal/Modal.d.ts +4 -2
  120. package/build/esm/components/Patterns/Popover/PopoverContext.d.ts +1 -1
  121. package/build/esm/components/PromptInput/PromptInput.d.ts +1 -1
  122. package/build/esm/components/RadioCard/RadioCard.d.ts +1 -1
  123. package/build/esm/components/SearchResult/SearchResult.d.ts +3 -1
  124. package/build/esm/components/Sheet/Sheet.js +1 -1
  125. package/build/esm/components/Sheet/useSheetHeightSync.d.ts +26 -0
  126. package/build/esm/components/Sheet/useSheetHeightSync.js +1 -0
  127. package/build/esm/components/SubThemeProvider/SubThemeContext.d.ts +1 -1
  128. package/build/esm/components/Tooltip/FloatingPositionedContext.d.ts +1 -1
  129. package/build/esm/components/Utilities/ContainerQuery/ContainerQueryContext.d.ts +1 -1
  130. package/build/esm/components/Utilities/ScreenReaderText/ScreenReaderText.d.ts +1 -1
  131. package/build/esm/components/VirtualScrollList/VirtualScrollList.js +1 -1
  132. package/build/esm/components/VirtualScrollList/VirtualScrollListReducer.d.ts +8 -1
  133. package/build/esm/components/VirtualScrollList/VirtualScrollListReducer.js +1 -1
  134. package/build/esm/shared/FocusTrapWrapper.d.ts +1 -1
  135. package/build/esm/shared/FocusTrapWrapper.js +1 -1
  136. package/build/esm/shared/components/SelectableButton.d.ts +1 -1
  137. package/build/esm/shared/useExitAnimation.js +1 -0
  138. package/build/esm/web-tokens/_sizes.json +55 -55
  139. package/build/esm/web-tokens/visualConfig.d.ts +14 -0
  140. package/build/esm/web-tokens/visualConfig.js +1 -1
  141. package/build/scss/_variables.scss +6 -0
  142. package/package.json +9 -10
  143. package/build/cjs/components/Internal/Drawer/useExitAnimation.js +0 -1
  144. package/build/cjs/shared/isWithinScrolledElement.d.ts +0 -1
  145. package/build/cjs/shared/isWithinScrolledElement.js +0 -1
  146. package/build/cjs/shared/useDragDown.d.ts +0 -14
  147. package/build/cjs/shared/useDragDown.js +0 -1
  148. package/build/esm/components/Internal/Drawer/useExitAnimation.js +0 -1
  149. package/build/esm/shared/isWithinScrolledElement.d.ts +0 -1
  150. package/build/esm/shared/isWithinScrolledElement.js +0 -1
  151. package/build/esm/shared/useDragDown.d.ts +0 -14
  152. package/build/esm/shared/useDragDown.js +0 -1
  153. /package/build/cjs/components/Layout/BottomBar/{LayoutBottomBarItem.js → BottomBarItem/LayoutBottomBarItem.js} +0 -0
  154. /package/build/cjs/{components/Internal/Drawer → shared}/useExitAnimation.d.ts +0 -0
  155. /package/build/esm/components/Layout/BottomBar/{LayoutBottomBarItem.js → BottomBarItem/LayoutBottomBarItem.js} +0 -0
  156. /package/build/esm/{components/Internal/Drawer → shared}/useExitAnimation.d.ts +0 -0
@@ -16,5 +16,5 @@ export type MobileSplitStackValue = {
16
16
  * front isn't stored here - it derives from the `splitview` slot's visibility
17
17
  * (see {@link useMobileSplitView}).
18
18
  */
19
- export declare const MobileSplitStackContext: React.Context<MobileSplitStackValue | null>;
19
+ export declare const MobileSplitStackContext: import("react").Context<MobileSplitStackValue | null>;
20
20
  export declare const useMobileSplitStack: () => MobileSplitStackValue;
@@ -1,5 +1,5 @@
1
1
  import type { LayoutState, LayoutStorage, LayoutStore } from "./-types";
2
- export declare const LayoutStoreProvider: React.Provider<LayoutStore | null>;
2
+ export declare const LayoutStoreProvider: import("react").Provider<LayoutStore | null>;
3
3
  /** Get the store from context, or throw if used outside the provider. */
4
4
  export declare function useLayoutStore(): LayoutStore;
5
5
  /**
@@ -11,7 +11,7 @@ export type LayoutPersistence = {
11
11
  persistenceKey?: string;
12
12
  storage?: LayoutStorage;
13
13
  };
14
- export declare const LayoutPersistenceProvider: React.Provider<LayoutPersistence>;
14
+ export declare const LayoutPersistenceProvider: import("react").Provider<LayoutPersistence>;
15
15
  /** Persistence config from the nearest `Layout.Provider` (empty if none). */
16
16
  export declare function useLayoutPersistence(): LayoutPersistence;
17
17
  /**
@@ -7,4 +7,3 @@ export { useAutoScrollToBottom } from "./useAutoScrollToBottom";
7
7
  export { createLayoutStore } from "./store";
8
8
  export { createInitialState, layoutReducer } from "./reducer";
9
9
  export * from "./-types";
10
- export type { LayoutBottomBarProps } from "./BottomBar/LayoutBottomBar";
@@ -5,7 +5,7 @@ export type PortalTargets = Partial<Record<SlotKey, HTMLElement | null>>;
5
5
  type LayoutPortalTargets = PortalTargets & {
6
6
  root?: HTMLElement | null;
7
7
  };
8
- export declare const LayoutPortalContext: React.Context<LayoutPortalTargets>;
8
+ export declare const LayoutPortalContext: import("react").Context<LayoutPortalTargets>;
9
9
  /**
10
10
  * Portal `children` into the host DOM node registered for `slot`. Returns the
11
11
  * portal (or `null` if the host isn't mounted yet). Call unconditionally -
@@ -38,11 +38,11 @@ export type PanelRegistry = {
38
38
  register: (slot: SlotKey, reg: PanelReg) => void;
39
39
  unregister: (slot: SlotKey) => void;
40
40
  };
41
- export declare const PanelRegistryContext: React.Context<PanelRegistry | null>;
41
+ export declare const PanelRegistryContext: import("react").Context<PanelRegistry | null>;
42
42
  /** Register this slot as a panel for the marker's lifetime. */
43
43
  export declare function useDeclarePanel(slot: SlotKey, reg: PanelReg): void;
44
44
  export type PanelDeclarations = Partial<Record<SlotKey, PanelReg>>;
45
- export declare const PanelDeclarationsContext: React.Context<Partial<Record<"content" | "leftPanel" | "rightPanel" | "splitview", PanelReg>>>;
45
+ export declare const PanelDeclarationsContext: import("react").Context<Partial<Record<"content" | "leftPanel" | "rightPanel" | "splitview", PanelReg>>>;
46
46
  /**
47
47
  * The ids of the columns in the resizable row, in order, joined with commas.
48
48
  * Changes when a column joins or leaves the row, and only then. A column that
@@ -51,7 +51,7 @@ export declare const PanelDeclarationsContext: React.Context<Partial<Record<"con
51
51
  * had the last time the same set of columns was on screen - re-checks its rest
52
52
  * against it.
53
53
  */
54
- export declare const PanelRowContext: React.Context<string>;
54
+ export declare const PanelRowContext: import("react").Context<string>;
55
55
  /** The row's current column set, as a stable key. Empty outside a Layout. */
56
56
  export declare const usePanelRow: () => string;
57
57
  /**
@@ -63,7 +63,7 @@ export declare const usePanelRow: () => string;
63
63
  export type PanelPresence = {
64
64
  setPresent: (slot: SlotKey, isPresent: boolean) => void;
65
65
  };
66
- export declare const PanelPresenceContext: React.Context<PanelPresence | null>;
66
+ export declare const PanelPresenceContext: import("react").Context<PanelPresence | null>;
67
67
  /** Report this slot's live presence so the Layout keeps its column mounted
68
68
  * through the exit animation. No-op outside a Layout. */
69
69
  export declare function usePanelPresence(slot: SlotKey, isPresent: boolean): void;
@@ -85,7 +85,7 @@ export type PanelAnimationControl = {
85
85
  /** Mute the Group's resize/collapse/persist callbacks for a slot mid-slide. */
86
86
  setResizeSuppressed: (slot: SlotKey, suppressed: boolean) => void;
87
87
  };
88
- export declare const PanelAnimationContext: React.Context<PanelAnimationControl | null>;
88
+ export declare const PanelAnimationContext: import("react").Context<PanelAnimationControl | null>;
89
89
  /** Access the Layout's panel-animation control. Null outside a Layout. */
90
90
  export declare function usePanelAnimationControl(): PanelAnimationControl | null;
91
91
  /** Run `onChange(value)` when `value` transitions (not on initial mount). */
@@ -2,5 +2,5 @@
2
2
  * control living OUTSIDE the panel - the nav left bar's open button - point
3
3
  * `aria-controls` at it without the two components knowing each other. Empty
4
4
  * outside a `Layout`, where there is no panel to reference. */
5
- export declare const LeftPanelIdContext: React.Context<string>;
5
+ export declare const LeftPanelIdContext: import("react").Context<string>;
6
6
  export declare const useLeftPanelId: () => string;
@@ -5,7 +5,7 @@ type PanelAnimationsStore = {
5
5
  subscribe: (listener: () => void) => () => void;
6
6
  set: (slot: SlotKey, animation: PanelAnimation | null) => void;
7
7
  };
8
- export declare const PanelAnimationsProvider: React.Provider<PanelAnimationsStore | null>;
8
+ export declare const PanelAnimationsProvider: import("react").Provider<PanelAnimationsStore | null>;
9
9
  export declare const usePanelAnimationsStore: () => PanelAnimationsStore | null;
10
10
  export declare const createPanelAnimationsStore: () => PanelAnimationsStore;
11
11
  export declare const usePanelAnimations: () => Animations;
@@ -1,5 +1,11 @@
1
1
  import React from "react";
2
+ import { NavBarSubMenuContainer } from "./NavBarSubMenuContainer";
3
+ import { NavBarDropdownTriggerButton } from "./NavBarDropdownTriggerButton";
4
+ import { NavBarSearchInput } from "./NavBarSearchInput";
2
5
  import { NavBarOverlayBar } from "./NavBarOverlayBar";
6
+ import { PrimaryNavContainer, PrimaryNav } from "./NavBarPrimaryNav";
7
+ import { PrimaryNavLinkItem } from "./NavBarPrimaryNavLinkItem";
8
+ import { SecondaryNav } from "./NavBarSecondaryNav";
3
9
  import { NavBarName } from "./types";
4
10
  type NavBarProps = React.PropsWithChildren<{
5
11
  subTheme: NavBarName;
@@ -7,23 +13,13 @@ type NavBarProps = React.PropsWithChildren<{
7
13
  }>;
8
14
  export declare function NavBar({ children, subTheme, isCompact, }: NavBarProps): React.ReactElement;
9
15
  export declare namespace NavBar {
10
- var PrimaryNavContainer: typeof import("./NavBarPrimaryNav").PrimaryNavContainer;
11
- var PrimaryNav: typeof import("./NavBarPrimaryNav").PrimaryNav;
12
- var PrimaryNavItem: React.ForwardRefExoticComponent<{
13
- label: string;
14
- isActive?: boolean;
15
- as?: React.ElementType;
16
- to?: string;
17
- } & Omit<React.AnchorHTMLAttributes<HTMLAnchorElement>, "children"> & React.RefAttributes<HTMLAnchorElement>>;
18
- var SubMenuContainer: React.ForwardRefExoticComponent<{
19
- "data-e2e-test-id"?: string;
20
- children: React.ReactNode;
21
- } & React.RefAttributes<HTMLDivElement>>;
22
- var OverlayBar: typeof NavBarOverlayBar;
23
- var SecondaryNav: typeof import("./NavBarSecondaryNav").SecondaryNav;
24
- var DropdownTriggerButton: React.ForwardRefExoticComponent<Pick<import("../..").ButtonProps, "onFocus" | "onBlur" | "onClick" | "disabled"> & {
25
- children?: React.ReactNode | undefined;
26
- } & React.RefAttributes<HTMLButtonElement>>;
27
- var SearchInput: React.ForwardRefExoticComponent<import("./NavBarSearchInput").NavBarSearchInputProps & React.RefAttributes<HTMLButtonElement>>;
16
+ export { PrimaryNavContainer };
17
+ export { PrimaryNav };
18
+ export { PrimaryNavLinkItem as PrimaryNavItem };
19
+ export { NavBarSubMenuContainer as SubMenuContainer };
20
+ export { NavBarOverlayBar as OverlayBar };
21
+ export { SecondaryNav };
22
+ export { NavBarDropdownTriggerButton as DropdownTriggerButton };
23
+ export { NavBarSearchInput as SearchInput };
28
24
  }
29
25
  export {};
@@ -6,6 +6,6 @@ type NavBarContextValue = {
6
6
  primaryNavRef: RefObject<HTMLElement>;
7
7
  secondaryNavRef: RefObject<HTMLElement>;
8
8
  };
9
- export declare const NavBarContext: React.Context<NavBarContextValue>;
9
+ export declare const NavBarContext: import("react").Context<NavBarContextValue>;
10
10
  export declare function useNavBarContext(): NavBarContextValue;
11
11
  export {};
@@ -1,5 +1,5 @@
1
1
  import React from "react";
2
2
  import type { ButtonProps } from "../Button/Button";
3
- export declare const NavBarDropdownTriggerButton: React.ForwardRefExoticComponent<Pick<ButtonProps, "onFocus" | "onBlur" | "onClick" | "disabled"> & {
3
+ export declare const NavBarDropdownTriggerButton: React.ForwardRefExoticComponent<Pick<ButtonProps, "disabled" | "onBlur" | "onClick" | "onFocus"> & {
4
4
  children?: React.ReactNode | undefined;
5
5
  } & React.RefAttributes<HTMLButtonElement>>;
@@ -1 +1 @@
1
- export declare const DialogContext: React.Context<boolean>;
1
+ export declare const DialogContext: import("react").Context<boolean>;
@@ -20,8 +20,8 @@ export type EmptyStateProps = {
20
20
  };
21
21
  export declare function EmptyState({ title, titleAs, description, variant, icon, children, "data-e2e-test-id": dataE2eTestId, ...ariaAttributes }: EmptyStateProps): React.ReactElement;
22
22
  export declare namespace EmptyState {
23
- var ButtonGroup: typeof EmptyStateButtonGroup;
24
- var Link: typeof EmptyStateLink;
23
+ export { EmptyStateButtonGroup as ButtonGroup };
24
+ export { EmptyStateLink as Link };
25
25
  }
26
26
  declare function EmptyStateButtonGroup<C extends React.ElementType = "button">({ ...rest }: Omit<ButtonGroupProps<C>, "buttonSize">): React.ReactElement;
27
27
  declare function EmptyStateLink({ children, ...rest }: Omit<LinkProps, "size" | "color" | "weight"> & React.AnchorHTMLAttributes<HTMLAnchorElement> & {
@@ -102,9 +102,11 @@ type ImageProps = {
102
102
  ImageComponent: React.ElementType<any>;
103
103
  };
104
104
  export type ModalProps = BaseProps & ConditionalRoleProps & LabelProps & ImageProps & Pick<PortalProps, "portalContainer">;
105
+ declare const ModalStack: ({ children, ...rest }: Omit<StackProps, "space">) => React.JSX.Element;
106
+ declare const ModalText: ({ children, ...rest }: Omit<TextProps, "size" | "variant">) => React.JSX.Element;
105
107
  export declare function Modal({ header, subHeader, labelHeader, children, imageUrl, ImageComponent, secondaryButton, cancelButtonLabel, isDismissible, isFullScreen, isMaxWidthLimit, actionButton, role, onAction, size, privateProps: { skipPortal, height, zeroPadding, tabbableOptions }, portalContainer, closeButtonAriaLabel, "data-e2e-test-id": dataE2eTestId, imageAlt, initialFocus, ...ariaAttributes }: ModalProps): React.ReactElement;
106
108
  export declare namespace Modal {
107
- var Stack: ({ children, ...rest }: Omit<StackProps, "space">) => React.JSX.Element;
108
- var Text: ({ children, ...rest }: Omit<TextProps, "size" | "variant">) => React.JSX.Element;
109
+ export { ModalStack as Stack };
110
+ export { ModalText as Text };
109
111
  }
110
112
  export {};
@@ -6,4 +6,4 @@ export type PopoverContextValue = {
6
6
  */
7
7
  portalContainer?: HTMLElement | null;
8
8
  };
9
- export declare const PopoverContext: React.Context<PopoverContextValue>;
9
+ export declare const PopoverContext: import("react").Context<PopoverContextValue>;
@@ -70,5 +70,5 @@ export declare const PromptInput: React.ForwardRefExoticComponent<{
70
70
  onEnterKey: () => void;
71
71
  /** Renders an icon to the left inside the textarea */
72
72
  leftIcon?: IconName;
73
- } & Omit<PromptTextAreaProps, "size" | "selectedListItem" | "isAutocompleteListOpen" | "hasAutocomplete" | "hasLeftIcon"> & Pick<AutocompleteListProps, "portalContainer" | "autocompleteListItems" | "autocompleteListFooter"> & React.RefAttributes<HTMLTextAreaElement>>;
73
+ } & Omit<PromptTextAreaProps, "hasAutocomplete" | "hasLeftIcon" | "isAutocompleteListOpen" | "selectedListItem" | "size"> & Pick<AutocompleteListProps, "autocompleteListFooter" | "autocompleteListItems" | "portalContainer"> & React.RefAttributes<HTMLTextAreaElement>>;
74
74
  export {};
@@ -13,4 +13,4 @@ export declare const RadioCard: React.ForwardRefExoticComponent<{
13
13
  renderContent?: (params: {
14
14
  isSelected: boolean;
15
15
  }) => React.ReactNode;
16
- } & Omit<RadioProps, "errorMessages" | "hint" | "hideLabel"> & React.RefAttributes<HTMLInputElement>>;
16
+ } & Omit<RadioProps, "errorMessages" | "hideLabel" | "hint"> & React.RefAttributes<HTMLInputElement>>;
@@ -33,7 +33,9 @@ export type SearchResultProps = {
33
33
  /** The test id for the result's primary target. */
34
34
  "data-e2e-test-id"?: string;
35
35
  };
36
+ declare const defaultProps: Partial<SearchResultProps>;
36
37
  export declare function SearchResult({ title, subtitle, icon, details, body, secondaryTargets, link, labels, "data-e2e-test-id": dataE2eTestId, ...ariaAttributes }: SearchResultProps): React.ReactElement;
37
38
  export declare namespace SearchResult {
38
- var defaultProps: Partial<SearchResultProps>;
39
+ export { defaultProps };
39
40
  }
41
+ export {};
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var target=exports,all={get SHEET_MAX_HEIGHT(){return SHEET_MAX_HEIGHT},get Sheet(){return Sheet}};for(var name in all)Object.defineProperty(target,name,{enumerable:!0,get:Object.getOwnPropertyDescriptor(all,name).get});const _interop_require_default=require("@swc/helpers/_/_interop_require_default"),_react=/*#__PURE__*/require("@swc/helpers/_/_interop_require_wildcard")._(require("react")),_styled=/*#__PURE__*/_interop_require_default._(require("@emotion/styled")),_reactdom=require("react-dom"),_react1=require("@emotion/react"),_FocusTrapWrapper=require("../../shared/FocusTrapWrapper"),_Container=require("../Container/Container"),_useDragDown=require("../../shared/useDragDown"),_Lightbox=require("../Lightbox/Lightbox"),_isWithinScrolledElement=require("../../shared/isWithinScrolledElement"),SHEET_MAX_HEIGHT="80svh",StyledContainer=(0,_styled.default)("div",{target:"e137uunh0",label:"StyledContainer"})(({theme,containerHeight,isClosing,isOpening,dragOffset=0})=>{let animation;if(containerHeight){let slideOut=(0,_react1.keyframes)({from:{transform:`translateY(${dragOffset}px)`},to:{transform:`translateY(${containerHeight}px)`}}),slideIn=(0,_react1.keyframes)({from:{transform:`translateY(${containerHeight}px)`},to:{transform:"translateY(0px)"}});animation=isClosing?`200ms ease-out forwards ${slideOut}`:isOpening?`300ms ease-out forwards ${slideIn}`:"none"}return{position:"fixed",left:0,bottom:0,width:"100vw",transformOrigin:"bottom",animation,boxSizing:"border-box",zIndex:theme.variables.zIndex.modal,"> div":{borderBottomLeftRadius:0,borderBottomRightRadius:0}}}),StyledContentContainer=(0,_styled.default)("div",{target:"e137uunh1",label:"StyledContentContainer"})(({theme,isClosing,isOpening})=>{let animation,fadeOut=(0,_react1.keyframes)({from:{opacity:theme.variables.opacity.visible},to:{opacity:theme.variables.opacity.hidden}}),fadeIn=(0,_react1.keyframes)({from:{opacity:theme.variables.opacity.hidden},to:{opacity:theme.variables.opacity.visible}}),opacity=theme.variables.opacity.hidden;return isClosing?animation=`50ms ease-out forwards ${fadeOut}`:isOpening?animation=`50ms ease-out 250ms forwards ${fadeIn}`:(animation="none",opacity=theme.variables.opacity.visible),{overflow:"auto",maxHeight:"80svh",boxSizing:"border-box",overscrollBehavior:"none",backgroundColor:theme.values.color.background.elevated.default,opacity,animation}}),StyledHandleContainer=(0,_styled.default)("div",{target:"e137uunh2",label:"StyledHandleContainer"})(({theme,isContentContainerScrolled})=>({padding:`${theme.variables.size.spacing.xs} 0`,display:"flex",justifyContent:"center",backgroundColor:theme.values.color.background.elevated.default,...isContentContainerScrolled&&{boxShadow:theme.values.elevation[1]}})),StyledHandle=(0,_styled.default)("div",{target:"e137uunh3",label:"StyledHandle"})(({theme})=>({width:"80px",height:"4px",borderRadius:theme.variables.size.borderRadius.xs,backgroundColor:theme.values.color.divider.secondary}));function Sheet({id,children,hasBackdrop,isVisible,onClose,onUnmount,portalContainer,dismissOnOutsideClick=!0,disableInitialFocus,disableReturnFocusToTrigger,onClickOutsideDeactivates,"data-e2e-test-id":dataE2eTestId,role,...ariaAttributes}){let[isClosing,setClosing]=(0,_react.useState)(!1),[isOpening,setOpening]=(0,_react.useState)(!1),[containerHeight,setContainerHeight]=(0,_react.useState)(0),[isContentContainerScrolled,setContentContainerScrolled]=(0,_react.useState)(!1),containerRef=(0,_react.useRef)(null),contentContainerRef=(0,_react.useRef)(null),handleContainerRef=(0,_react.useRef)(null),prevVisibleState=(0,_react.useRef)(!1),dragOffset=(0,_react.useRef)(0),isDragStarted=(0,_react.useRef)(!1);(0,_react.useLayoutEffect)(()=>{isVisible&&setOpening(!0)},[isVisible]),(0,_react.useLayoutEffect)(()=>{isVisible&&containerRef.current&&setContainerHeight(containerRef.current.getBoundingClientRect().height)},[isVisible,children]),(0,_react.useEffect)(()=>{!isVisible&&prevVisibleState.current&&setClosing(!0),prevVisibleState.current=isVisible},[isVisible]),(0,_react.useEffect)(()=>{isVisible&&isClosing&&onClose()},[isVisible,isClosing,onClose]);let handleDragStart=(0,_react.useCallback)(()=>{requestAnimationFrame(()=>{contentContainerRef.current?.scrollTop===0&&containerRef.current&&(containerRef.current.style.animation="none",containerRef.current.style.transition="transform 0.1s ease",containerRef.current.style.transform="translateY(0px)",dragOffset.current=0,isDragStarted.current=!0)})},[containerRef,contentContainerRef]),handleDrag=(0,_react.useCallback)((_,offsetFromStart)=>{let containerCurrentHeight=containerRef.current?.getBoundingClientRect()?.height??0;requestAnimationFrame(()=>{isDragStarted.current&&containerRef.current&&contentContainerRef.current?.scrollTop===0&&offsetFromStart<containerCurrentHeight&&(containerRef.current.style.transform=`translateY(${offsetFromStart}px)`,dragOffset.current=offsetFromStart)})},[containerRef,contentContainerRef]),handleDragEnd=(0,_react.useCallback)((_,offsetFromStart)=>{let containerCurrentHeight=containerRef.current?.getBoundingClientRect()?.height??0,minDragDistance=containerCurrentHeight<300?containerCurrentHeight/4:150;requestAnimationFrame(()=>{isDragStarted.current&&(offsetFromStart>=minDragDistance&&contentContainerRef.current?.scrollTop===0?onClose():containerRef.current&&(containerRef.current.style.transform="translateY(0px)",dragOffset.current=0)),isDragStarted.current=!1})},[containerRef,onClose]),handleDragCancel=(0,_react.useCallback)(()=>{requestAnimationFrame(()=>{isDragStarted.current&&containerRef.current&&(containerRef.current.style.transform="translateY(0px)",dragOffset.current=0),isDragStarted.current=!1})},[containerRef]),shouldInitiateDrag=(0,_react.useCallback)(event=>{let target=event.target;return!!handleContainerRef.current?.contains(target)||!((0,_isWithinScrolledElement.isWithinScrolledElement)(target,containerRef.current)||(contentContainerRef.current?.scrollTop??0)>0)},[containerRef,contentContainerRef,handleContainerRef]);(0,_useDragDown.useDragDown)({ref:containerRef,isVisible,onDragStart:handleDragStart,onDrag:handleDrag,onDragEnd:handleDragEnd,onDragCancel:handleDragCancel,shouldInitiateDrag});let handlePostDeactivate=(0,_react.useCallback)(()=>{onClose()},[onClose]);if(!((isVisible||isClosing)&&!(isVisible&&isClosing)))return null;let sheetElm=_react.default.createElement(_react.default.Fragment,null,_react.default.createElement(_react1.Global,{styles:[{html:{overflow:"hidden",overscrollBehavior:"none"}}]}),_react.default.createElement(_FocusTrapWrapper.FocusTrapWrapper,{active:isVisible,focusTrapOptions:{clickOutsideDeactivates:dismissOnOutsideClick&&onClickOutsideDeactivates?onClickOutsideDeactivates:dismissOnOutsideClick,allowOutsideClick:!0,escapeDeactivates:!0,preventScroll:!0,initialFocus:()=>!disableInitialFocus,returnFocusOnDeactivate:!disableReturnFocusToTrigger,fallbackFocus:'[data-ds-id="Sheet"]',onPostDeactivate:handlePostDeactivate}},_react.default.createElement(StyledContainer,{...id?{id}:{},"data-e2e-test-id":dataE2eTestId,"data-ds-id":"Sheet",containerHeight:containerHeight,isClosing:isClosing,isOpening:isOpening,ref:containerRef,dragOffset:dragOffset.current,onAnimationEnd:()=>{isClosing?(setClosing(!1),setContainerHeight(0),dragOffset.current=0,onUnmount&&onUnmount()):isOpening&&setOpening(!1)},role:role,...ariaAttributes},_react.default.createElement(_Container.Container,{elevation:4},_react.default.createElement(StyledHandleContainer,{ref:handleContainerRef,isContentContainerScrolled:isContentContainerScrolled},_react.default.createElement(StyledHandle,null)),_react.default.createElement(StyledContentContainer,{isClosing:isClosing,isOpening:isOpening,ref:contentContainerRef,onScroll:()=>{setContentContainerScrolled(contentContainerRef.current?.scrollTop!==0)},onAnimationEnd:evt=>evt.stopPropagation()},children))))),wrappedSheet=hasBackdrop&&!isClosing?_react.default.createElement(_Lightbox.StyledBackdrop,null,sheetElm):sheetElm,container=portalContainer||!!document&&document.body;return container&&(0,_reactdom.createPortal)(wrappedSheet,container)}
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var target=exports,all={get SHEET_MAX_HEIGHT(){return SHEET_MAX_HEIGHT},get Sheet(){return Sheet}};for(var name in all)Object.defineProperty(target,name,{enumerable:!0,get:Object.getOwnPropertyDescriptor(all,name).get});const _interop_require_default=require("@swc/helpers/_/_interop_require_default"),_react=/*#__PURE__*/require("@swc/helpers/_/_interop_require_wildcard")._(require("react")),_styled=/*#__PURE__*/_interop_require_default._(require("@emotion/styled")),_reactdom=require("react-dom"),_react1=require("@emotion/react"),_FocusTrapWrapper=require("../../shared/FocusTrapWrapper"),_Container=require("../Container/Container"),_useExitAnimation=require("../../shared/useExitAnimation"),_useDocument=require("../../shared/useDocument"),_useSheetHeightSync=require("./useSheetHeightSync"),SHEET_MAX_HEIGHT="80svh",SCROLL_TIMELINE="--sheet-scroll",supportsScrollDrivenAnimations=()=>"undefined"!=typeof CSS&&"function"==typeof CSS.supports&&CSS.supports("animation-timeline: scroll()"),globalStyles={html:{overflow:"hidden",overscrollBehavior:"none"}},slideIn=(0,_react1.keyframes)({from:{transform:"translateY(100%)"},to:{transform:"translateY(0)"}},"label:slideIn"),slideOut=(0,_react1.keyframes)({from:{transform:"translateY(0)"},to:{transform:"translateY(100%)"}},"label:slideOut"),canScrollFurther=({element,direction})=>{if(!(direction<0?element.scrollTop>0:element.scrollTop+element.clientHeight<element.scrollHeight-1))return!1;let overflowY=element.ownerDocument.defaultView?.getComputedStyle(element).overflowY;return!!overflowY&&["auto","scroll","overlay"].includes(overflowY)},canContentTakeScroll=({target,boundary,direction})=>{let element=target instanceof Element?target:null;for(;element&&element!==boundary;){if(canScrollFurther({element,direction}))return!0;element=element.parentElement}return!1},SCROLL_KEY_DIRECTIONS={ArrowUp:-1,PageUp:-1,Home:-1,ArrowDown:1,PageDown:1,End:1},getScrollKeyDirection=({event,scroller})=>{let{target,key,shiftKey}=event;if(!(target instanceof HTMLElement&&(target.isContentEditable||["INPUT","TEXTAREA","SELECT"].includes(target.tagName)))){if(" "===key){if(target!==scroller)return;return shiftKey?-1:1}return SCROLL_KEY_DIRECTIONS[key]}},StyledRoot=(0,_styled.default)("div",{target:"e1prhk2x0",label:"StyledRoot"})(({theme})=>({position:"fixed",inset:0,zIndex:theme.variables.zIndex.modal,pointerEvents:"none",timelineScope:SCROLL_TIMELINE})),holdStill=(0,_react1.keyframes)({from:{transform:"translateY(0)"},to:{transform:"translateY(0)"}},"label:holdStill"),getSlideAnimation=({isLeaving,isSwipedAway,theme})=>{let{enter,exit}=theme.variables.animation.sheet;return isLeaving?isSwipedAway?`${holdStill} ${exit.duration} linear forwards`:`${slideOut} ${exit.duration} ${exit.timingFunction} forwards`:`${slideIn} ${enter.duration} ${enter.timingFunction} both`},StyledBackdrop=(0,_styled.default)("div",{target:"e1prhk2x1",label:"StyledBackdrop"})(({theme,isLeaving})=>{let{hidden,visible}=theme.variables.opacity,fadeIn=(0,_react1.keyframes)({from:{opacity:hidden},to:{opacity:visible}}),fadeOut=(0,_react1.keyframes)({from:{opacity:visible},to:{opacity:hidden}}),{enter,exit}=theme.variables.animation.sheet;return{position:"absolute",inset:0,pointerEvents:isLeaving?"none":"auto",animation:isLeaving?`${fadeOut} ${exit.duration} ${enter.timingFunction} forwards`:`${fadeIn} ${enter.duration} ${enter.timingFunction} both`,"@media (prefers-reduced-motion: reduce)":{animation:"none"}}}),StyledBackdropFill=(0,_styled.default)("div",{target:"e1prhk2x2",label:"StyledBackdropFill"})(({theme})=>{let{hidden,visible}=theme.variables.opacity,dimWithSheet=(0,_react1.keyframes)({from:{opacity:hidden},to:{opacity:visible}});return{position:"absolute",inset:0,background:theme.values.color.background.backdrop.default,"@supports (animation-timeline: scroll())":{animation:`${dimWithSheet} linear both`,animationTimeline:SCROLL_TIMELINE}}}),StyledFrame=(0,_styled.default)("div",{target:"e1prhk2x3",label:"StyledFrame"})(({theme})=>({position:"absolute",left:0,right:0,bottom:0,height:`var(${_useSheetHeightSync.SHEET_HEIGHT_VAR}, auto)`,"::after":{content:'""',position:"absolute",top:"calc(100% - 1px)",left:0,right:0,height:SHEET_MAX_HEIGHT,backgroundColor:theme.values.color.background.elevated.default}})),StyledScroller=(0,_styled.default)("div",{target:"e1prhk2x4",label:"StyledScroller"})(({theme,isLeaving,isSwipedAway})=>({position:"absolute",left:0,right:0,bottom:0,height:"calc(100% + 112px)",overflowY:"scroll",scrollSnapType:"y mandatory",overscrollBehavior:"none",scrollbarWidth:"none","::-webkit-scrollbar":{display:"none"},scrollTimeline:`${SCROLL_TIMELINE} y`,pointerEvents:isLeaving?"none":"auto",outline:"none",animation:getSlideAnimation({isLeaving,isSwipedAway,theme}),"@media (prefers-reduced-motion: reduce)":{animation:"none"}})),StyledClosedSnapPoint=(0,_styled.default)("div",{target:"e1prhk2x5",label:"StyledClosedSnapPoint"})({height:"calc(100% + 64px + 1px)",scrollSnapAlign:"start"}),StyledSurface=(0,_styled.default)("div",{target:"e1prhk2x6",label:"StyledSurface"})({scrollSnapAlign:"end","> div":{borderBottomLeftRadius:0,borderBottomRightRadius:0}}),StyledContentContainer=(0,_styled.default)("div",{target:"e1prhk2x7",label:"StyledContentContainer"})(({theme})=>({overflow:"auto",maxHeight:SHEET_MAX_HEIGHT,boxSizing:"border-box",backgroundColor:theme.values.color.background.elevated.default})),StyledHandleContainer=(0,_styled.default)("div",{target:"e1prhk2x8",label:"StyledHandleContainer"})(({theme,isContentContainerScrolled})=>({padding:`${theme.variables.size.spacing.xs} 0`,display:"flex",justifyContent:"center",backgroundColor:theme.values.color.background.elevated.default,...isContentContainerScrolled&&{boxShadow:theme.values.elevation[1]}})),StyledHandle=(0,_styled.default)("div",{target:"e1prhk2x9",label:"StyledHandle"})(({theme})=>({width:"80px",height:"4px",borderRadius:theme.variables.size.borderRadius.xs,backgroundColor:theme.values.color.divider.secondary}));function Sheet({id,children,hasBackdrop,isVisible,onClose,onUnmount,portalContainer,dismissOnOutsideClick=!0,disableInitialFocus,disableReturnFocusToTrigger,onClickOutsideDeactivates,"data-e2e-test-id":dataE2eTestId,role,...ariaAttributes}){let theme=(0,_react1.useTheme)(),document=(0,_useDocument.useDocument)(),{isMounted,isLeaving,onAnimationEnd}=(0,_useExitAnimation.useExitAnimation)(isVisible),[isContentContainerScrolled,setContentContainerScrolled]=(0,_react.useState)(!1),[isSwipedAway,setSwipedAway]=(0,_react.useState)(!1),frameRef=(0,_react.useRef)(null),scrollerRef=(0,_react.useRef)(null),surfaceRef=(0,_react.useRef)(null),backdropFillRef=(0,_react.useRef)(null),contentContainerRef=(0,_react.useRef)(null),wasMounted=(0,_react.useRef)(isMounted);(0,_react.useEffect)(()=>{wasMounted.current&&!isMounted&&onUnmount?.(),wasMounted.current=isMounted},[isMounted,onUnmount]),(0,_useSheetHeightSync.useSheetHeightSync)({frameRef,scrollerRef,surfaceRef,isOpen:isVisible,resize:theme.variables.animation.sheet.resize}),(0,_react.useEffect)(()=>{isVisible&&setSwipedAway(!1)},[isVisible]),(0,_react.useEffect)(()=>{let scroller=scrollerRef.current,surface=surfaceRef.current;if(!isVisible||!scroller||!surface||"undefined"==typeof IntersectionObserver)return;let isHidden=!1,isTouching=!1,closeIfHidden=()=>{isHidden&&!isTouching&&(setSwipedAway(!0),onClose())},intersectionObserver=new IntersectionObserver(([entry])=>{isHidden=entry.intersectionRatio<.01,closeIfHidden()},{root:scroller,threshold:[.01]}),handleTouchStart=()=>{isTouching=!0},handleTouchEnd=()=>{isTouching=!1,closeIfHidden()};return intersectionObserver.observe(surface),scroller.addEventListener("touchstart",handleTouchStart,{passive:!0}),scroller.addEventListener("touchend",handleTouchEnd,{passive:!0}),scroller.addEventListener("touchcancel",handleTouchEnd,{passive:!0}),()=>{intersectionObserver.disconnect(),scroller.removeEventListener("touchstart",handleTouchStart),scroller.removeEventListener("touchend",handleTouchEnd),scroller.removeEventListener("touchcancel",handleTouchEnd)}},[isVisible,onClose]),(0,_react.useEffect)(()=>{let scroller=scrollerRef.current;if(!isMounted||!scroller)return;let handleScrollerWheel=event=>{if(event.ctrlKey||0===event.deltaY)return;let direction=event.deltaY<0?-1:1;canContentTakeScroll({target:event.target,boundary:scroller,direction})||event.preventDefault()},handleScrollerKeyDown=event=>{let direction=getScrollKeyDirection({event,scroller});direction&&!canContentTakeScroll({target:event.target,boundary:scroller,direction})&&event.preventDefault()};return scroller.addEventListener("wheel",handleScrollerWheel,{passive:!1}),scroller.addEventListener("keydown",handleScrollerKeyDown),()=>{scroller.removeEventListener("wheel",handleScrollerWheel),scroller.removeEventListener("keydown",handleScrollerKeyDown)}},[isMounted]),(0,_react.useEffect)(()=>{let scroller=scrollerRef.current,backdropFill=backdropFillRef.current;if(!isMounted||!scroller||!backdropFill||supportsScrollDrivenAnimations())return;let handleScrollerScroll=()=>{let maxScrollTop=scroller.scrollHeight-scroller.clientHeight;backdropFill.style.opacity=String(maxScrollTop>0?scroller.scrollTop/maxScrollTop:1)};return handleScrollerScroll(),scroller.addEventListener("scroll",handleScrollerScroll,{passive:!0}),()=>scroller.removeEventListener("scroll",handleScrollerScroll)},[isMounted,hasBackdrop]);let handlePostDeactivate=(0,_react.useCallback)(()=>{onClose()},[onClose]);if(!isMounted)return null;let sheetElm=_react.default.createElement(_react.default.Fragment,null,_react.default.createElement(_react1.Global,{styles:[globalStyles]}),_react.default.createElement(StyledRoot,null,hasBackdrop&&_react.default.createElement(StyledBackdrop,{isLeaving:isLeaving},_react.default.createElement(StyledBackdropFill,{ref:backdropFillRef})),_react.default.createElement(StyledFrame,{ref:frameRef},_react.default.createElement(_FocusTrapWrapper.FocusTrapWrapper,{active:isVisible,focusTrapOptions:{clickOutsideDeactivates:dismissOnOutsideClick&&onClickOutsideDeactivates?onClickOutsideDeactivates:dismissOnOutsideClick,allowOutsideClick:!0,escapeDeactivates:!0,preventScroll:!0,initialFocus:()=>!disableInitialFocus,returnFocusOnDeactivate:!disableReturnFocusToTrigger,fallbackFocus:'[data-ds-id="Sheet"]',onPostDeactivate:handlePostDeactivate}},_react.default.createElement(StyledScroller,{...id?{id}:{},"data-e2e-test-id":dataE2eTestId,"data-ds-id":"Sheet",ref:scrollerRef,isLeaving:isLeaving,isSwipedAway:isSwipedAway,onAnimationEnd:onAnimationEnd,onClick:event=>{!surfaceRef.current?.contains(event.target)&&dismissOnOutsideClick&&onClose()},role:role,...ariaAttributes},_react.default.createElement(StyledClosedSnapPoint,null),_react.default.createElement(StyledSurface,{ref:surfaceRef},_react.default.createElement(_Container.Container,{elevation:4},_react.default.createElement(StyledHandleContainer,{isContentContainerScrolled:isContentContainerScrolled},_react.default.createElement(StyledHandle,null)),_react.default.createElement(StyledContentContainer,{ref:contentContainerRef,onScroll:()=>{setContentContainerScrolled(contentContainerRef.current?.scrollTop!==0)}},children)))))))),container=portalContainer||document?.body;return container?(0,_reactdom.createPortal)(sheetElm,container):null}
@@ -0,0 +1,26 @@
1
+ import type { RefObject } from "react";
2
+ /** CSS variable the scroller reads its height from */
3
+ export declare const SHEET_HEIGHT_VAR = "--sheet-height";
4
+ type Motion = {
5
+ duration: string;
6
+ timingFunction: string;
7
+ };
8
+ type UseSheetHeightSyncOptions = {
9
+ /** Wraps the scroller: sized to the sheet, and moved to glide height changes */
10
+ frameRef: RefObject<HTMLElement | null>;
11
+ /** Snap scroller filling the frame */
12
+ scrollerRef: RefObject<HTMLElement | null>;
13
+ /** The sheet surface inside it */
14
+ surfaceRef: RefObject<HTMLElement | null>;
15
+ isOpen: boolean;
16
+ resize: Motion;
17
+ };
18
+ /**
19
+ * Keeps the snap scroller sized to the sheet and parked at the open position,
20
+ * and glides height changes instead of jumping: the sheet takes its new size
21
+ * at once and a compositor transform on the frame plays its top edge from the
22
+ * old position into place (FLIP). The frame sits outside the scroller, where a
23
+ * transform can't stretch the scrollable area and upset the snap position.
24
+ */
25
+ export declare function useSheetHeightSync({ frameRef, scrollerRef, surfaceRef, isOpen, resize: { duration, timingFunction }, }: UseSheetHeightSyncOptions): void;
26
+ export {};
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var target=exports,all={get SHEET_HEIGHT_VAR(){return SHEET_HEIGHT_VAR},get useSheetHeightSync(){return useSheetHeightSync}};for(var name in all)Object.defineProperty(target,name,{enumerable:!0,get:Object.getOwnPropertyDescriptor(all,name).get});const _react=require("react"),_useWindow=require("../../shared/useWindow"),_prefersReducedMotion=require("../../shared/prefersReducedMotion"),SHEET_HEIGHT_VAR="--sheet-height",sizeFrameToSheet=({frame,sheetHeight})=>frame.style.setProperty(SHEET_HEIGHT_VAR,`${sheetHeight}px`),fitScrollerToSheet=({frame,scroller,sheetHeight})=>{sizeFrameToSheet({frame,sheetHeight}),scroller.scrollTop=scroller.scrollHeight},toMilliseconds=duration=>{let value=parseFloat(duration);return duration.trim().endsWith("ms")?value:duration.trim().endsWith("s")?1e3*value:value},getRenderedTranslateY=(element,window)=>{let{transform}=window.getComputedStyle(element);return"none"===transform?0:new DOMMatrixReadOnly(transform).m42};function useSheetHeightSync({frameRef,scrollerRef,surfaceRef,isOpen,resize:{duration,timingFunction}}){let window=(0,_useWindow.useWindow)();(0,_react.useLayoutEffect)(()=>{let frame=frameRef.current,scroller=scrollerRef.current,surface=surfaceRef.current;isOpen&&frame&&scroller&&surface&&fitScrollerToSheet({frame,scroller,sheetHeight:surface.offsetHeight})},[isOpen,frameRef,scrollerRef,surfaceRef]),(0,_react.useEffect)(()=>{let heightAnimation,frame=frameRef.current,scroller=scrollerRef.current,surface=surfaceRef.current;if(!isOpen||!frame||!scroller||!surface||"undefined"==typeof ResizeObserver)return;let previousHeight=surface.offsetHeight,isTouching=!1,handleTouchStart=()=>{isTouching=!0,heightAnimation?.playState==="running"&&heightAnimation.pause()},handleTouchEnd=()=>{isTouching=!1,heightAnimation?.playState==="paused"&&heightAnimation.play()},resizeObserver=new ResizeObserver(()=>{let sheetHeight=surface.offsetHeight,heightDelta=sheetHeight-previousHeight;if(previousHeight=sheetHeight,0===heightDelta)return;if(isTouching)return void sizeFrameToSheet({frame,sheetHeight});let inFlightOffset=heightAnimation&&"finished"!==heightAnimation.playState?getRenderedTranslateY(frame,window):0;heightAnimation?.cancel(),fitScrollerToSheet({frame,scroller,sheetHeight}),"function"!=typeof frame.animate||(0,_prefersReducedMotion.prefersReducedMotion)(window)||(heightAnimation=frame.animate([{transform:`translateY(${heightDelta+inFlightOffset}px)`},{transform:"none"}],{duration:toMilliseconds(duration),easing:timingFunction}))});return resizeObserver.observe(surface),scroller.addEventListener("touchstart",handleTouchStart,{passive:!0}),scroller.addEventListener("touchend",handleTouchEnd,{passive:!0}),scroller.addEventListener("touchcancel",handleTouchEnd,{passive:!0}),()=>{resizeObserver.disconnect(),heightAnimation?.cancel(),scroller.removeEventListener("touchstart",handleTouchStart),scroller.removeEventListener("touchend",handleTouchEnd),scroller.removeEventListener("touchcancel",handleTouchEnd)}},[isOpen,frameRef,scrollerRef,surfaceRef,window,duration,timingFunction])}
@@ -1 +1 @@
1
- export declare const SubThemeContext: React.Context<import("./SubThemeProvider").SubThemeName | null | undefined>;
1
+ export declare const SubThemeContext: import("react").Context<import("./SubThemeProvider").SubThemeName | null | undefined>;
@@ -5,4 +5,4 @@
5
5
  * trap scans for focusable elements only once, on activation, and elements
6
6
  * under a `visibility: hidden` ancestor never count as focusable.
7
7
  */
8
- export declare const FloatingPositionedContext: React.Context<boolean>;
8
+ export declare const FloatingPositionedContext: import("react").Context<boolean>;
@@ -1,2 +1,2 @@
1
1
  import type { ContainerQueryBreakpoints } from "../../../shared/mediaQueries";
2
- export declare const ContainerQueryContext: React.Context<ContainerQueryBreakpoints | undefined>;
2
+ export declare const ContainerQueryContext: import("react").Context<ContainerQueryBreakpoints | undefined>;
@@ -1,4 +1,4 @@
1
1
  export declare const ScreenReaderText: import("@emotion/styled").StyledComponent<{
2
2
  theme?: import("@emotion/react").Theme;
3
3
  as?: React.ElementType;
4
- }, React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {}>;
4
+ }, import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {}>;
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),Object.defineProperty(exports,"VirtualScrollList",{enumerable:!0,get:function(){return VirtualScrollList}});const _interop_require_default=require("@swc/helpers/_/_interop_require_default"),_interop_require_wildcard=require("@swc/helpers/_/_interop_require_wildcard"),_styled=/*#__PURE__*/_interop_require_default._(require("@emotion/styled")),_react=/*#__PURE__*/_interop_require_wildcard._(require("react")),_VirtualScrollListReducer=require("./VirtualScrollListReducer"),StyledContainer=(0,_styled.default)("div",{target:"eyhrtu0",label:"StyledContainer"})(({maxHeight})=>({overflow:"auto",width:"100%",height:"100%",maxHeight})),StyledScrollableContent=(0,_styled.default)("div",{target:"eyhrtu1",label:"StyledScrollableContent"})(({maxContentHeight})=>({overflow:"hidden",boxSizing:"border-box",height:maxContentHeight}));function VirtualScrollList({id,maxHeight,itemHeight,itemAmount,emptyState=()=>null,itemInView,itemTemplate,containerStyle,"data-e2e-test-id":dataE2eTestId,onContentHeightChange,role,...ariaAttributes}){let scrollableContainerRef=(0,_react.useRef)(null),viewportRef=(0,_react.useRef)(null),adjustedForReflow=(0,_react.useRef)(!1),[{scrolledItemCount=0,amountOfItemsInView=0,scrolledInPx,maxContentHeight=maxHeight,recommendedScrollPosition},dispatch]=(0,_react.useReducer)(_VirtualScrollListReducer.VirtualScrollReducer,{});(0,_react.useLayoutEffect)(()=>{dispatch({type:"reset",itemHeight,maxHeight,overscan:10});let scrollableContainer=scrollableContainerRef.current;scrollableContainer&&(scrollableContainer.scrollTop=0)},[itemHeight,itemAmount,maxHeight]),(0,_react.useEffect)(()=>{let scrollableContainer=scrollableContainerRef.current;scrollableContainer&&dispatch({type:"recommendScrollPosition",scrollTop:scrollableContainer.scrollTop,itemToBeInView:itemInView})},[itemInView]),(0,_react.useEffect)(()=>{if(null==recommendedScrollPosition)return;let scrollableContainer=scrollableContainerRef.current;scrollableContainer&&(scrollableContainer.scrollTop=recommendedScrollPosition)},[recommendedScrollPosition]),(0,_react.useLayoutEffect)(()=>{viewportRef.current&&dispatch({type:"updateViewport",viewportNode:viewportRef.current,itemAmount})},[itemAmount,scrolledItemCount,amountOfItemsInView]),(0,_react.useEffect)(()=>{onContentHeightChange?.()},[maxContentHeight,onContentHeightChange]);let itemCountToBeRendered=Math.min(Math.max(0,itemAmount-scrolledItemCount),amountOfItemsInView);return maxContentHeight>maxHeight&&!adjustedForReflow.current&&viewportRef.current&&(setTimeout(()=>{let viewportNode=viewportRef.current;viewportNode&&dispatch({type:"updateViewport",viewportNode,itemAmount})}),adjustedForReflow.current=!0),_react.default.createElement(StyledContainer,{ref:scrollableContainerRef,maxHeight:maxHeight,style:{maxHeight,...containerStyle},"data-e2e-test-id":dataE2eTestId,"data-ds-id":"VirtualScrollList",onScroll:e=>{dispatch({type:"scroll",scrollTop:e.currentTarget.scrollTop})}},0===itemAmount?emptyState():_react.default.createElement(StyledScrollableContent,{maxContentHeight:maxContentHeight},_react.default.createElement("div",{ref:viewportRef,style:{transform:`translateY(${scrolledInPx}px`},role:role,id:id,...ariaAttributes},!!itemCountToBeRendered&&Array(itemCountToBeRendered).fill(0).map((_,index)=>itemTemplate(scrolledItemCount+index)))))}
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),Object.defineProperty(exports,"VirtualScrollList",{enumerable:!0,get:function(){return VirtualScrollList}});const _interop_require_default=require("@swc/helpers/_/_interop_require_default"),_interop_require_wildcard=require("@swc/helpers/_/_interop_require_wildcard"),_styled=/*#__PURE__*/_interop_require_default._(require("@emotion/styled")),_react=/*#__PURE__*/_interop_require_wildcard._(require("react")),_VirtualScrollListReducer=require("./VirtualScrollListReducer"),StyledContainer=(0,_styled.default)("div",{target:"eawkr7u0",label:"StyledContainer"})(({maxHeight})=>({overflow:"auto",width:"100%",height:"100%",maxHeight})),StyledScrollableContent=(0,_styled.default)("div",{target:"eawkr7u1",label:"StyledScrollableContent"})(({maxContentHeight})=>({overflow:"hidden",boxSizing:"border-box",height:maxContentHeight})),measureViewport=node=>({height:node.getBoundingClientRect().height,items:Array.from(node.children,child=>({offsetTop:child.offsetTop,height:child.getBoundingClientRect().height}))});function VirtualScrollList({id,maxHeight,itemHeight,itemAmount,emptyState=()=>null,itemInView,itemTemplate,containerStyle,"data-e2e-test-id":dataE2eTestId,onContentHeightChange,role,...ariaAttributes}){let scrollableContainerRef=(0,_react.useRef)(null),viewportRef=(0,_react.useRef)(null),adjustedForReflow=(0,_react.useRef)(!1),[{scrolledItemCount=0,amountOfItemsInView=0,scrolledInPx,maxContentHeight=maxHeight,recommendedScrollPosition},dispatch]=(0,_react.useReducer)(_VirtualScrollListReducer.VirtualScrollReducer,{});(0,_react.useLayoutEffect)(()=>{dispatch({type:"reset",itemHeight,maxHeight,overscan:10});let scrollableContainer=scrollableContainerRef.current;scrollableContainer&&(scrollableContainer.scrollTop=0)},[itemHeight,itemAmount,maxHeight]),(0,_react.useEffect)(()=>{let scrollableContainer=scrollableContainerRef.current;scrollableContainer&&dispatch({type:"recommendScrollPosition",scrollTop:scrollableContainer.scrollTop,itemToBeInView:itemInView})},[itemInView]),(0,_react.useEffect)(()=>{if(null==recommendedScrollPosition)return;let scrollableContainer=scrollableContainerRef.current;scrollableContainer&&(scrollableContainer.scrollTop=recommendedScrollPosition)},[recommendedScrollPosition]),(0,_react.useLayoutEffect)(()=>{viewportRef.current&&dispatch({type:"updateViewport",measurements:measureViewport(viewportRef.current),itemAmount})},[itemAmount,scrolledItemCount,amountOfItemsInView]),(0,_react.useEffect)(()=>{onContentHeightChange?.()},[maxContentHeight,onContentHeightChange]);let itemCountToBeRendered=Math.min(Math.max(0,itemAmount-scrolledItemCount),amountOfItemsInView);return maxContentHeight>maxHeight&&!adjustedForReflow.current&&viewportRef.current&&(setTimeout(()=>{let viewportNode=viewportRef.current;viewportNode&&dispatch({type:"updateViewport",measurements:measureViewport(viewportNode),itemAmount})}),adjustedForReflow.current=!0),_react.default.createElement(StyledContainer,{ref:scrollableContainerRef,maxHeight:maxHeight,style:{maxHeight,...containerStyle},"data-e2e-test-id":dataE2eTestId,"data-ds-id":"VirtualScrollList",onScroll:e=>{dispatch({type:"scroll",scrollTop:e.currentTarget.scrollTop})}},0===itemAmount?emptyState():_react.default.createElement(StyledScrollableContent,{maxContentHeight:maxContentHeight},_react.default.createElement("div",{ref:viewportRef,style:{transform:`translateY(${scrolledInPx}px`},role:role,id:id,...ariaAttributes},!!itemCountToBeRendered&&Array(itemCountToBeRendered).fill(0).map((_,index)=>itemTemplate(scrolledItemCount+index)))))}
@@ -2,6 +2,13 @@ type Offset = {
2
2
  amount: number;
3
3
  isInterpolated: boolean;
4
4
  };
5
+ export type ViewportMeasurements = {
6
+ readonly height: number;
7
+ readonly items: readonly {
8
+ readonly offsetTop: number;
9
+ readonly height: number;
10
+ }[];
11
+ };
5
12
  type State = {
6
13
  avgItemHeight?: number;
7
14
  overscan?: number;
@@ -20,7 +27,7 @@ type Action = {
20
27
  scrollTop: number;
21
28
  } | {
22
29
  type: "updateViewport";
23
- viewportNode: HTMLDivElement;
30
+ measurements: ViewportMeasurements;
24
31
  itemAmount: number;
25
32
  } | {
26
33
  type: "reset";
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),Object.defineProperty(exports,"VirtualScrollReducer",{enumerable:!0,get:function(){return VirtualScrollReducer}});const findClosestOffsetIndex=(arr,val)=>{let start=0,end=arr.length-1,mid=Math.floor((start+end)/2);for(;start<=end&&arr[mid=Math.floor((start+end)/2)].amount!==val;)val<arr[mid].amount?end=mid-1:start=mid+1;return mid},getMaxHeight=(maxAmountOfItems,offsets,lastItemHeight)=>{let amountOfOffsets=Math.min(offsets.length,maxAmountOfItems);return(offsets[amountOfOffsets-1]?.amount||0)+(lastItemHeight??0)},reduceScroll=(prevState,scrollTop)=>{let{topOffsets=[],overscan:tolerance=0}=prevState,scrolledItemCount=Math.max(0,findClosestOffsetIndex(topOffsets,scrollTop)-tolerance/2),scrolledInPx=topOffsets[scrolledItemCount]?.amount||0;return{...prevState,scrolledItemCount,scrolledInPx}},reduceUpdateViewport=(prevState,viewportNode,itemAmount)=>{let{topOffsets=[],scrolledInPx=0,scrolledItemCount=0,avgItemHeight=0,lastItemHeight,maxHeight=0,overscan:tolerance=0}=prevState,newTopOffsets=[...topOffsets],updatedLastItemHeight=lastItemHeight;Array.from(viewportNode.children).forEach((child,i)=>{newTopOffsets[i+scrolledItemCount]={amount:scrolledInPx+child.offsetTop,isInterpolated:!1},i+scrolledItemCount!==itemAmount-1||lastItemHeight||(updatedLastItemHeight=child.getBoundingClientRect().height)});let newAvgItemHeight=Math.max(avgItemHeight,viewportNode.getBoundingClientRect().height/(viewportNode.childElementCount||1));for(let i=0;i<itemAmount;i+=1)(!newTopOffsets[i]||newTopOffsets[i].isInterpolated)&&(newTopOffsets[i]={amount:newTopOffsets[i-1].amount+newAvgItemHeight,isInterpolated:!0});let maxContentHeight=getMaxHeight(itemAmount,newTopOffsets,updatedLastItemHeight);return{...prevState,lastItemHeight:updatedLastItemHeight,avgItemHeight:newAvgItemHeight,topOffsets:newTopOffsets,amountOfItemsInView:Math.round(maxHeight/newAvgItemHeight)+tolerance,maxContentHeight}},reduceReset=(prevState,itemHeight,maxHeight,overscan)=>({...prevState,lastItemHeight:null,topOffsets:[{amount:0,isInterpolated:!1}],scrolledInPx:0,scrolledItemCount:0,maxHeight,avgItemHeight:itemHeight,overscan}),reduceRecommendScrollPosition=(prevState,scrollTop,itemToBeInView)=>{let{topOffsets,maxHeight}=prevState;if(!topOffsets||void 0===maxHeight)return prevState;let bottomOfTarget=topOffsets[itemToBeInView+1]?.amount,topOfTarget=topOffsets[itemToBeInView]?.amount,recommendedScrollPosition=null;return topOfTarget<scrollTop&&(recommendedScrollPosition=topOfTarget),bottomOfTarget>=scrollTop+maxHeight&&(recommendedScrollPosition=bottomOfTarget-maxHeight),itemToBeInView===topOffsets.length-1&&(recommendedScrollPosition=topOffsets[itemToBeInView].amount),{...prevState,recommendedScrollPosition}},VirtualScrollReducer=(prevState,action)=>{switch(action.type){case"reset":return reduceReset(prevState,action.itemHeight,action.maxHeight,action.overscan);case"scroll":return reduceScroll(prevState,action.scrollTop);case"updateViewport":return reduceUpdateViewport(prevState,action.viewportNode,action.itemAmount);case"recommendScrollPosition":return reduceRecommendScrollPosition(prevState,action.scrollTop,action.itemToBeInView);default:throw Error()}};
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),Object.defineProperty(exports,"VirtualScrollReducer",{enumerable:!0,get:function(){return VirtualScrollReducer}});const findClosestOffsetIndex=(arr,val)=>{let start=0,end=arr.length-1,mid=Math.floor((start+end)/2);for(;start<=end&&arr[mid=Math.floor((start+end)/2)].amount!==val;)val<arr[mid].amount?end=mid-1:start=mid+1;return mid},getMaxHeight=(maxAmountOfItems,offsets,lastItemHeight)=>{let amountOfOffsets=Math.min(offsets.length,maxAmountOfItems);return(offsets[amountOfOffsets-1]?.amount||0)+(lastItemHeight??0)},reduceScroll=(prevState,scrollTop)=>{let{topOffsets=[],overscan:tolerance=0}=prevState,scrolledItemCount=Math.max(0,findClosestOffsetIndex(topOffsets,scrollTop)-tolerance/2),scrolledInPx=topOffsets[scrolledItemCount]?.amount||0;return{...prevState,scrolledItemCount,scrolledInPx}},reduceUpdateViewport=({prevState,measurements,itemAmount})=>{let{topOffsets=[],scrolledInPx=0,scrolledItemCount=0,avgItemHeight=0,lastItemHeight,maxHeight=0,overscan:tolerance=0}=prevState,newTopOffsets=[...topOffsets],updatedLastItemHeight=lastItemHeight;measurements.items.forEach((child,i)=>{newTopOffsets[i+scrolledItemCount]={amount:scrolledInPx+child.offsetTop,isInterpolated:!1},i+scrolledItemCount!==itemAmount-1||lastItemHeight||(updatedLastItemHeight=child.height)});let newAvgItemHeight=Math.max(avgItemHeight,measurements.height/(measurements.items.length||1));for(let i=0;i<itemAmount;i+=1)(!newTopOffsets[i]||newTopOffsets[i].isInterpolated)&&(newTopOffsets[i]={amount:newTopOffsets[i-1].amount+newAvgItemHeight,isInterpolated:!0});let maxContentHeight=getMaxHeight(itemAmount,newTopOffsets,updatedLastItemHeight);return{...prevState,lastItemHeight:updatedLastItemHeight,avgItemHeight:newAvgItemHeight,topOffsets:newTopOffsets,amountOfItemsInView:Math.round(maxHeight/newAvgItemHeight)+tolerance,maxContentHeight}},reduceReset=(prevState,itemHeight,maxHeight,overscan)=>({...prevState,lastItemHeight:null,topOffsets:[{amount:0,isInterpolated:!1}],scrolledInPx:0,scrolledItemCount:0,maxHeight,avgItemHeight:itemHeight,overscan}),reduceRecommendScrollPosition=(prevState,scrollTop,itemToBeInView)=>{let{topOffsets,maxHeight}=prevState;if(!topOffsets||void 0===maxHeight)return prevState;let bottomOfTarget=topOffsets[itemToBeInView+1]?.amount,topOfTarget=topOffsets[itemToBeInView]?.amount,recommendedScrollPosition=null;return topOfTarget<scrollTop&&(recommendedScrollPosition=topOfTarget),bottomOfTarget>=scrollTop+maxHeight&&(recommendedScrollPosition=bottomOfTarget-maxHeight),itemToBeInView===topOffsets.length-1&&(recommendedScrollPosition=topOffsets[itemToBeInView].amount),{...prevState,recommendedScrollPosition}},VirtualScrollReducer=(prevState,action)=>{switch(action.type){case"reset":return reduceReset(prevState,action.itemHeight,action.maxHeight,action.overscan);case"scroll":return reduceScroll(prevState,action.scrollTop);case"updateViewport":return reduceUpdateViewport({prevState,measurements:action.measurements,itemAmount:action.itemAmount});case"recommendScrollPosition":return reduceRecommendScrollPosition(prevState,action.scrollTop,action.itemToBeInView);default:throw Error()}};
@@ -1,6 +1,6 @@
1
1
  import React from "react";
2
2
  /**
3
- This wrapper is added to handle onPostDeactivate from react-focus-trap. onPostDeactivate is fired before component unmounts. Often, onPostDeactivate is used to close the popup element (see BasePopover and Sheet). We are overriding it here to fire only when component recieves an outside click or esc key event so that popover and sheet can close correctly.
3
+ Wraps focus-trap-react. It fires onPostDeactivate only on an outside click or Escape, not on unmount, and it pauses the trap while an aria-modal="true" dialog outside every wrapped trap holds focus or takes a pointer press.
4
4
  */
5
5
  type FocusTrapWrapperProps = {
6
6
  active?: boolean;
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),Object.defineProperty(exports,"FocusTrapWrapper",{enumerable:!0,get:function(){return FocusTrapWrapper}});const _interop_require_default=require("@swc/helpers/_/_interop_require_default"),_react=/*#__PURE__*/require("@swc/helpers/_/_interop_require_wildcard")._(require("react")),_focustrapreact=/*#__PURE__*/_interop_require_default._(require("focus-trap-react")),_FloatingPositionedContext=require("../components/Tooltip/FloatingPositionedContext"),FocusTrapWrapper=({active,focusTrapOptions,children})=>{let isClickedOutside=(0,_react.useRef)(!1),isEscaped=(0,_react.useRef)(!1),isPositioned=(0,_react.useContext)(_FloatingPositionedContext.FloatingPositionedContext),{onPostDeactivate,clickOutsideDeactivates,escapeDeactivates,...rest}=focusTrapOptions,onPostDeactivateRef=(0,_react.useRef)(onPostDeactivate),clickOutsideDeactivatesRef=(0,_react.useRef)(clickOutsideDeactivates),escapeDeactivatesRef=(0,_react.useRef)(escapeDeactivates);return(0,_react.useEffect)(()=>{onPostDeactivateRef.current=onPostDeactivate},[onPostDeactivate]),(0,_react.useEffect)(()=>{clickOutsideDeactivatesRef.current=clickOutsideDeactivates},[clickOutsideDeactivates]),(0,_react.useEffect)(()=>{escapeDeactivatesRef.current=escapeDeactivates},[escapeDeactivates]),_react.default.createElement(_focustrapreact.default,{active:active&&isPositioned,focusTrapOptions:{...rest,clickOutsideDeactivates:evt=>{let cb=clickOutsideDeactivatesRef.current,shouldDeactivate="function"==typeof cb?cb(evt):cb;return!1!==shouldDeactivate&&(isClickedOutside.current=!0),shouldDeactivate},escapeDeactivates:evt=>{let cb=escapeDeactivatesRef.current,shouldDeactivate="function"==typeof cb?cb(evt):cb;return!1!==shouldDeactivate&&(isEscaped.current=!0),shouldDeactivate},onPostDeactivate:()=>{(isClickedOutside.current||isEscaped.current)&&onPostDeactivateRef.current?.(),isEscaped.current=!1,isClickedOutside.current=!1}}},children)};
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),Object.defineProperty(exports,"FocusTrapWrapper",{enumerable:!0,get:function(){return FocusTrapWrapper}});const _interop_require_default=require("@swc/helpers/_/_interop_require_default"),_react=/*#__PURE__*/require("@swc/helpers/_/_interop_require_wildcard")._(require("react")),_reactdom=require("react-dom"),_focustrapreact=/*#__PURE__*/_interop_require_default._(require("focus-trap-react")),_FloatingPositionedContext=require("../components/Tooltip/FloatingPositionedContext"),_useWindow=require("./useWindow"),isReact19OrLater=parseInt(_react.default.version,10)>=19,getElementRef=element=>isReact19OrLater?element.props.ref:element.ref,focusTrapContainers=new Set,isInsideFocusTrap=element=>Array.from(focusTrapContainers).some(container=>container.contains(element)),findForeignModalDialog=(target,container)=>{if(!container||!(target instanceof Element))return null;let dialog=target.closest('[aria-modal="true"]');return!dialog||dialog.contains(container)||isInsideFocusTrap(dialog)?null:dialog},isDisplayed=dialog=>!!dialog?.isConnected&&("function"!=typeof dialog?.checkVisibility||dialog.checkVisibility()),FocusTrapWrapper=({active,focusTrapOptions,children})=>{let isClickedOutside=(0,_react.useRef)(!1),isEscaped=(0,_react.useRef)(!1),isPositioned=(0,_react.useContext)(_FloatingPositionedContext.FloatingPositionedContext),containerRef=(0,_react.useRef)(null),foreignModalDialog=(0,_react.useRef)(null),[isYieldingToForeignModal,setIsYieldingToForeignModal]=(0,_react.useState)(!1),isPauseRendered=(0,_react.useRef)(!1),win=(0,_useWindow.useWindow)();(0,_react.useLayoutEffect)(()=>{isPauseRendered.current=isYieldingToForeignModal},[isYieldingToForeignModal]);let{onPostDeactivate,clickOutsideDeactivates,escapeDeactivates,...rest}=focusTrapOptions,onPostDeactivateRef=(0,_react.useRef)(onPostDeactivate),clickOutsideDeactivatesRef=(0,_react.useRef)(clickOutsideDeactivates),escapeDeactivatesRef=(0,_react.useRef)(escapeDeactivates);(0,_react.useEffect)(()=>{onPostDeactivateRef.current=onPostDeactivate},[onPostDeactivate]),(0,_react.useEffect)(()=>{clickOutsideDeactivatesRef.current=clickOutsideDeactivates},[clickOutsideDeactivates]),(0,_react.useEffect)(()=>{escapeDeactivatesRef.current=escapeDeactivates},[escapeDeactivates]);let isTrapActive=!1!==active&&isPositioned;(0,_react.useEffect)(()=>{if(!isTrapActive){foreignModalDialog.current=null,setIsYieldingToForeignModal(!1);return}let yieldToForeignModal=dialog=>{foreignModalDialog.current=dialog,(0,_reactdom.flushSync)(()=>setIsYieldingToForeignModal(!0))},handleFocusIn=evt=>{let container=containerRef.current,dialog=findForeignModalDialog(evt.target,container);if(dialog){yieldToForeignModal(dialog),isPauseRendered.current||evt.stopPropagation();return}foreignModalDialog.current&&(evt.target instanceof Node&&container?.contains(evt.target)||!isDisplayed(foreignModalDialog.current))&&(foreignModalDialog.current=null,setIsYieldingToForeignModal(!1))},handlePointerDown=evt=>{let dialog=findForeignModalDialog(evt.target,containerRef.current);dialog&&yieldToForeignModal(dialog)};return win.addEventListener("focusin",handleFocusIn,!0),win.addEventListener("pointerdown",handlePointerDown,!0),()=>{win.removeEventListener("focusin",handleFocusIn,!0),win.removeEventListener("pointerdown",handlePointerDown,!0)}},[isTrapActive,win]);let child=_react.Children.only(children),childRef=getElementRef(child),setContainer=(0,_react.useCallback)(element=>{containerRef.current&&focusTrapContainers.delete(containerRef.current),element&&focusTrapContainers.add(element),containerRef.current=element,"function"==typeof childRef?childRef(element):childRef&&(childRef.current=element)},[childRef]);return _react.default.createElement(_focustrapreact.default,{active:isTrapActive,paused:isYieldingToForeignModal,focusTrapOptions:{...rest,clickOutsideDeactivates:evt=>{let cb=clickOutsideDeactivatesRef.current,shouldDeactivate="function"==typeof cb?cb(evt):cb;return!1!==shouldDeactivate&&(isClickedOutside.current=!0),shouldDeactivate},escapeDeactivates:evt=>{let cb=escapeDeactivatesRef.current,shouldDeactivate="function"==typeof cb?cb(evt):cb;return!1!==shouldDeactivate&&(isEscaped.current=!0),shouldDeactivate},onPostDeactivate:()=>{(isClickedOutside.current||isEscaped.current)&&onPostDeactivateRef.current?.(),isEscaped.current=!1,isClickedOutside.current=!1}}},(0,_react.cloneElement)(child,{ref:setContainer}))};
@@ -15,4 +15,4 @@ export declare const SelectableButton: import("@emotion/styled").StyledComponent
15
15
  as?: React.ElementType;
16
16
  } & {
17
17
  isActive?: boolean;
18
- }, React.DetailedHTMLProps<React.ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>, {}>;
18
+ }, import("react").DetailedHTMLProps<import("react").ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>, {}>;
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),Object.defineProperty(exports,"useExitAnimation",{enumerable:!0,get:function(){return useExitAnimation}});const _react=require("react"),_useWindow=require("./useWindow"),_prefersReducedMotion=require("./prefersReducedMotion");function useExitAnimation(isVisible){let window=(0,_useWindow.useWindow)(),[isClosing,setIsClosing]=(0,_react.useState)(!1),[prevVisible,setPrevVisible]=(0,_react.useState)(isVisible);isVisible!==prevVisible&&(setPrevVisible(isVisible),setIsClosing(!isVisible&&!(0,_prefersReducedMotion.prefersReducedMotion)(window)));let isLeaving=isClosing&&!isVisible,onAnimationEnd=(0,_react.useCallback)(event=>{event.target===event.currentTarget&&isLeaving&&setIsClosing(!1)},[isLeaving]);return{isMounted:isVisible||isClosing,isLeaving,onAnimationEnd}}