@elliemae/ds-global-header 3.60.0-next.9 → 3.70.0-next.1
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 +9 -10
- package/dist/cjs/DSGlobalHeader.js.map +2 -2
- package/dist/cjs/config/constants.js +0 -15
- package/dist/cjs/config/constants.js.map +3 -3
- package/dist/cjs/config/useGlobalHeader.js +2 -2
- package/dist/cjs/config/useGlobalHeader.js.map +2 -2
- package/dist/cjs/constants/index.js +176 -0
- package/dist/cjs/constants/index.js.map +7 -0
- package/dist/cjs/{exported-related/index.js → hooks/useOnClickOutside.js} +30 -11
- package/dist/cjs/hooks/useOnClickOutside.js.map +7 -0
- package/dist/cjs/index.js +8 -6
- package/dist/cjs/index.js.map +2 -2
- package/dist/cjs/parts/Breadcrumb/GlobalHeaderBreadcrumb.js +6 -5
- package/dist/cjs/parts/Breadcrumb/GlobalHeaderBreadcrumb.js.map +2 -2
- package/dist/cjs/parts/Breadcrumb/PureBreadcrumb.js +7 -5
- package/dist/cjs/parts/Breadcrumb/PureBreadcrumb.js.map +2 -2
- package/dist/cjs/parts/Breadcrumb/styles.js +14 -14
- package/dist/cjs/parts/Breadcrumb/styles.js.map +2 -2
- package/dist/cjs/parts/Breadcrumb/useGlobalHeaderBreadcrumb.js +1 -1
- package/dist/cjs/parts/Breadcrumb/useGlobalHeaderBreadcrumb.js.map +1 -1
- package/dist/cjs/parts/Logo/GlobalHeaderLogo.js +2 -2
- package/dist/cjs/parts/Logo/GlobalHeaderLogo.js.map +2 -2
- package/dist/cjs/parts/Logo/styles.js +3 -3
- package/dist/cjs/parts/Logo/styles.js.map +2 -2
- package/dist/cjs/parts/Toolbar/GlobalHeaderToolbar.js +13 -12
- package/dist/cjs/parts/Toolbar/GlobalHeaderToolbar.js.map +2 -2
- package/dist/cjs/parts/Toolbar/outOfTheBox/AppPicker/AppPicker.js +2 -2
- package/dist/cjs/parts/Toolbar/outOfTheBox/AppPicker/AppPicker.js.map +2 -2
- package/dist/cjs/parts/Toolbar/outOfTheBox/PopupMenu/PopupMenu.js +55 -32
- package/dist/cjs/parts/Toolbar/outOfTheBox/PopupMenu/PopupMenu.js.map +2 -2
- package/dist/cjs/parts/Toolbar/outOfTheBox/PopupMenu/menuContent/PopupMenuContent.js +90 -68
- package/dist/cjs/parts/Toolbar/outOfTheBox/PopupMenu/menuContent/PopupMenuContent.js.map +2 -2
- package/dist/cjs/parts/Toolbar/outOfTheBox/PopupMenu/menuContent/styles.js +10 -10
- package/dist/cjs/parts/Toolbar/outOfTheBox/PopupMenu/menuContent/styles.js.map +2 -2
- package/dist/cjs/parts/Toolbar/outOfTheBox/PopupMenu/menuContent/usePopupMenuContent.js +3 -1
- package/dist/cjs/parts/Toolbar/outOfTheBox/PopupMenu/menuContent/usePopupMenuContent.js.map +2 -2
- package/dist/cjs/parts/Toolbar/outOfTheBox/SearchToggle/SearchToggle.js +171 -93
- package/dist/cjs/parts/Toolbar/outOfTheBox/SearchToggle/SearchToggle.js.map +3 -3
- package/dist/cjs/parts/Toolbar/outOfTheBox/SearchToggle/SearchToggleSpinButton.js +166 -0
- package/dist/cjs/parts/Toolbar/outOfTheBox/SearchToggle/SearchToggleSpinButton.js.map +7 -0
- package/dist/cjs/parts/Toolbar/outOfTheBox/SearchToggle/useSearchToggle.js +122 -0
- package/dist/cjs/parts/Toolbar/outOfTheBox/SearchToggle/useSearchToggle.js.map +7 -0
- package/dist/cjs/parts/Toolbar/styles.js +5 -5
- package/dist/cjs/parts/Toolbar/styles.js.map +2 -2
- package/dist/cjs/parts/styles.js +4 -4
- package/dist/cjs/parts/styles.js.map +2 -2
- package/dist/cjs/react-desc-prop-types.js +2 -0
- package/dist/cjs/react-desc-prop-types.js.map +2 -2
- package/dist/esm/DSGlobalHeader.js +8 -9
- package/dist/esm/DSGlobalHeader.js.map +2 -2
- package/dist/esm/config/constants.js +0 -8
- package/dist/esm/config/constants.js.map +3 -3
- package/dist/esm/config/useGlobalHeader.js +2 -2
- package/dist/esm/config/useGlobalHeader.js.map +2 -2
- package/dist/esm/constants/index.js +146 -0
- package/dist/esm/constants/index.js.map +7 -0
- package/dist/esm/hooks/useOnClickOutside.js +30 -0
- package/dist/esm/hooks/useOnClickOutside.js.map +7 -0
- package/dist/esm/index.js +7 -3
- package/dist/esm/index.js.map +2 -2
- package/dist/esm/parts/Breadcrumb/GlobalHeaderBreadcrumb.js +6 -5
- package/dist/esm/parts/Breadcrumb/GlobalHeaderBreadcrumb.js.map +2 -2
- package/dist/esm/parts/Breadcrumb/PureBreadcrumb.js +7 -5
- package/dist/esm/parts/Breadcrumb/PureBreadcrumb.js.map +2 -2
- package/dist/esm/parts/Breadcrumb/styles.js +8 -8
- package/dist/esm/parts/Breadcrumb/styles.js.map +2 -2
- package/dist/esm/parts/Breadcrumb/useGlobalHeaderBreadcrumb.js +1 -1
- package/dist/esm/parts/Breadcrumb/useGlobalHeaderBreadcrumb.js.map +1 -1
- package/dist/esm/parts/Logo/GlobalHeaderLogo.js +2 -2
- package/dist/esm/parts/Logo/GlobalHeaderLogo.js.map +2 -2
- package/dist/esm/parts/Logo/styles.js +2 -2
- package/dist/esm/parts/Logo/styles.js.map +2 -2
- package/dist/esm/parts/Toolbar/GlobalHeaderToolbar.js +13 -12
- package/dist/esm/parts/Toolbar/GlobalHeaderToolbar.js.map +2 -2
- package/dist/esm/parts/Toolbar/outOfTheBox/AppPicker/AppPicker.js +2 -2
- package/dist/esm/parts/Toolbar/outOfTheBox/AppPicker/AppPicker.js.map +2 -2
- package/dist/esm/parts/Toolbar/outOfTheBox/PopupMenu/PopupMenu.js +57 -34
- package/dist/esm/parts/Toolbar/outOfTheBox/PopupMenu/PopupMenu.js.map +2 -2
- package/dist/esm/parts/Toolbar/outOfTheBox/PopupMenu/menuContent/PopupMenuContent.js +90 -68
- package/dist/esm/parts/Toolbar/outOfTheBox/PopupMenu/menuContent/PopupMenuContent.js.map +2 -2
- package/dist/esm/parts/Toolbar/outOfTheBox/PopupMenu/menuContent/styles.js +6 -6
- package/dist/esm/parts/Toolbar/outOfTheBox/PopupMenu/menuContent/styles.js.map +2 -2
- package/dist/esm/parts/Toolbar/outOfTheBox/PopupMenu/menuContent/usePopupMenuContent.js +3 -1
- package/dist/esm/parts/Toolbar/outOfTheBox/PopupMenu/menuContent/usePopupMenuContent.js.map +2 -2
- package/dist/esm/parts/Toolbar/outOfTheBox/SearchToggle/SearchToggle.js +172 -94
- package/dist/esm/parts/Toolbar/outOfTheBox/SearchToggle/SearchToggle.js.map +3 -3
- package/dist/esm/parts/Toolbar/outOfTheBox/SearchToggle/SearchToggleSpinButton.js +136 -0
- package/dist/esm/parts/Toolbar/outOfTheBox/SearchToggle/SearchToggleSpinButton.js.map +7 -0
- package/dist/esm/parts/Toolbar/outOfTheBox/SearchToggle/useSearchToggle.js +92 -0
- package/dist/esm/parts/Toolbar/outOfTheBox/SearchToggle/useSearchToggle.js.map +7 -0
- package/dist/esm/parts/Toolbar/styles.js +4 -4
- package/dist/esm/parts/Toolbar/styles.js.map +2 -2
- package/dist/esm/parts/styles.js +3 -3
- package/dist/esm/parts/styles.js.map +2 -2
- package/dist/esm/react-desc-prop-types.js +8 -1
- package/dist/esm/react-desc-prop-types.js.map +2 -2
- package/dist/types/DSGlobalHeader.d.ts +2 -2
- package/dist/types/config/constants.d.ts +0 -5
- package/dist/types/config/useGlobalHeader.d.ts +1 -1
- package/dist/types/constants/index.d.ts +184 -0
- package/dist/types/hooks/useOnClickOutside.d.ts +1 -0
- package/dist/types/index.d.ts +1 -1
- package/dist/types/parts/Breadcrumb/PureBreadcrumb.d.ts +5 -1
- package/dist/types/parts/Toolbar/outOfTheBox/PopupMenu/PopupMenu.d.ts +1 -1
- package/dist/types/parts/Toolbar/outOfTheBox/PopupMenu/menuContent/PopupMenuContent.d.ts +1 -1
- package/dist/types/parts/Toolbar/outOfTheBox/SearchToggle/SearchToggle.d.ts +1 -1
- package/dist/types/parts/Toolbar/outOfTheBox/SearchToggle/SearchToggleSpinButton.d.ts +9 -0
- package/dist/types/parts/Toolbar/outOfTheBox/SearchToggle/useSearchToggle.d.ts +14 -0
- package/dist/types/react-desc-prop-types.d.ts +513 -21
- package/dist/types/tests/GlobalHeader.getOwnerProps.test.d.ts +1 -0
- package/package.json +29 -30
- package/dist/cjs/exported-related/DSGlobalHeaderDatatestid.js +0 -90
- package/dist/cjs/exported-related/DSGlobalHeaderDatatestid.js.map +0 -7
- package/dist/cjs/exported-related/index.js.map +0 -7
- package/dist/cjs/exported-related/theming.js +0 -90
- package/dist/cjs/exported-related/theming.js.map +0 -7
- package/dist/cjs/parts/Toolbar/outOfTheBox/SearchToggle/styles.js +0 -90
- package/dist/cjs/parts/Toolbar/outOfTheBox/SearchToggle/styles.js.map +0 -7
- package/dist/cjs/parts/Toolbar/outOfTheBox/SearchToggle/useCallbackAfterRender.js +0 -47
- package/dist/cjs/parts/Toolbar/outOfTheBox/SearchToggle/useCallbackAfterRender.js.map +0 -7
- package/dist/esm/exported-related/DSGlobalHeaderDatatestid.js +0 -60
- package/dist/esm/exported-related/DSGlobalHeaderDatatestid.js.map +0 -7
- package/dist/esm/exported-related/index.js +0 -11
- package/dist/esm/exported-related/index.js.map +0 -7
- package/dist/esm/exported-related/theming.js +0 -60
- package/dist/esm/exported-related/theming.js.map +0 -7
- package/dist/esm/parts/Toolbar/outOfTheBox/SearchToggle/styles.js +0 -60
- package/dist/esm/parts/Toolbar/outOfTheBox/SearchToggle/styles.js.map +0 -7
- package/dist/esm/parts/Toolbar/outOfTheBox/SearchToggle/useCallbackAfterRender.js +0 -17
- package/dist/esm/parts/Toolbar/outOfTheBox/SearchToggle/useCallbackAfterRender.js.map +0 -7
- package/dist/types/exported-related/DSGlobalHeaderDatatestid.d.ts +0 -54
- package/dist/types/exported-related/index.d.ts +0 -2
- package/dist/types/exported-related/theming.d.ts +0 -53
- package/dist/types/parts/Toolbar/outOfTheBox/SearchToggle/styles.d.ts +0 -1
- package/dist/types/parts/Toolbar/outOfTheBox/SearchToggle/useCallbackAfterRender.d.ts +0 -3
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../../../src/parts/Toolbar/outOfTheBox/SearchToggle/SearchToggle.tsx", "../../../../../../../../../scripts/build/transpile/react-shim.js"],
|
|
4
|
-
"sourcesContent": ["import {
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;
|
|
6
|
-
"names": ["
|
|
4
|
+
"sourcesContent": ["import { DSButtonV3 } from '@elliemae/ds-button-v2';\nimport { DSInputText } from '@elliemae/ds-form-input-text';\nimport { Grid } from '@elliemae/ds-grid';\nimport { Search } from '@elliemae/ds-icons';\nimport { css, mergeRefs, styled } from '@elliemae/ds-system';\nimport React from 'react';\nimport { DSGlobalHeaderContext } from '../../../../DSGlobalHeaderContext.js';\nimport { DSGlobalHeaderName, GLOBAL_HEADER_DATA_TESTID, GLOBAL_HEADER_SLOTS } from '../../../../constants/index.js';\nimport type { DSGlobalHeaderT } from '../../../../react-desc-prop-types.js';\nimport { SearchToggleSpinButton } from './SearchToggleSpinButton.js';\nimport { useSearchToggle } from './useSearchToggle.js';\n\nconst StyledNavSearchBoxContainer = styled('div', {\n name: DSGlobalHeaderName,\n slot: GLOBAL_HEADER_SLOTS.MENUBAR_SEARCH_TOGGLE_CONTAINER,\n})<{ isOpen: boolean }>`\n background: ${({ theme, isOpen }) => (isOpen ? theme.colors.neutral['000'] : 'transparent')};\n position: relative;\n display: flex;\n align-items: center;\n width: ${({ isOpen }) => (isOpen ? '260px' : 'auto')};\n & .em-ds-button {\n margin-right: 2px;\n height: 24px;\n width: 24px;\n }\n`;\n\nconst StyledSearchNavContainer = styled(Grid, {\n name: DSGlobalHeaderName,\n slot: GLOBAL_HEADER_SLOTS.SEARCH_TOGGLE_EXPANDED_CONTENT_WRAPPER,\n})`\n background: ${({ theme }) => theme.colors.neutral['000']};\n position: relative;\n padding: 2px;\n`;\n\nconst StyledSearchInput = styled(DSInputText, {\n name: DSGlobalHeaderName,\n slot: GLOBAL_HEADER_SLOTS.SEARCH_TOGGLE_TEXTINPUT,\n})``;\n\nconst ExpandedToggleBtnStyles = css`\n margin-left: 2px;\n`;\nconst CollapsedToggleBtnStyles = css`\n height: 3.077rem;\n width: 3.077rem;\n border: none;\n background-color: transparent;\n cursor: pointer;\n position: relative;\n\n // we want to avoid the pseudo-border in the nested buttons\n & button:focus .pseudo-border {\n outline: none;\n border: none;\n }\n && span.pseudo-border {\n display: none;\n }\n\n // our \"ad-hoc\" styling of the DSButtonV3 that re-implement changed colors/focus-borders\n & .em-ds-icon svg {\n fill: ${({ theme }) => theme.colors.neutral['000']};\n }\n\n &&:hover {\n background-color: ${({ theme }) => theme.colors.brand[700]};\n }\n\n &&:focus-visible {\n background-color: transparent;\n }\n\n &&:focus-visible::before {\n content: '';\n position: absolute;\n z-index: 2;\n top: 2px;\n left: 2px;\n width: calc(100% - 4px);\n height: calc(100% - 4px);\n border: 2px solid ${({ theme }) => theme.colors.neutral['000']};\n border-radius: 4px;\n pointer-events: none;\n }\n`;\n\nconst StyledToggleBtn = styled(DSButtonV3, {\n name: DSGlobalHeaderName,\n slot: GLOBAL_HEADER_SLOTS.SEARCH_TOGGLE_TRIGGER_BUTTON,\n})<{ isOpen: boolean }>`\n ${({ isOpen }) => (!isOpen ? CollapsedToggleBtnStyles : ExpandedToggleBtnStyles)}\n`;\n\nexport const SearchToggle = (outOfTheBoxDrilledDownProps: DSGlobalHeaderT.SearchToggleProps): JSX.Element => {\n const {\n componentProps,\n label,\n // added in https://jira.elliemae.io/browse/PUI-17852\n // keeping the default value as \"Close search\" for backward compatibility\n // we expect authors to provide descriptive aria-labels that fit their specific context, we do so in our example stories.\n ariaLabelExpanded = 'Close search',\n } = outOfTheBoxDrilledDownProps;\n\n const {\n isOpenUncontrolled,\n containerRef,\n handleToggleSearch,\n handleContainerKeyDown,\n handleChange,\n handleInputKeyDown,\n handleTriggerRefs,\n inputId,\n panelId,\n } = useSearchToggle(outOfTheBoxDrilledDownProps);\n const { props: propsWithDefault } = React.useContext(DSGlobalHeaderContext);\n\n const {\n onNext,\n onPrevious,\n currentResultIndex,\n totalResults,\n placeholder,\n value,\n onBlur,\n onClear,\n isOpen: userIsOpen,\n searchContainerRef,\n } = componentProps;\n\n const getOwnerProps = React.useCallback(() => propsWithDefault, [propsWithDefault]);\n const getOwnerPropsArguments = React.useCallback(() => ({}), []);\n const isOpen = userIsOpen ?? isOpenUncontrolled;\n\n return (\n <StyledNavSearchBoxContainer\n getOwnerProps={getOwnerProps}\n getOwnerPropsArguments={getOwnerPropsArguments}\n onKeyDown={handleContainerKeyDown}\n innerRef={mergeRefs(searchContainerRef, containerRef)}\n isOpen={isOpen}\n >\n <StyledToggleBtn\n getOwnerProps={getOwnerProps}\n getOwnerPropsArguments={getOwnerPropsArguments}\n buttonType=\"icon\"\n innerRef={handleTriggerRefs}\n aria-label={isOpen ? ariaLabelExpanded : label}\n aria-expanded={isOpen}\n aria-controls={panelId}\n onClick={handleToggleSearch}\n isOpen={isOpen}\n data-testid={GLOBAL_HEADER_DATA_TESTID.SEARCH_TOGGLE_TRIGGER_BUTTON}\n >\n <Search color={isOpen ? ['brand-primary', '800'] : ['neutral', '0']} />\n </StyledToggleBtn>\n\n {isOpen ? (\n <StyledSearchNavContainer\n getOwnerProps={getOwnerProps}\n getOwnerPropsArguments={getOwnerPropsArguments}\n id={panelId}\n alignItems=\"center\"\n cols={['1fr', '1fr']}\n >\n <StyledSearchInput\n getOwnerProps={getOwnerProps}\n getOwnerPropsArguments={getOwnerPropsArguments}\n id={inputId}\n placeholder={placeholder || 'Search...'}\n value={value}\n clearable\n // passing onBlur as {undefined} breaks the input text focus ring management\n // if onBlur is not provided, we don't pass the prop at all\n // this is not expected as confirmed in conversation with Gerardo\n // we are not going to implement the fix right now to avoid potential breaking changes,\n // but we will keep an eye on this behavior and consider a fix in the future if needed.\n {...(onBlur && { onBlur })}\n onChange={handleChange}\n onKeyDown={handleInputKeyDown}\n onClear={onClear}\n />\n\n <SearchToggleSpinButton\n onNext={onNext}\n onPrevious={onPrevious}\n currentResultIndex={currentResultIndex}\n totalResults={totalResults}\n />\n </StyledSearchNavContainer>\n ) : null}\n </StyledNavSearchBoxContainer>\n );\n};\n", "import * as React from 'react';\nexport { React };\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["React"]
|
|
7
7
|
}
|
|
@@ -0,0 +1,166 @@
|
|
|
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 SearchToggleSpinButton_exports = {};
|
|
30
|
+
__export(SearchToggleSpinButton_exports, {
|
|
31
|
+
SearchToggleSpinButton: () => SearchToggleSpinButton
|
|
32
|
+
});
|
|
33
|
+
module.exports = __toCommonJS(SearchToggleSpinButton_exports);
|
|
34
|
+
var React = __toESM(require("react"));
|
|
35
|
+
var import_jsx_runtime = require("react/jsx-runtime");
|
|
36
|
+
var import_ds_button_v2 = require("@elliemae/ds-button-v2");
|
|
37
|
+
var import_ds_icons = require("@elliemae/ds-icons");
|
|
38
|
+
var import_ds_system = require("@elliemae/ds-system");
|
|
39
|
+
var import_react = __toESM(require("react"));
|
|
40
|
+
var import_DSGlobalHeaderContext = require("../../../../DSGlobalHeaderContext.js");
|
|
41
|
+
var import_constants = require("../../../../constants/index.js");
|
|
42
|
+
const StyledToolbarRightAddonsWrapper = (0, import_ds_system.styled)("div", {
|
|
43
|
+
name: import_constants.DSGlobalHeaderName,
|
|
44
|
+
slot: import_constants.GLOBAL_HEADER_SLOTS.SEARCH_TOGGLE_SPINBUTTON_WRAPPER
|
|
45
|
+
})`
|
|
46
|
+
display: flex;
|
|
47
|
+
align-items: center;
|
|
48
|
+
justify-content: flex-end;
|
|
49
|
+
position: relative; // to position the focus-within outline
|
|
50
|
+
:focus-within {
|
|
51
|
+
::after {
|
|
52
|
+
content: '';
|
|
53
|
+
position: absolute;
|
|
54
|
+
width: calc(100% - 2px);
|
|
55
|
+
height: 100%;
|
|
56
|
+
border: brand-700 2px solid;
|
|
57
|
+
margin: -1px;
|
|
58
|
+
pointer-events: none;
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
// we want to avoid the pseudo-border in the nested buttons
|
|
62
|
+
& button:focus .pseudo-border {
|
|
63
|
+
outline: none;
|
|
64
|
+
border: none;
|
|
65
|
+
}
|
|
66
|
+
`;
|
|
67
|
+
const StyledResultTracker = (0, import_ds_system.styled)("div", {
|
|
68
|
+
name: import_constants.DSGlobalHeaderName,
|
|
69
|
+
slot: import_constants.GLOBAL_HEADER_SLOTS.SEARCH_TOGGLE_SPINBUTTON_TEXT
|
|
70
|
+
})`
|
|
71
|
+
padding: 0 8px;
|
|
72
|
+
color: #a2a9b6; // this is color picked from the placeholder, specs doesn't specify
|
|
73
|
+
white-space: nowrap;
|
|
74
|
+
word-spacing: 2px;
|
|
75
|
+
outline: none;
|
|
76
|
+
`;
|
|
77
|
+
const StyledVerticalSeparator = (0, import_ds_system.styled)("div", {
|
|
78
|
+
name: import_constants.DSGlobalHeaderName,
|
|
79
|
+
slot: import_constants.GLOBAL_HEADER_SLOTS.SEARCH_TOGGLE_SPINBUTTON_SEPARATOR
|
|
80
|
+
})`
|
|
81
|
+
height: 20px;
|
|
82
|
+
border-right: 1px solid #a2a9b6;
|
|
83
|
+
`;
|
|
84
|
+
const StyledPrevBtn = (0, import_ds_system.styled)(import_ds_button_v2.DSButtonV3, {
|
|
85
|
+
name: import_constants.DSGlobalHeaderName,
|
|
86
|
+
slot: import_constants.GLOBAL_HEADER_SLOTS.SEARCH_TOGGLE_SPINBUTTON_PREV
|
|
87
|
+
})``;
|
|
88
|
+
const StyledNextBtn = (0, import_ds_system.styled)(import_ds_button_v2.DSButtonV3, {
|
|
89
|
+
name: import_constants.DSGlobalHeaderName,
|
|
90
|
+
slot: import_constants.GLOBAL_HEADER_SLOTS.SEARCH_TOGGLE_SPINBUTTON_NEXT
|
|
91
|
+
})``;
|
|
92
|
+
const SearchToggleSpinButton = import_react.default.memo((props) => {
|
|
93
|
+
const { onNext, onPrevious, currentResultIndex, totalResults } = props;
|
|
94
|
+
const { props: propsWithDefault } = import_react.default.useContext(import_DSGlobalHeaderContext.DSGlobalHeaderContext);
|
|
95
|
+
const shouldShowNoResearchOngoing = currentResultIndex === -1 && !totalResults;
|
|
96
|
+
const canShowFullResults = !shouldShowNoResearchOngoing && currentResultIndex !== -1;
|
|
97
|
+
const shouldFallbackToTotalResultsOnly = !shouldShowNoResearchOngoing && !canShowFullResults;
|
|
98
|
+
let resultText = "n/a";
|
|
99
|
+
let ariaResultsText = "no research ongoing";
|
|
100
|
+
if (canShowFullResults) {
|
|
101
|
+
resultText = `${currentResultIndex + 1} / ${totalResults}`;
|
|
102
|
+
ariaResultsText = `result ${currentResultIndex + 1} of ${totalResults}`;
|
|
103
|
+
}
|
|
104
|
+
if (shouldFallbackToTotalResultsOnly) {
|
|
105
|
+
resultText = `${totalResults}`;
|
|
106
|
+
ariaResultsText = `${totalResults} total results`;
|
|
107
|
+
}
|
|
108
|
+
const handleKeyDown = import_react.default.useCallback(
|
|
109
|
+
(event) => {
|
|
110
|
+
if (event.key === "ArrowUp") {
|
|
111
|
+
event.preventDefault();
|
|
112
|
+
onNext();
|
|
113
|
+
} else if (event.key === "ArrowDown") {
|
|
114
|
+
event.preventDefault();
|
|
115
|
+
onPrevious();
|
|
116
|
+
}
|
|
117
|
+
},
|
|
118
|
+
[onNext, onPrevious]
|
|
119
|
+
);
|
|
120
|
+
const getOwnerProps = import_react.default.useCallback(() => propsWithDefault, [propsWithDefault]);
|
|
121
|
+
const getOwnerPropsArguments = import_react.default.useCallback(() => ({}), []);
|
|
122
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(StyledToolbarRightAddonsWrapper, { getOwnerProps, getOwnerPropsArguments, children: [
|
|
123
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
124
|
+
StyledResultTracker,
|
|
125
|
+
{
|
|
126
|
+
getOwnerProps,
|
|
127
|
+
getOwnerPropsArguments,
|
|
128
|
+
role: "spinbutton",
|
|
129
|
+
"aria-valuenow": currentResultIndex + 1,
|
|
130
|
+
"aria-valuemin": 1,
|
|
131
|
+
"aria-valuemax": totalResults,
|
|
132
|
+
"aria-valuetext": ariaResultsText,
|
|
133
|
+
tabIndex: 0,
|
|
134
|
+
onKeyDown: handleKeyDown,
|
|
135
|
+
children: resultText
|
|
136
|
+
}
|
|
137
|
+
),
|
|
138
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(StyledVerticalSeparator, { getOwnerProps, getOwnerPropsArguments }),
|
|
139
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
140
|
+
StyledPrevBtn,
|
|
141
|
+
{
|
|
142
|
+
getOwnerProps,
|
|
143
|
+
getOwnerPropsArguments,
|
|
144
|
+
buttonType: "icon",
|
|
145
|
+
onClick: onNext,
|
|
146
|
+
"aria-label": "Next search result",
|
|
147
|
+
tabIndex: -1,
|
|
148
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_ds_icons.ChevronDown, { color: ["brand-primary", "800"] })
|
|
149
|
+
}
|
|
150
|
+
),
|
|
151
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
152
|
+
StyledNextBtn,
|
|
153
|
+
{
|
|
154
|
+
getOwnerProps,
|
|
155
|
+
getOwnerPropsArguments,
|
|
156
|
+
buttonType: "icon",
|
|
157
|
+
onClick: onPrevious,
|
|
158
|
+
"aria-label": "Previous search result",
|
|
159
|
+
tabIndex: -1,
|
|
160
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_ds_icons.ChevronUp, { color: ["brand-primary", "800"] })
|
|
161
|
+
}
|
|
162
|
+
)
|
|
163
|
+
] });
|
|
164
|
+
});
|
|
165
|
+
SearchToggleSpinButton.displayName = "SearchToggleSpinButton";
|
|
166
|
+
//# sourceMappingURL=SearchToggleSpinButton.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../../../../src/parts/Toolbar/outOfTheBox/SearchToggle/SearchToggleSpinButton.tsx", "../../../../../../../../../scripts/build/transpile/react-shim.js"],
|
|
4
|
+
"sourcesContent": ["import { DSButtonV3 } from '@elliemae/ds-button-v2';\nimport { ChevronDown, ChevronUp } from '@elliemae/ds-icons';\nimport { styled } from '@elliemae/ds-system';\nimport React from 'react';\nimport { DSGlobalHeaderContext } from '../../../../DSGlobalHeaderContext.js';\nimport { DSGlobalHeaderName, GLOBAL_HEADER_SLOTS } from '../../../../constants/index.js';\n\nconst StyledToolbarRightAddonsWrapper = styled('div', {\n name: DSGlobalHeaderName,\n slot: GLOBAL_HEADER_SLOTS.SEARCH_TOGGLE_SPINBUTTON_WRAPPER,\n})`\n display: flex;\n align-items: center;\n justify-content: flex-end;\n position: relative; // to position the focus-within outline\n :focus-within {\n ::after {\n content: '';\n position: absolute;\n width: calc(100% - 2px);\n height: 100%;\n border: brand-700 2px solid;\n margin: -1px;\n pointer-events: none;\n }\n }\n // we want to avoid the pseudo-border in the nested buttons\n & button:focus .pseudo-border {\n outline: none;\n border: none;\n }\n`;\nconst StyledResultTracker = styled('div', {\n name: DSGlobalHeaderName,\n slot: GLOBAL_HEADER_SLOTS.SEARCH_TOGGLE_SPINBUTTON_TEXT,\n})`\n padding: 0 8px;\n color: #a2a9b6; // this is color picked from the placeholder, specs doesn't specify\n white-space: nowrap;\n word-spacing: 2px;\n outline: none;\n`;\nconst StyledVerticalSeparator = styled('div', {\n name: DSGlobalHeaderName,\n slot: GLOBAL_HEADER_SLOTS.SEARCH_TOGGLE_SPINBUTTON_SEPARATOR,\n})`\n height: 20px;\n border-right: 1px solid #a2a9b6;\n`;\n// why? because when we add slots support, this should be a slot too, to customize aria-labels\nconst StyledPrevBtn = styled(DSButtonV3, {\n name: DSGlobalHeaderName,\n slot: GLOBAL_HEADER_SLOTS.SEARCH_TOGGLE_SPINBUTTON_PREV,\n})``;\nconst StyledNextBtn = styled(DSButtonV3, {\n name: DSGlobalHeaderName,\n slot: GLOBAL_HEADER_SLOTS.SEARCH_TOGGLE_SPINBUTTON_NEXT,\n})``;\n\ninterface SearchToggleSpinButtonPropsT {\n onNext: () => void;\n onPrevious: () => void;\n currentResultIndex: number;\n totalResults: number;\n}\n\nexport const SearchToggleSpinButton = React.memo((props: SearchToggleSpinButtonPropsT) => {\n const { onNext, onPrevious, currentResultIndex, totalResults } = props;\n const { props: propsWithDefault } = React.useContext(DSGlobalHeaderContext);\n\n const shouldShowNoResearchOngoing = currentResultIndex === -1 && !totalResults;\n const canShowFullResults = !shouldShowNoResearchOngoing && currentResultIndex !== -1;\n const shouldFallbackToTotalResultsOnly = !shouldShowNoResearchOngoing && !canShowFullResults;\n let resultText = 'n/a';\n let ariaResultsText = 'no research ongoing';\n if (canShowFullResults) {\n resultText = `${currentResultIndex + 1} / ${totalResults}`;\n ariaResultsText = `result ${currentResultIndex + 1} of ${totalResults}`;\n }\n if (shouldFallbackToTotalResultsOnly) {\n resultText = `${totalResults}`;\n ariaResultsText = `${totalResults} total results`;\n }\n\n const handleKeyDown = React.useCallback<React.KeyboardEventHandler<HTMLDivElement>>(\n (event) => {\n if (event.key === 'ArrowUp') {\n event.preventDefault();\n onNext();\n } else if (event.key === 'ArrowDown') {\n event.preventDefault();\n onPrevious();\n }\n },\n [onNext, onPrevious],\n );\n const getOwnerProps = React.useCallback(() => propsWithDefault, [propsWithDefault]);\n const getOwnerPropsArguments = React.useCallback(() => ({}), []);\n\n return (\n <StyledToolbarRightAddonsWrapper getOwnerProps={getOwnerProps} getOwnerPropsArguments={getOwnerPropsArguments}>\n <StyledResultTracker\n getOwnerProps={getOwnerProps}\n getOwnerPropsArguments={getOwnerPropsArguments}\n role=\"spinbutton\"\n aria-valuenow={currentResultIndex + 1}\n aria-valuemin={1}\n aria-valuemax={totalResults}\n aria-valuetext={ariaResultsText}\n tabIndex={0}\n onKeyDown={handleKeyDown}\n >\n {resultText}\n </StyledResultTracker>\n <StyledVerticalSeparator getOwnerProps={getOwnerProps} getOwnerPropsArguments={getOwnerPropsArguments} />\n <StyledPrevBtn\n getOwnerProps={getOwnerProps}\n getOwnerPropsArguments={getOwnerPropsArguments}\n buttonType=\"icon\"\n onClick={onNext}\n aria-label=\"Next search result\"\n tabIndex={-1} // part of a spinbutton, so remove from tab order\n >\n <ChevronDown color={['brand-primary', '800']} />\n </StyledPrevBtn>\n <StyledNextBtn\n getOwnerProps={getOwnerProps}\n getOwnerPropsArguments={getOwnerPropsArguments}\n buttonType=\"icon\"\n onClick={onPrevious}\n aria-label=\"Previous search result\"\n tabIndex={-1} // part of a spinbutton, so remove from tab order\n >\n <ChevronUp color={['brand-primary', '800']} />\n </StyledNextBtn>\n </StyledToolbarRightAddonsWrapper>\n );\n});\n\nSearchToggleSpinButton.displayName = 'SearchToggleSpinButton';\n", "import * as React from 'react';\nexport { React };\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["React"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,122 @@
|
|
|
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 useSearchToggle_exports = {};
|
|
30
|
+
__export(useSearchToggle_exports, {
|
|
31
|
+
useSearchToggle: () => useSearchToggle
|
|
32
|
+
});
|
|
33
|
+
module.exports = __toCommonJS(useSearchToggle_exports);
|
|
34
|
+
var React = __toESM(require("react"));
|
|
35
|
+
var import_ds_system = require("@elliemae/ds-system");
|
|
36
|
+
var import_react = __toESM(require("react"));
|
|
37
|
+
const useSearchToggle = (outOfTheBoxDrilledDownProps) => {
|
|
38
|
+
const { setRef, componentProps, instanceUID } = outOfTheBoxDrilledDownProps;
|
|
39
|
+
const { onChange, onClear, isOpen: userIsOpen, onKeyDown, onClick, triggerRef } = componentProps;
|
|
40
|
+
const [isOpenUncontrolled, setIsOpenUncontrolled] = import_react.default.useState(false);
|
|
41
|
+
const internalInputRef = import_react.default.useRef(null);
|
|
42
|
+
const containerRef = import_react.default.useRef(null);
|
|
43
|
+
const internalTriggerRef = import_react.default.useRef(null);
|
|
44
|
+
const isControlled = userIsOpen !== void 0;
|
|
45
|
+
const isOpen = userIsOpen ?? isOpenUncontrolled;
|
|
46
|
+
const openUncontrolled = import_react.default.useCallback(() => {
|
|
47
|
+
if (!isControlled) setIsOpenUncontrolled(true);
|
|
48
|
+
}, [isControlled]);
|
|
49
|
+
const closeUncontrolled = import_react.default.useCallback(() => {
|
|
50
|
+
if (!isControlled) setIsOpenUncontrolled(false);
|
|
51
|
+
internalTriggerRef.current?.focus();
|
|
52
|
+
onClear();
|
|
53
|
+
}, [isControlled, onClear]);
|
|
54
|
+
const handleToggleSearch = import_react.default.useCallback(
|
|
55
|
+
(e) => {
|
|
56
|
+
if (isOpen) {
|
|
57
|
+
closeUncontrolled();
|
|
58
|
+
} else {
|
|
59
|
+
openUncontrolled();
|
|
60
|
+
}
|
|
61
|
+
onClick?.(e);
|
|
62
|
+
},
|
|
63
|
+
[closeUncontrolled, isOpen, onClick, openUncontrolled]
|
|
64
|
+
);
|
|
65
|
+
const handleContainerKeyDown = import_react.default.useCallback(
|
|
66
|
+
(e) => {
|
|
67
|
+
if (!isControlled && e.key === "Escape" && isOpen) closeUncontrolled();
|
|
68
|
+
onKeyDown?.(e);
|
|
69
|
+
},
|
|
70
|
+
[closeUncontrolled, isControlled, isOpen, onKeyDown]
|
|
71
|
+
);
|
|
72
|
+
const handleChange = import_react.default.useCallback(
|
|
73
|
+
(e) => {
|
|
74
|
+
onChange?.(e.target.value);
|
|
75
|
+
},
|
|
76
|
+
[onChange]
|
|
77
|
+
);
|
|
78
|
+
const handleInputKeyDown = import_react.default.useCallback(
|
|
79
|
+
(e) => {
|
|
80
|
+
if (e.key === "Escape") {
|
|
81
|
+
onClear();
|
|
82
|
+
closeUncontrolled();
|
|
83
|
+
}
|
|
84
|
+
},
|
|
85
|
+
[onClear, closeUncontrolled]
|
|
86
|
+
);
|
|
87
|
+
const handleTriggerRefs = import_react.default.useCallback(
|
|
88
|
+
(buttonRef) => {
|
|
89
|
+
(0, import_ds_system.mergeRefs)(triggerRef, internalTriggerRef)(buttonRef);
|
|
90
|
+
setRef(buttonRef);
|
|
91
|
+
},
|
|
92
|
+
[setRef, triggerRef]
|
|
93
|
+
);
|
|
94
|
+
const inputId = `${instanceUID}-nav-searchbox-input`;
|
|
95
|
+
const panelId = `${instanceUID}-nav-searchbox-panel`;
|
|
96
|
+
return import_react.default.useMemo(
|
|
97
|
+
() => ({
|
|
98
|
+
isOpenUncontrolled,
|
|
99
|
+
internalInputRef,
|
|
100
|
+
containerRef,
|
|
101
|
+
handleToggleSearch,
|
|
102
|
+
handleContainerKeyDown,
|
|
103
|
+
handleChange,
|
|
104
|
+
handleInputKeyDown,
|
|
105
|
+
handleTriggerRefs,
|
|
106
|
+
inputId,
|
|
107
|
+
panelId
|
|
108
|
+
}),
|
|
109
|
+
[
|
|
110
|
+
isOpenUncontrolled,
|
|
111
|
+
containerRef,
|
|
112
|
+
handleToggleSearch,
|
|
113
|
+
handleContainerKeyDown,
|
|
114
|
+
handleChange,
|
|
115
|
+
handleInputKeyDown,
|
|
116
|
+
handleTriggerRefs,
|
|
117
|
+
inputId,
|
|
118
|
+
panelId
|
|
119
|
+
]
|
|
120
|
+
);
|
|
121
|
+
};
|
|
122
|
+
//# sourceMappingURL=useSearchToggle.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../../../../src/parts/Toolbar/outOfTheBox/SearchToggle/useSearchToggle.tsx", "../../../../../../../../../scripts/build/transpile/react-shim.js"],
|
|
4
|
+
"sourcesContent": ["import { mergeRefs } from '@elliemae/ds-system';\nimport React from 'react';\nimport type { DSGlobalHeaderT } from '../../../../react-desc-prop-types.js';\n\nexport const useSearchToggle = (outOfTheBoxDrilledDownProps: DSGlobalHeaderT.SearchToggleProps) => {\n const { setRef, componentProps, instanceUID } = outOfTheBoxDrilledDownProps;\n const { onChange, onClear, isOpen: userIsOpen, onKeyDown, onClick, triggerRef } = componentProps;\n\n const [isOpenUncontrolled, setIsOpenUncontrolled] = React.useState<boolean>(false);\n const internalInputRef = React.useRef<HTMLInputElement | null>(null);\n const containerRef = React.useRef<HTMLDivElement | null>(null);\n const internalTriggerRef = React.useRef<HTMLButtonElement | null>(null);\n\n const isControlled = userIsOpen !== undefined;\n const isOpen = userIsOpen ?? isOpenUncontrolled;\n\n const openUncontrolled = React.useCallback(() => {\n if (!isControlled) setIsOpenUncontrolled(true);\n }, [isControlled]);\n\n const closeUncontrolled = React.useCallback(() => {\n if (!isControlled) setIsOpenUncontrolled(false);\n internalTriggerRef.current?.focus();\n onClear();\n }, [isControlled, onClear]);\n\n const handleToggleSearch = React.useCallback(\n (e: React.MouseEvent<HTMLButtonElement, MouseEvent> | React.KeyboardEvent<HTMLButtonElement>) => {\n if (isOpen) {\n closeUncontrolled();\n } else {\n openUncontrolled();\n }\n\n onClick?.(e as React.MouseEvent<HTMLButtonElement, MouseEvent>);\n },\n [closeUncontrolled, isOpen, onClick, openUncontrolled],\n );\n\n const handleContainerKeyDown = React.useCallback<React.KeyboardEventHandler<HTMLDivElement>>(\n (e) => {\n if (!isControlled && e.key === 'Escape' && isOpen) closeUncontrolled();\n onKeyDown?.(e);\n },\n [closeUncontrolled, isControlled, isOpen, onKeyDown],\n );\n\n const handleChange = React.useCallback<React.ChangeEventHandler<HTMLInputElement>>(\n (e) => {\n onChange?.(e.target.value);\n },\n [onChange],\n );\n\n const handleInputKeyDown = React.useCallback<React.KeyboardEventHandler<HTMLInputElement>>(\n (e) => {\n if (e.key === 'Escape') {\n onClear();\n closeUncontrolled();\n }\n },\n [onClear, closeUncontrolled],\n );\n\n const handleTriggerRefs = React.useCallback(\n (buttonRef: HTMLButtonElement) => {\n mergeRefs(triggerRef, internalTriggerRef)(buttonRef);\n setRef(buttonRef); // this is used for left/arrow navigation in the region.\n },\n [setRef, triggerRef],\n );\n\n const inputId = `${instanceUID}-nav-searchbox-input`;\n const panelId = `${instanceUID}-nav-searchbox-panel`;\n return React.useMemo(\n () => ({\n isOpenUncontrolled,\n internalInputRef,\n containerRef,\n handleToggleSearch,\n handleContainerKeyDown,\n handleChange,\n handleInputKeyDown,\n handleTriggerRefs,\n inputId,\n panelId,\n }),\n [\n isOpenUncontrolled,\n containerRef,\n handleToggleSearch,\n handleContainerKeyDown,\n handleChange,\n handleInputKeyDown,\n handleTriggerRefs,\n inputId,\n panelId,\n ],\n );\n};\n", "import * as React from 'react';\nexport { React };\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADAvB,uBAA0B;AAC1B,mBAAkB;AAGX,MAAM,kBAAkB,CAAC,gCAAmE;AACjG,QAAM,EAAE,QAAQ,gBAAgB,YAAY,IAAI;AAChD,QAAM,EAAE,UAAU,SAAS,QAAQ,YAAY,WAAW,SAAS,WAAW,IAAI;AAElF,QAAM,CAAC,oBAAoB,qBAAqB,IAAI,aAAAA,QAAM,SAAkB,KAAK;AACjF,QAAM,mBAAmB,aAAAA,QAAM,OAAgC,IAAI;AACnE,QAAM,eAAe,aAAAA,QAAM,OAA8B,IAAI;AAC7D,QAAM,qBAAqB,aAAAA,QAAM,OAAiC,IAAI;AAEtE,QAAM,eAAe,eAAe;AACpC,QAAM,SAAS,cAAc;AAE7B,QAAM,mBAAmB,aAAAA,QAAM,YAAY,MAAM;AAC/C,QAAI,CAAC,aAAc,uBAAsB,IAAI;AAAA,EAC/C,GAAG,CAAC,YAAY,CAAC;AAEjB,QAAM,oBAAoB,aAAAA,QAAM,YAAY,MAAM;AAChD,QAAI,CAAC,aAAc,uBAAsB,KAAK;AAC9C,uBAAmB,SAAS,MAAM;AAClC,YAAQ;AAAA,EACV,GAAG,CAAC,cAAc,OAAO,CAAC;AAE1B,QAAM,qBAAqB,aAAAA,QAAM;AAAA,IAC/B,CAAC,MAAgG;AAC/F,UAAI,QAAQ;AACV,0BAAkB;AAAA,MACpB,OAAO;AACL,yBAAiB;AAAA,MACnB;AAEA,gBAAU,CAAoD;AAAA,IAChE;AAAA,IACA,CAAC,mBAAmB,QAAQ,SAAS,gBAAgB;AAAA,EACvD;AAEA,QAAM,yBAAyB,aAAAA,QAAM;AAAA,IACnC,CAAC,MAAM;AACL,UAAI,CAAC,gBAAgB,EAAE,QAAQ,YAAY,OAAQ,mBAAkB;AACrE,kBAAY,CAAC;AAAA,IACf;AAAA,IACA,CAAC,mBAAmB,cAAc,QAAQ,SAAS;AAAA,EACrD;AAEA,QAAM,eAAe,aAAAA,QAAM;AAAA,IACzB,CAAC,MAAM;AACL,iBAAW,EAAE,OAAO,KAAK;AAAA,IAC3B;AAAA,IACA,CAAC,QAAQ;AAAA,EACX;AAEA,QAAM,qBAAqB,aAAAA,QAAM;AAAA,IAC/B,CAAC,MAAM;AACL,UAAI,EAAE,QAAQ,UAAU;AACtB,gBAAQ;AACR,0BAAkB;AAAA,MACpB;AAAA,IACF;AAAA,IACA,CAAC,SAAS,iBAAiB;AAAA,EAC7B;AAEA,QAAM,oBAAoB,aAAAA,QAAM;AAAA,IAC9B,CAAC,cAAiC;AAChC,sCAAU,YAAY,kBAAkB,EAAE,SAAS;AACnD,aAAO,SAAS;AAAA,IAClB;AAAA,IACA,CAAC,QAAQ,UAAU;AAAA,EACrB;AAEA,QAAM,UAAU,GAAG,WAAW;AAC9B,QAAM,UAAU,GAAG,WAAW;AAC9B,SAAO,aAAAA,QAAM;AAAA,IACX,OAAO;AAAA,MACL;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,IACA;AAAA,MACE;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,EACF;AACF;",
|
|
6
|
+
"names": ["React"]
|
|
7
|
+
}
|
|
@@ -36,16 +36,16 @@ module.exports = __toCommonJS(styles_exports);
|
|
|
36
36
|
var React = __toESM(require("react"));
|
|
37
37
|
var import_ds_system = require("@elliemae/ds-system");
|
|
38
38
|
var import_ds_grid = require("@elliemae/ds-grid");
|
|
39
|
-
var
|
|
39
|
+
var import_constants = require("../../constants/index.js");
|
|
40
40
|
const StyledMenubarContainer = (0, import_ds_system.styled)("div", {
|
|
41
|
-
name:
|
|
42
|
-
slot:
|
|
41
|
+
name: import_constants.DSGlobalHeaderName,
|
|
42
|
+
slot: import_constants.GLOBAL_HEADER_SLOTS.MENUBAR_CONTAINER
|
|
43
43
|
})`
|
|
44
44
|
${({ withSpan, theme }) => withSpan && !theme.layoutMode ? "grid-column: span 2;" : ""}
|
|
45
45
|
`;
|
|
46
|
-
const StyledList = (0, import_ds_system.styled)(import_ds_grid.Grid, { name:
|
|
46
|
+
const StyledList = (0, import_ds_system.styled)(import_ds_grid.Grid, { name: import_constants.DSGlobalHeaderName, slot: import_constants.GLOBAL_HEADER_SLOTS.MENUBAR_LIST })`
|
|
47
47
|
padding: 0;
|
|
48
48
|
margin: 0;
|
|
49
49
|
`;
|
|
50
|
-
const StyledToolbarItem = (0, import_ds_system.styled)("div", { name:
|
|
50
|
+
const StyledToolbarItem = (0, import_ds_system.styled)("div", { name: import_constants.DSGlobalHeaderName, slot: import_constants.GLOBAL_HEADER_SLOTS.MENUBAR_ITEM })``;
|
|
51
51
|
//# sourceMappingURL=styles.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../src/parts/Toolbar/styles.tsx", "../../../../../../../scripts/build/transpile/react-shim.js"],
|
|
4
|
-
"sourcesContent": ["import { styled } from '@elliemae/ds-system';\nimport { Grid } from '@elliemae/ds-grid';\nimport { DSGlobalHeaderName,
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADAvB,uBAAuB;AACvB,qBAAqB;AACrB,
|
|
4
|
+
"sourcesContent": ["import { styled } from '@elliemae/ds-system';\nimport { Grid } from '@elliemae/ds-grid';\nimport { DSGlobalHeaderName, GLOBAL_HEADER_SLOTS } from '../../constants/index.js';\n\nexport const StyledMenubarContainer = styled('div', {\n name: DSGlobalHeaderName,\n slot: GLOBAL_HEADER_SLOTS.MENUBAR_CONTAINER,\n})<{ withSpan: boolean }>`\n ${({ withSpan, theme }) => (withSpan && !theme.layoutMode ? 'grid-column: span 2;' : '')}\n`;\n\nexport const StyledList = styled(Grid, { name: DSGlobalHeaderName, slot: GLOBAL_HEADER_SLOTS.MENUBAR_LIST })`\n padding: 0;\n margin: 0;\n`;\n\nexport const StyledToolbarItem = styled('div', { name: DSGlobalHeaderName, slot: GLOBAL_HEADER_SLOTS.MENUBAR_ITEM })``;\n", "import * as React from 'react';\nexport { React };\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADAvB,uBAAuB;AACvB,qBAAqB;AACrB,uBAAwD;AAEjD,MAAM,6BAAyB,yBAAO,OAAO;AAAA,EAClD,MAAM;AAAA,EACN,MAAM,qCAAoB;AAC5B,CAAC;AAAA,IACG,CAAC,EAAE,UAAU,MAAM,MAAO,YAAY,CAAC,MAAM,aAAa,yBAAyB,EAAG;AAAA;AAGnF,MAAM,iBAAa,yBAAO,qBAAM,EAAE,MAAM,qCAAoB,MAAM,qCAAoB,aAAa,CAAC;AAAA;AAAA;AAAA;AAKpG,MAAM,wBAAoB,yBAAO,OAAO,EAAE,MAAM,qCAAoB,MAAM,qCAAoB,aAAa,CAAC;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
package/dist/cjs/parts/styles.js
CHANGED
|
@@ -35,16 +35,16 @@ module.exports = __toCommonJS(styles_exports);
|
|
|
35
35
|
var React = __toESM(require("react"));
|
|
36
36
|
var import_ds_system = require("@elliemae/ds-system");
|
|
37
37
|
var import_ds_grid = require("@elliemae/ds-grid");
|
|
38
|
-
var
|
|
39
|
-
const Container = (0, import_ds_system.styled)(import_ds_grid.Grid, { name:
|
|
38
|
+
var import_constants = require("../constants/index.js");
|
|
39
|
+
const Container = (0, import_ds_system.styled)(import_ds_grid.Grid, { name: import_constants.DSGlobalHeaderName, slot: import_constants.GLOBAL_HEADER_SLOTS.CONTAINER })`
|
|
40
40
|
${({ bg, backgroundColor }) => bg || backgroundColor ? "" : "background-image: linear-gradient(45deg, #0f364a 0%, #1b6392 54%, #164566 100%);"}
|
|
41
41
|
color: ${({ theme }) => theme.colors.neutral["000"]};
|
|
42
42
|
min-height: 40px;
|
|
43
43
|
padding: 0 24px 0 12px;
|
|
44
44
|
`;
|
|
45
45
|
const StyledButton = (0, import_ds_system.styled)("button", {
|
|
46
|
-
name:
|
|
47
|
-
slot:
|
|
46
|
+
name: import_constants.DSGlobalHeaderName,
|
|
47
|
+
slot: import_constants.GLOBAL_HEADER_SLOTS.MENUBAR_ITEM_BUTTON
|
|
48
48
|
})`
|
|
49
49
|
height: 3.077rem;
|
|
50
50
|
width: 3.077rem;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/parts/styles.tsx", "../../../../../../scripts/build/transpile/react-shim.js"],
|
|
4
|
-
"sourcesContent": ["/* eslint-disable @typescript-eslint/no-unsafe-assignment */\nimport { styled } from '@elliemae/ds-system';\nimport { Grid } from '@elliemae/ds-grid';\nimport {
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADCvB,uBAAuB;AACvB,qBAAqB;AACrB,
|
|
4
|
+
"sourcesContent": ["/* eslint-disable @typescript-eslint/no-unsafe-assignment */\nimport { styled } from '@elliemae/ds-system';\nimport { Grid } from '@elliemae/ds-grid';\nimport { GLOBAL_HEADER_SLOTS, DSGlobalHeaderName } from '../constants/index.js';\n\nexport const Container = styled(Grid, { name: DSGlobalHeaderName, slot: GLOBAL_HEADER_SLOTS.CONTAINER })`\n ${({ bg, backgroundColor }) =>\n bg || backgroundColor ? '' : 'background-image: linear-gradient(45deg, #0f364a 0%, #1b6392 54%, #164566 100%);'}\n color: ${({ theme }) => theme.colors.neutral['000']};\n min-height: 40px;\n padding: 0 24px 0 12px;\n`;\n\nexport const StyledButton = styled('button', {\n name: DSGlobalHeaderName,\n slot: GLOBAL_HEADER_SLOTS.MENUBAR_ITEM_BUTTON,\n})`\n height: 3.077rem;\n width: 3.077rem;\n border: none;\n background-color: transparent;\n cursor: pointer;\n position: relative;\n outline: none;\n & .em-ds-icon svg {\n fill: ${({ theme }) => theme.colors.neutral['000']};\n }\n &:hover:not(:focus) {\n background-color: ${({ theme }) => theme.colors.brand[700]};\n outline: none;\n }\n &:focus {\n :before {\n content: '';\n position: absolute;\n z-index: 2;\n top: 2px;\n left: 2px;\n width: calc(100% - 4px);\n height: calc(100% - 4px);\n border: 2px solid ${({ theme }) => theme.colors.neutral['000']};\n border-radius: 4px;\n }\n }\n`;\n", "import * as React from 'react';\nexport { React };\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADCvB,uBAAuB;AACvB,qBAAqB;AACrB,uBAAwD;AAEjD,MAAM,gBAAY,yBAAO,qBAAM,EAAE,MAAM,qCAAoB,MAAM,qCAAoB,UAAU,CAAC;AAAA,IACnG,CAAC,EAAE,IAAI,gBAAgB,MACvB,MAAM,kBAAkB,KAAK,kFAAkF;AAAA,WACxG,CAAC,EAAE,MAAM,MAAM,MAAM,OAAO,QAAQ,KAAK,CAAC;AAAA;AAAA;AAAA;AAK9C,MAAM,mBAAe,yBAAO,UAAU;AAAA,EAC3C,MAAM;AAAA,EACN,MAAM,qCAAoB;AAC5B,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,YASW,CAAC,EAAE,MAAM,MAAM,MAAM,OAAO,QAAQ,KAAK,CAAC;AAAA;AAAA;AAAA,wBAG9B,CAAC,EAAE,MAAM,MAAM,MAAM,OAAO,MAAM,GAAG,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,0BAYpC,CAAC,EAAE,MAAM,MAAM,MAAM,OAAO,QAAQ,KAAK,CAAC;AAAA;AAAA;AAAA;AAAA;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -36,6 +36,7 @@ __export(react_desc_prop_types_exports, {
|
|
|
36
36
|
module.exports = __toCommonJS(react_desc_prop_types_exports);
|
|
37
37
|
var React = __toESM(require("react"));
|
|
38
38
|
var import_ds_props_helpers = require("@elliemae/ds-props-helpers");
|
|
39
|
+
var import_constants = require("./constants/index.js");
|
|
39
40
|
const noop = () => null;
|
|
40
41
|
const defaultProps = {
|
|
41
42
|
breadcrumb: [],
|
|
@@ -44,6 +45,7 @@ const defaultProps = {
|
|
|
44
45
|
Logo: noop
|
|
45
46
|
};
|
|
46
47
|
const DSGlobalHeaderPropTypes = {
|
|
48
|
+
...(0, import_ds_props_helpers.getPropsPerSlotPropTypes)(import_constants.DSGlobalHeaderName, import_constants.GLOBAL_HEADER_SLOTS),
|
|
47
49
|
...import_ds_props_helpers.globalAttributesPropTypes,
|
|
48
50
|
...import_ds_props_helpers.xstyledPropTypes,
|
|
49
51
|
CustomNavigation: import_ds_props_helpers.PropTypes.func.description(
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/react-desc-prop-types.ts", "../../../../../scripts/build/transpile/react-shim.js"],
|
|
4
|
-
"sourcesContent": ["/* eslint-disable max-lines */\nimport type { DSAppPicker } from '@elliemae/ds-app-picker';\nimport type { DSPropTypesSchema, GlobalAttributesT, ValidationMap, XstyledProps } from '@elliemae/ds-props-helpers';\nimport { PropTypes, globalAttributesPropTypes, xstyledPropTypes } from '@elliemae/ds-props-helpers';\nimport type React from 'react';\n\nconst noop = () => null;\n\nexport const defaultProps = {\n breadcrumb: [],\n toolbar: [],\n LogoWithBrand: noop,\n Logo: noop,\n};\n\nexport declare namespace DSGlobalHeaderT {\n /* *************************************************************************************\n \"Breadcrumb widget\" configuration types\n ****************************************************************************************\n The breadcrumb items ARE SPREADING GLOBAL PROPS!!!\n + The breadcrumb items have a logic that force the onClick to be invoked on spacebar/enter too\n forcing it even if not the standard browser behaviour as per our buttons too\n ************************************************************************************** */\n export interface BreadcrumbItemOptionals {\n hasNext?: boolean;\n isSelected?: boolean;\n onClick?: (event: React.MouseEvent | React.KeyboardEvent) => void;\n }\n export interface BreadcrumbItemRequired {\n label: string;\n }\n export interface BreadcrumbItemOptionalsGlobals\n extends Omit<GlobalAttributesT, keyof BreadcrumbItemOptionals | keyof BreadcrumbItemRequired> {}\n\n export interface BreadcrumbItem\n extends BreadcrumbItemRequired,\n BreadcrumbItemOptionals,\n BreadcrumbItemOptionalsGlobals {}\n /* *************************************************************************************\n \"Toolbar widget\" configuration types\n ****************************************************************************************\n The toolbar item can be mainly of 4 different types\n - app-picker \n more or less map to ds-app-picker interface\n - popup-menu\n should more less map to dropdownmenu-v2 but should be changed to menu-button when possible\n - search-toggle\n a custom ad hoc implementation that expands in place and expose an input text,\n kinda problematic and force-added due to unrestrained \"yes man\" attitude with PM/PO\n we will be suggesting against using it officially in the later releases and try to find a better solution.\n - custom\n a way to allow app to provide their own render props along other pre-configured widgets out of the box\n ************************************************************************************** */\n\n /* *************************************************************************************\n toolbar -> type === 'custom'\n ************************************************************************************** */\n export interface ToolbarCustomComponentProps {\n item: Record<string, unknown> & {\n type: 'custom';\n CustomComponent: React.ComponentType<ToolbarCustomComponentProps>;\n };\n setRef: (ref: HTMLElement | null) => void;\n }\n export interface ToolbarCustomItem extends Record<string, unknown> {\n type: 'custom';\n label: string;\n CustomComponent: React.ComponentType<ToolbarCustomComponentProps>;\n }\n /* *************************************************************************************\n toolbar -> type === 'ds-search-toggle'\n ************************************************************************************** */\n // this props are actually required for the out-of-the-box to actually do what it needs to do\n // it's meant to be provided from the application, so this is kind of a weird way to do controlled components\n export interface ToggleSearchComponentProps {\n onNext: () => void;\n onPrevious: () => void;\n currentResultIndex: number;\n totalResults: number;\n placeholder: string;\n value: string;\n onChange: () => void;\n onBlur: () => void;\n onClear: () => void;\n isOpen: boolean;\n onKeyDown: (event: React.KeyboardEvent) => void;\n onClick: (event: React.MouseEvent) => void;\n triggerRef: React.MutableRefObject<HTMLButtonElement>;\n searchContainerRef: React.MutableRefObject<HTMLDivElement>;\n }\n // WE ARE SPREADING GLOBAL PROPS!!!\n export interface SearchToggleProps extends GlobalAttributesT {\n setRef: (ref: HTMLElement) => void;\n componentProps: ToggleSearchComponentProps;\n }\n export interface ToolbarSearchToggleItem {\n type: 'ds-search-toggle';\n label: string;\n componentProps: ToggleSearchComponentProps;\n }\n /* *************************************************************************************\n toolbar -> type === 'ds-popup-menu'\n ************************************************************************************** */\n\n // WE ARE SPREADING GLOBAL PROPS!!!\n // WE ARE ALSO OVERRIDING SOME GLOBAL KEYS!\n export interface PopupMenuContentItem extends Omit<GlobalAttributesT, 'type' | 'label' | 'onClick'> {\n type?: 'separator' | 'custom';\n Icon?: React.ComponentType<{ fill?: string; size?: string }>;\n label?: string;\n onClick?: (event: React.MouseEvent) => void;\n closeOnClick?: boolean;\n Content?: React.ComponentType;\n }\n export interface PopupMenuComponentProps {\n onClickOutside?: (e: MouseEvent | TouchEvent) => void;\n onKeyPress: (event: React.KeyboardEvent) => void;\n popupOnKeyPress: (event: React.KeyboardEvent) => void;\n isOpen: boolean;\n options: PopupMenuContentItem[];\n closeOnClick: boolean;\n }\n // this is the only type that was pre-existing (even if differently defined)\n // and that's why it doesn't include Toolbar at the start\n // WE ARE SPREADING GLOBAL PROPS!!!\n // WE ARE ALSO OVERRIDING SOME GLOBAL KEYS!\n export interface PopupMenuItem extends Omit<GlobalAttributesT, 'type' | 'label' | 'onClick'> {\n type: 'ds-popup-menu';\n Icon?: React.ComponentType<{ fill?: string; size?: string }>;\n label?: string;\n onClick?: (event: React.MouseEvent) => void;\n Content?: React.ComponentType;\n componentProps: PopupMenuComponentProps;\n }\n\n export interface PopupMenuContentProps {\n options: PopupMenuContentItem[];\n onItemClick: () => void;\n onClose: () => void;\n popupOnKeyPress: (event: React.KeyboardEvent) => void;\n setIsOpen: React.Dispatch<React.SetStateAction<boolean>>;\n }\n // WE ARE SPREADING GLOBAL PROPS!!!\n // WE ARE ALSO OVERRIDING SOME GLOBAL KEYS!\n export interface PopupProps extends Omit<GlobalAttributesT, 'title' | 'label' | 'onClick'> {\n Icon?: React.ComponentType<{ fill?: string; size?: string }>;\n onClick?: (event: React.MouseEvent) => void;\n setRef: (ref: HTMLElement) => void;\n componentProps: PopupMenuComponentProps;\n title?: string; // this was probably not intended, but removing this means the HTML will not print the title={label}\n // keeping this for now, if A11y says otherwise we will do the proper steps to remove it\n }\n\n /* *************************************************************************************\n toolbar -> type === 'ds-app-picker'\n ************************************************************************************** */\n export type AppPickerComponentProps = React.ComponentProps<typeof DSAppPicker> & {\n triggerOnClick?: React.MouseEventHandler<HTMLButtonElement>;\n };\n // WE ARE SPREADING GLOBAL PROPS!!!\n // WE ARE ALSO OVERRIDING SOME GLOBAL KEYS!\n export interface AppPickerProps extends Omit<GlobalAttributesT, 'label'> {\n label: string;\n componentProps: AppPickerComponentProps;\n }\n // WE ARE SPREADING GLOBAL PROPS!!!\n // WE ARE ALSO OVERRIDING SOME GLOBAL KEYS!\n export interface ToolbarAppPickerItem extends Omit<GlobalAttributesT, 'type' | 'label'> {\n type: 'ds-app-picker';\n label: string;\n componentProps: AppPickerComponentProps;\n }\n\n /* *************************************************************************************\n toolbar -> type === undefined (fallback default)\n ************************************************************************************** */\n // WE ARE SPREADING GLOBAL PROPS!!!\n // WE ARE ALSO OVERRIDING SOME GLOBAL KEYS!\n export interface ToolbarItemTypelessDefault extends Omit<GlobalAttributesT, 'label'> {\n type?: undefined;\n label: string;\n Icon: React.ComponentType<{ fill?: string; size?: string }>;\n }\n\n export type ToolbarItem =\n | ToolbarCustomItem\n | ToolbarSearchToggleItem\n | ToolbarAppPickerItem\n | PopupMenuItem // this is the only type that was pre-existing and that's why it doesn't include Toolbar at the start\n | ToolbarItemTypelessDefault;\n\n export interface DefaultProps {\n Logo: React.ComponentType;\n LogoWithBrand: React.ComponentType;\n breadcrumb: DSGlobalHeaderT.BreadcrumbItem[];\n toolbar: DSGlobalHeaderT.ToolbarItem[];\n CustomNavigation: React.ComponentType;\n }\n\n export interface InternalProps extends DefaultProps, Omit<GlobalAttributesT, keyof DefaultProps>, XstyledProps {}\n\n export type Props = Partial<DSGlobalHeaderT.DefaultProps>;\n\n export interface Context {\n showIconOnly: boolean;\n fontDetector: number;\n setShowIconOnly: React.Dispatch<React.SetStateAction<boolean>>;\n instanceUID: string;\n globalHeaderToolbarGrid: string[];\n props: InternalProps;\n ownerProps: {\n getOwnerProps: () => Partial<DSGlobalHeaderT.DefaultProps>;\n getOwnerPropsArguments: () => object;\n };\n }\n}\n\nexport const DSGlobalHeaderPropTypes: DSPropTypesSchema<DSGlobalHeaderT.Props> = {\n ...globalAttributesPropTypes,\n ...xstyledPropTypes,\n CustomNavigation: PropTypes.func\n .description(\n 'Component to use instead of the standard breadcrumb out of the box configuration for custom scenarios',\n )\n .defaultValue('() => JSX.Element'),\n Logo: PropTypes.func\n .description('Global Header Logo to render. Logo and LogoWithBrand are going to swap during window resizing.')\n .defaultValue('() => JSX.Element'),\n LogoWithBrand: PropTypes.func\n .description(\n 'Global Header Logo With Brand title to render. Logo and LogoWithBrand are going to swap during window resizing.',\n )\n .defaultValue('() => JSX.Element'),\n breadcrumb: PropTypes.arrayOf(\n PropTypes.shape({\n label: PropTypes.string.description('breadrcrumb item label'),\n hasNext: PropTypes.bool.description('whether the item has a child or not'),\n isSelected: PropTypes.bool.description('whether the item is selected or not'),\n onClick: PropTypes.func.description('Callback executed on click'),\n }),\n )\n .description('Breadcrumb items to display. Max 3 levels. Compatible with GlobalAttributes.')\n .defaultValue('[]'),\n toolbar: PropTypes.arrayOf(\n PropTypes.shape({\n label: PropTypes.string.description('title tag description'),\n type: PropTypes.oneOf(['ds-app-picker', 'ds-popup-menu', 'ds-search-toggle', 'custom']).description(\n 'use to select one of the out-of-the-box types of items',\n ),\n componentProps: PropTypes.object.description('props of out-of-the-box component'),\n Icon: PropTypes.func.description('Icon to display'),\n onClick: PropTypes.func.description('Callback executed on click'),\n }),\n )\n .description('Toolbar items. Compatible with GlobalAttributes.')\n .defaultValue('[]'),\n};\n// kept for legacy reasons, this is now named differently, but we want no breaking changes.\nexport const propTypes = DSGlobalHeaderPropTypes;\n\nexport const DSGlobalHeaderPropTypesSchema = DSGlobalHeaderPropTypes as unknown as ValidationMap<DSGlobalHeaderT.Props>;\n", "import * as React from 'react';\nexport { React };\n"],
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADGvB,
|
|
4
|
+
"sourcesContent": ["/* eslint-disable max-lines */\nimport type { DSAppPicker } from '@elliemae/ds-app-picker';\nimport type { DSPropTypesSchema, GlobalAttributesT, ValidationMap, XstyledProps } from '@elliemae/ds-props-helpers';\nimport {\n PropTypes,\n globalAttributesPropTypes,\n getPropsPerSlotPropTypes,\n xstyledPropTypes,\n} from '@elliemae/ds-props-helpers';\nimport { type TypescriptHelpersT } from '@elliemae/ds-typescript-helpers';\nimport type React from 'react';\nimport { DSGlobalHeaderName, GLOBAL_HEADER_SLOTS } from './constants/index.js';\n\nconst noop = () => null;\n\nexport const defaultProps = {\n breadcrumb: [],\n toolbar: [],\n LogoWithBrand: noop,\n Logo: noop,\n};\n\nexport declare namespace DSGlobalHeaderT {\n export interface Context {\n showIconOnly: boolean;\n fontDetector: number;\n setShowIconOnly: React.Dispatch<React.SetStateAction<boolean>>;\n instanceUID: string;\n globalHeaderToolbarGrid: string[];\n props: InternalProps;\n ownerProps: {\n getOwnerProps: () => Partial<DSGlobalHeaderT.DefaultProps>;\n getOwnerPropsArguments: () => object;\n };\n }\n /* *************************************************************************************\n \"Breadcrumb widget\" configuration types\n ****************************************************************************************\n The breadcrumb items ARE SPREADING GLOBAL PROPS!!!\n + The breadcrumb items have a logic that force the onClick to be invoked on spacebar/enter too\n forcing it even if not the standard browser behaviour as per our buttons too\n ************************************************************************************** */\n export interface BreadcrumbItemOptionals {\n hasNext?: boolean;\n isSelected?: boolean;\n onClick?: (event: React.MouseEvent | React.KeyboardEvent) => void;\n }\n export interface BreadcrumbItemRequired {\n label: string;\n }\n export interface BreadcrumbItemOptionalsGlobals\n extends Omit<GlobalAttributesT, keyof BreadcrumbItemOptionals | keyof BreadcrumbItemRequired> {}\n\n export interface BreadcrumbItem\n extends BreadcrumbItemRequired,\n BreadcrumbItemOptionals,\n BreadcrumbItemOptionalsGlobals {}\n /* *************************************************************************************\n \"Toolbar widget\" configuration types\n ****************************************************************************************\n The toolbar item can be mainly of 4 different types\n - app-picker \n more or less map to ds-app-picker interface\n - popup-menu\n should more less map to dropdownmenu-v2 but should be changed to menu-button when possible\n - search-toggle\n a custom ad hoc implementation that expands in place and expose an input text,\n kinda problematic and force-added due to unrestrained \"yes man\" attitude with PM/PO\n we will be suggesting against using it officially in the later releases and try to find a better solution.\n - custom\n a way to allow app to provide their own render props along other pre-configured widgets out of the box\n ************************************************************************************** */\n\n /* *************************************************************************************\n toolbar -> type === 'custom'\n ************************************************************************************** */\n export interface ToolbarCustomComponentProps {\n item: Record<string, unknown> & {\n type: 'custom';\n CustomComponent: React.ComponentType<ToolbarCustomComponentProps>;\n };\n setRef: (ref: HTMLElement | null) => void;\n }\n export interface ToolbarCustomItem extends Record<string, unknown> {\n type: 'custom';\n label: string;\n CustomComponent: React.ComponentType<ToolbarCustomComponentProps>;\n }\n /* *************************************************************************************\n toolbar -> type === 'ds-search-toggle'\n ************************************************************************************** */\n // this props are actually required for the out-of-the-box to actually do what it needs to do\n // it's meant to be provided from the application, so this is kind of a weird way to do controlled components\n export interface ToggleSearchComponentProps {\n onNext: () => void;\n onPrevious: () => void;\n currentResultIndex: number;\n totalResults: number;\n placeholder: string;\n value: string;\n onChange: (value: string) => void;\n onBlur?: () => void;\n onClear: () => void;\n isOpen: boolean;\n onKeyDown: (event: React.KeyboardEvent) => void;\n onClick: (event: React.MouseEvent) => void;\n triggerRef: React.MutableRefObject<HTMLButtonElement>;\n searchContainerRef: React.MutableRefObject<HTMLDivElement>;\n }\n // WE ARE SPREADING GLOBAL PROPS!!!\n export interface SearchToggleProps extends GlobalAttributesT {\n setRef: (ref: HTMLButtonElement | null) => void;\n label: string;\n componentProps: ToggleSearchComponentProps;\n // https://jira.elliemae.io/browse/PUI-17852\n // - Generic aria-labels\n // -> allows users to specify a custom aria-label when the search toggle is expanded\n // -> it's an incremental change, so its \"optional\", we fall back to the previous hardcoded \"Close search\" if not provided\n // but authors are encouraged to improve the Aria-label with context-specific information when possible, to improve the overall accessibility of the component.\n ariaLabelExpanded?: string;\n // aria-controls needs to point to a DOM id, we need to make sure there are no conflicts in case of multiple search toggles on the same page\n instanceUID: Context['instanceUID'];\n }\n export interface ToolbarSearchToggleItem {\n type: 'ds-search-toggle';\n label: string;\n componentProps: ToggleSearchComponentProps;\n }\n /* *************************************************************************************\n toolbar -> type === 'ds-popup-menu'\n ************************************************************************************** */\n\n // WE ARE SPREADING GLOBAL PROPS!!!\n // WE ARE ALSO OVERRIDING SOME GLOBAL KEYS!\n export interface PopupMenuContentItem extends Omit<GlobalAttributesT, 'type' | 'label' | 'onClick'> {\n type?: 'separator' | 'custom';\n Icon?: React.ComponentType<{ fill?: string; size?: string }>;\n label?: string;\n onClick?: (event: React.MouseEvent) => void;\n closeOnClick?: boolean;\n Content?: React.ComponentType;\n }\n export interface PopupMenuComponentProps {\n onClickOutside?: (e: MouseEvent | TouchEvent) => void;\n onKeyPress: (event: React.KeyboardEvent) => void;\n popupOnKeyPress: (event: React.KeyboardEvent) => void;\n isOpen: boolean;\n options: PopupMenuContentItem[];\n closeOnClick: boolean;\n }\n // this is the only type that was pre-existing (even if differently defined)\n // and that's why it doesn't include Toolbar at the start\n // WE ARE SPREADING GLOBAL PROPS!!!\n // WE ARE ALSO OVERRIDING SOME GLOBAL KEYS!\n export interface PopupMenuItem extends Omit<GlobalAttributesT, 'type' | 'label' | 'onClick'> {\n type: 'ds-popup-menu';\n Icon?: React.ComponentType<{ fill?: string; size?: string }>;\n label?: string;\n onClick?: (event: React.MouseEvent) => void;\n Content?: React.ComponentType;\n componentProps: PopupMenuComponentProps;\n }\n\n export interface PopupMenuContentProps {\n options: PopupMenuContentItem[];\n onItemClick: () => void;\n onClose: () => void;\n popupOnKeyPress: (event: React.KeyboardEvent) => void;\n setIsOpen: React.Dispatch<React.SetStateAction<boolean>>;\n ownerProps: {\n getOwnerProps: () => Partial<DSGlobalHeaderT.DefaultProps>;\n getOwnerPropsArguments: () => object;\n };\n }\n // WE ARE SPREADING GLOBAL PROPS!!!\n // WE ARE ALSO OVERRIDING SOME GLOBAL KEYS!\n export interface PopupProps extends Omit<GlobalAttributesT, 'title' | 'label' | 'onClick'> {\n Icon?: React.ComponentType<{ fill?: string; size?: string }>;\n onClick?: (event: React.MouseEvent) => void;\n setRef: (ref: HTMLElement) => void;\n componentProps: PopupMenuComponentProps;\n title?: string; // this was probably not intended, but removing this means the HTML will not print the title={label}\n // keeping this for now, if A11y says otherwise we will do the proper steps to remove it\n ownerProps: {\n getOwnerProps: () => Partial<DSGlobalHeaderT.DefaultProps>;\n getOwnerPropsArguments: () => object;\n };\n }\n\n /* *************************************************************************************\n toolbar -> type === 'ds-app-picker'\n ************************************************************************************** */\n export type AppPickerComponentProps = React.ComponentProps<typeof DSAppPicker> & {\n triggerOnClick?: React.MouseEventHandler<HTMLButtonElement>;\n };\n // WE ARE SPREADING GLOBAL PROPS!!!\n // WE ARE ALSO OVERRIDING SOME GLOBAL KEYS!\n export interface AppPickerProps extends Omit<GlobalAttributesT, 'label'> {\n label: string;\n componentProps: AppPickerComponentProps;\n }\n // WE ARE SPREADING GLOBAL PROPS!!!\n // WE ARE ALSO OVERRIDING SOME GLOBAL KEYS!\n export interface ToolbarAppPickerItem extends Omit<GlobalAttributesT, 'type' | 'label'> {\n type: 'ds-app-picker';\n label: string;\n componentProps: AppPickerComponentProps;\n }\n\n /* *************************************************************************************\n toolbar -> type === undefined (fallback default)\n ************************************************************************************** */\n // WE ARE SPREADING GLOBAL PROPS!!!\n // WE ARE ALSO OVERRIDING SOME GLOBAL KEYS!\n export interface ToolbarItemTypelessDefault extends Omit<GlobalAttributesT, 'label'> {\n type?: undefined;\n label: string;\n Icon: React.ComponentType<{ fill?: string; size?: string }>;\n }\n\n export type ToolbarItem =\n | ToolbarCustomItem\n | ToolbarSearchToggleItem\n | ToolbarAppPickerItem\n | PopupMenuItem // this is the only type that was pre-existing and that's why it doesn't include Toolbar at the start\n | ToolbarItemTypelessDefault;\n\n export type SlotFunctionArguments = {\n dsGlobalheaderRoot: () => Record<string, never>;\n dsGlobalheaderLogoContainer: () => Record<string, never>;\n dsGlobalheaderBreadcrumbContainer: () => Record<string, never>;\n dsGlobalheaderBreadcrumbPipe: () => Record<string, never>;\n dsGlobalheaderBreadcrumbChevron: () => Record<string, never>;\n dsGlobalheaderBreadcrumbList: () => Record<string, never>;\n dsGlobalheaderBreadcrumbItem: () => Record<string, never>;\n dsGlobalheaderBreadcrumbItemLink: () => Record<string, never>;\n dsGlobalheaderBreadcrumbItemLinkLabel: () => Record<string, never>;\n dsGlobalheaderMenubarContainer: () => Record<string, never>;\n dsGlobalheaderMenubarList: () => Record<string, never>;\n dsGlobalheaderMenubarItem: () => Record<string, never>;\n dsGlobalheaderMenubarItemButton: () => Record<string, never>;\n dsGlobalheaderMenubarItemPopupmenuList: () => Record<string, never>;\n dsGlobalheaderMenubarItemPopupmenuItem: () => Record<string, never>;\n dsGlobalheaderMenubarItemPopupmenuItemButton: () => Record<string, never>;\n dsGlobalheaderMenubarItemPopupmenuSeparator: () => Record<string, never>;\n dsGlobalheaderMenubarItemPopupmenuItemLabel: () => Record<string, never>;\n dsGlobalheaderMenubarItemSearchtoggleContainer: () => Record<string, never>;\n dsGlobalheaderSearchtoggleSpinbuttonWrapper: () => Record<string, never>;\n dsGlobalheaderSearchtoggleSpinbuttonText: () => Record<string, never>;\n dsGlobalheaderSearchtoggleSpinbuttonSeparator: () => Record<string, never>;\n dsGlobalheaderSearchtoggleSpinbuttonPrev: () => Record<string, never>;\n dsGlobalheaderSearchtoggleSpinbuttonNext: () => Record<string, never>;\n dsGlobalheaderSearchtoggleTextinput: () => Record<string, never>;\n dsGlobalheaderSearchtoggleTriggerButton: () => Record<string, never>;\n dsGlobalheaderSearchtoggleExpandedContentWrapper: () => Record<string, never>;\n };\n\n export interface RequiredProps {}\n\n export interface DefaultProps {\n Logo: React.ComponentType;\n LogoWithBrand: React.ComponentType;\n breadcrumb: DSGlobalHeaderT.BreadcrumbItem[];\n toolbar: DSGlobalHeaderT.ToolbarItem[];\n CustomNavigation: React.ComponentType;\n }\n\n export interface OptionalProps\n extends TypescriptHelpersT.PropsForGlobalOnSlots<typeof DSGlobalHeaderName, typeof GLOBAL_HEADER_SLOTS> {}\n\n export interface Props\n extends Partial<DefaultProps>,\n OptionalProps,\n Omit<GlobalAttributesT<HTMLElement>, keyof DefaultProps | keyof XstyledProps>,\n XstyledProps,\n RequiredProps {}\n\n export interface InternalProps\n extends DefaultProps,\n OptionalProps,\n Omit<GlobalAttributesT<HTMLElement>, keyof DefaultProps | keyof XstyledProps>,\n XstyledProps,\n RequiredProps {}\n}\n\nexport const DSGlobalHeaderPropTypes: DSPropTypesSchema<DSGlobalHeaderT.Props> = {\n ...getPropsPerSlotPropTypes(DSGlobalHeaderName, GLOBAL_HEADER_SLOTS),\n ...globalAttributesPropTypes,\n ...xstyledPropTypes,\n CustomNavigation: PropTypes.func\n .description(\n 'Component to use instead of the standard breadcrumb out of the box configuration for custom scenarios',\n )\n .defaultValue('() => JSX.Element'),\n Logo: PropTypes.func\n .description('Global Header Logo to render. Logo and LogoWithBrand are going to swap during window resizing.')\n .defaultValue('() => JSX.Element'),\n LogoWithBrand: PropTypes.func\n .description(\n 'Global Header Logo With Brand title to render. Logo and LogoWithBrand are going to swap during window resizing.',\n )\n .defaultValue('() => JSX.Element'),\n breadcrumb: PropTypes.arrayOf(\n PropTypes.shape({\n label: PropTypes.string.description('breadrcrumb item label'),\n hasNext: PropTypes.bool.description('whether the item has a child or not'),\n isSelected: PropTypes.bool.description('whether the item is selected or not'),\n onClick: PropTypes.func.description('Callback executed on click'),\n }),\n )\n .description('Breadcrumb items to display. Max 3 levels. Compatible with GlobalAttributes.')\n .defaultValue('[]'),\n toolbar: PropTypes.arrayOf(\n PropTypes.shape({\n label: PropTypes.string.description('title tag description'),\n type: PropTypes.oneOf(['ds-app-picker', 'ds-popup-menu', 'ds-search-toggle', 'custom']).description(\n 'use to select one of the out-of-the-box types of items',\n ),\n componentProps: PropTypes.object.description('props of out-of-the-box component'),\n Icon: PropTypes.func.description('Icon to display'),\n onClick: PropTypes.func.description('Callback executed on click'),\n }),\n )\n .description('Toolbar items. Compatible with GlobalAttributes.')\n .defaultValue('[]'),\n};\n// kept for legacy reasons, this is now named differently, but we want no breaking changes.\nexport const propTypes = DSGlobalHeaderPropTypes;\n\nexport const DSGlobalHeaderPropTypesSchema = DSGlobalHeaderPropTypes as unknown as ValidationMap<DSGlobalHeaderT.Props>;\n", "import * as React from 'react';\nexport { React };\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADGvB,8BAKO;AAGP,uBAAwD;AAExD,MAAM,OAAO,MAAM;AAEZ,MAAM,eAAe;AAAA,EAC1B,YAAY,CAAC;AAAA,EACb,SAAS,CAAC;AAAA,EACV,eAAe;AAAA,EACf,MAAM;AACR;AAyQO,MAAM,0BAAoE;AAAA,EAC/E,OAAG,kDAAyB,qCAAoB,oCAAmB;AAAA,EACnE,GAAG;AAAA,EACH,GAAG;AAAA,EACH,kBAAkB,kCAAU,KACzB;AAAA,IACC;AAAA,EACF,EACC,aAAa,mBAAmB;AAAA,EACnC,MAAM,kCAAU,KACb,YAAY,gGAAgG,EAC5G,aAAa,mBAAmB;AAAA,EACnC,eAAe,kCAAU,KACtB;AAAA,IACC;AAAA,EACF,EACC,aAAa,mBAAmB;AAAA,EACnC,YAAY,kCAAU;AAAA,IACpB,kCAAU,MAAM;AAAA,MACd,OAAO,kCAAU,OAAO,YAAY,wBAAwB;AAAA,MAC5D,SAAS,kCAAU,KAAK,YAAY,qCAAqC;AAAA,MACzE,YAAY,kCAAU,KAAK,YAAY,qCAAqC;AAAA,MAC5E,SAAS,kCAAU,KAAK,YAAY,4BAA4B;AAAA,IAClE,CAAC;AAAA,EACH,EACG,YAAY,8EAA8E,EAC1F,aAAa,IAAI;AAAA,EACpB,SAAS,kCAAU;AAAA,IACjB,kCAAU,MAAM;AAAA,MACd,OAAO,kCAAU,OAAO,YAAY,uBAAuB;AAAA,MAC3D,MAAM,kCAAU,MAAM,CAAC,iBAAiB,iBAAiB,oBAAoB,QAAQ,CAAC,EAAE;AAAA,QACtF;AAAA,MACF;AAAA,MACA,gBAAgB,kCAAU,OAAO,YAAY,mCAAmC;AAAA,MAChF,MAAM,kCAAU,KAAK,YAAY,iBAAiB;AAAA,MAClD,SAAS,kCAAU,KAAK,YAAY,4BAA4B;AAAA,IAClE,CAAC;AAAA,EACH,EACG,YAAY,kDAAkD,EAC9D,aAAa,IAAI;AACtB;AAEO,MAAM,YAAY;AAElB,MAAM,gCAAgC;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -1,19 +1,18 @@
|
|
|
1
1
|
import * as React from "react";
|
|
2
2
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
3
|
-
import { useMemo } from "react";
|
|
4
3
|
import { Grid } from "@elliemae/ds-grid";
|
|
4
|
+
import { describe, useGetGlobalAttributes, useGetXstyledProps } from "@elliemae/ds-props-helpers";
|
|
5
5
|
import { useGetLayoutMode } from "@elliemae/ds-system";
|
|
6
|
-
import {
|
|
7
|
-
import { DSGlobalHeaderPropTypesSchema } from "./react-desc-prop-types.js";
|
|
8
|
-
import { GlobalHeaderLogo } from "./parts/Logo/GlobalHeaderLogo.js";
|
|
9
|
-
import { GlobalHeaderBreadcrumb } from "./parts/Breadcrumb/GlobalHeaderBreadcrumb.js";
|
|
10
|
-
import { GlobalHeaderToolbar } from "./parts/Toolbar/GlobalHeaderToolbar.js";
|
|
6
|
+
import { useMemo } from "react";
|
|
11
7
|
import { DSGlobalHeaderContext } from "./DSGlobalHeaderContext.js";
|
|
12
8
|
import { useGlobalHeader } from "./config/useGlobalHeader.js";
|
|
13
9
|
import { useValidateProps } from "./config/useValidateProps.js";
|
|
14
|
-
import { DSGlobalHeaderName } from "./
|
|
15
|
-
import {
|
|
10
|
+
import { DSGlobalHeaderName, FONT_DETECTOR, GLOBAL_HEADER_DATA_TESTID } from "./constants/index.js";
|
|
11
|
+
import { GlobalHeaderBreadcrumb } from "./parts/Breadcrumb/GlobalHeaderBreadcrumb.js";
|
|
12
|
+
import { GlobalHeaderLogo } from "./parts/Logo/GlobalHeaderLogo.js";
|
|
13
|
+
import { GlobalHeaderToolbar } from "./parts/Toolbar/GlobalHeaderToolbar.js";
|
|
16
14
|
import { Container } from "./parts/styles.js";
|
|
15
|
+
import { DSGlobalHeaderPropTypesSchema } from "./react-desc-prop-types.js";
|
|
17
16
|
const DSGlobalHeader = (props) => {
|
|
18
17
|
useValidateProps(props);
|
|
19
18
|
const ctx = useGlobalHeader(props);
|
|
@@ -54,7 +53,7 @@ const DSGlobalHeader = (props) => {
|
|
|
54
53
|
...xstyledAttrs,
|
|
55
54
|
...ownerProps,
|
|
56
55
|
forwardedAs: "header",
|
|
57
|
-
"data-testid":
|
|
56
|
+
"data-testid": GLOBAL_HEADER_DATA_TESTID.CONTAINER,
|
|
58
57
|
cols: cols2,
|
|
59
58
|
children: /* @__PURE__ */ jsxs(DSGlobalHeaderContext.Provider, { value: ctx, children: [
|
|
60
59
|
/* @__PURE__ */ jsxs(Grid, { cols, children: [
|