@elliemae/ds-global-header 3.70.0-next.7 → 3.70.0-next.71
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/dist/cjs/DSGlobalHeader.js +16 -2
- package/dist/cjs/DSGlobalHeader.js.map +2 -2
- package/dist/cjs/DSGlobalHeaderContext.js.map +2 -2
- package/dist/cjs/config/useGlobalHeader.js +13 -2
- package/dist/cjs/config/useGlobalHeader.js.map +2 -2
- package/dist/cjs/constants/index.js +11 -5
- package/dist/cjs/constants/index.js.map +2 -2
- package/dist/cjs/index.js +3 -6
- package/dist/cjs/index.js.map +3 -3
- package/dist/cjs/package.json +1 -4
- package/dist/cjs/parts/Breadcrumb/useGlobalHeaderBreadcrumb.js +33 -1
- package/dist/cjs/parts/Breadcrumb/useGlobalHeaderBreadcrumb.js.map +2 -2
- package/dist/cjs/parts/Logo/GlobalHeaderLogo.js +16 -2
- package/dist/cjs/parts/Logo/GlobalHeaderLogo.js.map +2 -2
- package/dist/cjs/parts/Toolbar/GlobalHeaderToolbar.js +54 -16
- package/dist/cjs/parts/Toolbar/GlobalHeaderToolbar.js.map +2 -2
- package/dist/cjs/{utils/useCallbackAfterRender.js → parts/Toolbar/outOfTheBox/AppPicker/AppPickerCTX.js} +7 -16
- package/dist/cjs/parts/Toolbar/outOfTheBox/AppPicker/AppPickerCTX.js.map +7 -0
- package/dist/cjs/{hooks/useOnClickOutside.js → parts/Toolbar/outOfTheBox/AppPicker/AppPickerCTXRenderer.js} +13 -30
- package/dist/cjs/parts/Toolbar/outOfTheBox/AppPicker/AppPickerCTXRenderer.js.map +7 -0
- package/dist/cjs/parts/Toolbar/outOfTheBox/AppPicker/AppPickerRenderer.js +53 -0
- package/dist/cjs/parts/Toolbar/outOfTheBox/AppPicker/AppPickerRenderer.js.map +7 -0
- package/dist/cjs/parts/Toolbar/outOfTheBox/AppPicker/TriggerDefaultComponent.js +84 -0
- package/dist/cjs/parts/Toolbar/outOfTheBox/AppPicker/TriggerDefaultComponent.js.map +7 -0
- package/dist/cjs/parts/Toolbar/outOfTheBox/AppPicker/react-desc-prop-types.js +50 -0
- package/dist/cjs/parts/Toolbar/outOfTheBox/AppPicker/react-desc-prop-types.js.map +7 -0
- package/dist/cjs/parts/Toolbar/outOfTheBox/AppPicker/useAppPickerCTX.js +66 -0
- package/dist/cjs/parts/Toolbar/outOfTheBox/AppPicker/useAppPickerCTX.js.map +7 -0
- package/dist/cjs/parts/Toolbar/outOfTheBox/PopupMenu/PopupMenu.js +118 -71
- package/dist/cjs/parts/Toolbar/outOfTheBox/PopupMenu/PopupMenu.js.map +3 -3
- package/dist/cjs/parts/Toolbar/outOfTheBox/PopupMenu/menuContent/PopupMenuContent.js +27 -11
- package/dist/cjs/parts/Toolbar/outOfTheBox/PopupMenu/menuContent/PopupMenuContent.js.map +2 -2
- package/dist/cjs/parts/Toolbar/outOfTheBox/PopupMenu/menuContent/react-desc-prop-types.js +52 -0
- package/dist/cjs/parts/Toolbar/outOfTheBox/PopupMenu/menuContent/react-desc-prop-types.js.map +7 -0
- package/dist/cjs/parts/Toolbar/outOfTheBox/PopupMenu/menuContent/usePopupMenuContent.js +23 -15
- package/dist/cjs/parts/Toolbar/outOfTheBox/PopupMenu/menuContent/usePopupMenuContent.js.map +2 -2
- package/dist/cjs/parts/Toolbar/outOfTheBox/PopupMenu/react-desc-prop-types.js +54 -0
- package/dist/cjs/parts/Toolbar/outOfTheBox/PopupMenu/react-desc-prop-types.js.map +7 -0
- package/dist/cjs/parts/Toolbar/outOfTheBox/SearchToggle/SearchToggle.js +28 -16
- package/dist/cjs/parts/Toolbar/outOfTheBox/SearchToggle/SearchToggle.js.map +2 -2
- package/dist/cjs/parts/Toolbar/outOfTheBox/SearchToggle/SearchToggleSpinButton.js +61 -50
- package/dist/cjs/parts/Toolbar/outOfTheBox/SearchToggle/SearchToggleSpinButton.js.map +2 -2
- package/dist/cjs/parts/Toolbar/outOfTheBox/SearchToggle/react-desc-prop-types.js +58 -0
- package/dist/cjs/parts/Toolbar/outOfTheBox/SearchToggle/react-desc-prop-types.js.map +7 -0
- package/dist/cjs/parts/Toolbar/outOfTheBox/SearchToggle/useSearchToggle.js +33 -25
- package/dist/cjs/parts/Toolbar/outOfTheBox/SearchToggle/useSearchToggle.js.map +2 -2
- package/dist/cjs/parts/Toolbar/outOfTheBox/index.js +12 -4
- package/dist/cjs/parts/Toolbar/outOfTheBox/index.js.map +2 -2
- package/dist/cjs/parts/Toolbar/styles.js +6 -1
- package/dist/cjs/parts/Toolbar/styles.js.map +2 -2
- package/dist/cjs/react-desc-prop-types.js.map +2 -2
- package/dist/cjs/sharedTypes.js.map +1 -1
- package/dist/cjs/typescript-testing/typescript-global-header-toolbar-types.js +52 -0
- package/dist/cjs/typescript-testing/typescript-global-header-toolbar-types.js.map +2 -2
- package/dist/esm/DSGlobalHeader.js +16 -2
- package/dist/esm/DSGlobalHeader.js.map +2 -2
- package/dist/esm/DSGlobalHeaderContext.js.map +2 -2
- package/dist/esm/config/useGlobalHeader.js +13 -2
- package/dist/esm/config/useGlobalHeader.js.map +2 -2
- package/dist/esm/constants/index.js +11 -5
- package/dist/esm/constants/index.js.map +2 -2
- package/dist/esm/index.js +3 -6
- package/dist/esm/index.js.map +3 -3
- package/dist/esm/package.json +1 -4
- package/dist/esm/parts/Breadcrumb/useGlobalHeaderBreadcrumb.js +34 -2
- package/dist/esm/parts/Breadcrumb/useGlobalHeaderBreadcrumb.js.map +2 -2
- package/dist/esm/parts/Logo/GlobalHeaderLogo.js +16 -2
- package/dist/esm/parts/Logo/GlobalHeaderLogo.js.map +2 -2
- package/dist/esm/parts/Toolbar/GlobalHeaderToolbar.js +55 -17
- package/dist/esm/parts/Toolbar/GlobalHeaderToolbar.js.map +2 -2
- package/dist/esm/parts/Toolbar/outOfTheBox/AppPicker/AppPickerCTX.js +8 -0
- package/dist/esm/parts/Toolbar/outOfTheBox/AppPicker/AppPickerCTX.js.map +7 -0
- package/dist/esm/parts/Toolbar/outOfTheBox/AppPicker/AppPickerCTXRenderer.js +13 -0
- package/dist/esm/parts/Toolbar/outOfTheBox/AppPicker/AppPickerCTXRenderer.js.map +7 -0
- package/dist/esm/parts/Toolbar/outOfTheBox/AppPicker/AppPickerRenderer.js +23 -0
- package/dist/esm/parts/Toolbar/outOfTheBox/AppPicker/AppPickerRenderer.js.map +7 -0
- package/dist/esm/parts/Toolbar/outOfTheBox/AppPicker/TriggerDefaultComponent.js +54 -0
- package/dist/esm/parts/Toolbar/outOfTheBox/AppPicker/TriggerDefaultComponent.js.map +7 -0
- package/dist/esm/parts/Toolbar/outOfTheBox/AppPicker/react-desc-prop-types.js +20 -0
- package/dist/esm/parts/Toolbar/outOfTheBox/AppPicker/react-desc-prop-types.js.map +7 -0
- package/dist/esm/parts/Toolbar/outOfTheBox/AppPicker/useAppPickerCTX.js +36 -0
- package/dist/esm/parts/Toolbar/outOfTheBox/AppPicker/useAppPickerCTX.js.map +7 -0
- package/dist/esm/parts/Toolbar/outOfTheBox/PopupMenu/PopupMenu.js +119 -72
- package/dist/esm/parts/Toolbar/outOfTheBox/PopupMenu/PopupMenu.js.map +2 -2
- package/dist/esm/parts/Toolbar/outOfTheBox/PopupMenu/menuContent/PopupMenuContent.js +28 -12
- package/dist/esm/parts/Toolbar/outOfTheBox/PopupMenu/menuContent/PopupMenuContent.js.map +2 -2
- package/dist/esm/parts/Toolbar/outOfTheBox/PopupMenu/menuContent/react-desc-prop-types.js +22 -0
- package/dist/esm/parts/Toolbar/outOfTheBox/PopupMenu/menuContent/react-desc-prop-types.js.map +7 -0
- package/dist/esm/parts/Toolbar/outOfTheBox/PopupMenu/menuContent/usePopupMenuContent.js +24 -16
- package/dist/esm/parts/Toolbar/outOfTheBox/PopupMenu/menuContent/usePopupMenuContent.js.map +2 -2
- package/dist/esm/parts/Toolbar/outOfTheBox/PopupMenu/react-desc-prop-types.js +24 -0
- package/dist/esm/parts/Toolbar/outOfTheBox/PopupMenu/react-desc-prop-types.js.map +7 -0
- package/dist/esm/parts/Toolbar/outOfTheBox/SearchToggle/SearchToggle.js +34 -17
- package/dist/esm/parts/Toolbar/outOfTheBox/SearchToggle/SearchToggle.js.map +2 -2
- package/dist/esm/parts/Toolbar/outOfTheBox/SearchToggle/SearchToggleSpinButton.js +61 -50
- package/dist/esm/parts/Toolbar/outOfTheBox/SearchToggle/SearchToggleSpinButton.js.map +2 -2
- package/dist/esm/parts/Toolbar/outOfTheBox/SearchToggle/react-desc-prop-types.js +28 -0
- package/dist/esm/parts/Toolbar/outOfTheBox/SearchToggle/react-desc-prop-types.js.map +7 -0
- package/dist/esm/parts/Toolbar/outOfTheBox/SearchToggle/useSearchToggle.js +33 -25
- package/dist/esm/parts/Toolbar/outOfTheBox/SearchToggle/useSearchToggle.js.map +2 -2
- package/dist/esm/parts/Toolbar/outOfTheBox/index.js +8 -3
- package/dist/esm/parts/Toolbar/outOfTheBox/index.js.map +2 -2
- package/dist/esm/parts/Toolbar/styles.js +6 -1
- package/dist/esm/parts/Toolbar/styles.js.map +2 -2
- package/dist/esm/react-desc-prop-types.js.map +2 -2
- package/dist/esm/typescript-testing/typescript-global-header-toolbar-types.js +52 -0
- package/dist/esm/typescript-testing/typescript-global-header-toolbar-types.js.map +2 -2
- package/dist/types/DSGlobalHeaderContext.d.ts +10 -2
- package/dist/types/config/useGlobalHeader.d.ts +3 -4
- package/dist/types/constants/index.d.ts +4 -3
- package/dist/types/index.d.ts +0 -2
- package/dist/types/parts/Breadcrumb/PureBreadcrumb.d.ts +1 -1
- package/dist/types/parts/Breadcrumb/styles.d.ts +1 -1
- package/dist/types/parts/Toolbar/outOfTheBox/AppPicker/AppPickerCTX.d.ts +4 -0
- package/dist/types/parts/Toolbar/outOfTheBox/AppPicker/AppPickerCTXRenderer.d.ts +2 -0
- package/dist/types/parts/Toolbar/outOfTheBox/AppPicker/AppPickerRenderer.d.ts +1 -0
- package/dist/types/parts/Toolbar/outOfTheBox/AppPicker/TriggerDefaultComponent.d.ts +2 -0
- package/dist/types/parts/Toolbar/outOfTheBox/AppPicker/react-desc-prop-types.d.ts +23 -0
- package/dist/types/parts/Toolbar/outOfTheBox/AppPicker/useAppPickerCTX.d.ts +456 -0
- package/dist/types/parts/Toolbar/outOfTheBox/PopupMenu/PopupMenu.d.ts +2 -2
- package/dist/types/parts/Toolbar/outOfTheBox/PopupMenu/menuContent/PopupMenuContent.d.ts +2 -2
- package/dist/types/parts/Toolbar/outOfTheBox/PopupMenu/menuContent/react-desc-prop-types.d.ts +28 -0
- package/dist/types/parts/Toolbar/outOfTheBox/PopupMenu/menuContent/usePopupMenuContent.d.ts +9 -1
- package/dist/types/parts/Toolbar/outOfTheBox/PopupMenu/react-desc-prop-types.d.ts +26 -0
- package/dist/types/parts/Toolbar/outOfTheBox/SearchToggle/SearchToggle.d.ts +2 -2
- package/dist/types/parts/Toolbar/outOfTheBox/SearchToggle/SearchToggleSpinButton.d.ts +3 -1
- package/dist/types/parts/Toolbar/outOfTheBox/SearchToggle/react-desc-prop-types.d.ts +26 -0
- package/dist/types/parts/Toolbar/outOfTheBox/SearchToggle/useSearchToggle.d.ts +2 -3
- package/dist/types/parts/Toolbar/outOfTheBox/index.d.ts +3 -3
- package/dist/types/parts/Toolbar/styles.d.ts +1 -0
- package/dist/types/react-desc-prop-types.d.ts +63 -72
- package/dist/types/sharedTypes.d.ts +16 -6
- package/package.json +20 -17
- package/dist/cjs/hooks/useOnClickOutside.js.map +0 -7
- package/dist/cjs/parts/Toolbar/outOfTheBox/AppPicker/AppPicker.js +0 -127
- package/dist/cjs/parts/Toolbar/outOfTheBox/AppPicker/AppPicker.js.map +0 -7
- package/dist/cjs/utils/useCallbackAfterRender.js.map +0 -7
- package/dist/esm/hooks/useOnClickOutside.js +0 -30
- package/dist/esm/hooks/useOnClickOutside.js.map +0 -7
- package/dist/esm/parts/Toolbar/outOfTheBox/AppPicker/AppPicker.js +0 -97
- package/dist/esm/parts/Toolbar/outOfTheBox/AppPicker/AppPicker.js.map +0 -7
- package/dist/esm/utils/useCallbackAfterRender.js +0 -17
- package/dist/esm/utils/useCallbackAfterRender.js.map +0 -7
- package/dist/types/hooks/useOnClickOutside.d.ts +0 -1
- package/dist/types/parts/Toolbar/outOfTheBox/AppPicker/AppPicker.d.ts +0 -6
- package/dist/types/tests/GlobalHeader.a11y.test.d.ts +0 -1
- package/dist/types/tests/GlobalHeader.callback.test.d.ts +0 -1
- package/dist/types/tests/GlobalHeader.getOwnerProps.test.d.ts +0 -1
- package/dist/types/tests/GlobalHeader.keyboard.test.d.ts +0 -1
- package/dist/types/tests/GlobalHeader.setup.test.d.ts +0 -113
- package/dist/types/typescript-testing/typescript-global-header-breadcrumb-types.d.ts +0 -3
- package/dist/types/typescript-testing/typescript-global-header-deprecated.d.ts +0 -1
- package/dist/types/typescript-testing/typescript-global-header-toolbar-types.d.ts +0 -3
- package/dist/types/typescript-testing/typescript-global-header-valid.d.ts +0 -1
- package/dist/types/utils/useCallbackAfterRender.d.ts +0 -3
|
@@ -1,7 +1,15 @@
|
|
|
1
1
|
interface UsePopupMenuContentT {
|
|
2
2
|
setIsOpen: React.Dispatch<React.SetStateAction<boolean>>;
|
|
3
|
+
/**
|
|
4
|
+
* Which end of the menu this open should land on. Mirrors DSAppPicker's open-intent mechanism, scoped
|
|
5
|
+
* to this part: the trigger records WHICH key opened the menu and the seeding below reads it — ArrowUp
|
|
6
|
+
* lands on the last item, everything else on the first.
|
|
7
|
+
*/
|
|
8
|
+
openIntent: 'first' | 'last';
|
|
9
|
+
/** How many focusable items the menu mounts. Separators are not focusable and are excluded. */
|
|
10
|
+
focusableItemsCount: number;
|
|
3
11
|
}
|
|
4
|
-
export declare const usePopupMenuContent: ({ setIsOpen }: UsePopupMenuContentT) => {
|
|
12
|
+
export declare const usePopupMenuContent: ({ setIsOpen, openIntent, focusableItemsCount }: UsePopupMenuContentT) => {
|
|
5
13
|
menuRef: import("react").RefObject<HTMLUListElement>;
|
|
6
14
|
setRef: (ref: HTMLButtonElement) => void;
|
|
7
15
|
keyboardNavigation: (e: React.KeyboardEvent) => void;
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import type { DSPropTypesSchema, GlobalAttributesT, ValidationMap, XstyledProps } from '@elliemae/ds-props-helpers';
|
|
2
|
+
import type { SvgIconT } from '@elliemae/ds-icons';
|
|
3
|
+
import type React from 'react';
|
|
4
|
+
import type { DSGlobalHeaderT } from '../../../../react-desc-prop-types.js';
|
|
5
|
+
export declare namespace PopupMenuT {
|
|
6
|
+
interface RequiredProps {
|
|
7
|
+
/** The consumer-authored configuration object for this toolbar item. */
|
|
8
|
+
componentProps: DSGlobalHeaderT.PopupMenuComponentProps;
|
|
9
|
+
getOwnerPropsAwareOfPropsPassedToGlobalHeader: () => Partial<DSGlobalHeaderT.DefaultProps>;
|
|
10
|
+
/** Focus-management registration, supplied by useGlobalHeaderToolbar for arrow-key navigation. */
|
|
11
|
+
setRef: (ref: HTMLElement) => void;
|
|
12
|
+
}
|
|
13
|
+
interface DefaultProps {
|
|
14
|
+
}
|
|
15
|
+
interface OptionalProps {
|
|
16
|
+
Icon?: React.ComponentType<SvgIconT.Props>;
|
|
17
|
+
onClick?: (event: React.MouseEvent) => void;
|
|
18
|
+
title?: string;
|
|
19
|
+
}
|
|
20
|
+
interface Props extends Partial<DefaultProps>, OptionalProps, Omit<GlobalAttributesT<HTMLButtonElement>, keyof RequiredProps | keyof DefaultProps | keyof OptionalProps | keyof XstyledProps>, XstyledProps, RequiredProps {
|
|
21
|
+
}
|
|
22
|
+
interface InternalProps extends DefaultProps, OptionalProps, Omit<GlobalAttributesT<HTMLButtonElement>, keyof RequiredProps | keyof DefaultProps | keyof OptionalProps | keyof XstyledProps>, XstyledProps, RequiredProps {
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
export declare const PopupMenuPropTypes: DSPropTypesSchema<PopupMenuT.Props>;
|
|
26
|
+
export declare const PopupMenuPropTypesSchema: ValidationMap<PopupMenuT.Props>;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import type
|
|
2
|
-
export declare const SearchToggle: (outOfTheBoxDrilledDownProps:
|
|
1
|
+
import { type SearchToggleT } from './react-desc-prop-types.js';
|
|
2
|
+
export declare const SearchToggle: (outOfTheBoxDrilledDownProps: SearchToggleT.Props) => JSX.Element;
|
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
+
import type { SearchToggleT } from './react-desc-prop-types.js';
|
|
2
3
|
interface SearchToggleSpinButtonPropsT {
|
|
3
4
|
onNext: () => void;
|
|
4
5
|
onPrevious: () => void;
|
|
5
6
|
currentResultIndex: number;
|
|
6
7
|
totalResults: number;
|
|
8
|
+
getOwnerPropsAwareOfPropsPassedToGlobalHeader: SearchToggleT.Props['getOwnerPropsAwareOfPropsPassedToGlobalHeader'];
|
|
7
9
|
}
|
|
8
|
-
export declare const SearchToggleSpinButton: React.MemoExoticComponent<(props: SearchToggleSpinButtonPropsT) =>
|
|
10
|
+
export declare const SearchToggleSpinButton: React.MemoExoticComponent<(props: SearchToggleSpinButtonPropsT) => React.JSX.Element>;
|
|
9
11
|
export {};
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import type { DSPropTypesSchema, GlobalAttributesT, ValidationMap, XstyledProps } from '@elliemae/ds-props-helpers';
|
|
2
|
+
import type { DSGlobalHeaderT } from '../../../../react-desc-prop-types.js';
|
|
3
|
+
export declare namespace SearchToggleT {
|
|
4
|
+
interface RequiredProps {
|
|
5
|
+
/** Accessible name for the collapsed trigger, and the toolbar item's label. */
|
|
6
|
+
label: string;
|
|
7
|
+
/** The consumer-authored configuration object for this toolbar item. */
|
|
8
|
+
componentProps: DSGlobalHeaderT.ToggleSearchComponentProps;
|
|
9
|
+
getOwnerPropsAwareOfPropsPassedToGlobalHeader: () => Partial<DSGlobalHeaderT.DefaultProps>;
|
|
10
|
+
/** Focus-management registration, supplied by useGlobalHeaderToolbar for arrow-key navigation. */
|
|
11
|
+
setRef: (ref: HTMLButtonElement | null) => void;
|
|
12
|
+
instanceUID: string;
|
|
13
|
+
}
|
|
14
|
+
interface DefaultProps {
|
|
15
|
+
ariaLabelExpanded: string;
|
|
16
|
+
}
|
|
17
|
+
interface OptionalProps {
|
|
18
|
+
}
|
|
19
|
+
interface Props extends Partial<DefaultProps>, OptionalProps, Omit<GlobalAttributesT<HTMLElement>, keyof RequiredProps | keyof DefaultProps | keyof XstyledProps>, XstyledProps, RequiredProps {
|
|
20
|
+
}
|
|
21
|
+
interface InternalProps extends DefaultProps, OptionalProps, Omit<GlobalAttributesT<HTMLElement>, keyof RequiredProps | keyof DefaultProps | keyof XstyledProps>, XstyledProps, RequiredProps {
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
export declare const defaultProps: SearchToggleT.DefaultProps;
|
|
25
|
+
export declare const SearchTogglePropTypes: DSPropTypesSchema<SearchToggleT.Props>;
|
|
26
|
+
export declare const SearchTogglePropTypesSchema: ValidationMap<SearchToggleT.Props>;
|
|
@@ -1,13 +1,12 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import type {
|
|
3
|
-
export declare const useSearchToggle: (outOfTheBoxDrilledDownProps:
|
|
2
|
+
import type { SearchToggleT } from './react-desc-prop-types.js';
|
|
3
|
+
export declare const useSearchToggle: (outOfTheBoxDrilledDownProps: SearchToggleT.Props) => {
|
|
4
4
|
isOpenUncontrolled: boolean;
|
|
5
5
|
internalInputRef: React.MutableRefObject<HTMLInputElement | null>;
|
|
6
6
|
containerRef: React.MutableRefObject<HTMLDivElement | null>;
|
|
7
7
|
handleToggleSearch: (e: React.MouseEvent<HTMLButtonElement, MouseEvent> | React.KeyboardEvent<HTMLButtonElement>) => void;
|
|
8
8
|
handleContainerKeyDown: React.KeyboardEventHandler<HTMLDivElement>;
|
|
9
9
|
handleChange: React.ChangeEventHandler<HTMLInputElement>;
|
|
10
|
-
handleInputKeyDown: React.KeyboardEventHandler<HTMLInputElement>;
|
|
11
10
|
handleTriggerRefs: (buttonRef: HTMLButtonElement) => void;
|
|
12
11
|
inputId: string;
|
|
13
12
|
panelId: string;
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
export
|
|
2
|
-
export
|
|
3
|
-
export
|
|
1
|
+
export { AppPickerCTXRenderer } from './AppPicker/AppPickerCTXRenderer.js';
|
|
2
|
+
export { PopupMenu } from './PopupMenu/PopupMenu.js';
|
|
3
|
+
export { SearchToggle } from './SearchToggle/SearchToggle.js';
|
|
@@ -3,3 +3,4 @@ export declare const StyledMenubarContainer: import("styled-components").StyledC
|
|
|
3
3
|
} & import("@elliemae/ds-system").OwnerInterface & import("@elliemae/ds-system").InnerRefInterface<"div">, never>;
|
|
4
4
|
export declare const StyledList: import("styled-components").StyledComponent<import("react").ForwardRefExoticComponent<import("@elliemae/ds-grid").DSGridT.Props & import("react").RefAttributes<HTMLDivElement>>, import("@elliemae/ds-system").Theme, object & import("@elliemae/ds-system").OwnerInterface & import("@elliemae/ds-system").InnerRefInterface<import("react").ForwardRefExoticComponent<import("@elliemae/ds-grid").DSGridT.Props & import("react").RefAttributes<HTMLDivElement>>>, never>;
|
|
5
5
|
export declare const StyledToolbarItem: import("styled-components").StyledComponent<"div", import("@elliemae/ds-system").Theme, object & import("@elliemae/ds-system").OwnerInterface & import("@elliemae/ds-system").InnerRefInterface<"div">, never>;
|
|
6
|
+
export declare const StyledPopupMenuContainer: import("styled-components").StyledComponent<import("react").ForwardRefExoticComponent<import("@elliemae/ds-grid").DSGridT.Props & import("react").RefAttributes<HTMLDivElement>>, import("@elliemae/ds-system").Theme, object & import("@elliemae/ds-system").OwnerInterface & import("@elliemae/ds-system").InnerRefInterface<import("react").ForwardRefExoticComponent<import("@elliemae/ds-grid").DSGridT.Props & import("react").RefAttributes<HTMLDivElement>>>, never>;
|
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
import type { DSAppPicker } from '@elliemae/ds-app-picker';
|
|
2
|
+
import type { DSHookFloatingContextT } from '@elliemae/ds-floating-context';
|
|
3
|
+
import type { SvgIconT } from '@elliemae/ds-icons';
|
|
2
4
|
import type { DSPropTypesSchema, GlobalAttributesT, ValidationMap, XstyledProps } from '@elliemae/ds-props-helpers';
|
|
3
5
|
import { type TypescriptHelpersT } from '@elliemae/ds-typescript-helpers';
|
|
4
6
|
import type React from 'react';
|
|
@@ -10,18 +12,6 @@ export declare const defaultProps: {
|
|
|
10
12
|
Logo: () => null;
|
|
11
13
|
};
|
|
12
14
|
export declare namespace DSGlobalHeaderT {
|
|
13
|
-
interface Context {
|
|
14
|
-
showIconOnly: boolean;
|
|
15
|
-
fontDetector: number;
|
|
16
|
-
setShowIconOnly: React.Dispatch<React.SetStateAction<boolean>>;
|
|
17
|
-
instanceUID: string;
|
|
18
|
-
globalHeaderToolbarGrid: string[];
|
|
19
|
-
props: InternalProps;
|
|
20
|
-
ownerProps: {
|
|
21
|
-
getOwnerProps: () => Partial<DSGlobalHeaderT.DefaultProps>;
|
|
22
|
-
getOwnerPropsArguments: () => object;
|
|
23
|
-
};
|
|
24
|
-
}
|
|
25
15
|
interface BreadcrumbItemOptionals {
|
|
26
16
|
hasNext?: boolean;
|
|
27
17
|
isSelected?: boolean;
|
|
@@ -46,40 +36,56 @@ export declare namespace DSGlobalHeaderT {
|
|
|
46
36
|
label: string;
|
|
47
37
|
CustomComponent: React.ComponentType<ToolbarCustomComponentProps>;
|
|
48
38
|
}
|
|
39
|
+
/**
|
|
40
|
+
* Why the search region expanded or collapsed. Fired only for transitions this item drives itself —
|
|
41
|
+
* a controlled consumer flipping `isOpen` already knows, and detecting their flip would need an
|
|
42
|
+
* effect watching state, which is not how this codebase reacts to state changes.
|
|
43
|
+
*/
|
|
44
|
+
type SearchToggleExpandChange = {
|
|
45
|
+
reason: 'trigger' | 'escape';
|
|
46
|
+
event: React.MouseEvent | React.KeyboardEvent;
|
|
47
|
+
};
|
|
49
48
|
interface ToggleSearchComponentProps {
|
|
50
49
|
onNext: () => void;
|
|
51
50
|
onPrevious: () => void;
|
|
52
51
|
currentResultIndex: number;
|
|
53
52
|
totalResults: number;
|
|
54
|
-
placeholder: string;
|
|
55
53
|
value: string;
|
|
56
54
|
onChange: (value: string) => void;
|
|
57
|
-
onBlur?: () => void;
|
|
58
55
|
onClear: () => void;
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
56
|
+
onBlur?: () => void;
|
|
57
|
+
/** Falls back to 'Search...'. */
|
|
58
|
+
placeholder?: string;
|
|
59
|
+
/** Supply to control the expanded state; omitted, the item manages it. */
|
|
60
|
+
isOpen?: boolean;
|
|
61
|
+
onKeyDown?: (event: React.KeyboardEvent) => void;
|
|
62
|
+
onClick?: (event: React.MouseEvent) => void;
|
|
63
|
+
triggerRef?: React.MutableRefObject<HTMLButtonElement>;
|
|
64
|
+
/** Merged with the part's own container ref when supplied. */
|
|
65
|
+
searchContainerRef?: React.MutableRefObject<HTMLDivElement>;
|
|
66
|
+
/**
|
|
67
|
+
* Notified when the search region expands. PASSIVE — being told does not make you responsible: the
|
|
68
|
+
* region still expands on its own unless you also supply `isOpen`.
|
|
69
|
+
*
|
|
70
|
+
* This is the disclosure-pattern counterpart to the `onOpen`/`onClose` the app-picker and popup-menu
|
|
71
|
+
* items expose; the vocabulary differs because this item expands an inline region rather than opening
|
|
72
|
+
* a dialog or a menu.
|
|
73
|
+
*/
|
|
74
|
+
onExpand?: (info: SearchToggleExpandChange) => void;
|
|
75
|
+
/** Notified when the search region collapses, on the same terms as `onExpand`. */
|
|
76
|
+
onCollapse?: (info: SearchToggleExpandChange) => void;
|
|
71
77
|
}
|
|
72
|
-
interface ToolbarSearchToggleItem {
|
|
78
|
+
interface ToolbarSearchToggleItem extends Omit<GlobalAttributesT, 'type' | 'label'> {
|
|
73
79
|
type: 'ds-search-toggle';
|
|
74
80
|
label: string;
|
|
81
|
+
/** Accessible name for the trigger once expanded. Defaults to a generic string. */
|
|
82
|
+
ariaLabelExpanded?: string;
|
|
75
83
|
componentProps: ToggleSearchComponentProps;
|
|
76
84
|
}
|
|
77
85
|
interface PopupMenuContentItem extends Omit<GlobalAttributesT, 'type' | 'label' | 'onClick'> {
|
|
78
86
|
type?: 'separator' | 'custom';
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
size?: string;
|
|
82
|
-
}>;
|
|
87
|
+
/** Any `@elliemae/ds-icons` export. Typed from their own props so real icons satisfy it. */
|
|
88
|
+
Icon?: React.ComponentType<SvgIconT.Props>;
|
|
83
89
|
label?: string;
|
|
84
90
|
onClick?: (event: React.MouseEvent) => void;
|
|
85
91
|
closeOnClick?: boolean;
|
|
@@ -87,55 +93,42 @@ export declare namespace DSGlobalHeaderT {
|
|
|
87
93
|
}
|
|
88
94
|
interface PopupMenuComponentProps {
|
|
89
95
|
onClickOutside?: (e: MouseEvent | TouchEvent) => void;
|
|
90
|
-
onKeyPress
|
|
91
|
-
popupOnKeyPress
|
|
92
|
-
|
|
96
|
+
onKeyPress?: (event: React.KeyboardEvent) => void;
|
|
97
|
+
popupOnKeyPress?: (event: React.KeyboardEvent) => void;
|
|
98
|
+
/** Supply to control the menu; omitted, the item manages it. */
|
|
99
|
+
isOpen?: boolean;
|
|
100
|
+
/** The only genuinely required key — a menu with nothing to show has no purpose. */
|
|
93
101
|
options: PopupMenuContentItem[];
|
|
94
|
-
|
|
102
|
+
/** Close the menu when an option is clicked. */
|
|
103
|
+
closeOnClick?: boolean;
|
|
104
|
+
/**
|
|
105
|
+
* Notified on every open transition. PASSIVE — being told does not make you responsible for the
|
|
106
|
+
* transition: the menu opens and closes on its own unless you also supply `isOpen`.
|
|
107
|
+
*
|
|
108
|
+
* Every path reports: trigger click, ArrowDown, and a controlled flip of `isOpen`. Discriminate on
|
|
109
|
+
* the payload's `reason` — `interaction` is the synchronous, event-carrying signal, `controlled-flip`
|
|
110
|
+
* is the post-commit one that fires only when you own `isOpen`. A controlled consumer can see both
|
|
111
|
+
* for one logical transition.
|
|
112
|
+
*/
|
|
113
|
+
onOpen?: (info: DSHookFloatingContextT.OpenChange) => void;
|
|
114
|
+
/**
|
|
115
|
+
* Notified on every close transition, on the same terms as `onOpen`. Every path reports: click
|
|
116
|
+
* outside, Escape inside the menu, an item click while `closeOnClick`, and a controlled flip.
|
|
117
|
+
*/
|
|
118
|
+
onClose?: (info: DSHookFloatingContextT.OpenChange) => void;
|
|
95
119
|
}
|
|
96
120
|
interface PopupMenuItem extends Omit<GlobalAttributesT, 'type' | 'label' | 'onClick'> {
|
|
97
121
|
type: 'ds-popup-menu';
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
size?: string;
|
|
101
|
-
}>;
|
|
122
|
+
/** Any `@elliemae/ds-icons` export. Typed from their own props so real icons satisfy it. */
|
|
123
|
+
Icon?: React.ComponentType<SvgIconT.Props>;
|
|
102
124
|
label?: string;
|
|
103
125
|
onClick?: (event: React.MouseEvent) => void;
|
|
104
126
|
Content?: React.ComponentType;
|
|
105
127
|
componentProps: PopupMenuComponentProps;
|
|
106
128
|
}
|
|
107
|
-
interface PopupMenuContentProps {
|
|
108
|
-
options: PopupMenuContentItem[];
|
|
109
|
-
onItemClick: () => void;
|
|
110
|
-
onClose: () => void;
|
|
111
|
-
popupOnKeyPress: (event: React.KeyboardEvent) => void;
|
|
112
|
-
setIsOpen: React.Dispatch<React.SetStateAction<boolean>>;
|
|
113
|
-
ownerProps: {
|
|
114
|
-
getOwnerProps: () => Partial<DSGlobalHeaderT.DefaultProps>;
|
|
115
|
-
getOwnerPropsArguments: () => object;
|
|
116
|
-
};
|
|
117
|
-
}
|
|
118
|
-
interface PopupProps extends Omit<GlobalAttributesT, 'title' | 'label' | 'onClick'> {
|
|
119
|
-
Icon?: React.ComponentType<{
|
|
120
|
-
fill?: string;
|
|
121
|
-
size?: string;
|
|
122
|
-
}>;
|
|
123
|
-
onClick?: (event: React.MouseEvent) => void;
|
|
124
|
-
setRef: (ref: HTMLElement) => void;
|
|
125
|
-
componentProps: PopupMenuComponentProps;
|
|
126
|
-
title?: string;
|
|
127
|
-
ownerProps: {
|
|
128
|
-
getOwnerProps: () => Partial<DSGlobalHeaderT.DefaultProps>;
|
|
129
|
-
getOwnerPropsArguments: () => object;
|
|
130
|
-
};
|
|
131
|
-
}
|
|
132
129
|
type AppPickerComponentProps = React.ComponentProps<typeof DSAppPicker> & {
|
|
133
130
|
triggerOnClick?: React.MouseEventHandler<HTMLButtonElement>;
|
|
134
131
|
};
|
|
135
|
-
interface AppPickerProps extends Omit<GlobalAttributesT, 'label'> {
|
|
136
|
-
label: string;
|
|
137
|
-
componentProps: AppPickerComponentProps;
|
|
138
|
-
}
|
|
139
132
|
interface ToolbarAppPickerItem extends Omit<GlobalAttributesT, 'type' | 'label'> {
|
|
140
133
|
type: 'ds-app-picker';
|
|
141
134
|
label: string;
|
|
@@ -144,10 +137,7 @@ export declare namespace DSGlobalHeaderT {
|
|
|
144
137
|
interface ToolbarItemTypelessDefault extends Omit<GlobalAttributesT, 'label'> {
|
|
145
138
|
type?: undefined;
|
|
146
139
|
label: string;
|
|
147
|
-
Icon: React.ComponentType<
|
|
148
|
-
fill?: string;
|
|
149
|
-
size?: string;
|
|
150
|
-
}>;
|
|
140
|
+
Icon: React.ComponentType<SvgIconT.Props>;
|
|
151
141
|
}
|
|
152
142
|
type ToolbarItem = ToolbarCustomItem | ToolbarSearchToggleItem | ToolbarAppPickerItem | PopupMenuItem | ToolbarItemTypelessDefault;
|
|
153
143
|
type SlotFunctionArguments = {
|
|
@@ -164,6 +154,7 @@ export declare namespace DSGlobalHeaderT {
|
|
|
164
154
|
dsGlobalheaderMenubarList: () => Record<string, never>;
|
|
165
155
|
dsGlobalheaderMenubarItem: () => Record<string, never>;
|
|
166
156
|
dsGlobalheaderMenubarItemButton: () => Record<string, never>;
|
|
157
|
+
dsGlobalheaderMenubarItemPopupmenuContainer: () => Record<string, never>;
|
|
167
158
|
dsGlobalheaderMenubarItemPopupmenuList: () => Record<string, never>;
|
|
168
159
|
dsGlobalheaderMenubarItemPopupmenuItem: () => Record<string, never>;
|
|
169
160
|
dsGlobalheaderMenubarItemPopupmenuItemButton: () => Record<string, never>;
|
|
@@ -1,4 +1,7 @@
|
|
|
1
|
+
import type { PopupMenuT } from './parts/Toolbar/outOfTheBox/PopupMenu/react-desc-prop-types.js';
|
|
2
|
+
import type { PopupMenuContentT } from './parts/Toolbar/outOfTheBox/PopupMenu/menuContent/react-desc-prop-types.js';
|
|
1
3
|
import type { DSGlobalHeaderT } from './react-desc-prop-types.js';
|
|
4
|
+
import type { GlobalHeaderCTX } from './config/useGlobalHeader.js';
|
|
2
5
|
/**
|
|
3
6
|
* @deprecated This namespace is outdated. Use `DSGlobalHeaderT` instead.
|
|
4
7
|
*/
|
|
@@ -33,18 +36,25 @@ export declare namespace DSGlobalHeaderInternalsT {
|
|
|
33
36
|
interface PopupMenuContentItem extends DSGlobalHeaderT.PopupMenuContentItem {
|
|
34
37
|
}
|
|
35
38
|
/**
|
|
36
|
-
* @deprecated
|
|
39
|
+
* @deprecated Internal wrapper contract, not a shape an application authors. It moved to the part that
|
|
40
|
+
* owns it — `PopupMenuContentT.Props` in
|
|
41
|
+
* `parts/Toolbar/outOfTheBox/PopupMenu/menuContent/react-desc-prop-types.ts` — and this alias is kept
|
|
42
|
+
* pointing at it only so the deprecation notice does not dangle. What you almost certainly want is
|
|
43
|
+
* `DSGlobalHeaderT.PopupMenuComponentProps` or `DSGlobalHeaderT.PopupMenuContentItem`.
|
|
37
44
|
*/
|
|
38
|
-
interface PopupMenuContentProps extends
|
|
45
|
+
interface PopupMenuContentProps extends PopupMenuContentT.Props {
|
|
39
46
|
}
|
|
40
47
|
/**
|
|
41
|
-
* @deprecated
|
|
48
|
+
* @deprecated Internal wrapper contract, not a shape an application authors. It moved to the part that
|
|
49
|
+
* owns it — `PopupMenuT.Props` in `parts/Toolbar/outOfTheBox/PopupMenu/react-desc-prop-types.ts` — and
|
|
50
|
+
* this alias is kept pointing at it only so the deprecation notice does not dangle. What you almost
|
|
51
|
+
* certainly want is `DSGlobalHeaderT.PopupMenuItem`.
|
|
42
52
|
*/
|
|
43
|
-
interface PopupProps extends
|
|
53
|
+
interface PopupProps extends PopupMenuT.Props {
|
|
44
54
|
}
|
|
45
55
|
/**
|
|
46
|
-
* @deprecated This namespace is outdated.
|
|
56
|
+
* @deprecated This namespace is outdated. You should not need the internal shape of the context externally. Get in touch with the team if you think you do.
|
|
47
57
|
*/
|
|
48
|
-
interface Context extends
|
|
58
|
+
interface Context extends GlobalHeaderCTX {
|
|
49
59
|
}
|
|
50
60
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@elliemae/ds-global-header",
|
|
3
|
-
"version": "3.70.0-next.
|
|
3
|
+
"version": "3.70.0-next.71",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"description": "ICE MT - Dimsum - Global Header",
|
|
6
6
|
"files": [
|
|
@@ -22,7 +22,7 @@
|
|
|
22
22
|
],
|
|
23
23
|
"repository": {
|
|
24
24
|
"type": "git",
|
|
25
|
-
"url": "https://
|
|
25
|
+
"url": "https://github.com/intcx/PLATFORM-UI.dimsum.git"
|
|
26
26
|
},
|
|
27
27
|
"engines": {
|
|
28
28
|
"pnpm": ">=9",
|
|
@@ -37,27 +37,30 @@
|
|
|
37
37
|
},
|
|
38
38
|
"dependencies": {
|
|
39
39
|
"uid": "^2.0.2",
|
|
40
|
-
"@elliemae/ds-button-v2": "3.70.0-next.
|
|
41
|
-
"@elliemae/ds-app-picker": "3.70.0-next.
|
|
42
|
-
"@elliemae/ds-form-input-text": "3.70.0-next.
|
|
43
|
-
"@elliemae/ds-
|
|
44
|
-
"@elliemae/ds-grid": "3.70.0-next.
|
|
45
|
-
"@elliemae/ds-
|
|
46
|
-
"@elliemae/ds-
|
|
47
|
-
"@elliemae/ds-
|
|
48
|
-
"@elliemae/ds-system": "3.70.0-next.
|
|
40
|
+
"@elliemae/ds-button-v2": "3.70.0-next.71",
|
|
41
|
+
"@elliemae/ds-app-picker": "3.70.0-next.71",
|
|
42
|
+
"@elliemae/ds-form-input-text": "3.70.0-next.71",
|
|
43
|
+
"@elliemae/ds-floating-context": "3.70.0-next.71",
|
|
44
|
+
"@elliemae/ds-grid": "3.70.0-next.71",
|
|
45
|
+
"@elliemae/ds-hooks-fontsize-media": "3.70.0-next.71",
|
|
46
|
+
"@elliemae/ds-props-helpers": "3.70.0-next.71",
|
|
47
|
+
"@elliemae/ds-icons": "3.70.0-next.71",
|
|
48
|
+
"@elliemae/ds-system": "3.70.0-next.71"
|
|
49
49
|
},
|
|
50
50
|
"devDependencies": {
|
|
51
51
|
"jest": "^30.0.0",
|
|
52
|
-
"
|
|
53
|
-
"
|
|
54
|
-
"@elliemae/ds-
|
|
52
|
+
"jest-axe": "^11.0.0",
|
|
53
|
+
"styled-components": "~5.3.11",
|
|
54
|
+
"@elliemae/ds-monorepo-devops": "3.70.0-next.71",
|
|
55
|
+
"@elliemae/ds-test-utils": "3.70.0-next.71"
|
|
55
56
|
},
|
|
56
57
|
"peerDependencies": {
|
|
57
|
-
"
|
|
58
|
+
"@testing-library/react": "^16.0.1",
|
|
59
|
+
"@testing-library/user-event": "~14.6.1",
|
|
60
|
+
"lodash-es": "^4.18.1",
|
|
58
61
|
"react": "^18.3.1",
|
|
59
62
|
"react-dom": "^18.3.1",
|
|
60
|
-
"styled-components": "~5.3.
|
|
63
|
+
"styled-components": "~5.3.11"
|
|
61
64
|
},
|
|
62
65
|
"publishConfig": {
|
|
63
66
|
"access": "public",
|
|
@@ -72,4 +75,4 @@
|
|
|
72
75
|
"build": "cross-env NODE_ENV=production node ../../../scripts/build/build.mjs",
|
|
73
76
|
"checkDeps": "npx -yes ../../util/ds-codemods check-missing-packages --projectFolderPath=\"./\" --ignorePackagesGlobPattern=\"\" --ignoreFilesGlobPattern=\"**/test-ables/*,**/tests/*\""
|
|
74
77
|
}
|
|
75
|
-
}
|
|
78
|
+
}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../src/hooks/useOnClickOutside.ts", "../../../../../../scripts/build/transpile/react-shim.js"],
|
|
4
|
-
"sourcesContent": ["import React, { useEffect } from 'react';\n\nexport function useOnClickOutside<T extends Node>(ref: T | null, cb: (event: Event) => void): void {\n const cbRef = React.useRef(cb);\n\n useEffect(() => {\n cbRef.current = cb;\n }, [cb]);\n\n useEffect(() => {\n if (!ref) {\n return () => {};\n }\n\n const listener = (event: MouseEvent | TouchEvent) => {\n const target = event.target as Node | null;\n if (!target) return;\n\n if (ref.contains(target)) return;\n\n cbRef.current(event);\n };\n\n document.addEventListener('mousedown', listener, true);\n document.addEventListener('touchstart', listener, true);\n\n return () => {\n document.removeEventListener('mousedown', listener, true);\n document.removeEventListener('touchstart', listener, true);\n };\n }, [ref]);\n}\n", "import * as React from 'react';\nexport { React };\n"],
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADAvB,mBAAiC;AAE1B,SAAS,kBAAkC,KAAe,IAAkC;AACjG,QAAM,QAAQ,aAAAA,QAAM,OAAO,EAAE;AAE7B,8BAAU,MAAM;AACd,UAAM,UAAU;AAAA,EAClB,GAAG,CAAC,EAAE,CAAC;AAEP,8BAAU,MAAM;AACd,QAAI,CAAC,KAAK;AACR,aAAO,MAAM;AAAA,MAAC;AAAA,IAChB;AAEA,UAAM,WAAW,CAAC,UAAmC;AACnD,YAAM,SAAS,MAAM;AACrB,UAAI,CAAC,OAAQ;AAEb,UAAI,IAAI,SAAS,MAAM,EAAG;AAE1B,YAAM,QAAQ,KAAK;AAAA,IACrB;AAEA,aAAS,iBAAiB,aAAa,UAAU,IAAI;AACrD,aAAS,iBAAiB,cAAc,UAAU,IAAI;AAEtD,WAAO,MAAM;AACX,eAAS,oBAAoB,aAAa,UAAU,IAAI;AACxD,eAAS,oBAAoB,cAAc,UAAU,IAAI;AAAA,IAC3D;AAAA,EACF,GAAG,CAAC,GAAG,CAAC;AACV;",
|
|
6
|
-
"names": ["React"]
|
|
7
|
-
}
|
|
@@ -1,127 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __create = Object.create;
|
|
3
|
-
var __defProp = Object.defineProperty;
|
|
4
|
-
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
|
-
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
-
var __getProtoOf = Object.getPrototypeOf;
|
|
7
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
8
|
-
var __export = (target, all) => {
|
|
9
|
-
for (var name in all)
|
|
10
|
-
__defProp(target, name, { get: all[name], enumerable: true });
|
|
11
|
-
};
|
|
12
|
-
var __copyProps = (to, from, except, desc) => {
|
|
13
|
-
if (from && typeof from === "object" || typeof from === "function") {
|
|
14
|
-
for (let key of __getOwnPropNames(from))
|
|
15
|
-
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
16
|
-
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
17
|
-
}
|
|
18
|
-
return to;
|
|
19
|
-
};
|
|
20
|
-
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
21
|
-
// If the importer is in node compatibility mode or this is not an ESM
|
|
22
|
-
// file that has been converted to a CommonJS file using a Babel-
|
|
23
|
-
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
24
|
-
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
25
|
-
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
26
|
-
mod
|
|
27
|
-
));
|
|
28
|
-
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
29
|
-
var AppPicker_exports = {};
|
|
30
|
-
__export(AppPicker_exports, {
|
|
31
|
-
AppPicker: () => AppPicker
|
|
32
|
-
});
|
|
33
|
-
module.exports = __toCommonJS(AppPicker_exports);
|
|
34
|
-
var React = __toESM(require("react"));
|
|
35
|
-
var import_jsx_runtime = require("react/jsx-runtime");
|
|
36
|
-
var import_ds_app_picker = require("@elliemae/ds-app-picker");
|
|
37
|
-
var import_ds_icons = require("@elliemae/ds-icons");
|
|
38
|
-
var import_ds_props_helpers = require("@elliemae/ds-props-helpers");
|
|
39
|
-
var import_ds_system = require("@elliemae/ds-system");
|
|
40
|
-
var import_react = require("react");
|
|
41
|
-
var import_constants = require("../../../../constants/index.js");
|
|
42
|
-
var import_useCallbackAfterRender = require("../../../../utils/useCallbackAfterRender.js");
|
|
43
|
-
var import_styles = require("../../../styles.js");
|
|
44
|
-
const AppPicker = ({ label, setRef, componentProps, ...otherProps }) => {
|
|
45
|
-
const [isOpen, setIsOpen] = (0, import_react.useState)(false);
|
|
46
|
-
const internalTriggerRef = (0, import_react.useRef)(null);
|
|
47
|
-
const {
|
|
48
|
-
apps,
|
|
49
|
-
icon,
|
|
50
|
-
customApps,
|
|
51
|
-
sectionTitle,
|
|
52
|
-
customSectionTitle,
|
|
53
|
-
actionRef,
|
|
54
|
-
isOpen: userIsOpen,
|
|
55
|
-
onKeyDown: userOnKeyDown,
|
|
56
|
-
onClickOutside: userOnClickOutside,
|
|
57
|
-
renderTrigger: userRenderTrigger,
|
|
58
|
-
onClose,
|
|
59
|
-
triggerRef,
|
|
60
|
-
triggerOnClick
|
|
61
|
-
} = componentProps;
|
|
62
|
-
const schedule = (0, import_useCallbackAfterRender.useCallbackAfterRender)();
|
|
63
|
-
const focusTrigger = (0, import_react.useCallback)(() => internalTriggerRef.current?.focus(), []);
|
|
64
|
-
const handleTriggerKeyDown = (0, import_react.useCallback)((e) => {
|
|
65
|
-
if (e.code === "Enter" || e.code === "Space" || e.code === "ArrowDown") {
|
|
66
|
-
setIsOpen(true);
|
|
67
|
-
}
|
|
68
|
-
}, []);
|
|
69
|
-
const handleAppPickerOnKeyDown = (0, import_react.useCallback)(
|
|
70
|
-
(e) => {
|
|
71
|
-
if (e.key === "Escape") {
|
|
72
|
-
setIsOpen(false);
|
|
73
|
-
schedule(focusTrigger);
|
|
74
|
-
}
|
|
75
|
-
},
|
|
76
|
-
[focusTrigger, schedule]
|
|
77
|
-
);
|
|
78
|
-
const handleOnClickOutside = (0, import_react.useCallback)(() => {
|
|
79
|
-
setIsOpen(false);
|
|
80
|
-
}, []);
|
|
81
|
-
const handleOnClick = (0, import_react.useCallback)(
|
|
82
|
-
(e) => {
|
|
83
|
-
setIsOpen(true);
|
|
84
|
-
setTimeout(() => {
|
|
85
|
-
if (e.detail === 0) actionRef?.current?.focusSelectedOrFirstAvailable?.();
|
|
86
|
-
else actionRef?.current?.focusWrapper();
|
|
87
|
-
}, 10);
|
|
88
|
-
},
|
|
89
|
-
[actionRef]
|
|
90
|
-
);
|
|
91
|
-
const TriggerDefaultComponent = ({ ref }) => /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
92
|
-
import_styles.StyledButton,
|
|
93
|
-
{
|
|
94
|
-
onClick: triggerOnClick ?? handleOnClick,
|
|
95
|
-
onKeyDown: handleTriggerKeyDown,
|
|
96
|
-
innerRef: (buttonRef) => {
|
|
97
|
-
setRef(buttonRef);
|
|
98
|
-
(0, import_ds_system.mergeRefs)(internalTriggerRef, triggerRef, ref)(buttonRef);
|
|
99
|
-
},
|
|
100
|
-
"aria-label": label,
|
|
101
|
-
"data-testid": import_constants.GLOBAL_HEADER_DATA_TESTID.MENUBAR_ITEM_BUTTON,
|
|
102
|
-
"aria-haspopup": true,
|
|
103
|
-
"aria-expanded": userIsOpen ?? isOpen,
|
|
104
|
-
...(0, import_ds_props_helpers.getGlobalAttributes)(otherProps),
|
|
105
|
-
type: "button",
|
|
106
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_ds_icons.MenuPicker, { width: 20.73, height: 20.73 })
|
|
107
|
-
}
|
|
108
|
-
);
|
|
109
|
-
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
110
|
-
import_ds_app_picker.DSAppPicker,
|
|
111
|
-
{
|
|
112
|
-
apps,
|
|
113
|
-
customApps,
|
|
114
|
-
sectionTitle,
|
|
115
|
-
customSectionTitle,
|
|
116
|
-
icon,
|
|
117
|
-
onKeyDown: userOnKeyDown ?? handleAppPickerOnKeyDown,
|
|
118
|
-
actionRef,
|
|
119
|
-
onClickOutside: userOnClickOutside ?? handleOnClickOutside,
|
|
120
|
-
renderTrigger: userRenderTrigger || TriggerDefaultComponent,
|
|
121
|
-
isOpen: userIsOpen ?? isOpen,
|
|
122
|
-
onClose,
|
|
123
|
-
triggerRef
|
|
124
|
-
}
|
|
125
|
-
);
|
|
126
|
-
};
|
|
127
|
-
//# sourceMappingURL=AppPicker.js.map
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../../../../src/parts/Toolbar/outOfTheBox/AppPicker/AppPicker.tsx", "../../../../../../../../../scripts/build/transpile/react-shim.js"],
|
|
4
|
-
"sourcesContent": ["import { DSAppPicker } from '@elliemae/ds-app-picker';\nimport { MenuPicker } from '@elliemae/ds-icons';\nimport { getGlobalAttributes } from '@elliemae/ds-props-helpers';\nimport { mergeRefs } from '@elliemae/ds-system';\nimport React, { useCallback, useRef, useState } from 'react';\nimport { GLOBAL_HEADER_DATA_TESTID } from '../../../../constants/index.js';\nimport type { DSGlobalHeaderT } from '../../../../react-desc-prop-types.js';\nimport { useCallbackAfterRender } from '../../../../utils/useCallbackAfterRender.js';\nimport { StyledButton } from '../../../styles.js';\n\ntype AppPickerOutOfTheBoxProps =\n // what comes from\n // the prop toolbar (array)\n // specifically only if the type is 'ds-app-picker' so they give us the correct interface\n DSGlobalHeaderT.AppPickerProps & {\n // this interface is an addition that comes from our own implementation\n // GlobalHeaderToolbar -> useGlobalHeaderToolbar\n // is handling focus management for the user when using our out of the box\n setRef: (ref: HTMLElement) => void;\n };\n\nexport const AppPicker = ({ label, setRef, componentProps, ...otherProps }: AppPickerOutOfTheBoxProps): JSX.Element => {\n const [isOpen, setIsOpen] = useState<boolean>(false);\n const internalTriggerRef = useRef<HTMLButtonElement>(null);\n\n const {\n apps,\n icon,\n customApps,\n sectionTitle,\n customSectionTitle,\n actionRef,\n isOpen: userIsOpen,\n onKeyDown: userOnKeyDown,\n onClickOutside: userOnClickOutside,\n renderTrigger: userRenderTrigger,\n onClose,\n triggerRef,\n triggerOnClick,\n } = componentProps;\n\n const schedule = useCallbackAfterRender();\n\n // const appPickerRef = useRef(null);\n // const internalActionRef = useMemo(() => actionRef ?? appPickerRef, [actionRef]);\n\n const focusTrigger = useCallback(() => internalTriggerRef.current?.focus(), []);\n\n const handleTriggerKeyDown: React.KeyboardEventHandler = useCallback((e) => {\n if (e.code === 'Enter' || e.code === 'Space' || e.code === 'ArrowDown') {\n setIsOpen(true);\n }\n }, []);\n\n const handleAppPickerOnKeyDown = useCallback(\n (e: React.KeyboardEvent) => {\n if (e.key === 'Escape') {\n setIsOpen(false);\n schedule(focusTrigger);\n }\n },\n [focusTrigger, schedule],\n );\n\n const handleOnClickOutside = useCallback(() => {\n setIsOpen(false);\n }, []);\n\n const handleOnClick: React.MouseEventHandler = useCallback(\n (e) => {\n setIsOpen(true);\n setTimeout(() => {\n if (e.detail === 0) actionRef?.current?.focusSelectedOrFirstAvailable?.();\n else actionRef?.current?.focusWrapper();\n }, 10);\n },\n [actionRef],\n );\n\n // eslint-disable-next-line react/no-unstable-nested-components\n const TriggerDefaultComponent = ({ ref }: { ref: React.MutableRefObject<HTMLButtonElement> }) => (\n <StyledButton\n onClick={triggerOnClick ?? handleOnClick}\n onKeyDown={handleTriggerKeyDown}\n innerRef={(buttonRef: HTMLButtonElement) => {\n setRef(buttonRef);\n mergeRefs(internalTriggerRef, triggerRef, ref)(buttonRef);\n }}\n aria-label={label}\n data-testid={GLOBAL_HEADER_DATA_TESTID.MENUBAR_ITEM_BUTTON}\n aria-haspopup\n aria-expanded={userIsOpen ?? isOpen}\n {...getGlobalAttributes(otherProps)}\n type=\"button\"\n >\n <MenuPicker width={20.73} height={20.73} />\n </StyledButton>\n );\n\n return (\n <DSAppPicker\n apps={apps}\n customApps={customApps}\n sectionTitle={sectionTitle}\n customSectionTitle={customSectionTitle}\n icon={icon}\n onKeyDown={userOnKeyDown ?? handleAppPickerOnKeyDown}\n actionRef={actionRef}\n onClickOutside={userOnClickOutside ?? handleOnClickOutside}\n renderTrigger={userRenderTrigger || TriggerDefaultComponent}\n isOpen={userIsOpen ?? isOpen}\n onClose={onClose}\n triggerRef={triggerRef}\n />\n );\n};\n", "import * as React from 'react';\nexport { React };\n"],
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;AD+FjB;AA/FN,2BAA4B;AAC5B,sBAA2B;AAC3B,8BAAoC;AACpC,uBAA0B;AAC1B,mBAAqD;AACrD,uBAA0C;AAE1C,oCAAuC;AACvC,oBAA6B;AAatB,MAAM,YAAY,CAAC,EAAE,OAAO,QAAQ,gBAAgB,GAAG,WAAW,MAA8C;AACrH,QAAM,CAAC,QAAQ,SAAS,QAAI,uBAAkB,KAAK;AACnD,QAAM,yBAAqB,qBAA0B,IAAI;AAEzD,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,QAAQ;AAAA,IACR,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,eAAe;AAAA,IACf;AAAA,IACA;AAAA,IACA;AAAA,EACF,IAAI;AAEJ,QAAM,eAAW,sDAAuB;AAKxC,QAAM,mBAAe,0BAAY,MAAM,mBAAmB,SAAS,MAAM,GAAG,CAAC,CAAC;AAE9E,QAAM,2BAAmD,0BAAY,CAAC,MAAM;AAC1E,QAAI,EAAE,SAAS,WAAW,EAAE,SAAS,WAAW,EAAE,SAAS,aAAa;AACtE,gBAAU,IAAI;AAAA,IAChB;AAAA,EACF,GAAG,CAAC,CAAC;AAEL,QAAM,+BAA2B;AAAA,IAC/B,CAAC,MAA2B;AAC1B,UAAI,EAAE,QAAQ,UAAU;AACtB,kBAAU,KAAK;AACf,iBAAS,YAAY;AAAA,MACvB;AAAA,IACF;AAAA,IACA,CAAC,cAAc,QAAQ;AAAA,EACzB;AAEA,QAAM,2BAAuB,0BAAY,MAAM;AAC7C,cAAU,KAAK;AAAA,EACjB,GAAG,CAAC,CAAC;AAEL,QAAM,oBAAyC;AAAA,IAC7C,CAAC,MAAM;AACL,gBAAU,IAAI;AACd,iBAAW,MAAM;AACf,YAAI,EAAE,WAAW,EAAG,YAAW,SAAS,gCAAgC;AAAA,YACnE,YAAW,SAAS,aAAa;AAAA,MACxC,GAAG,EAAE;AAAA,IACP;AAAA,IACA,CAAC,SAAS;AAAA,EACZ;AAGA,QAAM,0BAA0B,CAAC,EAAE,IAAI,MACrC;AAAA,IAAC;AAAA;AAAA,MACC,SAAS,kBAAkB;AAAA,MAC3B,WAAW;AAAA,MACX,UAAU,CAAC,cAAiC;AAC1C,eAAO,SAAS;AAChB,wCAAU,oBAAoB,YAAY,GAAG,EAAE,SAAS;AAAA,MAC1D;AAAA,MACA,cAAY;AAAA,MACZ,eAAa,2CAA0B;AAAA,MACvC,iBAAa;AAAA,MACb,iBAAe,cAAc;AAAA,MAC5B,OAAG,6CAAoB,UAAU;AAAA,MAClC,MAAK;AAAA,MAEL,sDAAC,8BAAW,OAAO,OAAO,QAAQ,OAAO;AAAA;AAAA,EAC3C;AAGF,SACE;AAAA,IAAC;AAAA;AAAA,MACC;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,WAAW,iBAAiB;AAAA,MAC5B;AAAA,MACA,gBAAgB,sBAAsB;AAAA,MACtC,eAAe,qBAAqB;AAAA,MACpC,QAAQ,cAAc;AAAA,MACtB;AAAA,MACA;AAAA;AAAA,EACF;AAEJ;",
|
|
6
|
-
"names": []
|
|
7
|
-
}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../src/utils/useCallbackAfterRender.ts", "../../../../../../scripts/build/transpile/react-shim.js"],
|
|
4
|
-
"sourcesContent": ["import { useRef, useLayoutEffect, useMemo, useEffect } from 'react';\n\ntype Callback = (callback: () => void) => void;\n\n// Inspired in https://github.com/ryuuji3/react-hooks/blob/4b183d61c30abf17efeab2240f8ff652a5dbb8e2/packages/use-callback-after-render/src/hooks/useCallbackAfterRender.ts\nexport const useCallbackAfterRender = (isLayout = false): Callback => {\n const lastRun = useRef<(() => void) | null>(null);\n\n const effect = useMemo(() => (isLayout ? useLayoutEffect : useEffect), [isLayout]);\n\n effect(() => {\n lastRun.current?.();\n lastRun.current = null;\n });\n\n return (callback) => {\n lastRun.current = callback; // schedule callback after render\n };\n};\n", "import * as React from 'react';\nexport { React };\n"],
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADAvB,mBAA4D;AAKrD,MAAM,yBAAyB,CAAC,WAAW,UAAoB;AACpE,QAAM,cAAU,qBAA4B,IAAI;AAEhD,QAAM,aAAS,sBAAQ,MAAO,WAAW,+BAAkB,wBAAY,CAAC,QAAQ,CAAC;AAEjF,SAAO,MAAM;AACX,YAAQ,UAAU;AAClB,YAAQ,UAAU;AAAA,EACpB,CAAC;AAED,SAAO,CAAC,aAAa;AACnB,YAAQ,UAAU;AAAA,EACpB;AACF;",
|
|
6
|
-
"names": []
|
|
7
|
-
}
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
import * as React from "react";
|
|
2
|
-
import React2, { useEffect } from "react";
|
|
3
|
-
function useOnClickOutside(ref, cb) {
|
|
4
|
-
const cbRef = React2.useRef(cb);
|
|
5
|
-
useEffect(() => {
|
|
6
|
-
cbRef.current = cb;
|
|
7
|
-
}, [cb]);
|
|
8
|
-
useEffect(() => {
|
|
9
|
-
if (!ref) {
|
|
10
|
-
return () => {
|
|
11
|
-
};
|
|
12
|
-
}
|
|
13
|
-
const listener = (event) => {
|
|
14
|
-
const target = event.target;
|
|
15
|
-
if (!target) return;
|
|
16
|
-
if (ref.contains(target)) return;
|
|
17
|
-
cbRef.current(event);
|
|
18
|
-
};
|
|
19
|
-
document.addEventListener("mousedown", listener, true);
|
|
20
|
-
document.addEventListener("touchstart", listener, true);
|
|
21
|
-
return () => {
|
|
22
|
-
document.removeEventListener("mousedown", listener, true);
|
|
23
|
-
document.removeEventListener("touchstart", listener, true);
|
|
24
|
-
};
|
|
25
|
-
}, [ref]);
|
|
26
|
-
}
|
|
27
|
-
export {
|
|
28
|
-
useOnClickOutside
|
|
29
|
-
};
|
|
30
|
-
//# sourceMappingURL=useOnClickOutside.js.map
|