@czi-sds/components 22.17.1 → 23.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.cjs.d.ts +4 -3
- package/dist/index.cjs.js +53 -35
- package/dist/index.esm.d.ts +4 -3
- package/dist/index.esm.js +53 -35
- package/dist/tailwind.json +7 -6
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/variables.css +14 -12
- package/dist/variables.scss +7 -6
- package/package.json +2 -2
package/dist/index.cjs.d.ts
CHANGED
|
@@ -379,6 +379,7 @@ interface Spaces {
|
|
|
379
379
|
l: number;
|
|
380
380
|
xl: number;
|
|
381
381
|
xxl: number;
|
|
382
|
+
xxxl: number;
|
|
382
383
|
}
|
|
383
384
|
/**
|
|
384
385
|
* @deprecated
|
|
@@ -1087,7 +1088,7 @@ interface BannerExtraProps extends CommonThemeProps {
|
|
|
1087
1088
|
type ButtonType$0 = ButtonProps & {
|
|
1088
1089
|
bannerType: string;
|
|
1089
1090
|
} & CommonThemeProps;
|
|
1090
|
-
type BannerIntentType = "info" | "negative" | "notice" | "positive";
|
|
1091
|
+
type BannerIntentType = "accent" | "info" | "negative" | "notice" | "positive";
|
|
1091
1092
|
interface BannerProps extends BannerExtraProps {
|
|
1092
1093
|
children: React.ReactNode;
|
|
1093
1094
|
icon?: keyof IconNameToSizes | React.ReactElement<CustomSVGProps>;
|
|
@@ -1165,7 +1166,7 @@ interface ButtonToggleProps extends ButtonProps$0 {
|
|
|
1165
1166
|
declare const ButtonToggle: React.ForwardRefExoticComponent<Omit<ButtonToggleProps, "ref"> & React.RefAttributes<HTMLButtonElement>>;
|
|
1166
1167
|
declare const SDS_STAGE_OPEN = "open";
|
|
1167
1168
|
declare const SDS_STAGE_CLOSED = "closed";
|
|
1168
|
-
type CalloutIntentType = "info" | "negative" | "notice" | "positive";
|
|
1169
|
+
type CalloutIntentType = "accent" | "info" | "negative" | "notice" | "positive";
|
|
1169
1170
|
type CalloutSdsStyleType = "persistent" | "expandable" | "dismissible";
|
|
1170
1171
|
interface CalloutProps {
|
|
1171
1172
|
autoDismiss?: boolean | number;
|
|
@@ -2052,7 +2053,7 @@ interface NavigationJumpToProps extends NavigationJumpToExtraProps {
|
|
|
2052
2053
|
width?: CSSProperties["width"];
|
|
2053
2054
|
}
|
|
2054
2055
|
declare const NavigationJumpTo: React.ForwardRefExoticComponent<Omit<NavigationJumpToProps, "ref"> & React.RefAttributes<HTMLDivElement>>;
|
|
2055
|
-
type NotificationIntentType = "info" | "negative" | "positive" | "notice";
|
|
2056
|
+
type NotificationIntentType = "accent" | "info" | "negative" | "positive" | "notice";
|
|
2056
2057
|
interface NotificationProps {
|
|
2057
2058
|
autoDismiss?: boolean | number;
|
|
2058
2059
|
buttonOnClick?: (event: React.SyntheticEvent) => void;
|
package/dist/index.cjs.js
CHANGED
|
@@ -521,15 +521,16 @@ const Shadows = {
|
|
|
521
521
|
};
|
|
522
522
|
|
|
523
523
|
const Spaces = {
|
|
524
|
+
xxxs: 2,
|
|
525
|
+
xxs: 4,
|
|
526
|
+
xs: 6,
|
|
527
|
+
s: 8,
|
|
528
|
+
m: 12,
|
|
524
529
|
default: 12,
|
|
525
530
|
l: 16,
|
|
526
|
-
m: 12,
|
|
527
|
-
s: 8,
|
|
528
531
|
xl: 24,
|
|
529
|
-
|
|
530
|
-
|
|
531
|
-
xxs: 4,
|
|
532
|
-
xxxs: 2
|
|
532
|
+
xxl: 32,
|
|
533
|
+
xxxl: 40
|
|
533
534
|
};
|
|
534
535
|
|
|
535
536
|
const SDSLightThemeColors = {
|
|
@@ -9866,9 +9867,9 @@ const StyledPaper = styled__default.default(material.Paper, {
|
|
|
9866
9867
|
background-color: ${semanticColors?.base?.surface};
|
|
9867
9868
|
background-image: none;
|
|
9868
9869
|
box-shadow: ${shadows?.l};
|
|
9869
|
-
max-height: calc(100vh - ${2 * (spaces?.
|
|
9870
|
+
max-height: calc(100vh - ${2 * (spaces?.xxxl || 40)}px);
|
|
9870
9871
|
border-radius: ${corners?.xl}px;
|
|
9871
|
-
padding: ${isSmall ? spaces?.xl : spaces?.
|
|
9872
|
+
padding: ${isSmall ? spaces?.xl : spaces?.xxxl}px;
|
|
9872
9873
|
outline: 1px solid ${addOpacityToHex(semanticColors?.base?.borderSecondary || "#000000", 15)};
|
|
9873
9874
|
`;
|
|
9874
9875
|
}}
|
|
@@ -9918,7 +9919,7 @@ const StyledButton$1 = styled__default.default(Button) `
|
|
|
9918
9919
|
const { sdsSize } = props;
|
|
9919
9920
|
const isSmall = sdsSize === "small" || sdsSize === "medium";
|
|
9920
9921
|
const spaces = getSpaces(props);
|
|
9921
|
-
const right = isSmall ? spaces?.xl : spaces?.
|
|
9922
|
+
const right = isSmall ? spaces?.xl : spaces?.xxxl;
|
|
9922
9923
|
return `
|
|
9923
9924
|
right: ${right}px;
|
|
9924
9925
|
`;
|
|
@@ -10018,7 +10019,7 @@ const StyledDialogActions = styled__default.default(material.DialogActions, {
|
|
|
10018
10019
|
return `
|
|
10019
10020
|
justify-content: ${buttonPosition === "right" ? "flex-end" : "flex-start"};;
|
|
10020
10021
|
|
|
10021
|
-
margin-top: ${isSmall ? spaces?.xl : spaces?.
|
|
10022
|
+
margin-top: ${isSmall ? spaces?.xl : spaces?.xxxl}px;
|
|
10022
10023
|
|
|
10023
10024
|
&.${material.dialogActionsClasses.spacing} > :not(:first-of-type) {
|
|
10024
10025
|
margin-left: ${spaces?.m}px;
|
|
@@ -10125,16 +10126,16 @@ const getResponsivePadding = (props) => {
|
|
|
10125
10126
|
const spaces = getSpaces(props);
|
|
10126
10127
|
const breakpoints = getBreakpoints(props);
|
|
10127
10128
|
return react.css `
|
|
10128
|
-
padding: ${spaces?.
|
|
10129
|
+
padding: ${spaces?.xxxl}px
|
|
10129
10130
|
${overlayContainerMinMargin?.small || HeroMargins.SMALL};
|
|
10130
10131
|
|
|
10131
10132
|
${breakpoints?.up("md")} {
|
|
10132
|
-
padding: ${spaces?.
|
|
10133
|
+
padding: ${spaces?.xxxl}px
|
|
10133
10134
|
${overlayContainerMinMargin?.medium || HeroMargins.MEDIUM};
|
|
10134
10135
|
}
|
|
10135
10136
|
|
|
10136
10137
|
${breakpoints?.up("lg")} {
|
|
10137
|
-
padding: ${spaces?.
|
|
10138
|
+
padding: ${spaces?.xxxl}px
|
|
10138
10139
|
${overlayContainerMinMargin?.large || HeroMargins.LARGE};
|
|
10139
10140
|
}
|
|
10140
10141
|
`;
|
|
@@ -11315,7 +11316,7 @@ const LegendContainer = styled__default.default("div") `
|
|
|
11315
11316
|
`;
|
|
11316
11317
|
const LegendItem = styled__default.default("div") `
|
|
11317
11318
|
${(props) => {
|
|
11318
|
-
const { isSelected, disabled } = props;
|
|
11319
|
+
const { isSelected, disabled, isHovered } = props;
|
|
11319
11320
|
const spaces = getSpaces(props);
|
|
11320
11321
|
const semanticColors = getSemanticColors(props);
|
|
11321
11322
|
const corners = getCorners(props);
|
|
@@ -11326,7 +11327,7 @@ const LegendItem = styled__default.default("div") `
|
|
|
11326
11327
|
transition: background-color 0.2s ease-in-out;
|
|
11327
11328
|
padding: ${spaces?.xxxs}px ${spaces?.xxs}px;
|
|
11328
11329
|
border-radius: ${corners?.s}px;
|
|
11329
|
-
background-color: ${isSelected ? semanticColors?.base?.backgroundTertiary : "transparent"};
|
|
11330
|
+
background-color: ${isSelected ? semanticColors?.base?.backgroundTertiary : isHovered ? semanticColors?.base?.backgroundSecondary : "transparent"};
|
|
11330
11331
|
pointer-events: ${disabled ? "none" : "auto"};
|
|
11331
11332
|
|
|
11332
11333
|
&:hover {
|
|
@@ -11425,7 +11426,7 @@ const Legend = (props) => {
|
|
|
11425
11426
|
: hasSelection && !isSelected;
|
|
11426
11427
|
// Determine color: use colors prop, then item color, then fallback to gray
|
|
11427
11428
|
const itemColor = colors?.[index] || item.color || fallbackColor;
|
|
11428
|
-
return (jsxRuntime.jsxs(LegendItem, { onMouseEnter: () => handleMouseEnter(item, index), onMouseLeave: () => handleMouseLeave(item, index), onClick: () => handleClick(item, index), role: "button", tabIndex: item.disabled ? -1 : 0, "aria-label": `${item.name}${item.value ? `: ${item.value}` : ""}`, "aria-pressed": isSelected, "aria-disabled": item.disabled, isSelected: isSelected, disabled: item.disabled, children: [jsxRuntime.jsx(LegendIcon, { color: itemColor, isDimmed: isDimmed }), jsxRuntime.jsx(LegendLabel, { disabled: item.disabled, children: item.name }), showValues && item.value !== undefined && (jsxRuntime.jsx(LegendValue, { disabled: item.disabled, children: typeof item.value === "number"
|
|
11429
|
+
return (jsxRuntime.jsxs(LegendItem, { onMouseEnter: () => handleMouseEnter(item, index), onMouseLeave: () => handleMouseLeave(item, index), onClick: () => handleClick(item, index), role: "button", tabIndex: item.disabled ? -1 : 0, "aria-label": `${item.name}${item.value ? `: ${item.value}` : ""}`, "aria-pressed": isSelected, "aria-disabled": item.disabled, isSelected: isSelected, disabled: item.disabled, isHovered: isHovered, children: [jsxRuntime.jsx(LegendIcon, { color: itemColor, isDimmed: isDimmed }), jsxRuntime.jsx(LegendLabel, { disabled: item.disabled, children: item.name }), showValues && item.value !== undefined && (jsxRuntime.jsx(LegendValue, { disabled: item.disabled, children: typeof item.value === "number"
|
|
11429
11430
|
? item.value.toLocaleString()
|
|
11430
11431
|
: item.value }))] }, `${item.name}-${index}`));
|
|
11431
11432
|
}) })));
|
|
@@ -18346,6 +18347,7 @@ function NavigationFooter({ backgroundAppearance = "matchBackground", images, lo
|
|
|
18346
18347
|
|
|
18347
18348
|
/* eslint-disable sonarjs/cognitive-complexity */
|
|
18348
18349
|
/* eslint-disable sonarjs/no-duplicate-string */
|
|
18350
|
+
const TOOLBAR_HEIGHT = 48;
|
|
18349
18351
|
const doNotForwardProps$a = [
|
|
18350
18352
|
"hasInvertedStyle",
|
|
18351
18353
|
"isNarrow",
|
|
@@ -18361,7 +18363,7 @@ const doNotForwardProps$a = [
|
|
|
18361
18363
|
const StyledTopComponentSlot = styled__default.default("div") `
|
|
18362
18364
|
position: sticky;
|
|
18363
18365
|
top: 0;
|
|
18364
|
-
z-index:
|
|
18366
|
+
z-index: 2100;
|
|
18365
18367
|
`;
|
|
18366
18368
|
const StyledAppBar = styled__default.default(material.AppBar, {
|
|
18367
18369
|
shouldForwardProp: (prop) => ![...doNotForwardProps$a, "sdsStyle"].includes(prop)
|
|
@@ -18373,7 +18375,7 @@ const StyledAppBar = styled__default.default(material.AppBar, {
|
|
|
18373
18375
|
background-image: none;
|
|
18374
18376
|
max-width: 100%;
|
|
18375
18377
|
overflow-x: auto;
|
|
18376
|
-
z-index:
|
|
18378
|
+
z-index: 2100;
|
|
18377
18379
|
`;
|
|
18378
18380
|
}}
|
|
18379
18381
|
`;
|
|
@@ -18402,8 +18404,8 @@ const StyledToolbar = styled__default.default(material.Toolbar, {
|
|
|
18402
18404
|
const spaces = getSpaces(props);
|
|
18403
18405
|
return material.css `
|
|
18404
18406
|
&.MuiToolbar-root {
|
|
18405
|
-
min-height:
|
|
18406
|
-
max-height:
|
|
18407
|
+
min-height: ${TOOLBAR_HEIGHT}px;
|
|
18408
|
+
max-height: ${TOOLBAR_HEIGHT}px;
|
|
18407
18409
|
padding: ${spaces?.s}px ${spaces?.l}px;
|
|
18408
18410
|
|
|
18409
18411
|
${isNarrow && NarrowToolbar(props)}
|
|
@@ -18566,7 +18568,7 @@ const StyledTitleContainer = styled__default.default("div", {
|
|
|
18566
18568
|
color: ${props.hasInvertedStyle
|
|
18567
18569
|
? colors?.base.textPrimaryOnDark
|
|
18568
18570
|
: colors?.base.textPrimary};
|
|
18569
|
-
margin-right: ${spaces?.
|
|
18571
|
+
margin-right: ${spaces?.xxxl}px;
|
|
18570
18572
|
width: 100%;
|
|
18571
18573
|
|
|
18572
18574
|
${isNarrow && NarrowTitleContainer()}
|
|
@@ -18608,8 +18610,8 @@ const StyledPrimaryNavContainer = styled__default.default("div", {
|
|
|
18608
18610
|
const primaryNavPositionWithoutSearch = primaryNavPosition === "left" ? "flex-start" : "flex-end";
|
|
18609
18611
|
return material.css `
|
|
18610
18612
|
flex-direction: ${isNarrow ? "column" : "row"};
|
|
18611
|
-
gap: ${spaces?.
|
|
18612
|
-
margin-right: ${spaces?.
|
|
18613
|
+
gap: ${spaces?.xxxl}px;
|
|
18614
|
+
margin-right: ${spaces?.xxxl}px;
|
|
18613
18615
|
flex: 1;
|
|
18614
18616
|
justify-content: ${showSearch
|
|
18615
18617
|
? primaryNavPositionWithSearch
|
|
@@ -18736,14 +18738,14 @@ const NarrowButtonStyles = (props) => {
|
|
|
18736
18738
|
&::before {
|
|
18737
18739
|
content: "";
|
|
18738
18740
|
position: absolute;
|
|
18739
|
-
height: ${spaces?.
|
|
18741
|
+
height: ${spaces?.xxxl}px;
|
|
18740
18742
|
width: 100%;
|
|
18741
18743
|
background: linear-gradient(
|
|
18742
18744
|
to top,
|
|
18743
18745
|
${backgroundColor} 0%,
|
|
18744
18746
|
${backgroundColor}00 100%
|
|
18745
18747
|
);
|
|
18746
|
-
top: -${spaces?.
|
|
18748
|
+
top: -${spaces?.xxxl}px;
|
|
18747
18749
|
}
|
|
18748
18750
|
|
|
18749
18751
|
.MuiButton-icon .MuiSvgIcon-root {
|
|
@@ -18764,7 +18766,7 @@ const StyledButtonSection = styled__default.default("section", {
|
|
|
18764
18766
|
const spaces = getSpaces(props);
|
|
18765
18767
|
return material.css `
|
|
18766
18768
|
gap: ${spaces?.m}px;
|
|
18767
|
-
margin-left: ${spaces?.
|
|
18769
|
+
margin-left: ${spaces?.xxxl}px;
|
|
18768
18770
|
|
|
18769
18771
|
${isNarrow && NarrowButtonStyles(props)}
|
|
18770
18772
|
`;
|
|
@@ -18784,8 +18786,8 @@ const StyledDrawer$1 = styled__default.default(material.Drawer, {
|
|
|
18784
18786
|
width: 100%;
|
|
18785
18787
|
display: flex;
|
|
18786
18788
|
flex-direction: column;
|
|
18787
|
-
top: ${topOffset}px;
|
|
18788
|
-
height: calc(100% - ${topOffset}px);
|
|
18789
|
+
top: ${topOffset + TOOLBAR_HEIGHT}px;
|
|
18790
|
+
height: calc(100% - ${topOffset + TOOLBAR_HEIGHT}px);
|
|
18789
18791
|
justify-content: space-between;
|
|
18790
18792
|
}
|
|
18791
18793
|
`;
|
|
@@ -18835,7 +18837,7 @@ const DrawerAccordionStyles = (props) => {
|
|
|
18835
18837
|
&[aria-expanded="true"] {
|
|
18836
18838
|
position: sticky;
|
|
18837
18839
|
border-radius: 0;
|
|
18838
|
-
top:
|
|
18840
|
+
top: ${spaces?.s}px;
|
|
18839
18841
|
z-index: 11;
|
|
18840
18842
|
backdrop-filter: blur(0px);
|
|
18841
18843
|
color: ${textOpenColor};
|
|
@@ -19020,6 +19022,7 @@ const StyledMegaMenuDrawer = styled__default.default(material.Drawer, {
|
|
|
19020
19022
|
return material.css `
|
|
19021
19023
|
pointer-events: none;
|
|
19022
19024
|
top: ${topOffset}px;
|
|
19025
|
+
z-index: 2000;
|
|
19023
19026
|
|
|
19024
19027
|
.MuiDrawer-paper {
|
|
19025
19028
|
background-color: ${hasInvertedStyle
|
|
@@ -19032,7 +19035,7 @@ const StyledMegaMenuDrawer = styled__default.default(material.Drawer, {
|
|
|
19032
19035
|
box-shadow: 0 8px 8px 0 rgba(0, 0, 0, 0.1);
|
|
19033
19036
|
background-image: none;
|
|
19034
19037
|
padding: ${spaces?.xl ? spaces?.xl + 48 : 48}px ${spaces?.xl}px
|
|
19035
|
-
${spaces?.
|
|
19038
|
+
${spaces?.xxxl}px;
|
|
19036
19039
|
transform: translateY(48px);
|
|
19037
19040
|
top: ${topOffset}px;
|
|
19038
19041
|
}
|
|
@@ -19058,7 +19061,7 @@ const StyledMegaMenuContent = styled__default.default("div", {
|
|
|
19058
19061
|
: semanticColors?.base.backgroundPrimary};
|
|
19059
19062
|
display: flex;
|
|
19060
19063
|
flex-wrap: wrap;
|
|
19061
|
-
gap: ${spaces?.
|
|
19064
|
+
gap: ${spaces?.xxxl}px;
|
|
19062
19065
|
width: 100%;
|
|
19063
19066
|
max-width: 1200px;
|
|
19064
19067
|
margin: 0 auto;
|
|
@@ -19077,7 +19080,7 @@ const StyledHoverDrawerColumn = styled__default.default("div", {
|
|
|
19077
19080
|
// Account for gaps between columns
|
|
19078
19081
|
const columnsPerRow = totalColumns > 4 ? 4 : totalColumns;
|
|
19079
19082
|
const gapCount = columnsPerRow - 1;
|
|
19080
|
-
const columnWidth = `calc((100% - (${gapCount} * ${spaces?.
|
|
19083
|
+
const columnWidth = `calc((100% - (${gapCount} * ${spaces?.xxxl}px)) / ${columnsPerRow})`;
|
|
19081
19084
|
return material.css `
|
|
19082
19085
|
display: flex;
|
|
19083
19086
|
flex-direction: column;
|
|
@@ -19278,7 +19281,7 @@ const StyledHoverDrawerActions = styled__default.default("div", {
|
|
|
19278
19281
|
margin-top: ${spaces?.l}px;
|
|
19279
19282
|
padding-left: ${isNarrow
|
|
19280
19283
|
? `calc(${spaces?.l}px + ${spaces?.m}px)`
|
|
19281
|
-
: `calc(${spaces?.
|
|
19284
|
+
: `calc(${spaces?.xxxl}px + ${spaces?.xs}px)`};
|
|
19282
19285
|
flex-wrap: wrap;
|
|
19283
19286
|
`;
|
|
19284
19287
|
}}
|
|
@@ -20164,6 +20167,7 @@ function useNavigationState() {
|
|
|
20164
20167
|
function NavigationHeaderPrimaryNav({ menuProps, hasInvertedStyle, isNarrow, items, onChange, value, sdsStyle = "dropdown", expandedAccordion, setExpandedAccordion, accordionRefs, scrollToAccordion, onDrawerStateChange, topOffset = 0, onClose: onCloseProp, }) {
|
|
20165
20168
|
const theme = material.useTheme();
|
|
20166
20169
|
const { anchorEl, activeDropdownKey, activeDrawerKey, contentKey, isContentFading, open, drawerOpen, buttonRef, menuWidth, setAnchorEl, setActiveDropdownKey, setActiveDrawerKey, setContentKey, onClose: handleClose, onDrawerClose, onDrawerOpen, cancelDrawerClose, } = useNavigationState();
|
|
20170
|
+
const [clickedDrawerKey, setClickedDrawerKey] = React.useState(null);
|
|
20167
20171
|
// Helper function to wrap dropdown items' onClick handlers
|
|
20168
20172
|
// This automatically sets the parent dropdown as active when an item is clicked
|
|
20169
20173
|
const wrapDropdownItemsWithActiveKey = (dropdownItems, parentKey) => {
|
|
@@ -20202,8 +20206,22 @@ function NavigationHeaderPrimaryNav({ menuProps, hasInvertedStyle, isNarrow, ite
|
|
|
20202
20206
|
const handleClick = (e) => {
|
|
20203
20207
|
onChange(key);
|
|
20204
20208
|
parentOnClick?.(e);
|
|
20209
|
+
if (drawerOpen) {
|
|
20210
|
+
setActiveDrawerKey(null);
|
|
20211
|
+
setContentKey(null);
|
|
20212
|
+
setClickedDrawerKey(key);
|
|
20213
|
+
}
|
|
20205
20214
|
};
|
|
20206
|
-
return (jsxRuntime.jsx(StyledHoverDrawerContainer, { onMouseEnter: () =>
|
|
20215
|
+
return (jsxRuntime.jsx(StyledHoverDrawerContainer, { onMouseEnter: () => {
|
|
20216
|
+
if (clickedDrawerKey !== key) {
|
|
20217
|
+
onDrawerOpen(key);
|
|
20218
|
+
}
|
|
20219
|
+
}, onMouseLeave: () => {
|
|
20220
|
+
if (clickedDrawerKey === key) {
|
|
20221
|
+
setClickedDrawerKey(null);
|
|
20222
|
+
}
|
|
20223
|
+
onDrawerClose();
|
|
20224
|
+
}, children: jsxRuntime.jsx(UnifiedNavItem, __assign({}, rest, { itemType: item.itemType, active: isActive, hasInvertedStyle: hasInvertedStyle, isNarrow: isNarrow, sdsStyle: "minimal", onClick: handleClick, innerSdsStyle: sdsStyle, navVariant: "primary", component: componentProp, href: defaultUrl, target: target, rel: rel, children: jsxRuntime.jsxs(StyledLabel, { itemType: item.itemType, active: isActive, hasInvertedStyle: hasInvertedStyle, isNarrow: isNarrow, navVariant: "primary", children: [jsxRuntime.jsx(StyledLabelTextWrapper$1, { active: isActive, isNarrow: isNarrow, children: label }), jsxRuntime.jsx(StyledLabelTextWrapperShadow$1, { "aria-hidden": "true", isNarrow: isNarrow, children: label }), jsxRuntime.jsx(Icon, { sdsIcon: isDrawerOpen ? "ChevronUp" : "ChevronDown", sdsSize: "xs" })] }) })) }, key));
|
|
20207
20225
|
};
|
|
20208
20226
|
const renderDropdownItem = (item, key, label, parentOnClick, rest) => {
|
|
20209
20227
|
const isDropdownOpen = open && activeDropdownKey === key;
|
|
@@ -20879,7 +20897,7 @@ const NavigationHeader = React.forwardRef((props, ref) => {
|
|
|
20879
20897
|
const position = sdsStyle === "drawer" ? "sticky" : isSticky ? "sticky" : "relative";
|
|
20880
20898
|
// Disable elevation when drawer style is active and any drawer is open
|
|
20881
20899
|
const effectiveScrollElevation = scrollElevation && !(sdsStyle === "drawer" && isAnyDrawerOpen);
|
|
20882
|
-
return (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [topComponentSlot && (jsxRuntime.jsx(StyledTopComponentSlot, { ref: topSlotRef, children: topComponentSlot })), jsxRuntime.jsx(ElevationScroll, __assign({}, props, { shouldElevate: effectiveScrollElevation, children: jsxRuntime.jsx(StyledAppBar, __assign({ elevation: 0, hasInvertedStyle: hasInvertedStyle, ref: mergeRefs([ref, navRef]), "aria-label": "Main navigation", tabIndex: 0, position: position, style: { top: topOffset } }, rest, { children: headerContent })) })), dimensions.isNarrow && drawerOpen && (jsxRuntime.
|
|
20900
|
+
return (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [topComponentSlot && (jsxRuntime.jsx(StyledTopComponentSlot, { ref: topSlotRef, children: topComponentSlot })), jsxRuntime.jsx(ElevationScroll, __assign({}, props, { shouldElevate: effectiveScrollElevation, children: jsxRuntime.jsx(StyledAppBar, __assign({ elevation: 0, hasInvertedStyle: hasInvertedStyle, ref: mergeRefs([ref, navRef]), "aria-label": "Main navigation", tabIndex: 0, position: position, style: { top: topOffset } }, rest, { children: headerContent })) })), dimensions.isNarrow && drawerOpen && (jsxRuntime.jsx(StyledDrawer$1, { anchor: "right", open: drawerOpen, onClose: () => setDrawerOpen(false), hasInvertedStyle: hasInvertedStyle, topOffset: topOffset, role: "dialog", "aria-label": "Navigation menu", disableScrollLock: false, children: jsxRuntime.jsxs(StyledDrawerContent, { children: [jsxRuntime.jsxs("div", { children: [search, primaryNav, primaryNav && secondaryNav && (jsxRuntime.jsx(StyledSectionDivider, { hasInvertedStyle: hasInvertedStyle })), secondaryNav] }), buttonsNode] }) }))] }));
|
|
20883
20901
|
});
|
|
20884
20902
|
|
|
20885
20903
|
/**
|
package/dist/index.esm.d.ts
CHANGED
|
@@ -379,6 +379,7 @@ interface Spaces {
|
|
|
379
379
|
l: number;
|
|
380
380
|
xl: number;
|
|
381
381
|
xxl: number;
|
|
382
|
+
xxxl: number;
|
|
382
383
|
}
|
|
383
384
|
/**
|
|
384
385
|
* @deprecated
|
|
@@ -1087,7 +1088,7 @@ interface BannerExtraProps extends CommonThemeProps {
|
|
|
1087
1088
|
type ButtonType$0 = ButtonProps & {
|
|
1088
1089
|
bannerType: string;
|
|
1089
1090
|
} & CommonThemeProps;
|
|
1090
|
-
type BannerIntentType = "info" | "negative" | "notice" | "positive";
|
|
1091
|
+
type BannerIntentType = "accent" | "info" | "negative" | "notice" | "positive";
|
|
1091
1092
|
interface BannerProps extends BannerExtraProps {
|
|
1092
1093
|
children: React.ReactNode;
|
|
1093
1094
|
icon?: keyof IconNameToSizes | React.ReactElement<CustomSVGProps>;
|
|
@@ -1165,7 +1166,7 @@ interface ButtonToggleProps extends ButtonProps$0 {
|
|
|
1165
1166
|
declare const ButtonToggle: React.ForwardRefExoticComponent<Omit<ButtonToggleProps, "ref"> & React.RefAttributes<HTMLButtonElement>>;
|
|
1166
1167
|
declare const SDS_STAGE_OPEN = "open";
|
|
1167
1168
|
declare const SDS_STAGE_CLOSED = "closed";
|
|
1168
|
-
type CalloutIntentType = "info" | "negative" | "notice" | "positive";
|
|
1169
|
+
type CalloutIntentType = "accent" | "info" | "negative" | "notice" | "positive";
|
|
1169
1170
|
type CalloutSdsStyleType = "persistent" | "expandable" | "dismissible";
|
|
1170
1171
|
interface CalloutProps {
|
|
1171
1172
|
autoDismiss?: boolean | number;
|
|
@@ -2052,7 +2053,7 @@ interface NavigationJumpToProps extends NavigationJumpToExtraProps {
|
|
|
2052
2053
|
width?: CSSProperties["width"];
|
|
2053
2054
|
}
|
|
2054
2055
|
declare const NavigationJumpTo: React.ForwardRefExoticComponent<Omit<NavigationJumpToProps, "ref"> & React.RefAttributes<HTMLDivElement>>;
|
|
2055
|
-
type NotificationIntentType = "info" | "negative" | "positive" | "notice";
|
|
2056
|
+
type NotificationIntentType = "accent" | "info" | "negative" | "positive" | "notice";
|
|
2056
2057
|
interface NotificationProps {
|
|
2057
2058
|
autoDismiss?: boolean | number;
|
|
2058
2059
|
buttonOnClick?: (event: React.SyntheticEvent) => void;
|
package/dist/index.esm.js
CHANGED
|
@@ -498,15 +498,16 @@ const Shadows = {
|
|
|
498
498
|
};
|
|
499
499
|
|
|
500
500
|
const Spaces = {
|
|
501
|
+
xxxs: 2,
|
|
502
|
+
xxs: 4,
|
|
503
|
+
xs: 6,
|
|
504
|
+
s: 8,
|
|
505
|
+
m: 12,
|
|
501
506
|
default: 12,
|
|
502
507
|
l: 16,
|
|
503
|
-
m: 12,
|
|
504
|
-
s: 8,
|
|
505
508
|
xl: 24,
|
|
506
|
-
|
|
507
|
-
|
|
508
|
-
xxs: 4,
|
|
509
|
-
xxxs: 2
|
|
509
|
+
xxl: 32,
|
|
510
|
+
xxxl: 40
|
|
510
511
|
};
|
|
511
512
|
|
|
512
513
|
const SDSLightThemeColors = {
|
|
@@ -9843,9 +9844,9 @@ const StyledPaper = styled$2(Paper, {
|
|
|
9843
9844
|
background-color: ${semanticColors?.base?.surface};
|
|
9844
9845
|
background-image: none;
|
|
9845
9846
|
box-shadow: ${shadows?.l};
|
|
9846
|
-
max-height: calc(100vh - ${2 * (spaces?.
|
|
9847
|
+
max-height: calc(100vh - ${2 * (spaces?.xxxl || 40)}px);
|
|
9847
9848
|
border-radius: ${corners?.xl}px;
|
|
9848
|
-
padding: ${isSmall ? spaces?.xl : spaces?.
|
|
9849
|
+
padding: ${isSmall ? spaces?.xl : spaces?.xxxl}px;
|
|
9849
9850
|
outline: 1px solid ${addOpacityToHex(semanticColors?.base?.borderSecondary || "#000000", 15)};
|
|
9850
9851
|
`;
|
|
9851
9852
|
}}
|
|
@@ -9895,7 +9896,7 @@ const StyledButton$1 = styled$2(Button) `
|
|
|
9895
9896
|
const { sdsSize } = props;
|
|
9896
9897
|
const isSmall = sdsSize === "small" || sdsSize === "medium";
|
|
9897
9898
|
const spaces = getSpaces(props);
|
|
9898
|
-
const right = isSmall ? spaces?.xl : spaces?.
|
|
9899
|
+
const right = isSmall ? spaces?.xl : spaces?.xxxl;
|
|
9899
9900
|
return `
|
|
9900
9901
|
right: ${right}px;
|
|
9901
9902
|
`;
|
|
@@ -9995,7 +9996,7 @@ const StyledDialogActions = styled$2(DialogActions$1, {
|
|
|
9995
9996
|
return `
|
|
9996
9997
|
justify-content: ${buttonPosition === "right" ? "flex-end" : "flex-start"};;
|
|
9997
9998
|
|
|
9998
|
-
margin-top: ${isSmall ? spaces?.xl : spaces?.
|
|
9999
|
+
margin-top: ${isSmall ? spaces?.xl : spaces?.xxxl}px;
|
|
9999
10000
|
|
|
10000
10001
|
&.${dialogActionsClasses.spacing} > :not(:first-of-type) {
|
|
10001
10002
|
margin-left: ${spaces?.m}px;
|
|
@@ -10102,16 +10103,16 @@ const getResponsivePadding = (props) => {
|
|
|
10102
10103
|
const spaces = getSpaces(props);
|
|
10103
10104
|
const breakpoints = getBreakpoints(props);
|
|
10104
10105
|
return css$1 `
|
|
10105
|
-
padding: ${spaces?.
|
|
10106
|
+
padding: ${spaces?.xxxl}px
|
|
10106
10107
|
${overlayContainerMinMargin?.small || HeroMargins.SMALL};
|
|
10107
10108
|
|
|
10108
10109
|
${breakpoints?.up("md")} {
|
|
10109
|
-
padding: ${spaces?.
|
|
10110
|
+
padding: ${spaces?.xxxl}px
|
|
10110
10111
|
${overlayContainerMinMargin?.medium || HeroMargins.MEDIUM};
|
|
10111
10112
|
}
|
|
10112
10113
|
|
|
10113
10114
|
${breakpoints?.up("lg")} {
|
|
10114
|
-
padding: ${spaces?.
|
|
10115
|
+
padding: ${spaces?.xxxl}px
|
|
10115
10116
|
${overlayContainerMinMargin?.large || HeroMargins.LARGE};
|
|
10116
10117
|
}
|
|
10117
10118
|
`;
|
|
@@ -11292,7 +11293,7 @@ const LegendContainer = styled$2("div") `
|
|
|
11292
11293
|
`;
|
|
11293
11294
|
const LegendItem = styled$2("div") `
|
|
11294
11295
|
${(props) => {
|
|
11295
|
-
const { isSelected, disabled } = props;
|
|
11296
|
+
const { isSelected, disabled, isHovered } = props;
|
|
11296
11297
|
const spaces = getSpaces(props);
|
|
11297
11298
|
const semanticColors = getSemanticColors(props);
|
|
11298
11299
|
const corners = getCorners(props);
|
|
@@ -11303,7 +11304,7 @@ const LegendItem = styled$2("div") `
|
|
|
11303
11304
|
transition: background-color 0.2s ease-in-out;
|
|
11304
11305
|
padding: ${spaces?.xxxs}px ${spaces?.xxs}px;
|
|
11305
11306
|
border-radius: ${corners?.s}px;
|
|
11306
|
-
background-color: ${isSelected ? semanticColors?.base?.backgroundTertiary : "transparent"};
|
|
11307
|
+
background-color: ${isSelected ? semanticColors?.base?.backgroundTertiary : isHovered ? semanticColors?.base?.backgroundSecondary : "transparent"};
|
|
11307
11308
|
pointer-events: ${disabled ? "none" : "auto"};
|
|
11308
11309
|
|
|
11309
11310
|
&:hover {
|
|
@@ -11402,7 +11403,7 @@ const Legend = (props) => {
|
|
|
11402
11403
|
: hasSelection && !isSelected;
|
|
11403
11404
|
// Determine color: use colors prop, then item color, then fallback to gray
|
|
11404
11405
|
const itemColor = colors?.[index] || item.color || fallbackColor;
|
|
11405
|
-
return (jsxs(LegendItem, { onMouseEnter: () => handleMouseEnter(item, index), onMouseLeave: () => handleMouseLeave(item, index), onClick: () => handleClick(item, index), role: "button", tabIndex: item.disabled ? -1 : 0, "aria-label": `${item.name}${item.value ? `: ${item.value}` : ""}`, "aria-pressed": isSelected, "aria-disabled": item.disabled, isSelected: isSelected, disabled: item.disabled, children: [jsx(LegendIcon, { color: itemColor, isDimmed: isDimmed }), jsx(LegendLabel, { disabled: item.disabled, children: item.name }), showValues && item.value !== undefined && (jsx(LegendValue, { disabled: item.disabled, children: typeof item.value === "number"
|
|
11406
|
+
return (jsxs(LegendItem, { onMouseEnter: () => handleMouseEnter(item, index), onMouseLeave: () => handleMouseLeave(item, index), onClick: () => handleClick(item, index), role: "button", tabIndex: item.disabled ? -1 : 0, "aria-label": `${item.name}${item.value ? `: ${item.value}` : ""}`, "aria-pressed": isSelected, "aria-disabled": item.disabled, isSelected: isSelected, disabled: item.disabled, isHovered: isHovered, children: [jsx(LegendIcon, { color: itemColor, isDimmed: isDimmed }), jsx(LegendLabel, { disabled: item.disabled, children: item.name }), showValues && item.value !== undefined && (jsx(LegendValue, { disabled: item.disabled, children: typeof item.value === "number"
|
|
11406
11407
|
? item.value.toLocaleString()
|
|
11407
11408
|
: item.value }))] }, `${item.name}-${index}`));
|
|
11408
11409
|
}) })));
|
|
@@ -18323,6 +18324,7 @@ function NavigationFooter({ backgroundAppearance = "matchBackground", images, lo
|
|
|
18323
18324
|
|
|
18324
18325
|
/* eslint-disable sonarjs/cognitive-complexity */
|
|
18325
18326
|
/* eslint-disable sonarjs/no-duplicate-string */
|
|
18327
|
+
const TOOLBAR_HEIGHT = 48;
|
|
18326
18328
|
const doNotForwardProps$a = [
|
|
18327
18329
|
"hasInvertedStyle",
|
|
18328
18330
|
"isNarrow",
|
|
@@ -18338,7 +18340,7 @@ const doNotForwardProps$a = [
|
|
|
18338
18340
|
const StyledTopComponentSlot = styled$2("div") `
|
|
18339
18341
|
position: sticky;
|
|
18340
18342
|
top: 0;
|
|
18341
|
-
z-index:
|
|
18343
|
+
z-index: 2100;
|
|
18342
18344
|
`;
|
|
18343
18345
|
const StyledAppBar = styled$2(AppBar, {
|
|
18344
18346
|
shouldForwardProp: (prop) => ![...doNotForwardProps$a, "sdsStyle"].includes(prop)
|
|
@@ -18350,7 +18352,7 @@ const StyledAppBar = styled$2(AppBar, {
|
|
|
18350
18352
|
background-image: none;
|
|
18351
18353
|
max-width: 100%;
|
|
18352
18354
|
overflow-x: auto;
|
|
18353
|
-
z-index:
|
|
18355
|
+
z-index: 2100;
|
|
18354
18356
|
`;
|
|
18355
18357
|
}}
|
|
18356
18358
|
`;
|
|
@@ -18379,8 +18381,8 @@ const StyledToolbar = styled$2(Toolbar, {
|
|
|
18379
18381
|
const spaces = getSpaces(props);
|
|
18380
18382
|
return css$3 `
|
|
18381
18383
|
&.MuiToolbar-root {
|
|
18382
|
-
min-height:
|
|
18383
|
-
max-height:
|
|
18384
|
+
min-height: ${TOOLBAR_HEIGHT}px;
|
|
18385
|
+
max-height: ${TOOLBAR_HEIGHT}px;
|
|
18384
18386
|
padding: ${spaces?.s}px ${spaces?.l}px;
|
|
18385
18387
|
|
|
18386
18388
|
${isNarrow && NarrowToolbar(props)}
|
|
@@ -18543,7 +18545,7 @@ const StyledTitleContainer = styled$2("div", {
|
|
|
18543
18545
|
color: ${props.hasInvertedStyle
|
|
18544
18546
|
? colors?.base.textPrimaryOnDark
|
|
18545
18547
|
: colors?.base.textPrimary};
|
|
18546
|
-
margin-right: ${spaces?.
|
|
18548
|
+
margin-right: ${spaces?.xxxl}px;
|
|
18547
18549
|
width: 100%;
|
|
18548
18550
|
|
|
18549
18551
|
${isNarrow && NarrowTitleContainer()}
|
|
@@ -18585,8 +18587,8 @@ const StyledPrimaryNavContainer = styled$2("div", {
|
|
|
18585
18587
|
const primaryNavPositionWithoutSearch = primaryNavPosition === "left" ? "flex-start" : "flex-end";
|
|
18586
18588
|
return css$3 `
|
|
18587
18589
|
flex-direction: ${isNarrow ? "column" : "row"};
|
|
18588
|
-
gap: ${spaces?.
|
|
18589
|
-
margin-right: ${spaces?.
|
|
18590
|
+
gap: ${spaces?.xxxl}px;
|
|
18591
|
+
margin-right: ${spaces?.xxxl}px;
|
|
18590
18592
|
flex: 1;
|
|
18591
18593
|
justify-content: ${showSearch
|
|
18592
18594
|
? primaryNavPositionWithSearch
|
|
@@ -18713,14 +18715,14 @@ const NarrowButtonStyles = (props) => {
|
|
|
18713
18715
|
&::before {
|
|
18714
18716
|
content: "";
|
|
18715
18717
|
position: absolute;
|
|
18716
|
-
height: ${spaces?.
|
|
18718
|
+
height: ${spaces?.xxxl}px;
|
|
18717
18719
|
width: 100%;
|
|
18718
18720
|
background: linear-gradient(
|
|
18719
18721
|
to top,
|
|
18720
18722
|
${backgroundColor} 0%,
|
|
18721
18723
|
${backgroundColor}00 100%
|
|
18722
18724
|
);
|
|
18723
|
-
top: -${spaces?.
|
|
18725
|
+
top: -${spaces?.xxxl}px;
|
|
18724
18726
|
}
|
|
18725
18727
|
|
|
18726
18728
|
.MuiButton-icon .MuiSvgIcon-root {
|
|
@@ -18741,7 +18743,7 @@ const StyledButtonSection = styled$2("section", {
|
|
|
18741
18743
|
const spaces = getSpaces(props);
|
|
18742
18744
|
return css$3 `
|
|
18743
18745
|
gap: ${spaces?.m}px;
|
|
18744
|
-
margin-left: ${spaces?.
|
|
18746
|
+
margin-left: ${spaces?.xxxl}px;
|
|
18745
18747
|
|
|
18746
18748
|
${isNarrow && NarrowButtonStyles(props)}
|
|
18747
18749
|
`;
|
|
@@ -18761,8 +18763,8 @@ const StyledDrawer$1 = styled$2(Drawer, {
|
|
|
18761
18763
|
width: 100%;
|
|
18762
18764
|
display: flex;
|
|
18763
18765
|
flex-direction: column;
|
|
18764
|
-
top: ${topOffset}px;
|
|
18765
|
-
height: calc(100% - ${topOffset}px);
|
|
18766
|
+
top: ${topOffset + TOOLBAR_HEIGHT}px;
|
|
18767
|
+
height: calc(100% - ${topOffset + TOOLBAR_HEIGHT}px);
|
|
18766
18768
|
justify-content: space-between;
|
|
18767
18769
|
}
|
|
18768
18770
|
`;
|
|
@@ -18812,7 +18814,7 @@ const DrawerAccordionStyles = (props) => {
|
|
|
18812
18814
|
&[aria-expanded="true"] {
|
|
18813
18815
|
position: sticky;
|
|
18814
18816
|
border-radius: 0;
|
|
18815
|
-
top:
|
|
18817
|
+
top: ${spaces?.s}px;
|
|
18816
18818
|
z-index: 11;
|
|
18817
18819
|
backdrop-filter: blur(0px);
|
|
18818
18820
|
color: ${textOpenColor};
|
|
@@ -18997,6 +18999,7 @@ const StyledMegaMenuDrawer = styled$2(Drawer, {
|
|
|
18997
18999
|
return css$3 `
|
|
18998
19000
|
pointer-events: none;
|
|
18999
19001
|
top: ${topOffset}px;
|
|
19002
|
+
z-index: 2000;
|
|
19000
19003
|
|
|
19001
19004
|
.MuiDrawer-paper {
|
|
19002
19005
|
background-color: ${hasInvertedStyle
|
|
@@ -19009,7 +19012,7 @@ const StyledMegaMenuDrawer = styled$2(Drawer, {
|
|
|
19009
19012
|
box-shadow: 0 8px 8px 0 rgba(0, 0, 0, 0.1);
|
|
19010
19013
|
background-image: none;
|
|
19011
19014
|
padding: ${spaces?.xl ? spaces?.xl + 48 : 48}px ${spaces?.xl}px
|
|
19012
|
-
${spaces?.
|
|
19015
|
+
${spaces?.xxxl}px;
|
|
19013
19016
|
transform: translateY(48px);
|
|
19014
19017
|
top: ${topOffset}px;
|
|
19015
19018
|
}
|
|
@@ -19035,7 +19038,7 @@ const StyledMegaMenuContent = styled$2("div", {
|
|
|
19035
19038
|
: semanticColors?.base.backgroundPrimary};
|
|
19036
19039
|
display: flex;
|
|
19037
19040
|
flex-wrap: wrap;
|
|
19038
|
-
gap: ${spaces?.
|
|
19041
|
+
gap: ${spaces?.xxxl}px;
|
|
19039
19042
|
width: 100%;
|
|
19040
19043
|
max-width: 1200px;
|
|
19041
19044
|
margin: 0 auto;
|
|
@@ -19054,7 +19057,7 @@ const StyledHoverDrawerColumn = styled$2("div", {
|
|
|
19054
19057
|
// Account for gaps between columns
|
|
19055
19058
|
const columnsPerRow = totalColumns > 4 ? 4 : totalColumns;
|
|
19056
19059
|
const gapCount = columnsPerRow - 1;
|
|
19057
|
-
const columnWidth = `calc((100% - (${gapCount} * ${spaces?.
|
|
19060
|
+
const columnWidth = `calc((100% - (${gapCount} * ${spaces?.xxxl}px)) / ${columnsPerRow})`;
|
|
19058
19061
|
return css$3 `
|
|
19059
19062
|
display: flex;
|
|
19060
19063
|
flex-direction: column;
|
|
@@ -19255,7 +19258,7 @@ const StyledHoverDrawerActions = styled$2("div", {
|
|
|
19255
19258
|
margin-top: ${spaces?.l}px;
|
|
19256
19259
|
padding-left: ${isNarrow
|
|
19257
19260
|
? `calc(${spaces?.l}px + ${spaces?.m}px)`
|
|
19258
|
-
: `calc(${spaces?.
|
|
19261
|
+
: `calc(${spaces?.xxxl}px + ${spaces?.xs}px)`};
|
|
19259
19262
|
flex-wrap: wrap;
|
|
19260
19263
|
`;
|
|
19261
19264
|
}}
|
|
@@ -20141,6 +20144,7 @@ function useNavigationState() {
|
|
|
20141
20144
|
function NavigationHeaderPrimaryNav({ menuProps, hasInvertedStyle, isNarrow, items, onChange, value, sdsStyle = "dropdown", expandedAccordion, setExpandedAccordion, accordionRefs, scrollToAccordion, onDrawerStateChange, topOffset = 0, onClose: onCloseProp, }) {
|
|
20142
20145
|
const theme = useTheme$4();
|
|
20143
20146
|
const { anchorEl, activeDropdownKey, activeDrawerKey, contentKey, isContentFading, open, drawerOpen, buttonRef, menuWidth, setAnchorEl, setActiveDropdownKey, setActiveDrawerKey, setContentKey, onClose: handleClose, onDrawerClose, onDrawerOpen, cancelDrawerClose, } = useNavigationState();
|
|
20147
|
+
const [clickedDrawerKey, setClickedDrawerKey] = useState(null);
|
|
20144
20148
|
// Helper function to wrap dropdown items' onClick handlers
|
|
20145
20149
|
// This automatically sets the parent dropdown as active when an item is clicked
|
|
20146
20150
|
const wrapDropdownItemsWithActiveKey = (dropdownItems, parentKey) => {
|
|
@@ -20179,8 +20183,22 @@ function NavigationHeaderPrimaryNav({ menuProps, hasInvertedStyle, isNarrow, ite
|
|
|
20179
20183
|
const handleClick = (e) => {
|
|
20180
20184
|
onChange(key);
|
|
20181
20185
|
parentOnClick?.(e);
|
|
20186
|
+
if (drawerOpen) {
|
|
20187
|
+
setActiveDrawerKey(null);
|
|
20188
|
+
setContentKey(null);
|
|
20189
|
+
setClickedDrawerKey(key);
|
|
20190
|
+
}
|
|
20182
20191
|
};
|
|
20183
|
-
return (jsx(StyledHoverDrawerContainer, { onMouseEnter: () =>
|
|
20192
|
+
return (jsx(StyledHoverDrawerContainer, { onMouseEnter: () => {
|
|
20193
|
+
if (clickedDrawerKey !== key) {
|
|
20194
|
+
onDrawerOpen(key);
|
|
20195
|
+
}
|
|
20196
|
+
}, onMouseLeave: () => {
|
|
20197
|
+
if (clickedDrawerKey === key) {
|
|
20198
|
+
setClickedDrawerKey(null);
|
|
20199
|
+
}
|
|
20200
|
+
onDrawerClose();
|
|
20201
|
+
}, children: jsx(UnifiedNavItem, __assign({}, rest, { itemType: item.itemType, active: isActive, hasInvertedStyle: hasInvertedStyle, isNarrow: isNarrow, sdsStyle: "minimal", onClick: handleClick, innerSdsStyle: sdsStyle, navVariant: "primary", component: componentProp, href: defaultUrl, target: target, rel: rel, children: jsxs(StyledLabel, { itemType: item.itemType, active: isActive, hasInvertedStyle: hasInvertedStyle, isNarrow: isNarrow, navVariant: "primary", children: [jsx(StyledLabelTextWrapper$1, { active: isActive, isNarrow: isNarrow, children: label }), jsx(StyledLabelTextWrapperShadow$1, { "aria-hidden": "true", isNarrow: isNarrow, children: label }), jsx(Icon, { sdsIcon: isDrawerOpen ? "ChevronUp" : "ChevronDown", sdsSize: "xs" })] }) })) }, key));
|
|
20184
20202
|
};
|
|
20185
20203
|
const renderDropdownItem = (item, key, label, parentOnClick, rest) => {
|
|
20186
20204
|
const isDropdownOpen = open && activeDropdownKey === key;
|
|
@@ -20856,7 +20874,7 @@ const NavigationHeader = forwardRef((props, ref) => {
|
|
|
20856
20874
|
const position = sdsStyle === "drawer" ? "sticky" : isSticky ? "sticky" : "relative";
|
|
20857
20875
|
// Disable elevation when drawer style is active and any drawer is open
|
|
20858
20876
|
const effectiveScrollElevation = scrollElevation && !(sdsStyle === "drawer" && isAnyDrawerOpen);
|
|
20859
|
-
return (jsxs(Fragment, { children: [topComponentSlot && (jsx(StyledTopComponentSlot, { ref: topSlotRef, children: topComponentSlot })), jsx(ElevationScroll, __assign({}, props, { shouldElevate: effectiveScrollElevation, children: jsx(StyledAppBar, __assign({ elevation: 0, hasInvertedStyle: hasInvertedStyle, ref: mergeRefs([ref, navRef]), "aria-label": "Main navigation", tabIndex: 0, position: position, style: { top: topOffset } }, rest, { children: headerContent })) })), dimensions.isNarrow && drawerOpen && (
|
|
20877
|
+
return (jsxs(Fragment, { children: [topComponentSlot && (jsx(StyledTopComponentSlot, { ref: topSlotRef, children: topComponentSlot })), jsx(ElevationScroll, __assign({}, props, { shouldElevate: effectiveScrollElevation, children: jsx(StyledAppBar, __assign({ elevation: 0, hasInvertedStyle: hasInvertedStyle, ref: mergeRefs([ref, navRef]), "aria-label": "Main navigation", tabIndex: 0, position: position, style: { top: topOffset } }, rest, { children: headerContent })) })), dimensions.isNarrow && drawerOpen && (jsx(StyledDrawer$1, { anchor: "right", open: drawerOpen, onClose: () => setDrawerOpen(false), hasInvertedStyle: hasInvertedStyle, topOffset: topOffset, role: "dialog", "aria-label": "Navigation menu", disableScrollLock: false, children: jsxs(StyledDrawerContent, { children: [jsxs("div", { children: [search, primaryNav, primaryNav && secondaryNav && (jsx(StyledSectionDivider, { hasInvertedStyle: hasInvertedStyle })), secondaryNav] }), buttonsNode] }) }))] }));
|
|
20860
20878
|
});
|
|
20861
20879
|
|
|
20862
20880
|
/**
|