@pega/cosmos-react-core 10.0.0-build.9.1 → 10.0.0-build.9.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (34) hide show
  1. package/lib/components/AppShell/AppShell.d.ts +2 -1
  2. package/lib/components/AppShell/AppShell.d.ts.map +1 -1
  3. package/lib/components/AppShell/AppShell.js +2 -2
  4. package/lib/components/AppShell/AppShell.js.map +1 -1
  5. package/lib/components/AppShell/AppShell.styles.d.ts +1 -0
  6. package/lib/components/AppShell/AppShell.styles.d.ts.map +1 -1
  7. package/lib/components/AppShell/AppShell.styles.js +28 -4
  8. package/lib/components/AppShell/AppShell.styles.js.map +1 -1
  9. package/lib/components/AppShell/TouchAppShell.d.ts +11 -25
  10. package/lib/components/AppShell/TouchAppShell.d.ts.map +1 -1
  11. package/lib/components/AppShell/TouchAppShell.js +35 -12
  12. package/lib/components/AppShell/TouchAppShell.js.map +1 -1
  13. package/lib/components/AppShell/TouchAppShell.styles.d.ts +200 -1
  14. package/lib/components/AppShell/TouchAppShell.styles.d.ts.map +1 -1
  15. package/lib/components/AppShell/TouchAppShell.styles.js +44 -3
  16. package/lib/components/AppShell/TouchAppShell.styles.js.map +1 -1
  17. package/lib/components/Dialog/TouchDialog.d.ts.map +1 -1
  18. package/lib/components/Dialog/TouchDialog.js +37 -12
  19. package/lib/components/Dialog/TouchDialog.js.map +1 -1
  20. package/lib/components/Dialog/TouchDialog.styles.d.ts +7 -0
  21. package/lib/components/Dialog/TouchDialog.styles.d.ts.map +1 -1
  22. package/lib/components/Dialog/TouchDialog.styles.js +15 -0
  23. package/lib/components/Dialog/TouchDialog.styles.js.map +1 -1
  24. package/lib/components/Dialog/TouchDialog.types.d.ts +10 -2
  25. package/lib/components/Dialog/TouchDialog.types.d.ts.map +1 -1
  26. package/lib/components/Dialog/TouchDialog.types.js.map +1 -1
  27. package/lib/components/Modal/DockedModals.d.ts.map +1 -1
  28. package/lib/components/Modal/DockedModals.js +3 -2
  29. package/lib/components/Modal/DockedModals.js.map +1 -1
  30. package/lib/theme/themes/orionDarkTheme.json +2 -1
  31. package/lib/theme/themes/orionTheme.json +3 -3
  32. package/lib/theme/themes/virgoDarkTheme.json +2 -1
  33. package/lib/theme/themes/virgoTheme.json +2 -1
  34. package/package.json +1 -1
@@ -1,4 +1,5 @@
1
1
  import type { AppShellProps } from './AppShell.types';
2
- declare const AppShellMain: import("react").ForwardRefExoticComponent<AppShellProps & import("react").RefAttributes<HTMLDivElement>>;
2
+ import type { TouchAppShellProps } from './TouchAppShell';
3
+ declare const AppShellMain: import("react").ForwardRefExoticComponent<AppShellProps & Pick<TouchAppShellProps, "bottomTouchPanel"> & import("react").RefAttributes<HTMLDivElement>>;
3
4
  export default AppShellMain;
4
5
  //# sourceMappingURL=AppShell.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"AppShell.d.ts","sourceRoot":"","sources":["../../../src/components/AppShell/AppShell.tsx"],"names":[],"mappings":"AAiDA,OAAO,KAAK,EAAE,aAAa,EAAiB,MAAM,kBAAkB,CAAC;AAsWrE,QAAA,MAAM,YAAY,0GAuKjB,CAAC;AAEF,eAAe,YAAY,CAAC"}
