@pega/cosmos-react-core 10.0.0-build.5.7 → 10.0.0-build.5.9
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/lib/components/AppShell/AppShell.d.ts.map +1 -1
- package/lib/components/AppShell/AppShell.js +5 -2
- package/lib/components/AppShell/AppShell.js.map +1 -1
- package/lib/components/AppShell/AppShell.styles.d.ts.map +1 -1
- package/lib/components/AppShell/AppShell.styles.js +2 -4
- package/lib/components/AppShell/AppShell.styles.js.map +1 -1
- package/lib/components/AppShell/NavigationListItemWrapper.js +3 -3
- package/lib/components/AppShell/NavigationListItemWrapper.js.map +1 -1
- package/lib/components/Backdrop/Backdrop.js +2 -2
- package/lib/components/Backdrop/Backdrop.js.map +1 -1
- package/lib/components/Dialog/TouchDialog.styles.js +1 -1
- package/lib/components/Dialog/TouchDialog.styles.js.map +1 -1
- package/lib/hooks/useI18n.d.ts +2 -0
- package/lib/hooks/useI18n.d.ts.map +1 -1
- package/lib/i18n/default.d.ts +2 -0
- package/lib/i18n/default.d.ts.map +1 -1
- package/lib/i18n/default.js +2 -0
- package/lib/i18n/default.js.map +1 -1
- package/lib/i18n/i18n.d.ts +2 -0
- package/lib/i18n/i18n.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AppShell.d.ts","sourceRoot":"","sources":["../../../src/components/AppShell/AppShell.tsx"],"names":[],"mappings":"AAkEA,OAAO,KAAK,EAAE,aAAa,EAAiB,MAAM,kBAAkB,CAAC;AA8ErE,QAAA,MAAM,QAAQ,
|
|
1
|
+
{"version":3,"file":"AppShell.d.ts","sourceRoot":"","sources":["../../../src/components/AppShell/AppShell.tsx"],"names":[],"mappings":"AAkEA,OAAO,KAAK,EAAE,aAAa,EAAiB,MAAM,kBAAkB,CAAC;AA8ErE,QAAA,MAAM,QAAQ,0GAujBZ,CAAC;AAEH,eAAe,QAAQ,CAAC"}
|
|
@@ -346,9 +346,12 @@ const AppShell = forwardRef(function AppShell(props, ref) {
|
|
|
346
346
|
}
|
|
347
347
|
}, agent: agent }), _jsxs(Flex, { container: { justify: 'center' }, children: [_jsx(StyledAppShellToggleButton, { icon: true, ref: setExpandCollapseEl, compact: true, variant: 'simple', onClick: () => {
|
|
348
348
|
setSidebarNavState(sidebarNavState === 'closed' ? 'open' : 'closed');
|
|
349
|
-
}, "aria-label": sidebarNavState === 'closed' ? t('expand_navigation') : t('collapse_navigation'), "aria-expanded": sidebarNavState === 'open' || sidebarNavState === 'opening', "aria-controls": navId, children: ['closed', 'closing'].includes(sidebarNavState) ? (_jsx(Icon, { name: `arrow-micro-${end}` })) : (_jsx(Icon, { name: `arrow-micro-${start}` })) }), ['open', 'closed'].includes(sidebarNavState) && (_jsx(Tooltip, { target: expandCollapseEl, placement: 'right', as: StyledAppShellTooltip, showDelay: 'none', hideDelay: 'none', children: sidebarNavState === 'closed' ? t('expand_navigation') : t('collapse_navigation') }))] })] })), showMobileNav && (_jsxs(_Fragment, { children: [_jsxs(Flex, { as: StyledMobileNav, container: { alignItems: 'center', gap: 0.25 }, ref: setMobileHeaderEl, "data-app-region": true,
|
|
349
|
+
}, "aria-label": sidebarNavState === 'closed' ? t('expand_navigation') : t('collapse_navigation'), "aria-expanded": sidebarNavState === 'open' || sidebarNavState === 'opening', "aria-controls": navId, children: ['closed', 'closing'].includes(sidebarNavState) ? (_jsx(Icon, { name: `arrow-micro-${end}` })) : (_jsx(Icon, { name: `arrow-micro-${start}` })) }), ['open', 'closed'].includes(sidebarNavState) && (_jsx(Tooltip, { target: expandCollapseEl, placement: 'right', as: StyledAppShellTooltip, showDelay: 'none', hideDelay: 'none', children: sidebarNavState === 'closed' ? t('expand_navigation') : t('collapse_navigation') }))] })] })), showMobileNav && (_jsxs(_Fragment, { children: [_jsxs(Flex, { as: StyledMobileNav, container: { alignItems: 'center', gap: 0.25 }, ref: setMobileHeaderEl, "data-app-region": true, onClick: () => {
|
|
350
350
|
setMobileNavOpen(false);
|
|
351
|
-
}, children: [caseTypes && caseTypes.length > 0 && _jsx(CaseTypes, { caseTypes: caseTypes, mobileNavBar: true }), links && _jsx(Links, { links: links.slice(0, mobileNavLinksCount), mobileNavBar: true }), _jsxs(StyledMobileMoreMenuButton, { ref: mobileButtonRef, variant: 'simple', onClick: () =>
|
|
351
|
+
}, children: [caseTypes && caseTypes.length > 0 && _jsx(CaseTypes, { caseTypes: caseTypes, mobileNavBar: true }), links && _jsx(Links, { links: links.slice(0, mobileNavLinksCount), mobileNavBar: true }), _jsxs(StyledMobileMoreMenuButton, { ref: mobileButtonRef, variant: 'simple', onClick: (e) => {
|
|
352
|
+
setMobileNavOpen(prev => !prev);
|
|
353
|
+
e.stopPropagation();
|
|
354
|
+
}, label: t('app_shell_more'), icon: true, "aria-expanded": mobileNavOpen, "aria-controls": navId, children: [_jsx(Icon, { name: 'bars' }), !mobileNavOpen &&
|
|
352
355
|
utils?.some(item => (isValidElement(item) ? false : !!item.count)) && (_jsx(Alert, { variant: 'urgent' })), _jsx("span", { children: t('app_shell_more') })] })] }), _jsx(Drawer, { open: mobileNavOpen, ref: mobileNavRef, onAfterClose: () => {
|
|
353
356
|
setMobileNavOpen(false);
|
|
354
357
|
}, position: 'fixed', placement: 'bottom', size: '100dvh', nullWhenClosed: true, children: _jsx(Flex, { ...restProps, container: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AppShell.js","sourceRoot":"","sources":["../../../src/components/AppShell/AppShell.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\n forwardRef,\n useState,\n useCallback,\n useEffect,\n useMemo,\n useRef,\n useLayoutEffect\n} from 'react';\nimport type { PropsWithoutRef, ReactNode, Ref } from 'react';\n\nimport { Alert } from '../Badges';\nimport Flex from '../Flex';\nimport Icon, { registerIcon } from '../Icon';\nimport * as timesIcon from '../Icon/icons/times.icon';\nimport * as plusIcon from '../Icon/icons/plus.icon';\nimport * as caseSolidIcon from '../Icon/icons/case-solid.icon';\nimport * as barsIcon from '../Icon/icons/bars.icon';\nimport * as caretLeftIcon from '../Icon/icons/caret-left.icon';\nimport * as caretRightIcon from '../Icon/icons/caret-right.icon';\nimport * as sunIcon from '../Icon/icons/sun.icon';\nimport * as moonIcon from '../Icon/icons/moon.icon';\nimport * as circleMixedLeftIcon from '../Icon/icons/circle-mixed-left.icon';\nimport * as shareIcon from '../Icon/icons/share.icon';\nimport {\n useI18n,\n useBreakpoint,\n useConsolidatedRef,\n useElement,\n useTransitionState,\n useEvent,\n useScrollToggle,\n useTheme,\n useUID,\n usePreviewManager,\n useDirection\n} from '../../hooks';\nimport { openCloseStates } from '../../hooks/useTransitionState';\nimport SkipLinks from '../SkipLinks';\nimport type { SkipLinksProps } from '../SkipLinks';\nimport Progress from '../Progress';\nimport { registerAction } from '../ShortcutManager';\nimport useShortcut from '../../hooks/useShortcut';\nimport { debounce, isTouchDevice, isValidElement } from '../../utils';\nimport useKeyboardCommands from '../KeyboardCommands';\nimport Tooltip from '../Tooltip';\nimport Drawer from '../Drawer';\nimport useThemeMode from '../../hooks/useThemeMode';\n\nimport AppShellContext, { AppShellDrawerContext } from './AppShellContext';\nimport AppHeader from './AppHeader';\nimport AppShellDrawer from './Drawer';\nimport AppTopNav from './AppTopNav';\nimport {\n StyledAppMain,\n StyledBannerRegion,\n StyledMobileNav,\n StyledMobileMoreMenuButton,\n menuButtonWidth,\n StyledMobileMoreMenu,\n StyledAppShellToggleButton,\n StyledAppShellTooltip,\n StyledSidebarNav,\n StyledShareIcon,\n AppShellGlobalStyle\n} from './AppShell.styles';\nimport type { AppShellProps, UtilItemProps } from './AppShell.types';\nimport { followingNodes, focusRegion } from './utils';\nimport AppNavigationPanel, { CaseTypes, Links } from './AppNavigationPanel';\nimport NavigationList from './NavigationList';\n\nregisterIcon(\n timesIcon,\n plusIcon,\n caseSolidIcon,\n barsIcon,\n caretRightIcon,\n caretLeftIcon,\n sunIcon,\n moonIcon,\n circleMixedLeftIcon,\n shareIcon\n);\nregisterAction(\n { id: 'NextRegion', defaultKeyBinding: 'F9' },\n { id: 'PrevRegion', defaultKeyBinding: 'Shift+F9' },\n { id: 'KeyboardCommands', defaultKeyBinding: 'CommandOrControl+/' }\n);\n\ninterface TopNavDrawerProviderProps {\n children: ReactNode;\n}\n\nfunction TopNavDrawerProvider({ children }: TopNavDrawerProviderProps) {\n const [item, setItem] = useState<UtilItemProps | undefined>(undefined);\n const [drawerOpen, setDrawerOpen] = useState(false);\n\n // Delay opening the drawer by one render pass after item is set.\n // The cosmos-core Drawer only fires onAfterOpen on a false→true open transition.\n // Batching setItem + setDrawerOpen(true) in the same event handler causes the\n // Drawer to mount with open=true from the start (no transition), so onAfterOpen\n // never fires and item.onDrawerOpen() (data fetching) is never called.\n // Setting drawerOpen in a separate useEffect gives the Drawer a proper transition.\n useEffect(() => {\n if (item) setDrawerOpen(true);\n }, [item]);\n\n const ctxValue = useMemo(\n () => ({\n drawerOpen,\n openItemName: item?.name,\n closeDrawer: () => setDrawerOpen(false),\n openDrawer: (next: UtilItemProps) => {\n // Spread to create a new object reference each time so useEffect([item])\n // always fires — even when the same item is re-opened after the drawer closes.\n setItem({ ...next });\n },\n refreshDrawer: (next: UtilItemProps) => {\n setItem({ ...next });\n }\n }),\n [drawerOpen, item?.name]\n );\n\n return (\n <AppShellDrawerContext.Provider value={ctxValue}>\n {children}\n {item && (\n <AppShellDrawer\n drawerOpen={drawerOpen}\n setDrawerOpen={setDrawerOpen}\n content={item.drawerView}\n header={item.drawerHeader || item.name}\n onDrawerClose={() => {\n setItem(undefined);\n item.onDrawerClose?.();\n }}\n onDrawerOpen={item.onDrawerOpen}\n />\n )}\n </AppShellDrawerContext.Provider>\n );\n}\n\nconst AppShell = forwardRef(function AppShell(\n props: PropsWithoutRef<AppShellProps>,\n ref: Ref<HTMLDivElement>\n) {\n const t = useI18n();\n\n const {\n appInfo,\n contextSwitcher,\n searchInput,\n appHeader,\n searchPage,\n searchLabel = t('sitewide'),\n caseTypes,\n links,\n agent,\n banners,\n progress,\n main,\n operator,\n utils,\n headerUtils,\n helpMenu,\n cases,\n defaultExpanded = false,\n collapsedHoverMenus = false,\n shareApp,\n navOrientation = 'side-rail',\n ...restProps\n } = props;\n\n const { disableScroll, enableScroll } = useScrollToggle();\n const navRef = useConsolidatedRef(ref);\n const mobileButtonRef = useRef<HTMLButtonElement>(null);\n const navId = useUID();\n const [expandCollapseEl, setExpandCollapseEl] = useElement<HTMLButtonElement>();\n\n const [mobileNavOpen, setMobileNavOpen] = useState(false);\n const [drawerOpen, setDrawerOpen] = useState(false);\n const [mobileNavLinksCount, setMobileNavLinksCount] = useState(0);\n\n const { previewActive, setPreviewActive } = usePreviewManager();\n\n const focusedImperatively = useRef(false);\n const [headerEl, setHeaderEl] = useElement<HTMLDivElement>();\n const [mobileHeaderEl, setMobileHeaderEl] = useElement<HTMLDivElement>();\n\n const isSmallOrAbove = useBreakpoint('sm');\n // Touch devices at narrow widths get the bottom nav; non-touch narrow desktops fall back to top-bar.\n const showMobileNav = !isSmallOrAbove && isTouchDevice;\n const isTopBar = !showMobileNav && (navOrientation === 'top-bar' || !isSmallOrAbove);\n\n const showAppHeader = isTopBar || (!!appHeader && isSmallOrAbove);\n const showMainContent = showAppHeader ? !!(headerEl || mobileHeaderEl) : true;\n\n const openNavTimeoutId = useRef<ReturnType<typeof setTimeout>>();\n const closeNavTimeoutId = useRef<ReturnType<typeof setTimeout>>();\n\n const [searchContainerEl, setSearchContainerEl] = useState<HTMLElement | null>(null);\n\n const openKeyboardCommands = useKeyboardCommands();\n\n const theme = useTheme();\n\n const { state: sidebarNavState, set: setSidebarNavState } = useTransitionState({\n ref: navRef,\n property: 'width',\n states: openCloseStates,\n defaultState: defaultExpanded ? 'open' : 'closed'\n });\n\n const skipLinks: SkipLinksProps['items'] = useMemo(\n () => [\n {\n label: t('go_to_main_content'),\n target: { ariaLabel: t('main_content'), selector: 'main' }\n }\n ],\n [t]\n );\n\n const openNav = useCallback((delay: number = 0) => {\n if (closeNavTimeoutId.current) clearTimeout(closeNavTimeoutId.current);\n openNavTimeoutId.current = setTimeout(() => {\n setSidebarNavState('open');\n }, delay);\n }, []);\n\n const closeNav = useCallback((delay: number = 0) => {\n if (openNavTimeoutId.current) clearTimeout(openNavTimeoutId.current);\n closeNavTimeoutId.current = setTimeout(() => {\n setSidebarNavState('closed');\n }, delay);\n }, []);\n\n const onFocus = useCallback(() => {\n focusedImperatively.current = false;\n }, []);\n\n const mobileNavRef = useRef<HTMLDivElement>(null);\n\n useEffect(() => {\n const ac = new AbortController();\n window.navigation.addEventListener(\n 'navigate',\n () => {\n if (mobileNavOpen) {\n setMobileNavOpen(false);\n }\n },\n {\n signal: ac.signal\n }\n );\n\n return () => {\n ac.abort();\n };\n }, [mobileNavOpen]);\n\n useEffect(() => {\n if (mobileNavOpen) {\n disableScroll();\n } else {\n enableScroll();\n }\n }, [mobileNavOpen]);\n\n useEffect(() => {\n if (mobileNavOpen) {\n const onKeyDown = ({ key }: KeyboardEvent) => {\n if (key === 'Escape') setMobileNavOpen(false);\n };\n\n document.addEventListener('keydown', onKeyDown);\n return () => {\n document.removeEventListener('keydown', onKeyDown);\n };\n }\n }, [mobileNavOpen]);\n\n useEffect(() => {\n if (isSmallOrAbove && mobileNavOpen) setMobileNavOpen(false);\n }, [isSmallOrAbove, mobileNavOpen]);\n\n useLayoutEffect(() => {\n if (!mobileHeaderEl) return;\n\n const resizeObserver = new ResizeObserver(\n debounce(() => {\n const screenWidth = document.documentElement.clientWidth;\n const regionsPaddingInlinePixels =\n 2 *\n Number.parseInt(\n window.getComputedStyle(mobileHeaderEl).getPropertyValue('padding-inline-start'),\n 10\n );\n const availableWidth = screenWidth * 0.9 - regionsPaddingInlinePixels;\n setMobileNavLinksCount(\n Math.max(\n Math.floor(availableWidth / menuButtonWidth(theme)) - (caseTypes?.length ? 2 : 1),\n 0\n )\n );\n }, 0)\n );\n\n resizeObserver.observe(document.documentElement);\n\n return () => {\n resizeObserver.disconnect();\n };\n }, [mobileHeaderEl, caseTypes?.length]);\n\n const activatedEl = useRef<Element>(document.body);\n useEvent('click', e => {\n activatedEl.current = document.elementFromPoint(e.clientX, e.clientY) ?? document.body;\n });\n\n useShortcut('NextRegion', () => {\n const activeElement =\n document.activeElement && document.activeElement !== document.body\n ? document.activeElement\n : activatedEl.current;\n const regionEls = followingNodes<HTMLElement>(\n document.createNodeIterator(document.body, NodeFilter.SHOW_ELEMENT, node =>\n // safe to treat as Element, as we requested to give us only elements\n (node as Element).hasAttribute('data-app-region') || node === activeElement\n ? NodeFilter.FILTER_ACCEPT\n : NodeFilter.FILTER_SKIP\n ),\n activeElement\n );\n // try to focus first visibleregion\n const focusedNode = regionEls.find(node => focusRegion(node));\n if (!focusedNode) (activeElement as HTMLElement).focus();\n });\n\n useShortcut('PrevRegion', () => {\n const activeElement =\n document.activeElement && document.activeElement !== document.body\n ? document.activeElement\n : activatedEl.current;\n const regionEls = followingNodes<HTMLElement>(\n document.createNodeIterator(document.body, NodeFilter.SHOW_ELEMENT, node =>\n // safe to treat as Element, as we requested to give us only elements\n (node as Element).hasAttribute('data-app-region') || node === activeElement\n ? NodeFilter.FILTER_ACCEPT\n : NodeFilter.FILTER_SKIP\n ),\n activeElement\n );\n regionEls.reverse();\n\n // removing active element parent from the list to avoid focusing back to the same region\n // but only if element is not region himself - in that case we want to keep its parent on the list\n // as it is different focusable region\n if (regionEls[0].contains(activeElement) && !activeElement.hasAttribute('data-app-region'))\n regionEls.splice(0, 1);\n const focusedNode = regionEls.find(node => focusRegion(node));\n if (!focusedNode) (activeElement as HTMLElement).focus();\n });\n\n useShortcut('KeyboardCommands', () => {\n openKeyboardCommands();\n });\n\n const contextSwitcherUtilItem: UtilItemProps | undefined = useMemo(() => {\n const {\n contexts,\n onContextClick,\n label: contextSwitcherLabel = t('switch_to')\n } = contextSwitcher ?? {};\n if (!showAppHeader && contexts && contexts?.length > 1 && !!onContextClick) {\n return {\n name: contextSwitcherLabel,\n primary: contextSwitcherLabel,\n visual: <Icon name='dot-9-solid' />,\n drawerView: (\n <NavigationList\n items={contexts!.map(context => ({\n ...context,\n primary: context.primary,\n 'aria-current': !!context.selected,\n visual: context.visual,\n onClick: e => {\n onContextClick(context.id, e);\n }\n }))}\n singleSelect\n />\n )\n };\n }\n }, [\n showAppHeader,\n contextSwitcher?.contexts,\n contextSwitcher?.label,\n contextSwitcher?.onContextClick\n ]);\n\n const shareLabel = shareApp?.label ?? t('app_shell_share');\n\n const shareApplicationUtilItem: UtilItemProps | undefined = useMemo(() => {\n if (!showAppHeader && shareApp) {\n return {\n name: shareLabel,\n primary: shareLabel,\n visual: <StyledShareIcon name='share' />,\n onClick: shareApp.onClick\n };\n }\n }, [showAppHeader, shareApp, shareLabel]);\n\n const operatorInfoUtilItem: UtilItemProps | undefined = useMemo(() => {\n if (!showAppHeader && operator) {\n return {\n name: operator.name,\n primary: t('app_shell_user_account'),\n visual: operator.avatar,\n items: operator.actions\n };\n }\n }, [showAppHeader, operator]);\n\n const { themeMode, onThemeModeChange } = useThemeMode();\n\n const themeSwitcherUtilItem: UtilItemProps | undefined = useMemo(() => {\n if (!showAppHeader && onThemeModeChange) {\n let currentThemeIcon = 'circle-mixed-left'; // default for system\n if (themeMode === 'dark') {\n currentThemeIcon = 'moon';\n } else if (themeMode === 'light') {\n currentThemeIcon = 'sun';\n }\n\n return {\n name: t('theme_mode'),\n primary: t('theme_mode'),\n visual: <Icon name={currentThemeIcon} />,\n items: [\n {\n id: 'light',\n primary: t('theme_light'),\n visual: <Icon name='sun' />,\n onClick: () => onThemeModeChange('light')\n },\n {\n id: 'dark',\n primary: t('theme_dark'),\n visual: <Icon name='moon' />,\n onClick: () => onThemeModeChange('dark')\n },\n {\n id: 'system',\n primary: t('theme_system'),\n visual: <Icon name='circle-mixed-left' />,\n onClick: () => onThemeModeChange('system')\n }\n ]\n };\n }\n }, [showAppHeader, onThemeModeChange, themeMode]);\n\n const { start, end } = useDirection();\n\n const utilsList = useMemo(\n () => [\n ...(utils ?? []),\n ...(contextSwitcherUtilItem ? [contextSwitcherUtilItem] : []),\n ...(shareApplicationUtilItem ? [shareApplicationUtilItem] : []),\n ...(operatorInfoUtilItem ? [operatorInfoUtilItem] : []),\n ...(themeSwitcherUtilItem ? [themeSwitcherUtilItem] : [])\n ],\n [\n utils,\n contextSwitcherUtilItem,\n shareApplicationUtilItem,\n operatorInfoUtilItem,\n themeSwitcherUtilItem\n ]\n );\n\n return (\n <AppShellContext.Provider\n value={useMemo(\n () => ({\n navOpen: sidebarNavState === 'open' || sidebarNavState === 'opening' || mobileNavOpen,\n drawerOpen,\n setDrawerOpen,\n collapsedHoverMenus,\n navState: sidebarNavState,\n focusedImperatively,\n headerEl: headerEl || mobileHeaderEl,\n appHeaderEl: headerEl ?? null,\n searchContainerEl,\n setSearchContainerEl,\n isMobileNav: showMobileNav,\n isTopBar,\n previewActive,\n setPreviewActive\n }),\n [\n sidebarNavState,\n drawerOpen,\n mobileNavOpen,\n showMobileNav,\n isTopBar,\n headerEl,\n mobileHeaderEl,\n searchContainerEl,\n previewActive\n ]\n )}\n >\n <SkipLinks items={skipLinks} />\n {showAppHeader && (\n <AppHeader\n {...appInfo}\n contextSwitcher={contextSwitcher}\n searchInput={searchInput}\n searchLabel={searchLabel}\n operator={operator}\n headerUtils={headerUtils}\n helpMenu={helpMenu}\n searchPage={searchPage}\n shareApp={shareApp}\n ref={setHeaderEl}\n />\n )}\n {isTopBar && (\n <TopNavDrawerProvider>\n <AppTopNav\n appInfo={appInfo}\n links={links}\n caseTypes={caseTypes}\n cases={cases}\n agent={agent}\n utils={utils}\n searchInput={searchInput}\n searchPage={searchPage}\n searchLabel={searchLabel}\n />\n </TopNavDrawerProvider>\n )}\n {!isTopBar && isSmallOrAbove && (\n <Flex\n {...restProps}\n container={{\n direction: 'column',\n justify: 'between'\n }}\n id={navId}\n as={StyledSidebarNav}\n portalAgent={!!agent}\n ref={navRef}\n data-app-region\n onFocus={onFocus}\n aria-label={t('app_shell_main_navigation_label')}\n >\n <AppNavigationPanel\n navState={sidebarNavState}\n appInfo={!showAppHeader ? appInfo : undefined}\n searchInput={!showAppHeader ? searchInput : undefined}\n searchLabel={searchLabel}\n caseTypes={caseTypes}\n links={links}\n cases={cases}\n utils={utilsList}\n onClick={() => {\n if (['closing', 'closed'].includes(sidebarNavState)) {\n openNav(0);\n } else {\n closeNav(0);\n }\n }}\n agent={agent}\n />\n <Flex container={{ justify: 'center' }}>\n <StyledAppShellToggleButton\n icon\n ref={setExpandCollapseEl}\n compact\n variant='simple'\n onClick={() => {\n setSidebarNavState(sidebarNavState === 'closed' ? 'open' : 'closed');\n }}\n aria-label={\n sidebarNavState === 'closed' ? t('expand_navigation') : t('collapse_navigation')\n }\n aria-expanded={sidebarNavState === 'open' || sidebarNavState === 'opening'}\n aria-controls={navId}\n >\n {['closed', 'closing'].includes(sidebarNavState) ? (\n <Icon name={`arrow-micro-${end}`} />\n ) : (\n <Icon name={`arrow-micro-${start}`} />\n )}\n </StyledAppShellToggleButton>\n\n {['open', 'closed'].includes(sidebarNavState) && (\n <Tooltip\n target={expandCollapseEl}\n placement='right'\n as={StyledAppShellTooltip}\n showDelay='none'\n hideDelay='none'\n >\n {sidebarNavState === 'closed' ? t('expand_navigation') : t('collapse_navigation')}\n </Tooltip>\n )}\n </Flex>\n </Flex>\n )}\n {showMobileNav && (\n <>\n <Flex\n as={StyledMobileNav}\n container={{ alignItems: 'center', gap: 0.25 }}\n ref={setMobileHeaderEl}\n data-app-region\n onFocus={() => {\n setMobileNavOpen(false);\n }}\n >\n {caseTypes && caseTypes.length > 0 && <CaseTypes caseTypes={caseTypes} mobileNavBar />}\n {links && <Links links={links.slice(0, mobileNavLinksCount)} mobileNavBar />}\n <StyledMobileMoreMenuButton\n ref={mobileButtonRef}\n variant='simple'\n onClick={() => setMobileNavOpen(prev => !prev)}\n label={t('app_shell_more')}\n icon\n aria-expanded={mobileNavOpen}\n aria-controls={navId}\n >\n <Icon name='bars' />\n {!mobileNavOpen &&\n utils?.some(item => (isValidElement(item) ? false : !!item.count)) && (\n <Alert variant='urgent' />\n )}\n <span>{t('app_shell_more')}</span>\n </StyledMobileMoreMenuButton>\n </Flex>\n <Drawer\n open={mobileNavOpen}\n ref={mobileNavRef}\n onAfterClose={() => {\n setMobileNavOpen(false);\n }}\n position='fixed'\n placement='bottom'\n size='100dvh'\n nullWhenClosed\n >\n <Flex\n {...restProps}\n container={{\n direction: 'column',\n justify: 'between'\n }}\n id={navId}\n as={StyledMobileMoreMenu}\n ref={ref}\n aria-label={t('app_shell_main_navigation_label')}\n >\n <AppNavigationPanel\n appInfo={appInfo}\n navState='open'\n searchInput={searchInput}\n searchLabel={searchLabel}\n links={links?.slice(mobileNavLinksCount)}\n cases={cases}\n utils={utilsList}\n agent={agent}\n />\n </Flex>\n </Drawer>\n </>\n )}\n {showMainContent && (\n <StyledAppMain\n previewActive={previewActive}\n isTopBar={isTopBar}\n aria-busy={!!progress}\n data-app-region\n >\n <Progress\n visible={!!progress}\n placement='local'\n message={typeof progress === 'string' ? progress : t('loading')}\n />\n\n {banners && <StyledBannerRegion>{banners}</StyledBannerRegion>}\n {main}\n </StyledAppMain>\n )}\n <AppShellGlobalStyle\n isTopBar={isTopBar}\n showAppHeader={showAppHeader}\n isMobile={showMobileNav}\n />\n </AppShellContext.Provider>\n );\n});\n\nexport default AppShell;\n"]}
|
|
1
|
+
{"version":3,"file":"AppShell.js","sourceRoot":"","sources":["../../../src/components/AppShell/AppShell.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\n forwardRef,\n useState,\n useCallback,\n useEffect,\n useMemo,\n useRef,\n useLayoutEffect\n} from 'react';\nimport type { PropsWithoutRef, ReactNode, Ref, MouseEvent } from 'react';\n\nimport { Alert } from '../Badges';\nimport Flex from '../Flex';\nimport Icon, { registerIcon } from '../Icon';\nimport * as timesIcon from '../Icon/icons/times.icon';\nimport * as plusIcon from '../Icon/icons/plus.icon';\nimport * as caseSolidIcon from '../Icon/icons/case-solid.icon';\nimport * as barsIcon from '../Icon/icons/bars.icon';\nimport * as caretLeftIcon from '../Icon/icons/caret-left.icon';\nimport * as caretRightIcon from '../Icon/icons/caret-right.icon';\nimport * as sunIcon from '../Icon/icons/sun.icon';\nimport * as moonIcon from '../Icon/icons/moon.icon';\nimport * as circleMixedLeftIcon from '../Icon/icons/circle-mixed-left.icon';\nimport * as shareIcon from '../Icon/icons/share.icon';\nimport {\n useI18n,\n useBreakpoint,\n useConsolidatedRef,\n useElement,\n useTransitionState,\n useEvent,\n useScrollToggle,\n useTheme,\n useUID,\n usePreviewManager,\n useDirection\n} from '../../hooks';\nimport { openCloseStates } from '../../hooks/useTransitionState';\nimport SkipLinks from '../SkipLinks';\nimport type { SkipLinksProps } from '../SkipLinks';\nimport Progress from '../Progress';\nimport { registerAction } from '../ShortcutManager';\nimport useShortcut from '../../hooks/useShortcut';\nimport { debounce, isTouchDevice, isValidElement } from '../../utils';\nimport useKeyboardCommands from '../KeyboardCommands';\nimport Tooltip from '../Tooltip';\nimport Drawer from '../Drawer';\nimport useThemeMode from '../../hooks/useThemeMode';\n\nimport AppShellContext, { AppShellDrawerContext } from './AppShellContext';\nimport AppHeader from './AppHeader';\nimport AppShellDrawer from './Drawer';\nimport AppTopNav from './AppTopNav';\nimport {\n StyledAppMain,\n StyledBannerRegion,\n StyledMobileNav,\n StyledMobileMoreMenuButton,\n menuButtonWidth,\n StyledMobileMoreMenu,\n StyledAppShellToggleButton,\n StyledAppShellTooltip,\n StyledSidebarNav,\n StyledShareIcon,\n AppShellGlobalStyle\n} from './AppShell.styles';\nimport type { AppShellProps, UtilItemProps } from './AppShell.types';\nimport { followingNodes, focusRegion } from './utils';\nimport AppNavigationPanel, { CaseTypes, Links } from './AppNavigationPanel';\nimport NavigationList from './NavigationList';\n\nregisterIcon(\n timesIcon,\n plusIcon,\n caseSolidIcon,\n barsIcon,\n caretRightIcon,\n caretLeftIcon,\n sunIcon,\n moonIcon,\n circleMixedLeftIcon,\n shareIcon\n);\nregisterAction(\n { id: 'NextRegion', defaultKeyBinding: 'F9' },\n { id: 'PrevRegion', defaultKeyBinding: 'Shift+F9' },\n { id: 'KeyboardCommands', defaultKeyBinding: 'CommandOrControl+/' }\n);\n\ninterface TopNavDrawerProviderProps {\n children: ReactNode;\n}\n\nfunction TopNavDrawerProvider({ children }: TopNavDrawerProviderProps) {\n const [item, setItem] = useState<UtilItemProps | undefined>(undefined);\n const [drawerOpen, setDrawerOpen] = useState(false);\n\n // Delay opening the drawer by one render pass after item is set.\n // The cosmos-core Drawer only fires onAfterOpen on a false→true open transition.\n // Batching setItem + setDrawerOpen(true) in the same event handler causes the\n // Drawer to mount with open=true from the start (no transition), so onAfterOpen\n // never fires and item.onDrawerOpen() (data fetching) is never called.\n // Setting drawerOpen in a separate useEffect gives the Drawer a proper transition.\n useEffect(() => {\n if (item) setDrawerOpen(true);\n }, [item]);\n\n const ctxValue = useMemo(\n () => ({\n drawerOpen,\n openItemName: item?.name,\n closeDrawer: () => setDrawerOpen(false),\n openDrawer: (next: UtilItemProps) => {\n // Spread to create a new object reference each time so useEffect([item])\n // always fires — even when the same item is re-opened after the drawer closes.\n setItem({ ...next });\n },\n refreshDrawer: (next: UtilItemProps) => {\n setItem({ ...next });\n }\n }),\n [drawerOpen, item?.name]\n );\n\n return (\n <AppShellDrawerContext.Provider value={ctxValue}>\n {children}\n {item && (\n <AppShellDrawer\n drawerOpen={drawerOpen}\n setDrawerOpen={setDrawerOpen}\n content={item.drawerView}\n header={item.drawerHeader || item.name}\n onDrawerClose={() => {\n setItem(undefined);\n item.onDrawerClose?.();\n }}\n onDrawerOpen={item.onDrawerOpen}\n />\n )}\n </AppShellDrawerContext.Provider>\n );\n}\n\nconst AppShell = forwardRef(function AppShell(\n props: PropsWithoutRef<AppShellProps>,\n ref: Ref<HTMLDivElement>\n) {\n const t = useI18n();\n\n const {\n appInfo,\n contextSwitcher,\n searchInput,\n appHeader,\n searchPage,\n searchLabel = t('sitewide'),\n caseTypes,\n links,\n agent,\n banners,\n progress,\n main,\n operator,\n utils,\n headerUtils,\n helpMenu,\n cases,\n defaultExpanded = false,\n collapsedHoverMenus = false,\n shareApp,\n navOrientation = 'side-rail',\n ...restProps\n } = props;\n\n const { disableScroll, enableScroll } = useScrollToggle();\n const navRef = useConsolidatedRef(ref);\n const mobileButtonRef = useRef<HTMLButtonElement>(null);\n const navId = useUID();\n const [expandCollapseEl, setExpandCollapseEl] = useElement<HTMLButtonElement>();\n\n const [mobileNavOpen, setMobileNavOpen] = useState(false);\n const [drawerOpen, setDrawerOpen] = useState(false);\n const [mobileNavLinksCount, setMobileNavLinksCount] = useState(0);\n\n const { previewActive, setPreviewActive } = usePreviewManager();\n\n const focusedImperatively = useRef(false);\n const [headerEl, setHeaderEl] = useElement<HTMLDivElement>();\n const [mobileHeaderEl, setMobileHeaderEl] = useElement<HTMLDivElement>();\n\n const isSmallOrAbove = useBreakpoint('sm');\n // Touch devices at narrow widths get the bottom nav; non-touch narrow desktops fall back to top-bar.\n const showMobileNav = !isSmallOrAbove && isTouchDevice;\n const isTopBar = !showMobileNav && (navOrientation === 'top-bar' || !isSmallOrAbove);\n\n const showAppHeader = isTopBar || (!!appHeader && isSmallOrAbove);\n const showMainContent = showAppHeader ? !!(headerEl || mobileHeaderEl) : true;\n\n const openNavTimeoutId = useRef<ReturnType<typeof setTimeout>>();\n const closeNavTimeoutId = useRef<ReturnType<typeof setTimeout>>();\n\n const [searchContainerEl, setSearchContainerEl] = useState<HTMLElement | null>(null);\n\n const openKeyboardCommands = useKeyboardCommands();\n\n const theme = useTheme();\n\n const { state: sidebarNavState, set: setSidebarNavState } = useTransitionState({\n ref: navRef,\n property: 'width',\n states: openCloseStates,\n defaultState: defaultExpanded ? 'open' : 'closed'\n });\n\n const skipLinks: SkipLinksProps['items'] = useMemo(\n () => [\n {\n label: t('go_to_main_content'),\n target: { ariaLabel: t('main_content'), selector: 'main' }\n }\n ],\n [t]\n );\n\n const openNav = useCallback((delay: number = 0) => {\n if (closeNavTimeoutId.current) clearTimeout(closeNavTimeoutId.current);\n openNavTimeoutId.current = setTimeout(() => {\n setSidebarNavState('open');\n }, delay);\n }, []);\n\n const closeNav = useCallback((delay: number = 0) => {\n if (openNavTimeoutId.current) clearTimeout(openNavTimeoutId.current);\n closeNavTimeoutId.current = setTimeout(() => {\n setSidebarNavState('closed');\n }, delay);\n }, []);\n\n const onFocus = useCallback(() => {\n focusedImperatively.current = false;\n }, []);\n\n const mobileNavRef = useRef<HTMLDivElement>(null);\n\n useEffect(() => {\n const ac = new AbortController();\n window.navigation.addEventListener(\n 'navigate',\n () => {\n if (mobileNavOpen) {\n setMobileNavOpen(false);\n }\n },\n {\n signal: ac.signal\n }\n );\n\n return () => {\n ac.abort();\n };\n }, [mobileNavOpen]);\n\n useEffect(() => {\n if (mobileNavOpen) {\n disableScroll();\n } else {\n enableScroll();\n }\n }, [mobileNavOpen]);\n\n useEffect(() => {\n if (mobileNavOpen) {\n const onKeyDown = ({ key }: KeyboardEvent) => {\n if (key === 'Escape') setMobileNavOpen(false);\n };\n\n document.addEventListener('keydown', onKeyDown);\n return () => {\n document.removeEventListener('keydown', onKeyDown);\n };\n }\n }, [mobileNavOpen]);\n\n useEffect(() => {\n if (isSmallOrAbove && mobileNavOpen) setMobileNavOpen(false);\n }, [isSmallOrAbove, mobileNavOpen]);\n\n useLayoutEffect(() => {\n if (!mobileHeaderEl) return;\n\n const resizeObserver = new ResizeObserver(\n debounce(() => {\n const screenWidth = document.documentElement.clientWidth;\n const regionsPaddingInlinePixels =\n 2 *\n Number.parseInt(\n window.getComputedStyle(mobileHeaderEl).getPropertyValue('padding-inline-start'),\n 10\n );\n const availableWidth = screenWidth * 0.9 - regionsPaddingInlinePixels;\n setMobileNavLinksCount(\n Math.max(\n Math.floor(availableWidth / menuButtonWidth(theme)) - (caseTypes?.length ? 2 : 1),\n 0\n )\n );\n }, 0)\n );\n\n resizeObserver.observe(document.documentElement);\n\n return () => {\n resizeObserver.disconnect();\n };\n }, [mobileHeaderEl, caseTypes?.length]);\n\n const activatedEl = useRef<Element>(document.body);\n useEvent('click', e => {\n activatedEl.current = document.elementFromPoint(e.clientX, e.clientY) ?? document.body;\n });\n\n useShortcut('NextRegion', () => {\n const activeElement =\n document.activeElement && document.activeElement !== document.body\n ? document.activeElement\n : activatedEl.current;\n const regionEls = followingNodes<HTMLElement>(\n document.createNodeIterator(document.body, NodeFilter.SHOW_ELEMENT, node =>\n // safe to treat as Element, as we requested to give us only elements\n (node as Element).hasAttribute('data-app-region') || node === activeElement\n ? NodeFilter.FILTER_ACCEPT\n : NodeFilter.FILTER_SKIP\n ),\n activeElement\n );\n // try to focus first visibleregion\n const focusedNode = regionEls.find(node => focusRegion(node));\n if (!focusedNode) (activeElement as HTMLElement).focus();\n });\n\n useShortcut('PrevRegion', () => {\n const activeElement =\n document.activeElement && document.activeElement !== document.body\n ? document.activeElement\n : activatedEl.current;\n const regionEls = followingNodes<HTMLElement>(\n document.createNodeIterator(document.body, NodeFilter.SHOW_ELEMENT, node =>\n // safe to treat as Element, as we requested to give us only elements\n (node as Element).hasAttribute('data-app-region') || node === activeElement\n ? NodeFilter.FILTER_ACCEPT\n : NodeFilter.FILTER_SKIP\n ),\n activeElement\n );\n regionEls.reverse();\n\n // removing active element parent from the list to avoid focusing back to the same region\n // but only if element is not region himself - in that case we want to keep its parent on the list\n // as it is different focusable region\n if (regionEls[0].contains(activeElement) && !activeElement.hasAttribute('data-app-region'))\n regionEls.splice(0, 1);\n const focusedNode = regionEls.find(node => focusRegion(node));\n if (!focusedNode) (activeElement as HTMLElement).focus();\n });\n\n useShortcut('KeyboardCommands', () => {\n openKeyboardCommands();\n });\n\n const contextSwitcherUtilItem: UtilItemProps | undefined = useMemo(() => {\n const {\n contexts,\n onContextClick,\n label: contextSwitcherLabel = t('switch_to')\n } = contextSwitcher ?? {};\n if (!showAppHeader && contexts && contexts?.length > 1 && !!onContextClick) {\n return {\n name: contextSwitcherLabel,\n primary: contextSwitcherLabel,\n visual: <Icon name='dot-9-solid' />,\n drawerView: (\n <NavigationList\n items={contexts!.map(context => ({\n ...context,\n primary: context.primary,\n 'aria-current': !!context.selected,\n visual: context.visual,\n onClick: e => {\n onContextClick(context.id, e);\n }\n }))}\n singleSelect\n />\n )\n };\n }\n }, [\n showAppHeader,\n contextSwitcher?.contexts,\n contextSwitcher?.label,\n contextSwitcher?.onContextClick\n ]);\n\n const shareLabel = shareApp?.label ?? t('app_shell_share');\n\n const shareApplicationUtilItem: UtilItemProps | undefined = useMemo(() => {\n if (!showAppHeader && shareApp) {\n return {\n name: shareLabel,\n primary: shareLabel,\n visual: <StyledShareIcon name='share' />,\n onClick: shareApp.onClick\n };\n }\n }, [showAppHeader, shareApp, shareLabel]);\n\n const operatorInfoUtilItem: UtilItemProps | undefined = useMemo(() => {\n if (!showAppHeader && operator) {\n return {\n name: operator.name,\n primary: t('app_shell_user_account'),\n visual: operator.avatar,\n items: operator.actions\n };\n }\n }, [showAppHeader, operator]);\n\n const { themeMode, onThemeModeChange } = useThemeMode();\n\n const themeSwitcherUtilItem: UtilItemProps | undefined = useMemo(() => {\n if (!showAppHeader && onThemeModeChange) {\n let currentThemeIcon = 'circle-mixed-left'; // default for system\n if (themeMode === 'dark') {\n currentThemeIcon = 'moon';\n } else if (themeMode === 'light') {\n currentThemeIcon = 'sun';\n }\n\n return {\n name: t('theme_mode'),\n primary: t('theme_mode'),\n visual: <Icon name={currentThemeIcon} />,\n items: [\n {\n id: 'light',\n primary: t('theme_light'),\n visual: <Icon name='sun' />,\n onClick: () => onThemeModeChange('light')\n },\n {\n id: 'dark',\n primary: t('theme_dark'),\n visual: <Icon name='moon' />,\n onClick: () => onThemeModeChange('dark')\n },\n {\n id: 'system',\n primary: t('theme_system'),\n visual: <Icon name='circle-mixed-left' />,\n onClick: () => onThemeModeChange('system')\n }\n ]\n };\n }\n }, [showAppHeader, onThemeModeChange, themeMode]);\n\n const { start, end } = useDirection();\n\n const utilsList = useMemo(\n () => [\n ...(utils ?? []),\n ...(contextSwitcherUtilItem ? [contextSwitcherUtilItem] : []),\n ...(shareApplicationUtilItem ? [shareApplicationUtilItem] : []),\n ...(operatorInfoUtilItem ? [operatorInfoUtilItem] : []),\n ...(themeSwitcherUtilItem ? [themeSwitcherUtilItem] : [])\n ],\n [\n utils,\n contextSwitcherUtilItem,\n shareApplicationUtilItem,\n operatorInfoUtilItem,\n themeSwitcherUtilItem\n ]\n );\n\n return (\n <AppShellContext.Provider\n value={useMemo(\n () => ({\n navOpen: sidebarNavState === 'open' || sidebarNavState === 'opening' || mobileNavOpen,\n drawerOpen,\n setDrawerOpen,\n collapsedHoverMenus,\n navState: sidebarNavState,\n focusedImperatively,\n headerEl: headerEl || mobileHeaderEl,\n appHeaderEl: headerEl ?? null,\n searchContainerEl,\n setSearchContainerEl,\n isMobileNav: showMobileNav,\n isTopBar,\n previewActive,\n setPreviewActive\n }),\n [\n sidebarNavState,\n drawerOpen,\n mobileNavOpen,\n showMobileNav,\n isTopBar,\n headerEl,\n mobileHeaderEl,\n searchContainerEl,\n previewActive\n ]\n )}\n >\n <SkipLinks items={skipLinks} />\n {showAppHeader && (\n <AppHeader\n {...appInfo}\n contextSwitcher={contextSwitcher}\n searchInput={searchInput}\n searchLabel={searchLabel}\n operator={operator}\n headerUtils={headerUtils}\n helpMenu={helpMenu}\n searchPage={searchPage}\n shareApp={shareApp}\n ref={setHeaderEl}\n />\n )}\n {isTopBar && (\n <TopNavDrawerProvider>\n <AppTopNav\n appInfo={appInfo}\n links={links}\n caseTypes={caseTypes}\n cases={cases}\n agent={agent}\n utils={utils}\n searchInput={searchInput}\n searchPage={searchPage}\n searchLabel={searchLabel}\n />\n </TopNavDrawerProvider>\n )}\n {!isTopBar && isSmallOrAbove && (\n <Flex\n {...restProps}\n container={{\n direction: 'column',\n justify: 'between'\n }}\n id={navId}\n as={StyledSidebarNav}\n portalAgent={!!agent}\n ref={navRef}\n data-app-region\n onFocus={onFocus}\n aria-label={t('app_shell_main_navigation_label')}\n >\n <AppNavigationPanel\n navState={sidebarNavState}\n appInfo={!showAppHeader ? appInfo : undefined}\n searchInput={!showAppHeader ? searchInput : undefined}\n searchLabel={searchLabel}\n caseTypes={caseTypes}\n links={links}\n cases={cases}\n utils={utilsList}\n onClick={() => {\n if (['closing', 'closed'].includes(sidebarNavState)) {\n openNav(0);\n } else {\n closeNav(0);\n }\n }}\n agent={agent}\n />\n <Flex container={{ justify: 'center' }}>\n <StyledAppShellToggleButton\n icon\n ref={setExpandCollapseEl}\n compact\n variant='simple'\n onClick={() => {\n setSidebarNavState(sidebarNavState === 'closed' ? 'open' : 'closed');\n }}\n aria-label={\n sidebarNavState === 'closed' ? t('expand_navigation') : t('collapse_navigation')\n }\n aria-expanded={sidebarNavState === 'open' || sidebarNavState === 'opening'}\n aria-controls={navId}\n >\n {['closed', 'closing'].includes(sidebarNavState) ? (\n <Icon name={`arrow-micro-${end}`} />\n ) : (\n <Icon name={`arrow-micro-${start}`} />\n )}\n </StyledAppShellToggleButton>\n\n {['open', 'closed'].includes(sidebarNavState) && (\n <Tooltip\n target={expandCollapseEl}\n placement='right'\n as={StyledAppShellTooltip}\n showDelay='none'\n hideDelay='none'\n >\n {sidebarNavState === 'closed' ? t('expand_navigation') : t('collapse_navigation')}\n </Tooltip>\n )}\n </Flex>\n </Flex>\n )}\n {showMobileNav && (\n <>\n <Flex\n as={StyledMobileNav}\n container={{ alignItems: 'center', gap: 0.25 }}\n ref={setMobileHeaderEl}\n data-app-region\n onClick={() => {\n setMobileNavOpen(false);\n }}\n >\n {caseTypes && caseTypes.length > 0 && <CaseTypes caseTypes={caseTypes} mobileNavBar />}\n {links && <Links links={links.slice(0, mobileNavLinksCount)} mobileNavBar />}\n <StyledMobileMoreMenuButton\n ref={mobileButtonRef}\n variant='simple'\n onClick={(e: MouseEvent<HTMLButtonElement>) => {\n setMobileNavOpen(prev => !prev);\n e.stopPropagation();\n }}\n label={t('app_shell_more')}\n icon\n aria-expanded={mobileNavOpen}\n aria-controls={navId}\n >\n <Icon name='bars' />\n {!mobileNavOpen &&\n utils?.some(item => (isValidElement(item) ? false : !!item.count)) && (\n <Alert variant='urgent' />\n )}\n <span>{t('app_shell_more')}</span>\n </StyledMobileMoreMenuButton>\n </Flex>\n <Drawer\n open={mobileNavOpen}\n ref={mobileNavRef}\n onAfterClose={() => {\n setMobileNavOpen(false);\n }}\n position='fixed'\n placement='bottom'\n size='100dvh'\n nullWhenClosed\n >\n <Flex\n {...restProps}\n container={{\n direction: 'column',\n justify: 'between'\n }}\n id={navId}\n as={StyledMobileMoreMenu}\n ref={ref}\n aria-label={t('app_shell_main_navigation_label')}\n >\n <AppNavigationPanel\n appInfo={appInfo}\n navState='open'\n searchInput={searchInput}\n searchLabel={searchLabel}\n links={links?.slice(mobileNavLinksCount)}\n cases={cases}\n utils={utilsList}\n agent={agent}\n />\n </Flex>\n </Drawer>\n </>\n )}\n {showMainContent && (\n <StyledAppMain\n previewActive={previewActive}\n isTopBar={isTopBar}\n aria-busy={!!progress}\n data-app-region\n >\n <Progress\n visible={!!progress}\n placement='local'\n message={typeof progress === 'string' ? progress : t('loading')}\n />\n\n {banners && <StyledBannerRegion>{banners}</StyledBannerRegion>}\n {main}\n </StyledAppMain>\n )}\n <AppShellGlobalStyle\n isTopBar={isTopBar}\n showAppHeader={showAppHeader}\n isMobile={showMobileNav}\n />\n </AppShellContext.Provider>\n );\n});\n\nexport default AppShell;\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AppShell.styles.d.ts","sourceRoot":"","sources":["../../../src/components/AppShell/AppShell.styles.ts"],"names":[],"mappings":"AAAA,OAAe,EAA0B,KAAK,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAmCtF,eAAO,MAAM,QAAQ,SAAS,CAAC;AAC/B,eAAO,MAAM,YAAY,aAAa,CAAC;AACvC,eAAO,MAAM,YAAY,SAAS,CAAC;AACnC,eAAO,MAAM,kBAAkB,YAAY,CAAC;AAC5C,eAAO,MAAM,YAAY,SAAS,CAAC;AAInC,eAAO,MAAM,mBAAmB;eACnB,OAAO;oBACF,OAAO;eACZ,OAAO;EAsBnB,CAAC;AAEF,eAAO,MAAM,eAAe,GAAI,OAAO,YAAY,WAQhD,CAAC;AAEJ,eAAO,MAAM,aAAa,yOA8CxB,CAAC;AAIH,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oMAW3B,CAAC;AAIH,eAAO,MAAM,oBAAoB;cAA0B,OAAO;YAkBhE,CAAC;AAIH,eAAO,MAAM,eAAe;;;;iDAK3B,CAAC;AAIF,eAAO,MAAM,yBAAyB,+NAOpC,CAAC;AAIH,eAAO,MAAM,+BAA+B,kYAAiB,CAAC;AAE9D,eAAO,MAAM,+BAA+B,kYAoB1C,CAAC;AAIH,eAAO,MAAM,mBAAmB,+NAE/B,CAAC;AAEF,eAAO,MAAM,oBAAoB,+NAgB/B,CAAC;AAyCH,eAAO,MAAM,gBAAgB;;;kBACb,OAAO;YAiCrB,CAAC;AAIH,eAAO,MAAM,eAAe,yOAAkB,CAAC;AAE/C,eAAO,MAAM,gCAAgC;eAChC,OAAO;aACT,OAAO;YAqCjB,CAAC;AAIF,eAAO,MAAM,iBAAiB;yBACP,OAAO;kBACd,OAAO;YA0MrB,CAAC;AAIH,eAAO,MAAM,aAAa,iOAexB,CAAC;AAGH,eAAO,MAAM,kBAAkB,6NAQ7B,CAAC;AAIH,eAAO,MAAM,mBAAmB;;mBAiE9B,CAAC;AAIH,eAAO,MAAM,eAAe,6NA2B1B,CAAC;AAIH,eAAO,MAAM,WAAW,6NAUtB,CAAC;AAIH,eAAO,MAAM,oBAAoB;;
|
|
1
|
+
{"version":3,"file":"AppShell.styles.d.ts","sourceRoot":"","sources":["../../../src/components/AppShell/AppShell.styles.ts"],"names":[],"mappings":"AAAA,OAAe,EAA0B,KAAK,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAmCtF,eAAO,MAAM,QAAQ,SAAS,CAAC;AAC/B,eAAO,MAAM,YAAY,aAAa,CAAC;AACvC,eAAO,MAAM,YAAY,SAAS,CAAC;AACnC,eAAO,MAAM,kBAAkB,YAAY,CAAC;AAC5C,eAAO,MAAM,YAAY,SAAS,CAAC;AAInC,eAAO,MAAM,mBAAmB;eACnB,OAAO;oBACF,OAAO;eACZ,OAAO;EAsBnB,CAAC;AAEF,eAAO,MAAM,eAAe,GAAI,OAAO,YAAY,WAQhD,CAAC;AAEJ,eAAO,MAAM,aAAa,yOA8CxB,CAAC;AAIH,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oMAW3B,CAAC;AAIH,eAAO,MAAM,oBAAoB;cAA0B,OAAO;YAkBhE,CAAC;AAIH,eAAO,MAAM,eAAe;;;;iDAK3B,CAAC;AAIF,eAAO,MAAM,yBAAyB,+NAOpC,CAAC;AAIH,eAAO,MAAM,+BAA+B,kYAAiB,CAAC;AAE9D,eAAO,MAAM,+BAA+B,kYAoB1C,CAAC;AAIH,eAAO,MAAM,mBAAmB,+NAE/B,CAAC;AAEF,eAAO,MAAM,oBAAoB,+NAgB/B,CAAC;AAyCH,eAAO,MAAM,gBAAgB;;;kBACb,OAAO;YAiCrB,CAAC;AAIH,eAAO,MAAM,eAAe,yOAAkB,CAAC;AAE/C,eAAO,MAAM,gCAAgC;eAChC,OAAO;aACT,OAAO;YAqCjB,CAAC;AAIF,eAAO,MAAM,iBAAiB;yBACP,OAAO;kBACd,OAAO;YA0MrB,CAAC;AAIH,eAAO,MAAM,aAAa,iOAexB,CAAC;AAGH,eAAO,MAAM,kBAAkB,6NAQ7B,CAAC;AAIH,eAAO,MAAM,mBAAmB;;mBAiE9B,CAAC;AAIH,eAAO,MAAM,eAAe,6NA2B1B,CAAC;AAIH,eAAO,MAAM,WAAW,6NAUtB,CAAC;AAIH,eAAO,MAAM,oBAAoB;;mBAKhC,CAAC;AAIF,eAAO,MAAM,eAAe,uNAgF1B,CAAC;AAIH,eAAO,MAAM,0BAA0B;;2JAgDrC,CAAC;AAIH,eAAO,MAAM,aAAa,6NAEzB,CAAC;AAEF,eAAO,MAAM,aAAa;mBACT,OAAO;eACX,OAAO;YAoElB,CAAC;AAIH,eAAO,MAAM,kBAAkB,6NAI7B,CAAC;AAIH,eAAO,MAAM,qBAAqB;;mBA2BhC,CAAC;AAIH,eAAO,MAAM,0BAA0B;;2JAkCrC,CAAC;AAIH,eAAO,MAAM,kBAAkB,6NAU9B,CAAC;AAIF,eAAO,MAAM,iBAAiB,6NAyG5B,CAAC;AAIH,eAAO,MAAM,eAAe,kYAE3B,CAAC"}
|
|
@@ -586,7 +586,8 @@ export const StyledUtils = styled.div(({ theme }) => {
|
|
|
586
586
|
StyledUtils.defaultProps = defaultThemeProp;
|
|
587
587
|
export const StyledMobileMoreMenu = styled(StyledAppNav) `
|
|
588
588
|
width: 100%;
|
|
589
|
-
height:
|
|
589
|
+
height: 100%;
|
|
590
|
+
padding-block-start: var(--appshell-top-offset, 0);
|
|
590
591
|
padding-block-end: var(--appshell-bottom-offset, ${mobileHeaderHeight});
|
|
591
592
|
`;
|
|
592
593
|
StyledMobileMoreMenu.defaultProps = defaultThemeProp;
|
|
@@ -609,11 +610,8 @@ export const StyledMobileNav = styled.header(({ theme }) => {
|
|
|
609
610
|
transform: translateX(-50%);
|
|
610
611
|
box-shadow: ${theme.base.shadow.low};
|
|
611
612
|
|
|
612
|
-
/* Limit the content height of Recents and Notifications */
|
|
613
613
|
& + ${StyledDrawer} ${StyledDrawer} {
|
|
614
614
|
width: 100%;
|
|
615
|
-
padding-block-start: var(--appshell-top-offset, 0);
|
|
616
|
-
padding-block-end: var(--appshell-bottom-offset, ${mobileHeaderHeight});
|
|
617
615
|
}
|
|
618
616
|
|
|
619
617
|
> div:has(> ${StyledNavList}),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AppShell.styles.js","sourceRoot":"","sources":["../../../src/components/AppShell/AppShell.styles.ts"],"names":[],"mappings":"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","sourcesContent":["import styled, { createGlobalStyle, css, type DefaultTheme } from 'styled-components';\nimport { darken, getContrast, lighten, rem, remToPx, transparentize } from 'polished';\nimport { useContext } from 'react';\n\nimport { StyledAlert } from '../Badges/Alert';\nimport { ellipsisOverflow } from '../../styles/mixins';\nimport { StyledLink } from '../Link/Link';\nimport { Count } from '../Badges';\nimport { StyledAvatar } from '../Avatar';\nimport { StyledIcon } from '../Icon';\nimport { StyledImage } from '../Image/Image';\nimport { defaultThemeProp } from '../../theme';\nimport {\n calculateFontSize,\n calculateForegroundColor,\n calculateBackgroundAndContrastColor,\n resolveContrastColor\n} from '../../styles';\nimport type { FontSize } from '../../styles';\nimport { StyledMenuItem } from '../Menu/Menu.styles';\nimport { useDirection } from '../../hooks';\nimport { StyledBareButton } from '../Button/BareButton';\nimport Button from '../Button';\nimport { StyledTooltip } from '../Tooltip';\nimport { StyledProgressBackdrop } from '../Progress';\nimport Icon from '../Icon/Icon';\nimport { StyledText } from '../Text';\nimport Flex from '../Flex';\nimport { resizeDrawerMaxWidth } from '../../styles/constants';\nimport { tryCatch } from '../../utils';\nimport { StyledDrawer } from '../Drawer';\n\nimport AppShellContext from './AppShellContext';\nimport { navContrastColors } from './style-utils';\n\nexport const navWidth = '4rem';\nexport const navOpenWidth = '18.75rem';\nexport const headerHeight = '3rem';\nexport const mobileHeaderHeight = '5.25rem';\nexport const topNavHeight = '3rem';\nconst iconWidth = '1.125rem';\nconst iconBoxSize = `calc((${navWidth} - ${iconWidth} - 2 * var(--nav-padding)) / 2)`;\n\nexport const AppShellGlobalStyle = createGlobalStyle<{\n isTopBar?: boolean;\n showAppHeader?: boolean;\n isMobile?: boolean;\n}>`\n :root,\n :host {\n /* Height of the app header */\n --app-header-height: ${({ showAppHeader }) => (showAppHeader ? headerHeight : '0rem')};\n\n /* Hard offset for content that should cover app header and top nav (Backdrop and Fullscreen) */\n --appshell-hard-top-offset: calc(var(--marking-height, 0rem) + var(--safe-area-inset-block-start, 0rem));\n\n /* Offset for content that should be below app header and top nav (Drawers and Previews) */\n --appshell-top-offset: calc(var(--appshell-hard-top-offset) + var(--app-header-height) + ${({ isTopBar }) => (isTopBar ? topNavHeight : '0rem')} );\n\n /* Hard offset for content that should cover the bottom mobile nav (Backdrop and Fullscreen) */\n --appshell-hard-bottom-offset: calc(var(--marking-height, 0rem) + var(--safe-area-inset-block-end, 0rem));\n\n /* Offset for content that should be above the bottom mobile nav (Drawers and Toasters) */\n --appshell-bottom-offset: calc(var(--appshell-hard-bottom-offset) + ${({ isMobile }) => (isMobile ? mobileHeaderHeight : '0rem')});\n\n /* Total offset for app header, nav, and mobile nav used for calculating available height */\n --appshell-total-offset: calc(var(--appshell-top-offset) + var(--appshell-bottom-offset));\n }\n`;\n\nexport const menuButtonWidth = (theme: DefaultTheme) =>\n Number.parseInt(theme.base['hit-area']['finger-min'], 10) +\n Number.parseInt(\n tryCatch(\n () => remToPx(1.25),\n () => '20px'\n ),\n 10\n );\n\nexport const StyledAppInfo = styled.a(({ theme }) => {\n const fontSize = calculateFontSize(theme.base['font-size'], theme.base['font-scale']);\n const { hoverBg, foreground } = navContrastColors(theme);\n\n return css`\n padding: ${theme.base.spacing} calc(${navWidth} / 4);\n grid-template-columns: calc(${navWidth} / 2) auto;\n column-gap: calc(${navWidth} / 4);\n vertical-align: middle;\n\n &:hover,\n button&:hover {\n background-color: ${hoverBg};\n text-decoration: none;\n }\n\n &:focus-visible:not([disabled]) {\n outline: none;\n box-shadow: ${theme.base.shadow['focus-inset']};\n }\n\n ${StyledImage} {\n display: inline-block;\n width: calc(${navWidth} / 2);\n margin-inline-end: calc(${theme.base.spacing} * 2);\n vertical-align: middle;\n }\n\n span {\n overflow: hidden;\n text-overflow: ellipsis;\n vertical-align: middle;\n }\n\n span:last-of-type {\n font-size: ${fontSize.xs};\n color: ${foreground};\n }\n\n span:first-of-type {\n font-size: ${fontSize.s};\n color: ${foreground};\n margin-inline-end: calc(${theme.base.spacing});\n vertical-align: middle;\n }\n `;\n});\n\nStyledAppInfo.defaultProps = defaultThemeProp;\n\nexport const StyledScrollWrap = styled(Flex)(({ theme }) => {\n return css`\n overflow-x: hidden;\n overflow-y: auto;\n padding-block-start: calc(0.125 * ${theme.base.spacing});\n\n @media (height <= ${theme.base.breakpoints.sm}) {\n overflow: visible;\n flex-shrink: 0;\n }\n `;\n});\n\nStyledScrollWrap.defaultProps = defaultThemeProp;\n\nexport const StyledUtilsSeparator = styled.div<{ navOpen?: boolean }>(({ theme, navOpen }) => {\n return css`\n position: sticky;\n inset-block-end: 0;\n margin-block-start: auto;\n margin-inline: var(--nav-padding);\n border-block-start: 0.0625rem solid ${theme.components['app-shell'].nav['separator-color']};\n\n @media (height <= ${theme.base.breakpoints.sm}) {\n position: relative;\n margin-inline-end: calc(var(--nav-padding) / 2);\n\n ${navOpen &&\n css`\n margin-inline-end: var(--nav-padding);\n `}\n }\n `;\n});\n\nStyledUtilsSeparator.defaultProps = defaultThemeProp;\n\nexport const StyledCountIcon = styled(Count)`\n position: absolute;\n /* stylelint-disable-next-line unit-allowed-list */\n inset-block-start: 0.25lh;\n inset-inline-start: calc((${navWidth} / 2) - var(--nav-padding));\n`;\n\nStyledCountIcon.defaultProps = defaultThemeProp;\n\nexport const StyledSingleSelectIconBox = styled.span(({ theme }) => {\n return css`\n flex-shrink: 0;\n height: ${theme.base['hit-area']['mouse-min']};\n width: ${theme.base['hit-area']['mouse-min']};\n margin-inline-start: calc(2 * ${theme.base.spacing});\n `;\n});\n\nStyledSingleSelectIconBox.defaultProps = defaultThemeProp;\n\nexport const StyledNavListItemExpandCollapse = styled(Icon)``;\n\nexport const StyledNavListItemGroupIndicator = styled(Icon)(({\n theme: {\n components: {\n 'app-shell': {\n nav: { detached }\n }\n }\n }\n}) => {\n return css`\n position: absolute;\n width: 0.75rem;\n height: 0.75rem;\n margin-block-start: calc(${iconWidth} / 8);\n margin-inline-start: 2.5rem;\n ${detached &&\n css`\n margin-inline-start: calc(${navWidth} / 2 - ${iconWidth} / 6);\n `}\n `;\n});\n\nStyledNavListItemGroupIndicator.defaultProps = defaultThemeProp;\n\nexport const StyledUtilIconCount = styled.span`\n flex-shrink: 0;\n`;\n\nexport const StyledNavItemIconBox = styled.span(({ theme }) => {\n return css`\n flex-shrink: 0;\n\n > ${StyledIcon}, ${StyledUtilIconCount} > ${StyledIcon} {\n margin-inline: ${iconBoxSize};\n }\n\n ${StyledAvatar} {\n margin-inline: calc(\n (${navWidth} - ${theme.base['hit-area']['mouse-min']} - 2 * var(--nav-padding)) / 2\n );\n margin-block: calc(0.5 * ${theme.base.spacing});\n font-weight: ${theme.base['font-weight'].normal};\n }\n `;\n});\n\nStyledNavItemIconBox.defaultProps = defaultThemeProp;\n\nconst StyledAppNav = styled.nav(({ theme }) => {\n const navBg = theme.components['app-shell'].nav.background;\n const navFgColor = theme.components['app-shell'].nav['foreground-color'];\n\n const foregroundColor = calculateForegroundColor(navBg, navFgColor, theme);\n\n return css`\n --nav-padding: ${theme.components['app-shell'].nav.detached ? '0.75rem' : '0px'};\n inset-block-start: var(--appshell-top-offset, 0);\n background: ${navBg};\n color: ${foregroundColor};\n overflow: hidden;\n white-space: nowrap;\n border-color: ${theme.components['app-shell'].nav['border-color']};\n\n @media (height <= ${theme.base.breakpoints.sm}) {\n overflow-y: auto;\n overflow-x: clip;\n }\n padding-block-start: ${theme.base.spacing};\n\n /* App navigation can be focused with shortcut */\n &:focus-visible {\n box-shadow: ${theme.base.shadow['focus-inset']};\n }\n\n ${theme.base['custom-scrollbar'] &&\n css`\n * {\n scrollbar-width: thin;\n }\n `}\n `;\n});\n\nStyledAppNav.defaultProps = defaultThemeProp;\n\nexport const StyledSidebarNav = styled(StyledAppNav)<{\n portalAgent?: boolean;\n}>(({ portalAgent, theme }) => {\n const { rtl } = useDirection();\n\n const { navState } = useContext(AppShellContext);\n\n return css`\n position: fixed;\n z-index: calc(${theme.base['z-index'].backdrop} - 2);\n max-width: calc(100vw - ${theme.base['hit-area']['mouse-min']});\n width: calc(\n ${navState === 'open' || navState === 'opening' ? navOpenWidth : navWidth} +\n var(--safe-area-inset-inline-start, 0rem)\n );\n transition: width ${`${theme.base.animation.speed} ${theme.base.animation.timing.ease}`};\n height: calc(100dvh - var(--appshell-top-offset));\n padding-inline-start: var(--safe-area-inset-inline-start, 0);\n padding-block-end: calc(${theme.base.spacing} + var(--appshell-bottom-offset, 0));\n\n @media (pointer: coarse) {\n max-width: calc(100vw - ${theme.base['hit-area']['finger-min']});\n }\n\n ${portalAgent\n ? css`\n box-shadow: inset ${rtl ? '0.0625rem' : '-0.0625rem'} 0 0 0\n ${theme.components['app-shell'].nav['border-color']};\n `\n : css`\n border-inline-end: 0.0625rem solid ${transparentize(0.9, '#000')};\n border-color: ${theme.components['app-shell'].nav['border-color']};\n `}\n `;\n});\n\nStyledSidebarNav.defaultProps = defaultThemeProp;\n\nexport const StyledCaseClose = styled.button``;\n\nexport const StyledNavListItemVisualContainer = styled.div<{\n isCurrent: boolean;\n navOpen: boolean;\n}>(\n ({\n theme: {\n base: { spacing },\n components: {\n 'app-shell': {\n nav: { detached }\n }\n }\n },\n isCurrent,\n navOpen\n }) => {\n return css`\n max-width: ${navWidth};\n\n &:has(${StyledAvatar}) {\n ${StyledNavListItemGroupIndicator} {\n display: none;\n }\n }\n\n & > ${StyledText} {\n padding-inline: ${isCurrent\n ? `${spacing} calc(0.5 * ${spacing})`\n : `calc(0.5 * ${spacing})`};\n\n ${!navOpen &&\n detached &&\n css`\n padding-inline: 0;\n max-width: calc(${navWidth} * 0.625);\n `}\n }\n `;\n }\n);\n\nStyledNavListItemVisualContainer.defaultProps = defaultThemeProp;\n\nexport const StyledNavListItem = styled.li<{\n nestedListCollapsed: boolean;\n singleSelect: boolean;\n}>(({ theme, nestedListCollapsed, singleSelect }) => {\n const {\n base: {\n 'font-weight': { 'semi-bold': semiBold }\n },\n components: {\n 'app-shell': {\n nav: {\n detached,\n 'item-border-radius': navItemBorderRadius,\n 'selected-background': navSelectedBackground\n }\n }\n }\n } = theme;\n\n const { navOpen } = useContext(AppShellContext);\n const { foreground, nestedList } = navContrastColors(theme);\n const { rtl } = useDirection();\n\n const nestedListColor =\n theme.components['app-shell'].nav['nested-list-background'] === 'auto'\n ? nestedList\n : theme.components['app-shell'].nav['nested-list-background'];\n\n return css`\n display: block;\n position: relative;\n padding-block: 0;\n padding-inline: var(--nav-padding);\n\n ${StyledIcon} {\n font-size: 1.25rem;\n }\n\n ${StyledCaseClose} {\n display: flex;\n position: absolute;\n opacity: 0;\n left: ${navOpen ? 'auto' : '100%'};\n top: 50%;\n bottom: 50%;\n margin: auto 0;\n color: ${foreground};\n transition-property: transform, opacity;\n transition-duration: ${theme.base.animation.speed};\n transition-timing-function: ${theme.base.animation.timing.ease};\n ${navOpen &&\n css`\n inset-inline-end: 1rem;\n\n &:hover,\n &:focus-visible {\n opacity: 1;\n }\n `}\n }\n\n &:first-child ${StyledNavListItemGroupIndicator} {\n display: none;\n }\n\n > :first-child {\n position: relative;\n display: flex;\n align-items: center;\n width: 100%;\n padding-block: ${theme.base.spacing};\n padding-inline: 0;\n white-space: nowrap;\n color: ${foreground};\n cursor: pointer;\n text-decoration: none;\n border-block: ${rem(1)} solid transparent;\n\n ${detached &&\n css`\n --item-height: 2.5rem;\n padding: 0;\n min-height: var(--item-height);\n height: auto;\n border: none;\n border-radius: ${navItemBorderRadius};\n transition: border-radius ${theme.base.animation.speed} ${theme.base.animation.timing.ease};\n `}\n ${detached &&\n css`\n &:not(:only-child):has(+ ul) {\n background: ${nestedListColor};\n margin-block-end: 0.0625rem;\n border-end-start-radius: 0;\n border-end-end-radius: 0;\n }\n `}\n span:not(${StyledCountIcon}) {\n overflow: hidden;\n text-overflow: ellipsis;\n color: inherit;\n white-space: nowrap;\n }\n\n &:hover,\n &:focus-visible {\n color: ${foreground};\n background: ${transparentize(0.9, foreground)};\n }\n\n &:hover + ${StyledCaseClose}, &:focus-visible + ${StyledCaseClose} {\n ${navOpen &&\n css`\n opacity: 1;\n `}\n }\n\n &:focus-visible {\n box-shadow: ${theme.base.shadow['focus-inset']};\n\n @media (forced-colors: none) {\n &:not([aria-current='page'], [aria-expanded='false']:has(+ ul [aria-current='page'])) {\n outline: none;\n }\n }\n }\n\n ${StyledNavListItemExpandCollapse} {\n position: absolute;\n left: ${navOpen ? 'auto' : '100%'};\n ${navOpen &&\n css`\n inset-inline-end: 1rem;\n `}\n margin: 0;\n opacity: ${navOpen ? '1' : '0'};\n transition-property: transform, opacity;\n transition-duration: ${theme.base.animation.speed};\n transition-timing-function: ${theme.base.animation.timing.ease};\n\n ${!nestedListCollapsed &&\n css`\n transform: rotateZ(${rtl ? '-90deg' : '90deg'});\n `}\n }\n\n ${singleSelect &&\n css`\n ${StyledNavItemIconBox} > ${StyledIcon} {\n margin-inline: calc(${theme.base.spacing} - var(--nav-padding));\n }\n `}\n ${StyledSingleSelectIconBox} + span {\n margin-inline-start: ${theme.base.spacing};\n }\n }\n\n [aria-expanded='true'] {\n ${StyledNavListItemGroupIndicator} {\n display: none;\n }\n }\n\n [aria-current='page'],\n [aria-expanded='false']:has(+ ul [aria-current='page']) {\n position: relative;\n font-weight: ${semiBold};\n border-block: ${rem(1)} solid ${theme.components['app-shell'].nav['border-color']};\n background: ${transparentize(0.85, foreground)};\n ${detached &&\n css`\n background: ${navSelectedBackground !== 'auto'\n ? navSelectedBackground\n : transparentize(0.9, foreground)};\n outline: 0.0625rem solid;\n\n &:hover,\n &:focus-visible {\n background: ${navSelectedBackground !== 'auto'\n ? navSelectedBackground\n : transparentize(0.9, foreground)};\n }\n `}\n\n ${!detached &&\n css`\n &::before {\n content: '';\n position: absolute;\n width: ${rem(4)};\n inset-inline-start: 0;\n top: 0;\n bottom: 0;\n background-color: ${foreground};\n }\n `}\n }\n\n ${StyledNavItemIconBox} {\n display: flex;\n justify-content: center;\n width: calc(${navWidth} - 2 * var(--nav-padding));\n }\n `;\n});\n\nStyledNavListItem.defaultProps = defaultThemeProp;\n\nexport const StyledNavList = styled.ul(({ theme }) => {\n return css`\n min-width: ${navWidth};\n\n & > ${StyledNavListItem} {\n &:not(:last-child),\n &:only-child {\n margin-block-end: calc(${theme.base.spacing} / 2);\n }\n }\n\n & > ${StyledNavListItem}:last-of-type {\n padding-block-end: calc(${theme.base.spacing} / 2);\n }\n `;\n});\nStyledNavList.defaultProps = defaultThemeProp;\n\nexport const StyledNavCasesList = styled.div(({ theme }) => {\n return css`\n ${StyledNavListItem} {\n > :first-child {\n padding: ${theme.base.spacing} 0;\n }\n }\n `;\n});\n\nStyledNavCasesList.defaultProps = defaultThemeProp;\n\nexport const StyledNestedNavList = styled(StyledNavList)(({ theme }) => {\n const {\n base: { 'border-radius': borderRadius, spacing },\n\n components: {\n 'app-shell': {\n nav: { detached, 'selected-background': navSelectedBackground }\n }\n }\n } = theme;\n\n const { nestedList, foreground } = navContrastColors(theme);\n\n const nestedListColor =\n theme.components['app-shell'].nav['nested-list-background'] === 'auto'\n ? nestedList\n : theme.components['app-shell'].nav['nested-list-background'];\n\n const resolvedSelectedBg =\n navSelectedBackground !== 'auto' ? navSelectedBackground : transparentize(0.9, foreground);\n\n return css`\n background: ${nestedListColor};\n border-radius: ${detached ? borderRadius : '0px'};\n border-start-start-radius: 0;\n border-start-end-radius: 0;\n\n ${StyledNavListItem} {\n &:first-child {\n border-block-start: ${spacing} solid transparent;\n }\n\n &:last-child {\n border-block-end: calc(0.5 * ${spacing}) solid transparent;\n }\n\n &:not(:last-child) {\n margin-block-end: calc(${spacing} / 2);\n }\n\n > :first-child {\n &:has(${StyledIcon}) {\n padding-inline-start: calc(((${navWidth} - (3 * var(--nav-padding)) - ${iconWidth}) / 2));\n }\n\n &:not(:has(${StyledIcon})) {\n padding-inline-start: calc(\n ((${navWidth} - (3 * var(--nav-padding)) - ${iconWidth}) / 2) + ${iconBoxSize}\n );\n }\n }\n\n ${detached &&\n css`\n [aria-current='page'] {\n background: ${resolvedSelectedBg};\n\n &:hover,\n &:focus-visible {\n background: ${resolvedSelectedBg};\n }\n }\n `}\n }\n `;\n});\n\nStyledNestedNavList.defaultProps = defaultThemeProp;\n\nexport const StyledCaseTypes = styled.div(({ theme }) => {\n const { foreground } = navContrastColors(theme);\n\n return css`\n button {\n ${StyledNavItemIconBox} {\n transition: transform ${theme.base.animation.speed} ${theme.base.animation.timing.ease};\n }\n\n &[aria-expanded='false'] ${StyledNavItemIconBox} {\n transform: none;\n }\n\n &[aria-expanded='true'] ${StyledNavItemIconBox} {\n transform: rotateZ(45deg);\n }\n }\n\n > ${StyledNavList} > ${StyledNavListItem} > ${StyledBareButton} {\n background: ${theme.components['app-shell'].nav['create-button-background']};\n\n &:hover,\n &:focus-visible {\n background: ${transparentize(0.9, foreground)};\n }\n }\n `;\n});\n\nStyledCaseTypes.defaultProps = defaultThemeProp;\n\nexport const StyledUtils = styled.div(({ theme }) => {\n return css`\n ${StyledNavList} {\n padding-block-start: calc(${theme.base.spacing} / 2);\n }\n\n ${StyledBareButton} > ${StyledIcon}:first-child, ${StyledBareButton} > ${StyledUtilIconCount} {\n margin: 0 calc((${navWidth} - ${iconWidth}) / 2);\n }\n `;\n});\n\nStyledUtils.defaultProps = defaultThemeProp;\n\nexport const StyledMobileMoreMenu = styled(StyledAppNav)`\n width: 100%;\n height: calc(100dvh - var(--appshell-top-offset, 0));\n padding-block-end: var(--appshell-bottom-offset, ${mobileHeaderHeight});\n`;\n\nStyledMobileMoreMenu.defaultProps = defaultThemeProp;\n\nexport const StyledMobileNav = styled.header(({ theme }) => {\n const {\n base: {\n 'hit-area': { 'finger-min': hitAreaFinger },\n 'border-radius': borderRadius,\n 'font-size': fontSize,\n 'font-scale': fontScale\n },\n components: {\n button: { 'focus-shadow': focusShadow, 'border-width': borderWidth },\n text\n }\n } = theme;\n const mobileNavColor = theme.components['app-shell'].nav.background;\n const { foreground } = navContrastColors(theme);\n const fontSizes = calculateFontSize(fontSize, fontScale);\n\n return css`\n z-index: calc(${theme.base['z-index'].drawer} + 1);\n background: ${mobileNavColor};\n border-radius: calc(2 * ${borderRadius});\n color: ${foreground};\n padding: 0.5rem;\n position: fixed;\n inset-block-start: calc(\n 100dvh - var(--appshell-bottom-offset, ${mobileHeaderHeight}) + 0.75rem\n );\n inset-inline-start: 50%;\n transform: translateX(-50%);\n box-shadow: ${theme.base.shadow.low};\n\n /* Limit the content height of Recents and Notifications */\n & + ${StyledDrawer} ${StyledDrawer} {\n width: 100%;\n padding-block-start: var(--appshell-top-offset, 0);\n padding-block-end: var(--appshell-bottom-offset, ${mobileHeaderHeight});\n }\n\n > div:has(> ${StyledNavList}),\n > div:has(> ${StyledNavList}) > ${StyledNavList}, > ${StyledNavList} {\n display: contents;\n\n ${StyledNavListItem} {\n padding: 0;\n margin: 0;\n font-size: ${fontSizes[text.secondary['font-size'] as FontSize]};\n\n ${StyledBareButton}, ${StyledLink} {\n flex-direction: column;\n justify-content: center;\n width: ${rem(menuButtonWidth(theme))};\n height: calc(0.25rem + ${hitAreaFinger});\n border-radius: calc(2 * ${borderRadius});\n border: ${borderWidth} solid transparent;\n padding-block: calc(0.5 * ${theme.base.spacing});\n\n &::before {\n width: 0;\n }\n\n span:not(${StyledCountIcon}) {\n width: inherit;\n text-align: center;\n padding-inline: calc(0.5 * ${theme.base.spacing});\n }\n\n &:enabled:focus-visible,\n &:not([disabled]):focus-visible {\n box-shadow: ${focusShadow};\n }\n\n ${StyledNavListItemVisualContainer} {\n padding: 0;\n margin: 0;\n\n ${StyledNavItemIconBox} {\n display: flex;\n }\n }\n }\n }\n }\n `;\n});\n\nStyledMobileNav.defaultProps = defaultThemeProp;\n\nexport const StyledMobileMoreMenuButton = styled(Button)(({ theme }) => {\n const {\n base: {\n 'hit-area': { 'finger-min': hitAreaFinger },\n 'border-radius': borderRadius,\n 'font-size': fontSize,\n 'font-scale': fontScale\n },\n components: {\n button: { 'border-width': borderWidth },\n text\n }\n } = theme;\n const { navOpen } = useContext(AppShellContext);\n const { foreground } = navContrastColors(theme);\n const fontSizes = calculateFontSize(fontSize, fontScale);\n\n return css`\n flex-direction: column;\n width: ${rem(menuButtonWidth(theme))};\n height: calc(0.25rem + ${hitAreaFinger});\n border-radius: calc(2 * ${borderRadius});\n font-size: ${fontSizes[text.secondary['font-size'] as FontSize]};\n padding-block: calc(0.5 * ${theme.base.spacing});\n\n span {\n width: inherit;\n padding-inline: calc(0.5 * ${theme.base.spacing});\n ${ellipsisOverflow}\n }\n\n ${navOpen &&\n css`\n &::before {\n content: '';\n position: absolute;\n inset: calc(${borderWidth} * -1);\n border-radius: inherit;\n background: ${transparentize(0.85, foreground)};\n }\n `}\n\n ${StyledAlert} {\n position: absolute;\n inset-block-start: calc(0.625rem / 2);\n inset-inline-start: calc(50% + (0.625rem / 2));\n }\n `;\n});\n\nStyledMobileMoreMenuButton.defaultProps = defaultThemeProp;\n\nexport const StyledLoading = styled.div`\n font-size: 2rem;\n`;\n\nexport const StyledAppMain = styled.main<{\n previewActive: boolean;\n isTopBar?: boolean;\n}>(({ previewActive, isTopBar = false, theme }) => {\n const { navOpen, isMobileNav } = useContext(AppShellContext);\n\n return css`\n /* stylelint-disable-next-line length-zero-no-unit */\n --appshell-horizontal-offset: 0rem;\n inset-block-start: var(--appshell-hard-top-offset);\n padding-block-end: var(--appshell-hard-bottom-offset);\n position: relative;\n min-height: calc(100dvh - var(--appshell-total-offset));\n background: ${theme.base.palette['app-background']};\n\n &:focus {\n outline: none;\n }\n\n @media (min-width: ${theme.base.breakpoints.sm}) {\n --appshell-horizontal-offset: calc(\n ${navOpen ? navOpenWidth : navWidth} + var(--safe-area-inset-inline-start, 0rem)\n );\n }\n margin-inline-start: ${isMobileNav || isTopBar ? 0 : 'var(--appshell-horizontal-offset, 0)'};\n\n ${isMobileNav\n ? css`\n &::after {\n content: '';\n display: block;\n height: ${mobileHeaderHeight};\n }\n `\n : css`\n transition: margin-inline-start\n ${`${theme.base.animation.speed} ${theme.base.animation.timing.ease}`};\n padding-inline-end: var(--safe-area-inset-inline-end, 0);\n `};\n\n & > ${StyledProgressBackdrop}, & > [data-config-root] > ${StyledProgressBackdrop} {\n max-width: calc(100vw - ${navOpen ? navOpenWidth : navWidth});\n inset-block-start: var(--appshell-top-offset);\n inset-block-end: var(--appshell-hard-bottom-offset);\n inset-inline-start: calc(\n ${navOpen ? navOpenWidth : navWidth} + var(--safe-area-inset-inline-start, 0rem)\n );\n ${(isMobileNav || isTopBar) &&\n css`\n max-width: 100vw;\n inset-inline-start: 0;\n `}\n position: fixed;\n transition-property: opacity, max-height, max-width, inset-block-start, inset-inline-start;\n transition-duration: ${theme.base.animation.speed};\n transition-timing-function: ${theme.base.animation.timing.ease};\n }\n\n @media (min-width: ${theme.base.breakpoints.md}) {\n transition: margin-inline-end ${!isMobileNav ? ', margin-inline-start' : ''};\n transition-duration: ${theme.base.animation.speed};\n transition-timing-function: ${theme.base.animation.timing.ease};\n\n ${previewActive &&\n css`\n transition: none;\n margin-inline-end: min(var(--resize-drawer-width), ${resizeDrawerMaxWidth});\n `}\n }\n `;\n});\n\nStyledAppMain.defaultProps = defaultThemeProp;\n\nexport const StyledBannerRegion = styled.div(({ theme }) => {\n return css`\n padding: calc(2 * ${theme.base.spacing});\n `;\n});\n\nStyledBannerRegion.defaultProps = defaultThemeProp;\n\nexport const StyledAppShellTooltip = styled(StyledTooltip)(({ theme }) => {\n const bg = theme.components.tooltip['background-color'];\n const color = resolveContrastColor({\n background: bg,\n theme\n });\n\n return css`\n background-color: ${bg};\n padding: 0;\n\n header {\n color: ${color};\n border-bottom: none;\n }\n\n ${StyledMenuItem} {\n background-color: ${bg};\n color: ${color};\n\n &:hover,\n &:focus-visible {\n background-color: ${bg};\n box-shadow: ${theme.base.shadow.focus};\n }\n }\n `;\n});\n\nStyledAppShellTooltip.defaultProps = defaultThemeProp;\n\nexport const StyledAppShellToggleButton = styled(Button)(({ theme }) => {\n const {\n background: navBg,\n 'foreground-color': navFgColor,\n 'expand-button': { background: expandBtnBgToken, 'foreground-color': expandBtnFgToken }\n } = theme.components['app-shell'].nav;\n\n const { backgroundColor } = calculateBackgroundAndContrastColor(navBg, navFgColor, theme);\n\n let defaultBg = darken(0.2, backgroundColor);\n if (getContrast(backgroundColor, defaultBg) < 1.3) {\n defaultBg = lighten(0.2, backgroundColor);\n }\n\n const resolvedBg = expandBtnBgToken !== 'auto' ? expandBtnBgToken : defaultBg;\n const resolvedFg = expandBtnFgToken;\n\n return css`\n background: ${resolvedBg};\n color: ${resolvedFg};\n border: none;\n margin-block-start: ${theme.base.spacing};\n\n ${StyledIcon} {\n width: 1.25rem;\n height: 1.25rem;\n font-weight: bold;\n }\n\n &:enabled:focus-visible,\n :not([disabled]):focus-visible {\n box-shadow: ${theme.base.shadow.focus};\n }\n `;\n});\n\nStyledAppShellToggleButton.defaultProps = defaultThemeProp;\n\nexport const StyledNavAgentIcon = styled.div`\n width: 1.5rem;\n height: 1.5rem;\n display: inline-flex;\n flex-shrink: 0;\n\n & > svg {\n width: 100%;\n height: 100%;\n }\n`;\n\nStyledNavAgentIcon.defaultProps = defaultThemeProp;\n\nexport const StyledAIAssistant = styled.div(({ theme }) => {\n const { navOpen } = useContext(AppShellContext);\n const { rtl } = useDirection();\n\n const { detached } = theme.components['app-shell'].nav;\n const activeBg = theme.components.agent.background;\n const speed = theme.base.animation.speed;\n const ease = theme.base.animation.timing.ease;\n\n const radius = 'calc(var(--item-height) / 4)';\n\n const inwardSide = rtl ? '100%' : '0%';\n\n return css`\n ${detached &&\n css`\n ${StyledNavList} {\n margin-block-start: calc(${theme.base.spacing} / 2);\n }\n\n ${StyledNavList} > ${StyledNavListItem}:last-of-type {\n padding-block-end: 0;\n }\n\n ${StyledNavListItem} {\n > :first-child {\n transition:\n border-start-end-radius ${speed} ${ease},\n border-end-end-radius ${speed} ${ease},\n background ${speed} ${ease};\n border-radius: ${radius};\n outline: none;\n }\n\n &:has([aria-current='page']) {\n z-index: 1;\n padding-inline-end: 0;\n\n > :first-child {\n background: ${activeBg};\n border-block-color: transparent;\n border-start-end-radius: 0;\n border-end-end-radius: 0;\n\n &:focus-visible {\n outline: none;\n box-shadow:\n inset ${rtl ? '0.25rem' : '-0.25rem'} 0 0 0 ${activeBg},\n ${theme.base.shadow['focus-inset']};\n }\n\n &::before {\n content: '';\n position: absolute;\n inset-inline-end: 0;\n bottom: 100%;\n width: ${radius};\n height: ${radius};\n background: ${activeBg};\n pointer-events: none;\n -webkit-mask-image: radial-gradient(\n circle at ${inwardSide} 0%,\n transparent ${radius},\n black ${radius}\n );\n mask-image: radial-gradient(\n circle at ${inwardSide} 0%,\n transparent ${radius},\n black ${radius}\n );\n }\n\n &::after {\n content: '';\n position: absolute;\n inset-inline-end: 0;\n top: 100%;\n width: ${radius};\n height: ${radius};\n background: ${activeBg};\n pointer-events: none;\n -webkit-mask-image: radial-gradient(\n circle at ${inwardSide} 100%,\n transparent ${radius},\n black ${radius}\n );\n mask-image: radial-gradient(\n circle at ${inwardSide} 100%,\n transparent ${radius},\n black ${radius}\n );\n }\n }\n\n ${!navOpen &&\n css`\n > :first-child > span:not(${StyledCountIcon}) {\n max-width: 0;\n overflow: hidden;\n }\n `}\n }\n }\n `}\n `;\n});\n\nStyledAIAssistant.defaultProps = defaultThemeProp;\n\nexport const StyledShareIcon = styled(Icon)`\n transform: rotate(180deg);\n`;\n\nStyledShareIcon.defaultProps = defaultThemeProp;\n"]}
|
|
1
|
+
{"version":3,"file":"AppShell.styles.js","sourceRoot":"","sources":["../../../src/components/AppShell/AppShell.styles.ts"],"names":[],"mappings":"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","sourcesContent":["import styled, { createGlobalStyle, css, type DefaultTheme } from 'styled-components';\nimport { darken, getContrast, lighten, rem, remToPx, transparentize } from 'polished';\nimport { useContext } from 'react';\n\nimport { StyledAlert } from '../Badges/Alert';\nimport { ellipsisOverflow } from '../../styles/mixins';\nimport { StyledLink } from '../Link/Link';\nimport { Count } from '../Badges';\nimport { StyledAvatar } from '../Avatar';\nimport { StyledIcon } from '../Icon';\nimport { StyledImage } from '../Image/Image';\nimport { defaultThemeProp } from '../../theme';\nimport {\n calculateFontSize,\n calculateForegroundColor,\n calculateBackgroundAndContrastColor,\n resolveContrastColor\n} from '../../styles';\nimport type { FontSize } from '../../styles';\nimport { StyledMenuItem } from '../Menu/Menu.styles';\nimport { useDirection } from '../../hooks';\nimport { StyledBareButton } from '../Button/BareButton';\nimport Button from '../Button';\nimport { StyledTooltip } from '../Tooltip';\nimport { StyledProgressBackdrop } from '../Progress';\nimport Icon from '../Icon/Icon';\nimport { StyledText } from '../Text';\nimport Flex from '../Flex';\nimport { resizeDrawerMaxWidth } from '../../styles/constants';\nimport { tryCatch } from '../../utils';\nimport { StyledDrawer } from '../Drawer';\n\nimport AppShellContext from './AppShellContext';\nimport { navContrastColors } from './style-utils';\n\nexport const navWidth = '4rem';\nexport const navOpenWidth = '18.75rem';\nexport const headerHeight = '3rem';\nexport const mobileHeaderHeight = '5.25rem';\nexport const topNavHeight = '3rem';\nconst iconWidth = '1.125rem';\nconst iconBoxSize = `calc((${navWidth} - ${iconWidth} - 2 * var(--nav-padding)) / 2)`;\n\nexport const AppShellGlobalStyle = createGlobalStyle<{\n isTopBar?: boolean;\n showAppHeader?: boolean;\n isMobile?: boolean;\n}>`\n :root,\n :host {\n /* Height of the app header */\n --app-header-height: ${({ showAppHeader }) => (showAppHeader ? headerHeight : '0rem')};\n\n /* Hard offset for content that should cover app header and top nav (Backdrop and Fullscreen) */\n --appshell-hard-top-offset: calc(var(--marking-height, 0rem) + var(--safe-area-inset-block-start, 0rem));\n\n /* Offset for content that should be below app header and top nav (Drawers and Previews) */\n --appshell-top-offset: calc(var(--appshell-hard-top-offset) + var(--app-header-height) + ${({ isTopBar }) => (isTopBar ? topNavHeight : '0rem')} );\n\n /* Hard offset for content that should cover the bottom mobile nav (Backdrop and Fullscreen) */\n --appshell-hard-bottom-offset: calc(var(--marking-height, 0rem) + var(--safe-area-inset-block-end, 0rem));\n\n /* Offset for content that should be above the bottom mobile nav (Drawers and Toasters) */\n --appshell-bottom-offset: calc(var(--appshell-hard-bottom-offset) + ${({ isMobile }) => (isMobile ? mobileHeaderHeight : '0rem')});\n\n /* Total offset for app header, nav, and mobile nav used for calculating available height */\n --appshell-total-offset: calc(var(--appshell-top-offset) + var(--appshell-bottom-offset));\n }\n`;\n\nexport const menuButtonWidth = (theme: DefaultTheme) =>\n Number.parseInt(theme.base['hit-area']['finger-min'], 10) +\n Number.parseInt(\n tryCatch(\n () => remToPx(1.25),\n () => '20px'\n ),\n 10\n );\n\nexport const StyledAppInfo = styled.a(({ theme }) => {\n const fontSize = calculateFontSize(theme.base['font-size'], theme.base['font-scale']);\n const { hoverBg, foreground } = navContrastColors(theme);\n\n return css`\n padding: ${theme.base.spacing} calc(${navWidth} / 4);\n grid-template-columns: calc(${navWidth} / 2) auto;\n column-gap: calc(${navWidth} / 4);\n vertical-align: middle;\n\n &:hover,\n button&:hover {\n background-color: ${hoverBg};\n text-decoration: none;\n }\n\n &:focus-visible:not([disabled]) {\n outline: none;\n box-shadow: ${theme.base.shadow['focus-inset']};\n }\n\n ${StyledImage} {\n display: inline-block;\n width: calc(${navWidth} / 2);\n margin-inline-end: calc(${theme.base.spacing} * 2);\n vertical-align: middle;\n }\n\n span {\n overflow: hidden;\n text-overflow: ellipsis;\n vertical-align: middle;\n }\n\n span:last-of-type {\n font-size: ${fontSize.xs};\n color: ${foreground};\n }\n\n span:first-of-type {\n font-size: ${fontSize.s};\n color: ${foreground};\n margin-inline-end: calc(${theme.base.spacing});\n vertical-align: middle;\n }\n `;\n});\n\nStyledAppInfo.defaultProps = defaultThemeProp;\n\nexport const StyledScrollWrap = styled(Flex)(({ theme }) => {\n return css`\n overflow-x: hidden;\n overflow-y: auto;\n padding-block-start: calc(0.125 * ${theme.base.spacing});\n\n @media (height <= ${theme.base.breakpoints.sm}) {\n overflow: visible;\n flex-shrink: 0;\n }\n `;\n});\n\nStyledScrollWrap.defaultProps = defaultThemeProp;\n\nexport const StyledUtilsSeparator = styled.div<{ navOpen?: boolean }>(({ theme, navOpen }) => {\n return css`\n position: sticky;\n inset-block-end: 0;\n margin-block-start: auto;\n margin-inline: var(--nav-padding);\n border-block-start: 0.0625rem solid ${theme.components['app-shell'].nav['separator-color']};\n\n @media (height <= ${theme.base.breakpoints.sm}) {\n position: relative;\n margin-inline-end: calc(var(--nav-padding) / 2);\n\n ${navOpen &&\n css`\n margin-inline-end: var(--nav-padding);\n `}\n }\n `;\n});\n\nStyledUtilsSeparator.defaultProps = defaultThemeProp;\n\nexport const StyledCountIcon = styled(Count)`\n position: absolute;\n /* stylelint-disable-next-line unit-allowed-list */\n inset-block-start: 0.25lh;\n inset-inline-start: calc((${navWidth} / 2) - var(--nav-padding));\n`;\n\nStyledCountIcon.defaultProps = defaultThemeProp;\n\nexport const StyledSingleSelectIconBox = styled.span(({ theme }) => {\n return css`\n flex-shrink: 0;\n height: ${theme.base['hit-area']['mouse-min']};\n width: ${theme.base['hit-area']['mouse-min']};\n margin-inline-start: calc(2 * ${theme.base.spacing});\n `;\n});\n\nStyledSingleSelectIconBox.defaultProps = defaultThemeProp;\n\nexport const StyledNavListItemExpandCollapse = styled(Icon)``;\n\nexport const StyledNavListItemGroupIndicator = styled(Icon)(({\n theme: {\n components: {\n 'app-shell': {\n nav: { detached }\n }\n }\n }\n}) => {\n return css`\n position: absolute;\n width: 0.75rem;\n height: 0.75rem;\n margin-block-start: calc(${iconWidth} / 8);\n margin-inline-start: 2.5rem;\n ${detached &&\n css`\n margin-inline-start: calc(${navWidth} / 2 - ${iconWidth} / 6);\n `}\n `;\n});\n\nStyledNavListItemGroupIndicator.defaultProps = defaultThemeProp;\n\nexport const StyledUtilIconCount = styled.span`\n flex-shrink: 0;\n`;\n\nexport const StyledNavItemIconBox = styled.span(({ theme }) => {\n return css`\n flex-shrink: 0;\n\n > ${StyledIcon}, ${StyledUtilIconCount} > ${StyledIcon} {\n margin-inline: ${iconBoxSize};\n }\n\n ${StyledAvatar} {\n margin-inline: calc(\n (${navWidth} - ${theme.base['hit-area']['mouse-min']} - 2 * var(--nav-padding)) / 2\n );\n margin-block: calc(0.5 * ${theme.base.spacing});\n font-weight: ${theme.base['font-weight'].normal};\n }\n `;\n});\n\nStyledNavItemIconBox.defaultProps = defaultThemeProp;\n\nconst StyledAppNav = styled.nav(({ theme }) => {\n const navBg = theme.components['app-shell'].nav.background;\n const navFgColor = theme.components['app-shell'].nav['foreground-color'];\n\n const foregroundColor = calculateForegroundColor(navBg, navFgColor, theme);\n\n return css`\n --nav-padding: ${theme.components['app-shell'].nav.detached ? '0.75rem' : '0px'};\n inset-block-start: var(--appshell-top-offset, 0);\n background: ${navBg};\n color: ${foregroundColor};\n overflow: hidden;\n white-space: nowrap;\n border-color: ${theme.components['app-shell'].nav['border-color']};\n\n @media (height <= ${theme.base.breakpoints.sm}) {\n overflow-y: auto;\n overflow-x: clip;\n }\n padding-block-start: ${theme.base.spacing};\n\n /* App navigation can be focused with shortcut */\n &:focus-visible {\n box-shadow: ${theme.base.shadow['focus-inset']};\n }\n\n ${theme.base['custom-scrollbar'] &&\n css`\n * {\n scrollbar-width: thin;\n }\n `}\n `;\n});\n\nStyledAppNav.defaultProps = defaultThemeProp;\n\nexport const StyledSidebarNav = styled(StyledAppNav)<{\n portalAgent?: boolean;\n}>(({ portalAgent, theme }) => {\n const { rtl } = useDirection();\n\n const { navState } = useContext(AppShellContext);\n\n return css`\n position: fixed;\n z-index: calc(${theme.base['z-index'].backdrop} - 2);\n max-width: calc(100vw - ${theme.base['hit-area']['mouse-min']});\n width: calc(\n ${navState === 'open' || navState === 'opening' ? navOpenWidth : navWidth} +\n var(--safe-area-inset-inline-start, 0rem)\n );\n transition: width ${`${theme.base.animation.speed} ${theme.base.animation.timing.ease}`};\n height: calc(100dvh - var(--appshell-top-offset));\n padding-inline-start: var(--safe-area-inset-inline-start, 0);\n padding-block-end: calc(${theme.base.spacing} + var(--appshell-bottom-offset, 0));\n\n @media (pointer: coarse) {\n max-width: calc(100vw - ${theme.base['hit-area']['finger-min']});\n }\n\n ${portalAgent\n ? css`\n box-shadow: inset ${rtl ? '0.0625rem' : '-0.0625rem'} 0 0 0\n ${theme.components['app-shell'].nav['border-color']};\n `\n : css`\n border-inline-end: 0.0625rem solid ${transparentize(0.9, '#000')};\n border-color: ${theme.components['app-shell'].nav['border-color']};\n `}\n `;\n});\n\nStyledSidebarNav.defaultProps = defaultThemeProp;\n\nexport const StyledCaseClose = styled.button``;\n\nexport const StyledNavListItemVisualContainer = styled.div<{\n isCurrent: boolean;\n navOpen: boolean;\n}>(\n ({\n theme: {\n base: { spacing },\n components: {\n 'app-shell': {\n nav: { detached }\n }\n }\n },\n isCurrent,\n navOpen\n }) => {\n return css`\n max-width: ${navWidth};\n\n &:has(${StyledAvatar}) {\n ${StyledNavListItemGroupIndicator} {\n display: none;\n }\n }\n\n & > ${StyledText} {\n padding-inline: ${isCurrent\n ? `${spacing} calc(0.5 * ${spacing})`\n : `calc(0.5 * ${spacing})`};\n\n ${!navOpen &&\n detached &&\n css`\n padding-inline: 0;\n max-width: calc(${navWidth} * 0.625);\n `}\n }\n `;\n }\n);\n\nStyledNavListItemVisualContainer.defaultProps = defaultThemeProp;\n\nexport const StyledNavListItem = styled.li<{\n nestedListCollapsed: boolean;\n singleSelect: boolean;\n}>(({ theme, nestedListCollapsed, singleSelect }) => {\n const {\n base: {\n 'font-weight': { 'semi-bold': semiBold }\n },\n components: {\n 'app-shell': {\n nav: {\n detached,\n 'item-border-radius': navItemBorderRadius,\n 'selected-background': navSelectedBackground\n }\n }\n }\n } = theme;\n\n const { navOpen } = useContext(AppShellContext);\n const { foreground, nestedList } = navContrastColors(theme);\n const { rtl } = useDirection();\n\n const nestedListColor =\n theme.components['app-shell'].nav['nested-list-background'] === 'auto'\n ? nestedList\n : theme.components['app-shell'].nav['nested-list-background'];\n\n return css`\n display: block;\n position: relative;\n padding-block: 0;\n padding-inline: var(--nav-padding);\n\n ${StyledIcon} {\n font-size: 1.25rem;\n }\n\n ${StyledCaseClose} {\n display: flex;\n position: absolute;\n opacity: 0;\n left: ${navOpen ? 'auto' : '100%'};\n top: 50%;\n bottom: 50%;\n margin: auto 0;\n color: ${foreground};\n transition-property: transform, opacity;\n transition-duration: ${theme.base.animation.speed};\n transition-timing-function: ${theme.base.animation.timing.ease};\n ${navOpen &&\n css`\n inset-inline-end: 1rem;\n\n &:hover,\n &:focus-visible {\n opacity: 1;\n }\n `}\n }\n\n &:first-child ${StyledNavListItemGroupIndicator} {\n display: none;\n }\n\n > :first-child {\n position: relative;\n display: flex;\n align-items: center;\n width: 100%;\n padding-block: ${theme.base.spacing};\n padding-inline: 0;\n white-space: nowrap;\n color: ${foreground};\n cursor: pointer;\n text-decoration: none;\n border-block: ${rem(1)} solid transparent;\n\n ${detached &&\n css`\n --item-height: 2.5rem;\n padding: 0;\n min-height: var(--item-height);\n height: auto;\n border: none;\n border-radius: ${navItemBorderRadius};\n transition: border-radius ${theme.base.animation.speed} ${theme.base.animation.timing.ease};\n `}\n ${detached &&\n css`\n &:not(:only-child):has(+ ul) {\n background: ${nestedListColor};\n margin-block-end: 0.0625rem;\n border-end-start-radius: 0;\n border-end-end-radius: 0;\n }\n `}\n span:not(${StyledCountIcon}) {\n overflow: hidden;\n text-overflow: ellipsis;\n color: inherit;\n white-space: nowrap;\n }\n\n &:hover,\n &:focus-visible {\n color: ${foreground};\n background: ${transparentize(0.9, foreground)};\n }\n\n &:hover + ${StyledCaseClose}, &:focus-visible + ${StyledCaseClose} {\n ${navOpen &&\n css`\n opacity: 1;\n `}\n }\n\n &:focus-visible {\n box-shadow: ${theme.base.shadow['focus-inset']};\n\n @media (forced-colors: none) {\n &:not([aria-current='page'], [aria-expanded='false']:has(+ ul [aria-current='page'])) {\n outline: none;\n }\n }\n }\n\n ${StyledNavListItemExpandCollapse} {\n position: absolute;\n left: ${navOpen ? 'auto' : '100%'};\n ${navOpen &&\n css`\n inset-inline-end: 1rem;\n `}\n margin: 0;\n opacity: ${navOpen ? '1' : '0'};\n transition-property: transform, opacity;\n transition-duration: ${theme.base.animation.speed};\n transition-timing-function: ${theme.base.animation.timing.ease};\n\n ${!nestedListCollapsed &&\n css`\n transform: rotateZ(${rtl ? '-90deg' : '90deg'});\n `}\n }\n\n ${singleSelect &&\n css`\n ${StyledNavItemIconBox} > ${StyledIcon} {\n margin-inline: calc(${theme.base.spacing} - var(--nav-padding));\n }\n `}\n ${StyledSingleSelectIconBox} + span {\n margin-inline-start: ${theme.base.spacing};\n }\n }\n\n [aria-expanded='true'] {\n ${StyledNavListItemGroupIndicator} {\n display: none;\n }\n }\n\n [aria-current='page'],\n [aria-expanded='false']:has(+ ul [aria-current='page']) {\n position: relative;\n font-weight: ${semiBold};\n border-block: ${rem(1)} solid ${theme.components['app-shell'].nav['border-color']};\n background: ${transparentize(0.85, foreground)};\n ${detached &&\n css`\n background: ${navSelectedBackground !== 'auto'\n ? navSelectedBackground\n : transparentize(0.9, foreground)};\n outline: 0.0625rem solid;\n\n &:hover,\n &:focus-visible {\n background: ${navSelectedBackground !== 'auto'\n ? navSelectedBackground\n : transparentize(0.9, foreground)};\n }\n `}\n\n ${!detached &&\n css`\n &::before {\n content: '';\n position: absolute;\n width: ${rem(4)};\n inset-inline-start: 0;\n top: 0;\n bottom: 0;\n background-color: ${foreground};\n }\n `}\n }\n\n ${StyledNavItemIconBox} {\n display: flex;\n justify-content: center;\n width: calc(${navWidth} - 2 * var(--nav-padding));\n }\n `;\n});\n\nStyledNavListItem.defaultProps = defaultThemeProp;\n\nexport const StyledNavList = styled.ul(({ theme }) => {\n return css`\n min-width: ${navWidth};\n\n & > ${StyledNavListItem} {\n &:not(:last-child),\n &:only-child {\n margin-block-end: calc(${theme.base.spacing} / 2);\n }\n }\n\n & > ${StyledNavListItem}:last-of-type {\n padding-block-end: calc(${theme.base.spacing} / 2);\n }\n `;\n});\nStyledNavList.defaultProps = defaultThemeProp;\n\nexport const StyledNavCasesList = styled.div(({ theme }) => {\n return css`\n ${StyledNavListItem} {\n > :first-child {\n padding: ${theme.base.spacing} 0;\n }\n }\n `;\n});\n\nStyledNavCasesList.defaultProps = defaultThemeProp;\n\nexport const StyledNestedNavList = styled(StyledNavList)(({ theme }) => {\n const {\n base: { 'border-radius': borderRadius, spacing },\n\n components: {\n 'app-shell': {\n nav: { detached, 'selected-background': navSelectedBackground }\n }\n }\n } = theme;\n\n const { nestedList, foreground } = navContrastColors(theme);\n\n const nestedListColor =\n theme.components['app-shell'].nav['nested-list-background'] === 'auto'\n ? nestedList\n : theme.components['app-shell'].nav['nested-list-background'];\n\n const resolvedSelectedBg =\n navSelectedBackground !== 'auto' ? navSelectedBackground : transparentize(0.9, foreground);\n\n return css`\n background: ${nestedListColor};\n border-radius: ${detached ? borderRadius : '0px'};\n border-start-start-radius: 0;\n border-start-end-radius: 0;\n\n ${StyledNavListItem} {\n &:first-child {\n border-block-start: ${spacing} solid transparent;\n }\n\n &:last-child {\n border-block-end: calc(0.5 * ${spacing}) solid transparent;\n }\n\n &:not(:last-child) {\n margin-block-end: calc(${spacing} / 2);\n }\n\n > :first-child {\n &:has(${StyledIcon}) {\n padding-inline-start: calc(((${navWidth} - (3 * var(--nav-padding)) - ${iconWidth}) / 2));\n }\n\n &:not(:has(${StyledIcon})) {\n padding-inline-start: calc(\n ((${navWidth} - (3 * var(--nav-padding)) - ${iconWidth}) / 2) + ${iconBoxSize}\n );\n }\n }\n\n ${detached &&\n css`\n [aria-current='page'] {\n background: ${resolvedSelectedBg};\n\n &:hover,\n &:focus-visible {\n background: ${resolvedSelectedBg};\n }\n }\n `}\n }\n `;\n});\n\nStyledNestedNavList.defaultProps = defaultThemeProp;\n\nexport const StyledCaseTypes = styled.div(({ theme }) => {\n const { foreground } = navContrastColors(theme);\n\n return css`\n button {\n ${StyledNavItemIconBox} {\n transition: transform ${theme.base.animation.speed} ${theme.base.animation.timing.ease};\n }\n\n &[aria-expanded='false'] ${StyledNavItemIconBox} {\n transform: none;\n }\n\n &[aria-expanded='true'] ${StyledNavItemIconBox} {\n transform: rotateZ(45deg);\n }\n }\n\n > ${StyledNavList} > ${StyledNavListItem} > ${StyledBareButton} {\n background: ${theme.components['app-shell'].nav['create-button-background']};\n\n &:hover,\n &:focus-visible {\n background: ${transparentize(0.9, foreground)};\n }\n }\n `;\n});\n\nStyledCaseTypes.defaultProps = defaultThemeProp;\n\nexport const StyledUtils = styled.div(({ theme }) => {\n return css`\n ${StyledNavList} {\n padding-block-start: calc(${theme.base.spacing} / 2);\n }\n\n ${StyledBareButton} > ${StyledIcon}:first-child, ${StyledBareButton} > ${StyledUtilIconCount} {\n margin: 0 calc((${navWidth} - ${iconWidth}) / 2);\n }\n `;\n});\n\nStyledUtils.defaultProps = defaultThemeProp;\n\nexport const StyledMobileMoreMenu = styled(StyledAppNav)`\n width: 100%;\n height: 100%;\n padding-block-start: var(--appshell-top-offset, 0);\n padding-block-end: var(--appshell-bottom-offset, ${mobileHeaderHeight});\n`;\n\nStyledMobileMoreMenu.defaultProps = defaultThemeProp;\n\nexport const StyledMobileNav = styled.header(({ theme }) => {\n const {\n base: {\n 'hit-area': { 'finger-min': hitAreaFinger },\n 'border-radius': borderRadius,\n 'font-size': fontSize,\n 'font-scale': fontScale\n },\n components: {\n button: { 'focus-shadow': focusShadow, 'border-width': borderWidth },\n text\n }\n } = theme;\n const mobileNavColor = theme.components['app-shell'].nav.background;\n const { foreground } = navContrastColors(theme);\n const fontSizes = calculateFontSize(fontSize, fontScale);\n\n return css`\n z-index: calc(${theme.base['z-index'].drawer} + 1);\n background: ${mobileNavColor};\n border-radius: calc(2 * ${borderRadius});\n color: ${foreground};\n padding: 0.5rem;\n position: fixed;\n inset-block-start: calc(\n 100dvh - var(--appshell-bottom-offset, ${mobileHeaderHeight}) + 0.75rem\n );\n inset-inline-start: 50%;\n transform: translateX(-50%);\n box-shadow: ${theme.base.shadow.low};\n\n & + ${StyledDrawer} ${StyledDrawer} {\n width: 100%;\n }\n\n > div:has(> ${StyledNavList}),\n > div:has(> ${StyledNavList}) > ${StyledNavList}, > ${StyledNavList} {\n display: contents;\n\n ${StyledNavListItem} {\n padding: 0;\n margin: 0;\n font-size: ${fontSizes[text.secondary['font-size'] as FontSize]};\n\n ${StyledBareButton}, ${StyledLink} {\n flex-direction: column;\n justify-content: center;\n width: ${rem(menuButtonWidth(theme))};\n height: calc(0.25rem + ${hitAreaFinger});\n border-radius: calc(2 * ${borderRadius});\n border: ${borderWidth} solid transparent;\n padding-block: calc(0.5 * ${theme.base.spacing});\n\n &::before {\n width: 0;\n }\n\n span:not(${StyledCountIcon}) {\n width: inherit;\n text-align: center;\n padding-inline: calc(0.5 * ${theme.base.spacing});\n }\n\n &:enabled:focus-visible,\n &:not([disabled]):focus-visible {\n box-shadow: ${focusShadow};\n }\n\n ${StyledNavListItemVisualContainer} {\n padding: 0;\n margin: 0;\n\n ${StyledNavItemIconBox} {\n display: flex;\n }\n }\n }\n }\n }\n `;\n});\n\nStyledMobileNav.defaultProps = defaultThemeProp;\n\nexport const StyledMobileMoreMenuButton = styled(Button)(({ theme }) => {\n const {\n base: {\n 'hit-area': { 'finger-min': hitAreaFinger },\n 'border-radius': borderRadius,\n 'font-size': fontSize,\n 'font-scale': fontScale\n },\n components: {\n button: { 'border-width': borderWidth },\n text\n }\n } = theme;\n const { navOpen } = useContext(AppShellContext);\n const { foreground } = navContrastColors(theme);\n const fontSizes = calculateFontSize(fontSize, fontScale);\n\n return css`\n flex-direction: column;\n width: ${rem(menuButtonWidth(theme))};\n height: calc(0.25rem + ${hitAreaFinger});\n border-radius: calc(2 * ${borderRadius});\n font-size: ${fontSizes[text.secondary['font-size'] as FontSize]};\n padding-block: calc(0.5 * ${theme.base.spacing});\n\n span {\n width: inherit;\n padding-inline: calc(0.5 * ${theme.base.spacing});\n ${ellipsisOverflow}\n }\n\n ${navOpen &&\n css`\n &::before {\n content: '';\n position: absolute;\n inset: calc(${borderWidth} * -1);\n border-radius: inherit;\n background: ${transparentize(0.85, foreground)};\n }\n `}\n\n ${StyledAlert} {\n position: absolute;\n inset-block-start: calc(0.625rem / 2);\n inset-inline-start: calc(50% + (0.625rem / 2));\n }\n `;\n});\n\nStyledMobileMoreMenuButton.defaultProps = defaultThemeProp;\n\nexport const StyledLoading = styled.div`\n font-size: 2rem;\n`;\n\nexport const StyledAppMain = styled.main<{\n previewActive: boolean;\n isTopBar?: boolean;\n}>(({ previewActive, isTopBar = false, theme }) => {\n const { navOpen, isMobileNav } = useContext(AppShellContext);\n\n return css`\n /* stylelint-disable-next-line length-zero-no-unit */\n --appshell-horizontal-offset: 0rem;\n inset-block-start: var(--appshell-hard-top-offset);\n padding-block-end: var(--appshell-hard-bottom-offset);\n position: relative;\n min-height: calc(100dvh - var(--appshell-total-offset));\n background: ${theme.base.palette['app-background']};\n\n &:focus {\n outline: none;\n }\n\n @media (min-width: ${theme.base.breakpoints.sm}) {\n --appshell-horizontal-offset: calc(\n ${navOpen ? navOpenWidth : navWidth} + var(--safe-area-inset-inline-start, 0rem)\n );\n }\n margin-inline-start: ${isMobileNav || isTopBar ? 0 : 'var(--appshell-horizontal-offset, 0)'};\n\n ${isMobileNav\n ? css`\n &::after {\n content: '';\n display: block;\n height: ${mobileHeaderHeight};\n }\n `\n : css`\n transition: margin-inline-start\n ${`${theme.base.animation.speed} ${theme.base.animation.timing.ease}`};\n padding-inline-end: var(--safe-area-inset-inline-end, 0);\n `};\n\n & > ${StyledProgressBackdrop}, & > [data-config-root] > ${StyledProgressBackdrop} {\n max-width: calc(100vw - ${navOpen ? navOpenWidth : navWidth});\n inset-block-start: var(--appshell-top-offset);\n inset-block-end: var(--appshell-hard-bottom-offset);\n inset-inline-start: calc(\n ${navOpen ? navOpenWidth : navWidth} + var(--safe-area-inset-inline-start, 0rem)\n );\n ${(isMobileNav || isTopBar) &&\n css`\n max-width: 100vw;\n inset-inline-start: 0;\n `}\n position: fixed;\n transition-property: opacity, max-height, max-width, inset-block-start, inset-inline-start;\n transition-duration: ${theme.base.animation.speed};\n transition-timing-function: ${theme.base.animation.timing.ease};\n }\n\n @media (min-width: ${theme.base.breakpoints.md}) {\n transition: margin-inline-end ${!isMobileNav ? ', margin-inline-start' : ''};\n transition-duration: ${theme.base.animation.speed};\n transition-timing-function: ${theme.base.animation.timing.ease};\n\n ${previewActive &&\n css`\n transition: none;\n margin-inline-end: min(var(--resize-drawer-width), ${resizeDrawerMaxWidth});\n `}\n }\n `;\n});\n\nStyledAppMain.defaultProps = defaultThemeProp;\n\nexport const StyledBannerRegion = styled.div(({ theme }) => {\n return css`\n padding: calc(2 * ${theme.base.spacing});\n `;\n});\n\nStyledBannerRegion.defaultProps = defaultThemeProp;\n\nexport const StyledAppShellTooltip = styled(StyledTooltip)(({ theme }) => {\n const bg = theme.components.tooltip['background-color'];\n const color = resolveContrastColor({\n background: bg,\n theme\n });\n\n return css`\n background-color: ${bg};\n padding: 0;\n\n header {\n color: ${color};\n border-bottom: none;\n }\n\n ${StyledMenuItem} {\n background-color: ${bg};\n color: ${color};\n\n &:hover,\n &:focus-visible {\n background-color: ${bg};\n box-shadow: ${theme.base.shadow.focus};\n }\n }\n `;\n});\n\nStyledAppShellTooltip.defaultProps = defaultThemeProp;\n\nexport const StyledAppShellToggleButton = styled(Button)(({ theme }) => {\n const {\n background: navBg,\n 'foreground-color': navFgColor,\n 'expand-button': { background: expandBtnBgToken, 'foreground-color': expandBtnFgToken }\n } = theme.components['app-shell'].nav;\n\n const { backgroundColor } = calculateBackgroundAndContrastColor(navBg, navFgColor, theme);\n\n let defaultBg = darken(0.2, backgroundColor);\n if (getContrast(backgroundColor, defaultBg) < 1.3) {\n defaultBg = lighten(0.2, backgroundColor);\n }\n\n const resolvedBg = expandBtnBgToken !== 'auto' ? expandBtnBgToken : defaultBg;\n const resolvedFg = expandBtnFgToken;\n\n return css`\n background: ${resolvedBg};\n color: ${resolvedFg};\n border: none;\n margin-block-start: ${theme.base.spacing};\n\n ${StyledIcon} {\n width: 1.25rem;\n height: 1.25rem;\n font-weight: bold;\n }\n\n &:enabled:focus-visible,\n :not([disabled]):focus-visible {\n box-shadow: ${theme.base.shadow.focus};\n }\n `;\n});\n\nStyledAppShellToggleButton.defaultProps = defaultThemeProp;\n\nexport const StyledNavAgentIcon = styled.div`\n width: 1.5rem;\n height: 1.5rem;\n display: inline-flex;\n flex-shrink: 0;\n\n & > svg {\n width: 100%;\n height: 100%;\n }\n`;\n\nStyledNavAgentIcon.defaultProps = defaultThemeProp;\n\nexport const StyledAIAssistant = styled.div(({ theme }) => {\n const { navOpen } = useContext(AppShellContext);\n const { rtl } = useDirection();\n\n const { detached } = theme.components['app-shell'].nav;\n const activeBg = theme.components.agent.background;\n const speed = theme.base.animation.speed;\n const ease = theme.base.animation.timing.ease;\n\n const radius = 'calc(var(--item-height) / 4)';\n\n const inwardSide = rtl ? '100%' : '0%';\n\n return css`\n ${detached &&\n css`\n ${StyledNavList} {\n margin-block-start: calc(${theme.base.spacing} / 2);\n }\n\n ${StyledNavList} > ${StyledNavListItem}:last-of-type {\n padding-block-end: 0;\n }\n\n ${StyledNavListItem} {\n > :first-child {\n transition:\n border-start-end-radius ${speed} ${ease},\n border-end-end-radius ${speed} ${ease},\n background ${speed} ${ease};\n border-radius: ${radius};\n outline: none;\n }\n\n &:has([aria-current='page']) {\n z-index: 1;\n padding-inline-end: 0;\n\n > :first-child {\n background: ${activeBg};\n border-block-color: transparent;\n border-start-end-radius: 0;\n border-end-end-radius: 0;\n\n &:focus-visible {\n outline: none;\n box-shadow:\n inset ${rtl ? '0.25rem' : '-0.25rem'} 0 0 0 ${activeBg},\n ${theme.base.shadow['focus-inset']};\n }\n\n &::before {\n content: '';\n position: absolute;\n inset-inline-end: 0;\n bottom: 100%;\n width: ${radius};\n height: ${radius};\n background: ${activeBg};\n pointer-events: none;\n -webkit-mask-image: radial-gradient(\n circle at ${inwardSide} 0%,\n transparent ${radius},\n black ${radius}\n );\n mask-image: radial-gradient(\n circle at ${inwardSide} 0%,\n transparent ${radius},\n black ${radius}\n );\n }\n\n &::after {\n content: '';\n position: absolute;\n inset-inline-end: 0;\n top: 100%;\n width: ${radius};\n height: ${radius};\n background: ${activeBg};\n pointer-events: none;\n -webkit-mask-image: radial-gradient(\n circle at ${inwardSide} 100%,\n transparent ${radius},\n black ${radius}\n );\n mask-image: radial-gradient(\n circle at ${inwardSide} 100%,\n transparent ${radius},\n black ${radius}\n );\n }\n }\n\n ${!navOpen &&\n css`\n > :first-child > span:not(${StyledCountIcon}) {\n max-width: 0;\n overflow: hidden;\n }\n `}\n }\n }\n `}\n `;\n});\n\nStyledAIAssistant.defaultProps = defaultThemeProp;\n\nexport const StyledShareIcon = styled(Icon)`\n transform: rotate(180deg);\n`;\n\nStyledShareIcon.defaultProps = defaultThemeProp;\n"]}
|
|
@@ -105,7 +105,7 @@ const StyledNavigationTouchDialog = styled(TouchDialog)(({ theme }) => {
|
|
|
105
105
|
StyledNavigationTouchDialog.defaultProps = defaultThemeProp;
|
|
106
106
|
const ListItemWrapper = props => {
|
|
107
107
|
const { children, childElementRef, label, tooltipLabel, items, filterAt = 5, content, onMenuToggle, mobileNavBar } = props;
|
|
108
|
-
const { navOpen, collapsedHoverMenus, headerEl } = useContext(AppShellContext);
|
|
108
|
+
const { isMobileNav, navOpen, collapsedHoverMenus, headerEl } = useContext(AppShellContext);
|
|
109
109
|
const popoverRef = useRef(null);
|
|
110
110
|
const filterElRef = useRef(null);
|
|
111
111
|
const isMenu = (Array.isArray(items) && items.length > 0) || !!content;
|
|
@@ -145,7 +145,7 @@ const ListItemWrapper = props => {
|
|
|
145
145
|
useEffect(() => {
|
|
146
146
|
const onClick = () => {
|
|
147
147
|
if (isMenu) {
|
|
148
|
-
if (!navOpen && !popoverOpen)
|
|
148
|
+
if ((isMobileNav || !navOpen) && !popoverOpen)
|
|
149
149
|
setPopoverOpen(true);
|
|
150
150
|
else {
|
|
151
151
|
setTimeout(() => {
|
|
@@ -215,7 +215,7 @@ const ListItemWrapper = props => {
|
|
|
215
215
|
hidePopoverTimeout.current = null;
|
|
216
216
|
}
|
|
217
217
|
};
|
|
218
|
-
}, [isMenu, navOpen, closePopover, collapsedHoverMenus, popoverOpen]);
|
|
218
|
+
}, [isMenu, navOpen, closePopover, collapsedHoverMenus, popoverOpen, isMobileNav]);
|
|
219
219
|
useEffect(() => {
|
|
220
220
|
onMenuToggle?.(popoverOpen ? 'open' : 'close');
|
|
221
221
|
}, [popoverOpen]);
|