1
+ {"version":3,"file":"AppShell.d.ts","sourceRoot":"","sources":["../../../src/components/AppShell/AppShell.tsx"],"names":[],"mappings":"AAiDA,OAAO,KAAK,EAAE,aAAa,EAAiB,MAAM,kBAAkB,CAAC;AAQrE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AA+V1D,QAAA,MAAM,YAAY,yJA0KhB,CAAC;AAEH,eAAe,YAAY,CAAC"}
@@ -168,7 +168,7 @@ const AppShell = forwardRef(function AppShell(props, ref) {
168
168
  const AppShellMain = forwardRef(function AppShellMain(props, ref) {
169
169
  const t = useI18n();
170
170
  const navId = useUID();
171
- const { appInfo, appHeader, contextSwitcher, searchPage, searchInput, searchLabel = t('sitewide'), caseTypes, links, cases, agent, utils, operator, headerUtils, helpMenu, shareApp, banners, progress, main, documentTabs, navOrientation = 'side-rail', ...restProps } = props;
171
+ const { appInfo, appHeader, contextSwitcher, searchPage, searchInput, searchLabel = t('sitewide'), caseTypes, links, cases, agent, utils, operator, headerUtils, helpMenu, shareApp, banners, progress, main, bottomTouchPanel, documentTabs, navOrientation = 'side-rail', ...restProps } = props;
172
172
  const isSmallOrAbove = useBreakpoint('sm');
173
173
  const isTopBar = navOrientation === 'top-bar' || !isSmallOrAbove;
174
174
  const showAppHeader = isTouchDevice
@@ -261,7 +261,7 @@ const AppShellMain = forwardRef(function AppShellMain(props, ref) {
261
261
  utils
262
262
  ]);
263
263
  if (isTouchDevice) {
264
- return (_jsx(TouchAppShell, { appInfo: appInfo, appHeader: appHeader, contextSwitcher: contextSwitcher, searchPage: searchPage, searchInput: searchInput, searchLabel: searchLabel, caseTypes: caseTypes, links: links, cases: cases, agent: agent, utils: utils, utilsList: utilsList, operator: operator, headerUtils: headerUtils, helpMenu: helpMenu, shareApp: shareApp, banners: banners, progress: progress, main: main, documentTabs: documentTabs, navId: navId, restProps: restProps }));
264
+ return (_jsx(TouchAppShell, { appInfo: appInfo, appHeader: appHeader, contextSwitcher: contextSwitcher, searchPage: searchPage, searchInput: searchInput, searchLabel: searchLabel, caseTypes: caseTypes, links: links, cases: cases, agent: agent, utils: utils, utilsList: utilsList, operator: operator, headerUtils: headerUtils, helpMenu: helpMenu, shareApp: shareApp, banners: banners, progress: progress, main: main, bottomTouchPanel: bottomTouchPanel, documentTabs: documentTabs, navId: navId, restProps: restProps }));
265
265
  }
266
266
  return _jsx(AppShell, { ...props, utilsList: utilsList, ref: ref });
267
267
  });
@@ -1 +1 @@
1
- {"version":3,"file":"AppShell.js","sourceRoot":"","sources":["../../../src/components/AppShell/AppShell.tsx"],"names":[],"mappings":"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","sourcesContent":["import { forwardRef, useState, useCallback, useMemo, useRef } from 'react';\nimport type { PropsWithoutRef, Ref } from 'react';\n\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 useUID,\n usePreviewManager,\n useDirection\n} from '../../hooks';\nimport useThemeMode from '../../hooks/useThemeMode';\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 { isTouchDevice } from '../../utils';\nimport useKeyboardCommands from '../KeyboardCommands';\nimport Tooltip from '../Tooltip';\n\nimport AppShellContext from './AppShellContext';\nimport AppHeader from './AppHeader';\nimport AppTopNav from './AppTopNav';\nimport {\n StyledAppMain,\n StyledBannerRegion,\n StyledAppShellToggleButton,\n StyledAppShellTooltip,\n StyledSidebarNav,\n AppShellGlobalStyle,\n StyledShareIcon\n} from './AppShell.styles';\nimport type { AppShellProps, UtilItemProps } from './AppShell.types';\nimport { followingNodes, focusRegion } from './utils';\nimport AppNavigationPanel from './AppNavigationPanel';\nimport NavigationList from './NavigationList';\nimport DocumentTabs, { getTabElementId, getTabPanelId } from './DocumentTabs';\nimport { StyledDocumentTabPanel } from './DocumentTabs.styles';\nimport TopNavDrawerProvider from './TopNavDrawerProvider';\nimport TouchAppShell from './TouchAppShell';\n\ninterface DesktopAppShellProps extends AppShellProps {\n utilsList: NonNullable<AppShellProps['utils']>;\n}\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\nconst AppShell = forwardRef(function AppShell(\n props: PropsWithoutRef<DesktopAppShellProps>,\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 portalSwitcher,\n navOrientation = 'side-rail',\n documentTabs,\n utilsList,\n ...restProps\n } = props;\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 navRef = useConsolidatedRef(ref);\n const navId = useUID();\n const [expandCollapseEl, setExpandCollapseEl] = useElement<HTMLButtonElement>();\n\n const [drawerOpen, setDrawerOpen] = useState(false);\n\n const { previewActive, setPreviewActive } = usePreviewManager();\n\n const focusedImperatively = useRef(false);\n const [headerEl, setHeaderEl] = useElement<HTMLDivElement>();\n\n const isSmallOrAbove = useBreakpoint('sm');\n const isTopBar = navOrientation === 'top-bar' || !isSmallOrAbove;\n\n const showAppHeader = isTopBar || (!!appHeader && isSmallOrAbove);\n const showMainContent = showAppHeader ? !!headerEl : 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 { state: sidebarNavState, set: setSidebarNavState } = useTransitionState({\n ref: navRef,\n property: 'width',\n states: openCloseStates,\n defaultState: defaultExpanded ? 'open' : 'closed'\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 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 { start, end } = useDirection();\n\n return (\n <AppShellContext.Provider\n value={useMemo(\n () => ({\n navOpen: sidebarNavState === 'open' || sidebarNavState === 'opening',\n drawerOpen,\n setDrawerOpen,\n collapsedHoverMenus,\n navState: sidebarNavState,\n focusedImperatively,\n headerEl,\n appHeaderEl: headerEl ?? null,\n searchContainerEl,\n setSearchContainerEl,\n isMobileNav: false,\n isTopBar,\n previewActive,\n setPreviewActive\n }),\n [\n sidebarNavState,\n drawerOpen,\n collapsedHoverMenus,\n isTopBar,\n headerEl,\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 portalSwitcher={portalSwitcher}\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 {showMainContent && (\n <>\n {documentTabs && <DocumentTabs {...documentTabs} />}\n {(() => {\n const mainRegion = (\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 {banners && <StyledBannerRegion>{banners}</StyledBannerRegion>}\n {main}\n </StyledAppMain>\n );\n if (!documentTabs) return mainRegion;\n return (\n <StyledDocumentTabPanel\n role='tabpanel'\n id={\n documentTabs.currentTabId ? getTabPanelId(documentTabs.currentTabId) : undefined\n }\n aria-labelledby={\n documentTabs.currentTabId ? getTabElementId(documentTabs.currentTabId) : undefined\n }\n tabIndex={0}\n >\n {mainRegion}\n </StyledDocumentTabPanel>\n );\n })()}\n </>\n )}\n <AppShellGlobalStyle\n isTopBar={isTopBar}\n showAppHeader={showAppHeader}\n isMobile={false}\n hasDocumentTabs={!!documentTabs}\n navOpen={sidebarNavState === 'open' || sidebarNavState === 'opening'}\n />\n </AppShellContext.Provider>\n );\n});\n\nconst AppShellMain = forwardRef<HTMLDivElement, PropsWithoutRef<AppShellProps>>(\n function AppShellMain(props, ref) {\n const t = useI18n();\n const navId = useUID();\n const {\n appInfo,\n appHeader,\n contextSwitcher,\n searchPage,\n searchInput,\n searchLabel = t('sitewide'),\n caseTypes,\n links,\n cases,\n agent,\n utils,\n operator,\n headerUtils,\n helpMenu,\n shareApp,\n banners,\n progress,\n main,\n documentTabs,\n navOrientation = 'side-rail',\n ...restProps\n } = props;\n\n const isSmallOrAbove = useBreakpoint('sm');\n const isTopBar = navOrientation === 'top-bar' || !isSmallOrAbove;\n const showAppHeader = isTouchDevice\n ? isSmallOrAbove\n : isTopBar || (!!appHeader && isSmallOrAbove);\n const { themeMode, onThemeModeChange } = useThemeMode();\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 => onContextClick(context.id, e)\n }))}\n singleSelect\n />\n )\n };\n }\n }, [contextSwitcher, showAppHeader, t]);\n\n const shareLabel = shareApp?.label ?? t('app_shell_share');\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 }, [shareApp, shareLabel, showAppHeader]);\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 }, [operator, showAppHeader, t]);\n\n const themeSwitcherUtilItem: UtilItemProps | undefined = useMemo(() => {\n if (!showAppHeader && onThemeModeChange) {\n let currentThemeIcon = 'circle-mixed-left';\n if (themeMode === 'dark') currentThemeIcon = 'moon';\n else if (themeMode === 'light') currentThemeIcon = 'sun';\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 }, [onThemeModeChange, showAppHeader, t, themeMode]);\n\n const utilsList = useMemo<NonNullable<AppShellProps['utils']>>(\n () => [\n ...(utils ?? []),\n ...(contextSwitcherUtilItem ? [contextSwitcherUtilItem] : []),\n ...(shareApplicationUtilItem ? [shareApplicationUtilItem] : []),\n ...(operatorInfoUtilItem ? [operatorInfoUtilItem] : []),\n ...(themeSwitcherUtilItem ? [themeSwitcherUtilItem] : [])\n ],\n [\n contextSwitcherUtilItem,\n operatorInfoUtilItem,\n shareApplicationUtilItem,\n themeSwitcherUtilItem,\n utils\n ]\n );\n\n if (isTouchDevice) {\n return (\n <TouchAppShell\n appInfo={appInfo}\n appHeader={appHeader}\n contextSwitcher={contextSwitcher}\n searchPage={searchPage}\n searchInput={searchInput}\n searchLabel={searchLabel}\n caseTypes={caseTypes}\n links={links}\n cases={cases}\n agent={agent}\n utils={utils}\n utilsList={utilsList}\n operator={operator}\n headerUtils={headerUtils}\n helpMenu={helpMenu}\n shareApp={shareApp}\n banners={banners}\n progress={progress}\n main={main}\n documentTabs={documentTabs}\n navId={navId}\n restProps={restProps}\n />\n );\n }\n\n return <AppShell {...props} utilsList={utilsList} ref={ref} />;\n }\n);\n\nexport default AppShellMain;\n"]}
1
+ {"version":3,"file":"AppShell.js","sourceRoot":"","sources":["../../../src/components/AppShell/AppShell.tsx"],"names":[],"mappings":"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","sourcesContent":["import { forwardRef, useState, useCallback, useMemo, useRef } from 'react';\nimport type { PropsWithoutRef, Ref } from 'react';\n\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 useUID,\n usePreviewManager,\n useDirection\n} from '../../hooks';\nimport useThemeMode from '../../hooks/useThemeMode';\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 { isTouchDevice } from '../../utils';\nimport useKeyboardCommands from '../KeyboardCommands';\nimport Tooltip from '../Tooltip';\n\nimport AppShellContext from './AppShellContext';\nimport AppHeader from './AppHeader';\nimport AppTopNav from './AppTopNav';\nimport {\n StyledAppMain,\n StyledBannerRegion,\n StyledAppShellToggleButton,\n StyledAppShellTooltip,\n StyledSidebarNav,\n AppShellGlobalStyle,\n StyledShareIcon\n} from './AppShell.styles';\nimport type { AppShellProps, UtilItemProps } from './AppShell.types';\nimport { followingNodes, focusRegion } from './utils';\nimport AppNavigationPanel from './AppNavigationPanel';\nimport NavigationList from './NavigationList';\nimport DocumentTabs, { getTabElementId, getTabPanelId } from './DocumentTabs';\nimport { StyledDocumentTabPanel } from './DocumentTabs.styles';\nimport TopNavDrawerProvider from './TopNavDrawerProvider';\nimport TouchAppShell from './TouchAppShell';\nimport type { TouchAppShellProps } from './TouchAppShell';\n\ninterface DesktopAppShellProps extends AppShellProps {\n utilsList: NonNullable<AppShellProps['utils']>;\n}\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\nconst AppShell = forwardRef(function AppShell(\n props: PropsWithoutRef<DesktopAppShellProps>,\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 portalSwitcher,\n navOrientation = 'side-rail',\n documentTabs,\n utilsList,\n ...restProps\n } = props;\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 navRef = useConsolidatedRef(ref);\n const navId = useUID();\n const [expandCollapseEl, setExpandCollapseEl] = useElement<HTMLButtonElement>();\n\n const [drawerOpen, setDrawerOpen] = useState(false);\n\n const { previewActive, setPreviewActive } = usePreviewManager();\n\n const focusedImperatively = useRef(false);\n const [headerEl, setHeaderEl] = useElement<HTMLDivElement>();\n\n const isSmallOrAbove = useBreakpoint('sm');\n const isTopBar = navOrientation === 'top-bar' || !isSmallOrAbove;\n\n const showAppHeader = isTopBar || (!!appHeader && isSmallOrAbove);\n const showMainContent = showAppHeader ? !!headerEl : 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 { state: sidebarNavState, set: setSidebarNavState } = useTransitionState({\n ref: navRef,\n property: 'width',\n states: openCloseStates,\n defaultState: defaultExpanded ? 'open' : 'closed'\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 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 { start, end } = useDirection();\n\n return (\n <AppShellContext.Provider\n value={useMemo(\n () => ({\n navOpen: sidebarNavState === 'open' || sidebarNavState === 'opening',\n drawerOpen,\n setDrawerOpen,\n collapsedHoverMenus,\n navState: sidebarNavState,\n focusedImperatively,\n headerEl,\n appHeaderEl: headerEl ?? null,\n searchContainerEl,\n setSearchContainerEl,\n isMobileNav: false,\n isTopBar,\n previewActive,\n setPreviewActive\n }),\n [\n sidebarNavState,\n drawerOpen,\n collapsedHoverMenus,\n isTopBar,\n headerEl,\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 portalSwitcher={portalSwitcher}\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 {showMainContent && (\n <>\n {documentTabs && <DocumentTabs {...documentTabs} />}\n {(() => {\n const mainRegion = (\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 {banners && <StyledBannerRegion>{banners}</StyledBannerRegion>}\n {main}\n </StyledAppMain>\n );\n if (!documentTabs) return mainRegion;\n return (\n <StyledDocumentTabPanel\n role='tabpanel'\n id={\n documentTabs.currentTabId ? getTabPanelId(documentTabs.currentTabId) : undefined\n }\n aria-labelledby={\n documentTabs.currentTabId ? getTabElementId(documentTabs.currentTabId) : undefined\n }\n tabIndex={0}\n >\n {mainRegion}\n </StyledDocumentTabPanel>\n );\n })()}\n </>\n )}\n <AppShellGlobalStyle\n isTopBar={isTopBar}\n showAppHeader={showAppHeader}\n isMobile={false}\n hasDocumentTabs={!!documentTabs}\n navOpen={sidebarNavState === 'open' || sidebarNavState === 'opening'}\n />\n </AppShellContext.Provider>\n );\n});\n\nconst AppShellMain = forwardRef<\n HTMLDivElement,\n PropsWithoutRef<AppShellProps & Pick<TouchAppShellProps, 'bottomTouchPanel'>>\n>(function AppShellMain(props, ref) {\n const t = useI18n();\n const navId = useUID();\n const {\n appInfo,\n appHeader,\n contextSwitcher,\n searchPage,\n searchInput,\n searchLabel = t('sitewide'),\n caseTypes,\n links,\n cases,\n agent,\n utils,\n operator,\n headerUtils,\n helpMenu,\n shareApp,\n banners,\n progress,\n main,\n bottomTouchPanel,\n documentTabs,\n navOrientation = 'side-rail',\n ...restProps\n } = props;\n\n const isSmallOrAbove = useBreakpoint('sm');\n const isTopBar = navOrientation === 'top-bar' || !isSmallOrAbove;\n const showAppHeader = isTouchDevice\n ? isSmallOrAbove\n : isTopBar || (!!appHeader && isSmallOrAbove);\n const { themeMode, onThemeModeChange } = useThemeMode();\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 => onContextClick(context.id, e)\n }))}\n singleSelect\n />\n )\n };\n }\n }, [contextSwitcher, showAppHeader, t]);\n\n const shareLabel = shareApp?.label ?? t('app_shell_share');\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 }, [shareApp, shareLabel, showAppHeader]);\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 }, [operator, showAppHeader, t]);\n\n const themeSwitcherUtilItem: UtilItemProps | undefined = useMemo(() => {\n if (!showAppHeader && onThemeModeChange) {\n let currentThemeIcon = 'circle-mixed-left';\n if (themeMode === 'dark') currentThemeIcon = 'moon';\n else if (themeMode === 'light') currentThemeIcon = 'sun';\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 }, [onThemeModeChange, showAppHeader, t, themeMode]);\n\n const utilsList = useMemo<NonNullable<AppShellProps['utils']>>(\n () => [\n ...(utils ?? []),\n ...(contextSwitcherUtilItem ? [contextSwitcherUtilItem] : []),\n ...(shareApplicationUtilItem ? [shareApplicationUtilItem] : []),\n ...(operatorInfoUtilItem ? [operatorInfoUtilItem] : []),\n ...(themeSwitcherUtilItem ? [themeSwitcherUtilItem] : [])\n ],\n [\n contextSwitcherUtilItem,\n operatorInfoUtilItem,\n shareApplicationUtilItem,\n themeSwitcherUtilItem,\n utils\n ]\n );\n\n if (isTouchDevice) {\n return (\n <TouchAppShell\n appInfo={appInfo}\n appHeader={appHeader}\n contextSwitcher={contextSwitcher}\n searchPage={searchPage}\n searchInput={searchInput}\n searchLabel={searchLabel}\n caseTypes={caseTypes}\n links={links}\n cases={cases}\n agent={agent}\n utils={utils}\n utilsList={utilsList}\n operator={operator}\n headerUtils={headerUtils}\n helpMenu={helpMenu}\n shareApp={shareApp}\n banners={banners}\n progress={progress}\n main={main}\n bottomTouchPanel={bottomTouchPanel}\n documentTabs={documentTabs}\n navId={navId}\n restProps={restProps}\n />\n );\n }\n\n return <AppShell {...props} utilsList={utilsList} ref={ref} />;\n});\n\nexport default AppShellMain;\n"]}
@@ -236,6 +236,7 @@ export declare const StyledLoading: import("styled-components/dist/types").IStyl
236
236
  export declare const StyledAppMain: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components/dist/types").Substitute<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLElement>, HTMLElement>, {
237
237
  previewActive: boolean;
238
238
  isTopBar?: boolean;
239
+ hasBottomTouchPanel?: boolean;
239
240
  }>> & string;
240
241
  export declare const StyledBannerRegion: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never>> & string;
241
242
  export declare const StyledAppShellTooltip: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<Omit<import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never>, "ref"> & {
@@ -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;AAgCtF,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;sBACA,OAAO;cACf,OAAO;YACT,YAAY;EAuCrB,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;AAIH,eAAO,MAAM,YAAY,uNAiCvB,CAAC;AAIH,eAAO,MAAM,gBAAgB;;;kBACb,OAAO;YAqCrB,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,aAAa,6NAEzB,CAAC;AAEF,eAAO,MAAM,aAAa;mBACT,OAAO;eACX,OAAO;YA4DlB,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"}
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;AAgCtF,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;sBACA,OAAO;cACf,OAAO;YACT,YAAY;EAwCrB,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;AAIH,eAAO,MAAM,YAAY,uNAiCvB,CAAC;AAIH,eAAO,MAAM,gBAAgB;;;kBACb,OAAO;YAqCrB,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,aAAa,6NAEzB,CAAC;AAEF,eAAO,MAAM,aAAa;mBACT,OAAO;eACX,OAAO;0BACI,OAAO;YAmF7B,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,6NA0G5B,CAAC;AAIH,eAAO,MAAM,eAAe,kYAE3B,CAAC"}
@@ -42,13 +42,13 @@ export const AppShellGlobalStyle = createGlobalStyle `
42
42
  --appshell-hard-top-offset: calc(var(--marking-height, 0rem) + var(--safe-area-inset-block-start, 0rem));
43
43
 
44
44
  /* Offset for content that should be below app header, top nav, and document tabs (Drawers and Previews) */
45
- --appshell-top-offset: calc(var(--appshell-hard-top-offset) + var(--app-header-height) + ${({ isTopBar }) => (isTopBar ? topNavHeight : '0rem')} + var(--document-tabs-height) );
45
+ --appshell-top-offset: calc(var(--appshell-hard-top-offset) + var(--app-header-height) + ${({ isTopBar }) => (isTopBar ? topNavHeight : '0rem')} + var(--document-tabs-height));
46
46
 
47
47
  /* Hard offset for content that should cover the bottom mobile nav (Backdrop and Fullscreen) */
48
48
  --appshell-hard-bottom-offset: calc(var(--marking-height, 0rem) + var(--safe-area-inset-block-end, 0rem));
49
49
 
50
50
  /* Offset for content that should be above the bottom mobile nav (Drawers and Toasters) */
51
- --appshell-bottom-offset: calc(var(--appshell-hard-bottom-offset) + ${({ isMobile }) => (isMobile ? mobileHeaderHeight : '0rem')});
51
+ --appshell-bottom-offset: ${({ isMobile }) => `calc(var(--appshell-hard-bottom-offset) + ${isMobile ? mobileHeaderHeight : '0rem'})`};
52
52
 
53
53
  /* Total offset for app header, nav, and mobile nav used for calculating available height */
54
54
  --appshell-total-offset: calc(var(--appshell-top-offset) + var(--appshell-bottom-offset));
@@ -605,7 +605,7 @@ StyledUtils.defaultProps = defaultThemeProp;
605
605
  export const StyledLoading = styled.div `
606
606
  font-size: 2rem;
607
607
  `;
608
- export const StyledAppMain = styled.main(({ previewActive, isTopBar = false, theme }) => {
608
+ export const StyledAppMain = styled.main(({ previewActive, isTopBar = false, hasBottomTouchPanel, theme }) => {
609
609
  const { navOpen, isMobileNav } = useContext(AppShellContext);
610
610
  return css `
611
611
  margin-inline-start: ${isMobileNav || isTopBar ? 0 : 'var(--appshell-horizontal-offset, 0)'};
@@ -615,6 +615,29 @@ export const StyledAppMain = styled.main(({ previewActive, isTopBar = false, the
615
615
  min-height: calc(100dvh - var(--appshell-total-offset));
616
616
  background: ${theme.base.palette['app-background']};
617
617
 
618
+ ${isMobileNav &&
619
+ css `
620
+ ${hasBottomTouchPanel &&
621
+ css `
622
+ border-end-start-radius: ${theme.components.card['border-radius']};
623
+ border-end-end-radius: ${theme.components.card['border-radius']};
624
+ `}
625
+
626
+ height: calc(
627
+ 100dvh - var(--appshell-top-offset) - var(--appshell-bottom-panel-offset) -
628
+ var(--appshell-bottom-panel-gap)
629
+ );
630
+ padding-block-end: calc(
631
+ var(--appshell-hard-bottom-offset) + var(--appshell-bottom-panel-gap)
632
+ );
633
+ overflow-y: auto;
634
+ overscroll-behavior: contain;
635
+
636
+ > [data-config-root] {
637
+ min-height: 100%;
638
+ }
639
+ `}
640
+
618
641
  &:focus {
619
642
  outline: none;
620
643
  }
@@ -740,7 +763,7 @@ export const StyledNavAgentIcon = styled.div `
740
763
  `;
741
764
  StyledNavAgentIcon.defaultProps = defaultThemeProp;
742
765
  export const StyledAIAssistant = styled.div(({ theme }) => {
743
- const { navOpen } = useContext(AppShellContext);
766
+ const { navOpen, isMobileNav } = useContext(AppShellContext);
744
767
  const { rtl } = useDirection();
745
768
  const { detached } = theme.components['app-shell'].nav;
746
769
  const activeBg = theme.components.agent.background;
@@ -750,6 +773,7 @@ export const StyledAIAssistant = styled.div(({ theme }) => {
750
773
  const inwardSide = rtl ? '100%' : '0%';
751
774
  return css `
752
775
  ${detached &&
776
+ !isMobileNav &&
753
777
  css `
754
778
  ${StyledNavList} {
755
779
  margin-block-start: calc(${theme.base.spacing} / 2);
@@ -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 { 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 { 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';\n\nimport AppShellContext from './AppShellContext';\nimport { navContrastColors } from './style-utils';\nimport { documentTabsHeight } from './DocumentTabs.styles';\nimport { StyledDrawerWrapper } from './Drawer.styles';\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 hasDocumentTabs?: boolean;\n navOpen?: boolean;\n theme?: DefaultTheme;\n}>`\n :root,\n :host {\n /* Height of the app header */\n --app-header-height: ${({ showAppHeader }) => (showAppHeader ? headerHeight : '0rem')};\n\n /* Height of the document tab strip (0 when not present) */\n --document-tabs-height: ${({ hasDocumentTabs }) => (hasDocumentTabs ? documentTabsHeight : '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, top nav, and document tabs (Drawers and Previews) */\n --appshell-top-offset: calc(var(--appshell-hard-top-offset) + var(--app-header-height) + ${({ isTopBar }) => (isTopBar ? topNavHeight : '0rem')} + var(--document-tabs-height) );\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 /* stylelint-disable-next-line length-zero-no-unit */\n --appshell-horizontal-offset: 0rem;\n }\n\n @media (min-width: ${({ theme }) => theme?.base.breakpoints.sm ?? '31.25em'}) {\n :root,\n :host {\n /* stylelint-disable-next-line length-zero-no-unit */\n --appshell-horizontal-offset: ${({ navOpen, isMobile, isTopBar }) =>\n isMobile || isTopBar\n ? '0rem'\n : `calc(${navOpen ? navOpenWidth : navWidth} + var(--safe-area-inset-inline-start, 0rem))`};\n }\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\nexport const 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: calc(var(--appshell-top-offset, 0rem) - var(--document-tabs-height, 0rem));\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) + var(--document-tabs-height, 0rem));\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 ${StyledDrawerWrapper} {\n inset-block-start: calc(var(--appshell-top-offset, 0rem) - var(--document-tabs-height, 0rem));\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 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 margin-inline-start: ${isMobileNav || isTopBar ? 0 : 'var(--appshell-horizontal-offset, 0)'};\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 ${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 { 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 { 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';\n\nimport AppShellContext from './AppShellContext';\nimport { navContrastColors } from './style-utils';\nimport { documentTabsHeight } from './DocumentTabs.styles';\nimport { StyledDrawerWrapper } from './Drawer.styles';\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 hasDocumentTabs?: boolean;\n navOpen?: boolean;\n theme?: DefaultTheme;\n}>`\n :root,\n :host {\n /* Height of the app header */\n --app-header-height: ${({ showAppHeader }) => (showAppHeader ? headerHeight : '0rem')};\n\n /* Height of the document tab strip (0 when not present) */\n --document-tabs-height: ${({ hasDocumentTabs }) => (hasDocumentTabs ? documentTabsHeight : '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, top nav, and document tabs (Drawers and Previews) */\n --appshell-top-offset: calc(var(--appshell-hard-top-offset) + var(--app-header-height) + ${({ isTopBar }) => (isTopBar ? topNavHeight : '0rem')} + var(--document-tabs-height));\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: ${({ isMobile }) =>\n `calc(var(--appshell-hard-bottom-offset) + ${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 /* stylelint-disable-next-line length-zero-no-unit */\n --appshell-horizontal-offset: 0rem;\n }\n\n @media (min-width: ${({ theme }) => theme?.base.breakpoints.sm ?? '31.25em'}) {\n :root,\n :host {\n /* stylelint-disable-next-line length-zero-no-unit */\n --appshell-horizontal-offset: ${({ navOpen, isMobile, isTopBar }) =>\n isMobile || isTopBar\n ? '0rem'\n : `calc(${navOpen ? navOpenWidth : navWidth} + var(--safe-area-inset-inline-start, 0rem))`};\n }\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\nexport const 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: calc(var(--appshell-top-offset, 0rem) - var(--document-tabs-height, 0rem));\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) + var(--document-tabs-height, 0rem));\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 ${StyledDrawerWrapper} {\n inset-block-start: calc(var(--appshell-top-offset, 0rem) - var(--document-tabs-height, 0rem));\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 StyledLoading = styled.div`\n font-size: 2rem;\n`;\n\nexport const StyledAppMain = styled.main<{\n previewActive: boolean;\n isTopBar?: boolean;\n hasBottomTouchPanel?: boolean;\n}>(({ previewActive, isTopBar = false, hasBottomTouchPanel, theme }) => {\n const { navOpen, isMobileNav } = useContext(AppShellContext);\n\n return css`\n margin-inline-start: ${isMobileNav || isTopBar ? 0 : 'var(--appshell-horizontal-offset, 0)'};\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 ${isMobileNav &&\n css`\n ${hasBottomTouchPanel &&\n css`\n border-end-start-radius: ${theme.components.card['border-radius']};\n border-end-end-radius: ${theme.components.card['border-radius']};\n `}\n\n height: calc(\n 100dvh - var(--appshell-top-offset) - var(--appshell-bottom-panel-offset) -\n var(--appshell-bottom-panel-gap)\n );\n padding-block-end: calc(\n var(--appshell-hard-bottom-offset) + var(--appshell-bottom-panel-gap)\n );\n overflow-y: auto;\n overscroll-behavior: contain;\n\n > [data-config-root] {\n min-height: 100%;\n }\n `}\n\n &:focus {\n outline: none;\n }\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, isMobileNav } = 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 !isMobileNav &&\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,30 +1,16 @@
1
- import type { ReactElement } from 'react';
2
- import AppNavigationPanel from './AppNavigationPanel';
3
- import type { AgentProps, AppInfoProps, AppShellProps, CaseProps, CaseTypeProps, LinkProps, UtilItemProps } from './AppShell.types';
4
- interface TouchAppShellProps {
5
- appInfo: AppInfoProps;
6
- appHeader?: AppShellProps['appHeader'];
7
- contextSwitcher?: AppShellProps['contextSwitcher'];
8
- searchPage?: AppShellProps['searchPage'];
9
- searchInput?: Parameters<typeof AppNavigationPanel>[0]['searchInput'];
1
+ import type { ReactElement, ReactNode } from 'react';
2
+ import type { AppShellProps, UtilItemProps } from './AppShell.types';
3
+ export interface TouchAppShellProps extends AppShellProps {
4
+ /** Optional bottom panel rendered by the touch app shell. */
5
+ bottomTouchPanel?: {
6
+ heading: string;
7
+ content: ReactNode;
8
+ };
9
+ }
10
+ export default function TouchAppShell({ appInfo, contextSwitcher, searchPage, searchInput, searchLabel, caseTypes, links, cases, agent, utils, utilsList, operator, headerUtils, helpMenu, shareApp, banners, progress, main, bottomTouchPanel, documentTabs, navId, restProps }: TouchAppShellProps & {
10
11
  searchLabel: string;
11
- caseTypes?: CaseTypeProps[];
12
- links?: LinkProps[];
13
- cases?: CaseProps[];
14
- agent?: AgentProps;
15
- utils?: (UtilItemProps | ReactElement)[];
16
12
  utilsList: (UtilItemProps | ReactElement)[];
17
- operator: AppShellProps['operator'];
18
- headerUtils?: AppShellProps['headerUtils'];
19
- helpMenu?: AppShellProps['helpMenu'];
20
- shareApp?: AppShellProps['shareApp'];
21
- banners?: AppShellProps['banners'];
22
- progress?: AppShellProps['progress'];
23
- main: AppShellProps['main'];
24
- documentTabs?: AppShellProps['documentTabs'];
25
13
  navId: string;
26
14
  restProps: Record<string, unknown>;
27
- }
28
- export default function TouchAppShell({ appInfo, contextSwitcher, searchPage, searchInput, searchLabel, caseTypes, links, cases, agent, utils, utilsList, operator, headerUtils, helpMenu, shareApp, banners, progress, main, documentTabs, navId, restProps }: TouchAppShellProps): import("react/jsx-runtime").JSX.Element;
29
- export {};
15
+ }): import("react/jsx-runtime").JSX.Element;
30
16
  //# sourceMappingURL=TouchAppShell.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"TouchAppShell.d.ts","sourceRoot":"","sources":["../../../src/components/AppShell/TouchAppShell.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAc,YAAY,EAAE,MAAM,OAAO,CAAC;AAmBtD,OAAO,kBAAwC,MAAM,sBAAsB,CAAC;AAiB5E,OAAO,KAAK,EACV,UAAU,EACV,YAAY,EACZ,aAAa,EACb,SAAS,EACT,aAAa,EACb,SAAS,EACT,aAAa,EACd,MAAM,kBAAkB,CAAC;AAI1B,UAAU,kBAAkB;IAC1B,OAAO,EAAE,YAAY,CAAC;IACtB,SAAS,CAAC,EAAE,aAAa,CAAC,WAAW,CAAC,CAAC;IACvC,eAAe,CAAC,EAAE,aAAa,CAAC,iBAAiB,CAAC,CAAC;IACnD,UAAU,CAAC,EAAE,aAAa,CAAC,YAAY,CAAC,CAAC;IACzC,WAAW,CAAC,EAAE,UAAU,CAAC,OAAO,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC;IACtE,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,aAAa,EAAE,CAAC;IAC5B,KAAK,CAAC,EAAE,SAAS,EAAE,CAAC;IACpB,KAAK,CAAC,EAAE,SAAS,EAAE,CAAC;IACpB,KAAK,CAAC,EAAE,UAAU,CAAC;IACnB,KAAK,CAAC,EAAE,CAAC,aAAa,GAAG,YAAY,CAAC,EAAE,CAAC;IACzC,SAAS,EAAE,CAAC,aAAa,GAAG,YAAY,CAAC,EAAE,CAAC;IAC5C,QAAQ,EAAE,aAAa,CAAC,UAAU,CAAC,CAAC;IACpC,WAAW,CAAC,EAAE,aAAa,CAAC,aAAa,CAAC,CAAC;IAC3C,QAAQ,CAAC,EAAE,aAAa,CAAC,UAAU,CAAC,CAAC;IACrC,QAAQ,CAAC,EAAE,aAAa,CAAC,UAAU,CAAC,CAAC;IACrC,OAAO,CAAC,EAAE,aAAa,CAAC,SAAS,CAAC,CAAC;IACnC,QAAQ,CAAC,EAAE,aAAa,CAAC,UAAU,CAAC,CAAC;IACrC,IAAI,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;IAC5B,YAAY,CAAC,EAAE,aAAa,CAAC,cAAc,CAAC,CAAC;IAC7C,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC;AAED,MAAM,CAAC,OAAO,UAAU,aAAa,CAAC,EACpC,OAAO,EACP,eAAe,EACf,UAAU,EACV,WAAW,EACX,WAAW,EACX,SAAS,EACT,KAAK,EACL,KAAK,EACL,KAAK,EACL,KAAK,EACL,SAAS,EACT,QAAQ,EACR,WAAW,EACX,QAAQ,EACR,QAAQ,EACR,OAAO,EACP,QAAQ,EACR,IAAI,EACJ,YAAY,EACZ,KAAK,EACL,SAAS,EACV,EAAE,kBAAkB,2CAuOpB"}
1
+ {"version":3,"file":"TouchAppShell.d.ts","sourceRoot":"","sources":["../../../src/components/AppShell/TouchAppShell.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAc,YAAY,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAwCjE,OAAO,KAAK,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAIrE,MAAM,WAAW,kBAAmB,SAAQ,aAAa;IACvD,6DAA6D;IAC7D,gBAAgB,CAAC,EAAE;QACjB,OAAO,EAAE,MAAM,CAAC;QAChB,OAAO,EAAE,SAAS,CAAC;KACpB,CAAC;CACH;AAED,MAAM,CAAC,OAAO,UAAU,aAAa,CAAC,EACpC,OAAO,EACP,eAAe,EACf,UAAU,EACV,WAAW,EACX,WAAW,EACX,SAAS,EACT,KAAK,EACL,KAAK,EACL,KAAK,EACL,KAAK,EACL,SAAS,EACT,QAAQ,EACR,WAAW,EACX,QAAQ,EACR,QAAQ,EACR,OAAO,EACP,QAAQ,EACR,IAAI,EACJ,gBAAgB,EAChB,YAAY,EACZ,KAAK,EACL,SAAS,EACV,EAAE,kBAAkB,GAAG;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,CAAC,aAAa,GAAG,YAAY,CAAC,EAAE,CAAC;IAC5C,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC,2CAwRA"}