@cloudscape-design/components 3.0.382 → 3.0.383

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 (81) hide show
  1. package/app-layout/index.d.ts.map +1 -1
  2. package/app-layout/index.js +4 -2
  3. package/app-layout/index.js.map +1 -1
  4. package/app-layout/utils/use-drawers.d.ts +1 -2
  5. package/app-layout/utils/use-drawers.d.ts.map +1 -1
  6. package/app-layout/utils/use-drawers.js +2 -4
  7. package/app-layout/utils/use-drawers.js.map +1 -1
  8. package/app-layout/visual-refresh/context.d.ts.map +1 -1
  9. package/app-layout/visual-refresh/context.js +2 -2
  10. package/app-layout/visual-refresh/context.js.map +1 -1
  11. package/app-layout/visual-refresh/drawers.d.ts.map +1 -1
  12. package/app-layout/visual-refresh/drawers.js +9 -15
  13. package/app-layout/visual-refresh/drawers.js.map +1 -1
  14. package/i18n/messages/all.all.js +12 -0
  15. package/i18n/messages/all.all.json +12 -0
  16. package/i18n/messages/all.de.js +1 -0
  17. package/i18n/messages/all.de.json +1 -0
  18. package/i18n/messages/all.en-GB.js +1 -0
  19. package/i18n/messages/all.en-GB.json +1 -0
  20. package/i18n/messages/all.en.js +1 -0
  21. package/i18n/messages/all.en.json +1 -0
  22. package/i18n/messages/all.es.js +1 -0
  23. package/i18n/messages/all.es.json +1 -0
  24. package/i18n/messages/all.fr.js +1 -0
  25. package/i18n/messages/all.fr.json +1 -0
  26. package/i18n/messages/all.id.js +1 -0
  27. package/i18n/messages/all.id.json +1 -0
  28. package/i18n/messages/all.it.js +1 -0
  29. package/i18n/messages/all.it.json +1 -0
  30. package/i18n/messages/all.ja.js +1 -0
  31. package/i18n/messages/all.ja.json +1 -0
  32. package/i18n/messages/all.ko.js +1 -0
  33. package/i18n/messages/all.ko.json +1 -0
  34. package/i18n/messages/all.pt-BR.js +1 -0
  35. package/i18n/messages/all.pt-BR.json +1 -0
  36. package/i18n/messages/all.zh-CN.js +1 -0
  37. package/i18n/messages/all.zh-CN.json +1 -0
  38. package/i18n/messages/all.zh-TW.js +1 -0
  39. package/i18n/messages/all.zh-TW.json +1 -0
  40. package/i18n/messages-types.d.ts +3 -0
  41. package/i18n/messages-types.d.ts.map +1 -1
  42. package/i18n/messages-types.js.map +1 -1
  43. package/internal/components/drawer/index.d.ts +4 -0
  44. package/internal/components/drawer/index.d.ts.map +1 -0
  45. package/internal/components/drawer/index.js +22 -0
  46. package/internal/components/drawer/index.js.map +1 -0
  47. package/internal/components/drawer/interfaces.d.ts +31 -0
  48. package/internal/components/drawer/interfaces.d.ts.map +1 -0
  49. package/internal/components/drawer/interfaces.js +2 -0
  50. package/internal/components/drawer/interfaces.js.map +1 -0
  51. package/internal/components/drawer/styles.css.js +8 -0
  52. package/internal/components/drawer/styles.scoped.css +166 -0
  53. package/internal/components/drawer/styles.selectors.js +9 -0
  54. package/internal/components/portal/index.d.ts +1 -1
  55. package/internal/components/portal/index.d.ts.map +1 -1
  56. package/internal/components/portal/index.js.map +1 -1
  57. package/internal/environment.js +1 -1
  58. package/internal/environment.json +1 -1
  59. package/internal/generated/styles/tokens.d.ts +11 -0
  60. package/internal/generated/styles/tokens.js +11 -0
  61. package/internal/generated/theming/index.cjs +22 -0
  62. package/internal/generated/theming/index.cjs.d.ts +88 -0
  63. package/internal/generated/theming/index.d.ts +88 -0
  64. package/internal/generated/theming/index.js +22 -0
  65. package/internal/manifest.json +1 -1
  66. package/package.json +1 -1
  67. package/table/header-cell/index.d.ts +2 -1
  68. package/table/header-cell/index.d.ts.map +1 -1
  69. package/table/header-cell/index.js +2 -3
  70. package/table/header-cell/index.js.map +1 -1
  71. package/table/internal.d.ts.map +1 -1
  72. package/table/internal.js +8 -1
  73. package/table/internal.js.map +1 -1
  74. package/table/resizer/index.d.ts +2 -1
  75. package/table/resizer/index.d.ts.map +1 -1
  76. package/table/resizer/index.js +4 -3
  77. package/table/resizer/index.js.map +1 -1
  78. package/table/thead.d.ts +1 -0
  79. package/table/thead.d.ts.map +1 -1
  80. package/table/thead.js +2 -2
  81. package/table/thead.js.map +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"lib/default/","sources":["app-layout/index.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAwE,MAAM,OAAO,CAAC;AAM7F,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAwC9C,OAAO,EAAE,cAAc,EAAE,CAAC;AAE1B,QAAA,MAAM,SAAS,2FA8Bd,CAAC;AAmoBF,eAAe,SAAS,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"lib/default/","sources":["app-layout/index.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAwE,MAAM,OAAO,CAAC;AAM7F,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAwC9C,OAAO,EAAE,cAAc,EAAE,CAAC;AAE1B,QAAA,MAAM,SAAS,2FA8Bd,CAAC;AAqoBF,eAAe,SAAS,CAAC"}
@@ -68,7 +68,7 @@ const OldAppLayout = React.forwardRef((_a, ref) => {
68
68
  const defaults = applyDefaults(contentType, { maxContentWidth, minContentWidth }, false);
69
69
  const [navigationOpen = false, setNavigationOpen] = useControllable(controlledNavigationOpen, onNavigationChange, isMobile ? false : defaults.navigationOpen, { componentName: 'AppLayout', controlledProp: 'navigationOpen', changeHandler: 'onNavigationChange' });
70
70
  const [toolsOpen = false, setToolsOpen] = useControllable(controlledToolsOpen, onToolsChange, isMobile ? false : defaults.toolsOpen, { componentName: 'AppLayout', controlledProp: 'toolsOpen', changeHandler: 'onToolsChange' });
71
- const _c = useDrawers(props, { ariaLabels, tools, toolsOpen, toolsHide, toolsWidth }, defaults), { drawers, activeDrawer, activeDrawerSize, activeDrawerId, onActiveDrawerChange, onActiveDrawerResize } = _c, drawersProps = __rest(_c, ["drawers", "activeDrawer", "activeDrawerSize", "activeDrawerId", "onActiveDrawerChange", "onActiveDrawerResize"]);
71
+ const _c = useDrawers(props, { ariaLabels, tools, toolsOpen, toolsHide, toolsWidth }), { drawers, activeDrawer, activeDrawerSize, activeDrawerId, onActiveDrawerChange, onActiveDrawerResize } = _c, drawersProps = __rest(_c, ["drawers", "activeDrawer", "activeDrawerSize", "activeDrawerId", "onActiveDrawerChange", "onActiveDrawerResize"]);
72
72
  const hasDrawers = drawers.length > 0;
73
73
  const { refs: navigationRefs, setFocus: focusNavButtons } = useFocusControl(navigationOpen);
74
74
  const { refs: toolsRefs, setFocus: focusToolsButtons, loseFocus: loseToolsFocus, } = useFocusControl(toolsOpen || activeDrawer !== undefined, true);
@@ -354,7 +354,9 @@ const OldAppLayout = React.forwardRef((_a, ref) => {
354
354
  finalSplitPanePosition === 'bottom' && splitPanelWrapped),
355
355
  finalSplitPanePosition === 'side' && (React.createElement(SideSplitPanelDrawer, { topOffset: headerHeight, bottomOffset: footerHeight, displayed: splitPanelDisplayed, width: splitPanelOpen && splitPanel ? splitPanelSize : undefined }, splitPanelWrapped)),
356
356
  ((hasDrawers && activeDrawerId) || (!hasDrawers && !toolsHide)) &&
357
- (hasDrawers ? (React.createElement(ResizableDrawer, { contentClassName: activeDrawerId === TOOLS_DRAWER_ID ? testutilStyles.tools : testutilStyles['active-drawer'], toggleClassName: testutilStyles['tools-toggle'], closeClassName: activeDrawerId === TOOLS_DRAWER_ID
357
+ (hasDrawers ? (React.createElement(ResizableDrawer, { contentClassName: activeDrawerId === TOOLS_DRAWER_ID
358
+ ? clsx(testutilStyles.tools, testutilStyles['active-drawer'])
359
+ : testutilStyles['active-drawer'], toggleClassName: testutilStyles['tools-toggle'], closeClassName: activeDrawerId === TOOLS_DRAWER_ID
358
360
  ? testutilStyles['tools-close']
359
361
  : testutilStyles['active-drawer-close-button'], ariaLabels: ariaLabels, width: !isResizeInvalid ? activeDrawerSize : toolsWidth, bottomOffset: footerHeight, topOffset: headerHeight, isMobile: isMobile, onToggle: onToolsToggle, isOpen: toolsOpen || activeDrawerId !== undefined, toggleRefs: toolsRefs, type: "tools", onLoseFocus: loseDrawersFocus, activeDrawer: activeDrawer, drawers: {
360
362
  items: drawers,
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"lib/default/","sources":["app-layout/index.tsx"],"names":[],"mappings":"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","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport clsx from 'clsx';\nimport React, { useCallback, useEffect, useImperativeHandle, useRef, useState } from 'react';\nimport { getBaseProps } from '../internal/base-component';\nimport { useControllable } from '../internal/hooks/use-controllable';\nimport { useMobile } from '../internal/hooks/use-mobile';\nimport { fireNonCancelableEvent } from '../internal/events';\nimport { applyDefaults } from './defaults';\nimport { AppLayoutProps } from './interfaces';\nimport { Notifications } from './notifications';\nimport { MobileToolbar } from './mobile-toolbar';\nimport { useFocusControl } from './utils/use-focus-control';\nimport useWindowWidth from './utils/use-window-width';\nimport useContentHeight from './utils/use-content-height';\nimport styles from './styles.css.js';\nimport testutilStyles from './test-classes/styles.css.js';\nimport { findUpUntil } from '../internal/utils/dom';\nimport { AppLayoutContext } from '../internal/context/app-layout-context';\nimport { applyDisplayName } from '../internal/utils/apply-display-name';\nimport {\n SplitPanelContextProvider,\n SplitPanelContextProps,\n SplitPanelSideToggleProps,\n} from '../internal/context/split-panel-context';\nimport {\n CONSTRAINED_MAIN_PANEL_MIN_HEIGHT,\n CONSTRAINED_PAGE_HEIGHT,\n getSplitPanelDefaultSize,\n MAIN_PANEL_MIN_HEIGHT,\n} from '../split-panel/utils/size-utils';\nimport useBaseComponent from '../internal/hooks/use-base-component';\nimport { useVisualRefresh } from '../internal/hooks/use-visual-mode';\nimport ContentWrapper, { ContentWrapperProps } from './content-wrapper';\nimport { Drawer, DrawerTriggersBar } from './drawer';\nimport { ResizableDrawer } from './drawer/resizable-drawer';\nimport { SideSplitPanelDrawer } from './split-panel-drawer';\nimport useAppLayoutOffsets from './utils/use-content-width';\nimport { isDevelopment } from '../internal/is-development';\nimport { useStableCallback, warnOnce } from '@cloudscape-design/component-toolkit/internal';\n\nimport RefreshedAppLayout from './visual-refresh';\nimport { useInternalI18n } from '../i18n/context';\nimport { useSplitPanelFocusControl } from './utils/use-split-panel-focus-control';\nimport { useDrawerFocusControl } from './utils/use-drawer-focus-control';\nimport { TOOLS_DRAWER_ID, useDrawers } from './utils/use-drawers';\nimport { InternalDrawerProps } from './drawer/interfaces';\nimport { useContainerQuery } from '@cloudscape-design/component-toolkit';\n\nexport { AppLayoutProps };\n\nconst AppLayout = React.forwardRef(\n (\n { contentType = 'default', headerSelector = '#b #h', footerSelector = '#b #f', ...rest }: AppLayoutProps,\n ref: React.Ref<AppLayoutProps.Ref>\n ) => {\n const { __internalRootRef } = useBaseComponent<HTMLDivElement>('AppLayout');\n const isRefresh = useVisualRefresh();\n\n const i18n = useInternalI18n('app-layout');\n const ariaLabels = {\n navigation: i18n('ariaLabels.navigation', rest.ariaLabels?.navigation),\n navigationClose: i18n('ariaLabels.navigationClose', rest.ariaLabels?.navigationClose),\n navigationToggle: i18n('ariaLabels.navigationToggle', rest.ariaLabels?.navigationToggle),\n notifications: i18n('ariaLabels.notifications', rest.ariaLabels?.notifications),\n tools: i18n('ariaLabels.tools', rest.ariaLabels?.tools),\n toolsClose: i18n('ariaLabels.toolsClose', rest.ariaLabels?.toolsClose),\n toolsToggle: i18n('ariaLabels.toolsToggle', rest.ariaLabels?.toolsToggle),\n };\n\n // This re-builds the props including the default values\n const props = { contentType, headerSelector, footerSelector, ...rest, ariaLabels };\n\n const baseProps = getBaseProps(rest);\n\n return (\n <div ref={__internalRootRef} {...baseProps}>\n {isRefresh ? <RefreshedAppLayout {...props} ref={ref} /> : <OldAppLayout {...props} ref={ref} />}\n </div>\n );\n }\n);\n\nconst OldAppLayout = React.forwardRef(\n (\n {\n navigation,\n navigationWidth = 280,\n navigationHide,\n navigationOpen: controlledNavigationOpen,\n tools,\n toolsWidth = 290,\n toolsHide,\n toolsOpen: controlledToolsOpen,\n breadcrumbs,\n notifications,\n stickyNotifications,\n contentHeader,\n disableContentHeaderOverlap,\n content,\n contentType = 'default',\n disableContentPaddings,\n disableBodyScroll,\n maxContentWidth,\n minContentWidth,\n headerSelector = '#b #h',\n footerSelector = '#b #f',\n ariaLabels,\n splitPanel,\n splitPanelSize: controlledSplitPanelSize,\n splitPanelOpen: controlledSplitPanelOpen,\n splitPanelPreferences: controlledSplitPanelPreferences,\n onSplitPanelPreferencesChange,\n onSplitPanelResize,\n onSplitPanelToggle,\n onNavigationChange,\n onToolsChange,\n ...props\n }: AppLayoutProps,\n ref: React.Ref<AppLayoutProps.Ref>\n ) => {\n if (isDevelopment) {\n if (controlledToolsOpen && toolsHide) {\n warnOnce(\n 'AppLayout',\n `You have enabled both the \\`toolsOpen\\` prop and the \\`toolsHide\\` prop. This is not supported. Set \\`toolsOpen\\` to \\`false\\` when you set \\`toolsHide\\` to \\`true\\`.`\n );\n }\n }\n\n const rootRef = useRef<HTMLDivElement>(null);\n const isMobile = useMobile();\n\n const defaults = applyDefaults(contentType, { maxContentWidth, minContentWidth }, false);\n const [navigationOpen = false, setNavigationOpen] = useControllable(\n controlledNavigationOpen,\n onNavigationChange,\n isMobile ? false : defaults.navigationOpen,\n { componentName: 'AppLayout', controlledProp: 'navigationOpen', changeHandler: 'onNavigationChange' }\n );\n\n const [toolsOpen = false, setToolsOpen] = useControllable(\n controlledToolsOpen,\n onToolsChange,\n isMobile ? false : defaults.toolsOpen,\n { componentName: 'AppLayout', controlledProp: 'toolsOpen', changeHandler: 'onToolsChange' }\n );\n\n const {\n drawers,\n activeDrawer,\n activeDrawerSize,\n activeDrawerId,\n onActiveDrawerChange,\n onActiveDrawerResize,\n ...drawersProps\n } = useDrawers(props as InternalDrawerProps, { ariaLabels, tools, toolsOpen, toolsHide, toolsWidth }, defaults);\n const hasDrawers = drawers.length > 0;\n\n const { refs: navigationRefs, setFocus: focusNavButtons } = useFocusControl(navigationOpen);\n const {\n refs: toolsRefs,\n setFocus: focusToolsButtons,\n loseFocus: loseToolsFocus,\n } = useFocusControl(toolsOpen || activeDrawer !== undefined, true);\n const {\n refs: drawerRefs,\n setFocus: focusDrawersButtons,\n loseFocus: loseDrawersFocus,\n setLastInteraction: setDrawerLastInteraction,\n } = useDrawerFocusControl([activeDrawer?.resizable], toolsOpen || activeDrawer !== undefined, true);\n\n const onNavigationToggle = useStableCallback((open: boolean) => {\n setNavigationOpen(open);\n focusNavButtons();\n fireNonCancelableEvent(onNavigationChange, { open });\n });\n const onToolsToggle = useCallback(\n (open: boolean) => {\n setToolsOpen(open);\n focusToolsButtons();\n fireNonCancelableEvent(onToolsChange, { open });\n },\n [setToolsOpen, onToolsChange, focusToolsButtons]\n );\n\n const onNavigationClick = (event: React.MouseEvent) => {\n const hasLink = findUpUntil(\n event.target as HTMLElement,\n node => node.tagName === 'A' && !!(node as HTMLAnchorElement).href\n );\n if (hasLink) {\n onNavigationToggle(false);\n }\n };\n\n useEffect(() => {\n // Close navigation drawer on mobile so that the main content is visible\n if (isMobile) {\n onNavigationToggle(false);\n }\n }, [isMobile, onNavigationToggle]);\n\n const navigationVisible = !navigationHide && navigationOpen;\n const toolsVisible = !toolsHide && toolsOpen;\n\n const { contentHeightStyle, headerHeight, footerHeight } = useContentHeight(\n headerSelector,\n footerSelector,\n disableBodyScroll\n );\n const [isSplitpanelForcedPosition, setIsSplitpanelForcedPosition] = useState(false);\n\n const [notificationsHeight, notificationsRef] = useContainerQuery(rect => rect.contentBoxHeight);\n const anyPanelOpen = navigationVisible || toolsVisible;\n const hasRenderedNotifications = notificationsHeight ? notificationsHeight > 0 : false;\n const stickyNotificationsHeight = stickyNotifications ? notificationsHeight : null;\n\n const [splitPanelPreferences, setSplitPanelPreferences] = useControllable(\n controlledSplitPanelPreferences,\n onSplitPanelPreferencesChange,\n undefined,\n {\n componentName: 'AppLayout',\n controlledProp: 'splitPanelPreferences',\n changeHandler: 'onSplitPanelPreferencesChange',\n }\n );\n const [splitPanelOpen = false, setSplitPanelOpen] = useControllable(\n controlledSplitPanelOpen,\n onSplitPanelToggle,\n false,\n {\n componentName: 'AppLayout',\n controlledProp: 'splitPanelOpen',\n changeHandler: 'onSplitPanelToggle',\n }\n );\n\n const splitPanelPosition = splitPanelPreferences?.position || 'bottom';\n const [splitPanelReportedToggle, setSplitPanelReportedToggle] = useState<SplitPanelSideToggleProps>({\n displayed: false,\n ariaLabel: undefined,\n });\n const splitPanelDisplayed = !!(splitPanel && (splitPanelReportedToggle.displayed || splitPanelOpen));\n\n const closedDrawerWidth = 40;\n const effectiveNavigationWidth = navigationHide ? 0 : navigationOpen ? navigationWidth : closedDrawerWidth;\n\n const getEffectiveToolsWidth = () => {\n if (toolsHide && (!splitPanelDisplayed || splitPanelPreferences?.position !== 'side') && drawers.length === 0) {\n return 0;\n }\n\n if (activeDrawer && activeDrawerSize) {\n return activeDrawerSize;\n }\n\n if (toolsOpen) {\n return toolsWidth;\n }\n\n return closedDrawerWidth;\n };\n\n const effectiveToolsWidth = getEffectiveToolsWidth();\n\n const defaultSplitPanelSize = getSplitPanelDefaultSize(splitPanelPosition);\n const [splitPanelSize = defaultSplitPanelSize, setSplitPanelSize] = useControllable(\n controlledSplitPanelSize,\n onSplitPanelResize,\n defaultSplitPanelSize,\n {\n componentName: 'AppLayout',\n controlledProp: 'splitPanelSize',\n changeHandler: 'onSplitPanelResize',\n }\n );\n\n const mainContentRef = useRef<HTMLDivElement>(null);\n const legacyScrollRootRef = useRef<HTMLElement>(null);\n\n const { refs: splitPanelRefs, setLastInteraction: setSplitPanelLastInteraction } = useSplitPanelFocusControl([\n splitPanelPreferences,\n splitPanelOpen,\n ]);\n\n const onSplitPanelPreferencesSet = useCallback(\n (detail: { position: 'side' | 'bottom' }) => {\n setSplitPanelPreferences(detail);\n setSplitPanelLastInteraction({ type: 'position' });\n fireNonCancelableEvent(onSplitPanelPreferencesChange, detail);\n },\n [setSplitPanelPreferences, onSplitPanelPreferencesChange, setSplitPanelLastInteraction]\n );\n const onSplitPanelSizeSet = useCallback(\n (detail: { size: number }) => {\n setSplitPanelSize(detail.size);\n fireNonCancelableEvent(onSplitPanelResize, detail);\n },\n [setSplitPanelSize, onSplitPanelResize]\n );\n\n const onSplitPanelToggleHandler = useCallback(() => {\n setSplitPanelOpen(!splitPanelOpen);\n setSplitPanelLastInteraction({ type: splitPanelOpen ? 'close' : 'open' });\n fireNonCancelableEvent(onSplitPanelToggle, { open: !splitPanelOpen });\n }, [setSplitPanelOpen, splitPanelOpen, onSplitPanelToggle, setSplitPanelLastInteraction]);\n\n const getSplitPanelMaxWidth = useStableCallback(() => {\n if (!mainContentRef.current || !defaults.minContentWidth) {\n return NaN;\n }\n\n const width = parseInt(getComputedStyle(mainContentRef.current).width);\n // when disableContentPaddings is true there is less available space,\n // so we subtract space-scaled-2x-xxxl * 2 for left and right padding\n const contentPadding = disableContentPaddings ? 80 : 0;\n const spaceAvailable = width - defaults.minContentWidth - contentPadding;\n\n const spaceTaken = finalSplitPanePosition === 'side' ? splitPanelSize : 0;\n return Math.max(0, spaceTaken + spaceAvailable);\n });\n\n const getDrawerMaxWidth = useStableCallback(() => {\n if (!mainContentRef.current || !defaults.minContentWidth) {\n return NaN;\n }\n\n // Either use the computed width of the drawer or the drawerSize as defined.\n const width = parseInt(getComputedStyle(mainContentRef.current).width || `${activeDrawerSize}`);\n\n // when disableContentPaddings is true there is less available space,\n // so we subtract space-scaled-2x-xxxl * 2 for left and right padding\n const contentPadding = disableContentPaddings ? 80 : 0;\n const spaceAvailable = width - defaults.minContentWidth - contentPadding;\n\n return Math.max(0, activeDrawerSize + spaceAvailable);\n });\n\n const getSplitPanelMaxHeight = useStableCallback(() => {\n if (typeof document === 'undefined') {\n return 0; // render the split panel in its minimum possible size\n } else if (disableBodyScroll && legacyScrollRootRef.current) {\n const availableHeight = legacyScrollRootRef.current.clientHeight;\n return availableHeight < CONSTRAINED_PAGE_HEIGHT ? availableHeight : availableHeight - MAIN_PANEL_MIN_HEIGHT;\n } else {\n const availableHeight = document.documentElement.clientHeight - headerHeight - footerHeight;\n return availableHeight < CONSTRAINED_PAGE_HEIGHT\n ? availableHeight - CONSTRAINED_MAIN_PANEL_MIN_HEIGHT\n : availableHeight - MAIN_PANEL_MIN_HEIGHT;\n }\n });\n\n const finalSplitPanePosition = isSplitpanelForcedPosition ? 'bottom' : splitPanelPosition;\n\n const splitPaneAvailableOnTheSide = splitPanelDisplayed && finalSplitPanePosition === 'side';\n const splitPanelOpenOnTheSide = splitPaneAvailableOnTheSide && splitPanelOpen;\n\n const toggleButtonsBarWidth = 0;\n\n const windowWidth = useWindowWidth();\n const { left: leftOffset, right: rightOffset } = useAppLayoutOffsets(rootRef.current);\n const contentWidthWithSplitPanel =\n windowWidth -\n leftOffset -\n rightOffset -\n effectiveToolsWidth -\n effectiveNavigationWidth -\n (disableContentPaddings ? 0 : toggleButtonsBarWidth);\n const isResizeInvalid = isMobile || (defaults.minContentWidth || 0) > contentWidthWithSplitPanel;\n\n useEffect(() => {\n const contentWidth = contentWidthWithSplitPanel - splitPanelSize;\n\n setIsSplitpanelForcedPosition(isMobile || (defaults.minContentWidth || 0) > contentWidth);\n // This is a workaround to avoid a forced position due to splitPanelSize, which is\n // user controlled variable.\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [contentWidthWithSplitPanel, activeDrawerSize, defaults.minContentWidth, isMobile]);\n\n const navigationClosedWidth = navigationHide || isMobile ? 0 : closedDrawerWidth;\n const toolsClosedWidth = toolsHide || isMobile || (!hasDrawers && toolsHide) ? 0 : closedDrawerWidth;\n\n const contentMaxWidthStyle = !isMobile ? { maxWidth: defaults.maxContentWidth } : undefined;\n\n const [splitPanelReportedSize, setSplitPanelReportedSize] = useState(0);\n const [splitPanelReportedHeaderHeight, setSplitPanelReportedHeaderHeight] = useState(0);\n\n const getSplitPanelRightOffset = () => {\n if (isMobile) {\n return 0;\n }\n\n if (hasDrawers) {\n if (activeDrawer) {\n if (!isResizeInvalid && activeDrawerSize) {\n return activeDrawerSize + closedDrawerWidth;\n }\n\n return toolsWidth + closedDrawerWidth;\n }\n return closedDrawerWidth;\n }\n\n if (!toolsHide && toolsOpen) {\n return toolsWidth;\n }\n return toolsClosedWidth;\n };\n\n const splitPanelContext: SplitPanelContextProps = {\n topOffset: headerHeight + (finalSplitPanePosition === 'bottom' ? stickyNotificationsHeight || 0 : 0),\n bottomOffset: footerHeight,\n leftOffset:\n leftOffset + (isMobile ? 0 : !navigationHide && navigationOpen ? navigationWidth : navigationClosedWidth),\n rightOffset: rightOffset + getSplitPanelRightOffset(),\n position: finalSplitPanePosition,\n size: splitPanelSize,\n getMaxWidth: getSplitPanelMaxWidth,\n getMaxHeight: getSplitPanelMaxHeight,\n disableContentPaddings,\n contentWidthStyles: contentMaxWidthStyle,\n isOpen: splitPanelOpen,\n isMobile,\n isForcedPosition: isSplitpanelForcedPosition,\n onResize: onSplitPanelSizeSet,\n onToggle: onSplitPanelToggleHandler,\n onPreferencesChange: onSplitPanelPreferencesSet,\n setSplitPanelToggle: setSplitPanelReportedToggle,\n reportSize: setSplitPanelReportedSize,\n reportHeaderHeight: setSplitPanelReportedHeaderHeight,\n refs: splitPanelRefs,\n };\n const splitPanelWrapped = splitPanel && (\n <SplitPanelContextProvider value={splitPanelContext}>{splitPanel}</SplitPanelContextProvider>\n );\n\n const contentWrapperProps: ContentWrapperProps = {\n contentType,\n navigationPadding: navigationHide || !!navigationOpen,\n contentWidthStyles: !isMobile\n ? { minWidth: defaults.minContentWidth, maxWidth: defaults.maxContentWidth }\n : undefined,\n toolsPadding:\n // tools padding is displayed in one of the three cases\n // 1. Nothing on the that screen edge (no tools panel and no split panel)\n toolsHide ||\n (hasDrawers && !activeDrawer && (!splitPanelDisplayed || finalSplitPanePosition !== 'side')) ||\n // 2. Tools panel is present and open\n toolsVisible ||\n // 3. Split panel is open in side position\n splitPanelOpenOnTheSide,\n isMobile,\n };\n\n useImperativeHandle(\n ref,\n () => ({\n openTools: () => onToolsToggle(true),\n closeNavigationIfNecessary: () => {\n if (isMobile) {\n onNavigationToggle(false);\n }\n },\n focusToolsClose: () => focusToolsButtons(true),\n focusSplitPanel: () => splitPanelRefs.slider.current?.focus(),\n }),\n [onToolsToggle, isMobile, onNavigationToggle, focusToolsButtons, splitPanelRefs.slider]\n );\n\n const splitPanelBottomOffset =\n (!splitPanelDisplayed || finalSplitPanePosition !== 'bottom'\n ? undefined\n : splitPanelOpen\n ? splitPanelReportedSize\n : splitPanelReportedHeaderHeight) ?? undefined;\n\n const [mobileBarHeight, mobileBarRef] = useContainerQuery(rect => rect.contentBoxHeight);\n\n return (\n <div\n className={clsx(styles.root, testutilStyles.root, disableBodyScroll && styles['root-no-scroll'])}\n ref={rootRef}\n >\n <div className={styles['layout-wrapper']} style={contentHeightStyle}>\n {isMobile && (!toolsHide || !navigationHide || breadcrumbs) && (\n <MobileToolbar\n anyPanelOpen={anyPanelOpen}\n toggleRefs={{ navigation: navigationRefs.toggle, tools: toolsRefs.toggle }}\n topOffset={headerHeight}\n ariaLabels={ariaLabels}\n navigationHide={navigationHide}\n toolsHide={toolsHide}\n onNavigationOpen={() => onNavigationToggle(true)}\n onToolsOpen={() => onToolsToggle(true)}\n unfocusable={anyPanelOpen}\n mobileBarRef={mobileBarRef}\n drawers={\n hasDrawers\n ? {\n items: drawers,\n activeDrawerId: activeDrawerId,\n onChange: changeDetail => {\n onActiveDrawerChange(changeDetail.activeDrawerId);\n if (changeDetail.activeDrawerId !== activeDrawerId) {\n onToolsToggle(changeDetail.activeDrawerId === TOOLS_DRAWER_ID);\n focusDrawersButtons();\n setDrawerLastInteraction({ type: 'open' });\n }\n },\n ariaLabel: drawersProps.ariaLabel,\n overflowAriaLabel: drawersProps.overflowAriaLabel,\n }\n : undefined\n }\n >\n {breadcrumbs}\n </MobileToolbar>\n )}\n <div className={clsx(styles.layout, disableBodyScroll && styles['layout-no-scroll'])}>\n {!navigationHide && (\n <Drawer\n contentClassName={testutilStyles.navigation}\n toggleClassName={testutilStyles['navigation-toggle']}\n closeClassName={testutilStyles['navigation-close']}\n ariaLabels={ariaLabels}\n bottomOffset={footerHeight}\n topOffset={headerHeight}\n isMobile={isMobile}\n isOpen={navigationOpen}\n onClick={isMobile ? onNavigationClick : undefined}\n onToggle={onNavigationToggle}\n toggleRefs={navigationRefs}\n type=\"navigation\"\n width={navigationWidth}\n >\n {navigation}\n </Drawer>\n )}\n <main\n ref={legacyScrollRootRef}\n className={clsx(styles['layout-main'], {\n [styles['layout-main-scrollable']]: disableBodyScroll,\n [testutilStyles['disable-body-scroll-root']]: disableBodyScroll,\n [styles.unfocusable]: isMobile && anyPanelOpen,\n })}\n >\n <div\n style={{\n marginBottom: splitPanelBottomOffset,\n }}\n >\n {notifications && (\n <Notifications\n disableContentPaddings={disableContentPaddings}\n testUtilsClassName={testutilStyles.notifications}\n labels={ariaLabels}\n topOffset={disableBodyScroll ? 0 : headerHeight}\n sticky={!isMobile && stickyNotifications}\n ref={notificationsRef}\n >\n {notifications}\n </Notifications>\n )}\n {((!isMobile && breadcrumbs) || contentHeader) && (\n <ContentWrapper {...contentWrapperProps}>\n {!isMobile && breadcrumbs && (\n <div className={clsx(testutilStyles.breadcrumbs, styles['breadcrumbs-desktop'])}>\n {breadcrumbs}\n </div>\n )}\n {contentHeader && (\n <div\n className={clsx(\n styles['content-header-wrapper'],\n !hasRenderedNotifications &&\n (isMobile || !breadcrumbs) &&\n styles['content-extra-top-padding'],\n !hasRenderedNotifications && !breadcrumbs && styles['content-header-wrapper-first-child'],\n !disableContentHeaderOverlap && styles['content-header-wrapper-overlapped']\n )}\n >\n {contentHeader}\n </div>\n )}\n </ContentWrapper>\n )}\n <ContentWrapper\n {...contentWrapperProps}\n ref={mainContentRef}\n disablePaddings={disableContentPaddings}\n // eslint-disable-next-line react/forbid-component-props\n className={clsx(\n !disableContentPaddings && styles['content-wrapper'],\n !disableContentPaddings &&\n (isMobile || !breadcrumbs) &&\n !contentHeader &&\n styles['content-extra-top-padding'],\n testutilStyles.content,\n !disableContentHeaderOverlap && contentHeader && styles['content-overlapped'],\n !hasRenderedNotifications &&\n !breadcrumbs &&\n !isMobile &&\n !contentHeader &&\n styles['content-wrapper-first-child']\n )}\n >\n <AppLayoutContext.Provider\n value={{\n stickyOffsetTop:\n // We don't support the table header being sticky in case the deprecated disableBodyScroll is enabled,\n // therefore we ensure the table header scrolls out of view by offseting a large enough value (9999px)\n (disableBodyScroll ? (isMobile ? -9999 : 0) : headerHeight) +\n (isMobile ? 0 : stickyNotificationsHeight !== null ? stickyNotificationsHeight : 0),\n stickyOffsetBottom: footerHeight + (splitPanelBottomOffset || 0),\n mobileBarHeight: mobileBarHeight ?? 0,\n }}\n >\n {content}\n </AppLayoutContext.Provider>\n </ContentWrapper>\n </div>\n {finalSplitPanePosition === 'bottom' && splitPanelWrapped}\n </main>\n\n {finalSplitPanePosition === 'side' && (\n <SideSplitPanelDrawer\n topOffset={headerHeight}\n bottomOffset={footerHeight}\n displayed={splitPanelDisplayed}\n width={splitPanelOpen && splitPanel ? splitPanelSize : undefined}\n >\n {splitPanelWrapped}\n </SideSplitPanelDrawer>\n )}\n\n {((hasDrawers && activeDrawerId) || (!hasDrawers && !toolsHide)) &&\n (hasDrawers ? (\n <ResizableDrawer\n contentClassName={\n activeDrawerId === TOOLS_DRAWER_ID ? testutilStyles.tools : testutilStyles['active-drawer']\n }\n toggleClassName={testutilStyles['tools-toggle']}\n closeClassName={\n activeDrawerId === TOOLS_DRAWER_ID\n ? testutilStyles['tools-close']\n : testutilStyles['active-drawer-close-button']\n }\n ariaLabels={ariaLabels}\n width={!isResizeInvalid ? activeDrawerSize : toolsWidth}\n bottomOffset={footerHeight}\n topOffset={headerHeight}\n isMobile={isMobile}\n onToggle={onToolsToggle}\n isOpen={toolsOpen || activeDrawerId !== undefined}\n toggleRefs={toolsRefs}\n type=\"tools\"\n onLoseFocus={loseDrawersFocus}\n activeDrawer={activeDrawer}\n drawers={{\n items: drawers,\n activeDrawerId: activeDrawerId,\n onChange: changeDetail => {\n onToolsToggle(false);\n setDrawerLastInteraction({ type: 'close' });\n onActiveDrawerChange(changeDetail.activeDrawerId);\n },\n }}\n size={!isResizeInvalid ? activeDrawerSize : toolsWidth}\n onResize={changeDetail => onActiveDrawerResize(changeDetail)}\n refs={drawerRefs}\n getMaxWidth={getDrawerMaxWidth}\n >\n {activeDrawer?.content}\n </ResizableDrawer>\n ) : (\n <Drawer\n contentClassName={testutilStyles.tools}\n toggleClassName={testutilStyles['tools-toggle']}\n closeClassName={testutilStyles['tools-close']}\n ariaLabels={ariaLabels}\n width={effectiveToolsWidth}\n bottomOffset={footerHeight}\n topOffset={headerHeight}\n isMobile={isMobile}\n onToggle={onToolsToggle}\n isOpen={toolsOpen}\n toggleRefs={toolsRefs}\n type=\"tools\"\n onLoseFocus={loseToolsFocus}\n >\n {tools}\n </Drawer>\n ))}\n {hasDrawers && (\n <DrawerTriggersBar\n bottomOffset={footerHeight}\n topOffset={headerHeight}\n isMobile={isMobile}\n drawers={{\n items: drawers,\n activeDrawerId: activeDrawerId,\n onChange: changeDetail => {\n if (activeDrawerId !== changeDetail.activeDrawerId) {\n onToolsToggle(changeDetail.activeDrawerId === TOOLS_DRAWER_ID);\n focusDrawersButtons();\n setDrawerLastInteraction({ type: 'open' });\n }\n onActiveDrawerChange(changeDetail.activeDrawerId);\n },\n ariaLabel: drawersProps.ariaLabel,\n overflowAriaLabel: drawersProps.overflowAriaLabel,\n }}\n />\n )}\n </div>\n </div>\n </div>\n );\n }\n);\n\napplyDisplayName(AppLayout, 'AppLayout');\nexport default AppLayout;\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"lib/default/","sources":["app-layout/index.tsx"],"names":[],"mappings":"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","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport clsx from 'clsx';\nimport React, { useCallback, useEffect, useImperativeHandle, useRef, useState } from 'react';\nimport { getBaseProps } from '../internal/base-component';\nimport { useControllable } from '../internal/hooks/use-controllable';\nimport { useMobile } from '../internal/hooks/use-mobile';\nimport { fireNonCancelableEvent } from '../internal/events';\nimport { applyDefaults } from './defaults';\nimport { AppLayoutProps } from './interfaces';\nimport { Notifications } from './notifications';\nimport { MobileToolbar } from './mobile-toolbar';\nimport { useFocusControl } from './utils/use-focus-control';\nimport useWindowWidth from './utils/use-window-width';\nimport useContentHeight from './utils/use-content-height';\nimport styles from './styles.css.js';\nimport testutilStyles from './test-classes/styles.css.js';\nimport { findUpUntil } from '../internal/utils/dom';\nimport { AppLayoutContext } from '../internal/context/app-layout-context';\nimport { applyDisplayName } from '../internal/utils/apply-display-name';\nimport {\n SplitPanelContextProvider,\n SplitPanelContextProps,\n SplitPanelSideToggleProps,\n} from '../internal/context/split-panel-context';\nimport {\n CONSTRAINED_MAIN_PANEL_MIN_HEIGHT,\n CONSTRAINED_PAGE_HEIGHT,\n getSplitPanelDefaultSize,\n MAIN_PANEL_MIN_HEIGHT,\n} from '../split-panel/utils/size-utils';\nimport useBaseComponent from '../internal/hooks/use-base-component';\nimport { useVisualRefresh } from '../internal/hooks/use-visual-mode';\nimport ContentWrapper, { ContentWrapperProps } from './content-wrapper';\nimport { Drawer, DrawerTriggersBar } from './drawer';\nimport { ResizableDrawer } from './drawer/resizable-drawer';\nimport { SideSplitPanelDrawer } from './split-panel-drawer';\nimport useAppLayoutOffsets from './utils/use-content-width';\nimport { isDevelopment } from '../internal/is-development';\nimport { useStableCallback, warnOnce } from '@cloudscape-design/component-toolkit/internal';\n\nimport RefreshedAppLayout from './visual-refresh';\nimport { useInternalI18n } from '../i18n/context';\nimport { useSplitPanelFocusControl } from './utils/use-split-panel-focus-control';\nimport { useDrawerFocusControl } from './utils/use-drawer-focus-control';\nimport { TOOLS_DRAWER_ID, useDrawers } from './utils/use-drawers';\nimport { InternalDrawerProps } from './drawer/interfaces';\nimport { useContainerQuery } from '@cloudscape-design/component-toolkit';\n\nexport { AppLayoutProps };\n\nconst AppLayout = React.forwardRef(\n (\n { contentType = 'default', headerSelector = '#b #h', footerSelector = '#b #f', ...rest }: AppLayoutProps,\n ref: React.Ref<AppLayoutProps.Ref>\n ) => {\n const { __internalRootRef } = useBaseComponent<HTMLDivElement>('AppLayout');\n const isRefresh = useVisualRefresh();\n\n const i18n = useInternalI18n('app-layout');\n const ariaLabels = {\n navigation: i18n('ariaLabels.navigation', rest.ariaLabels?.navigation),\n navigationClose: i18n('ariaLabels.navigationClose', rest.ariaLabels?.navigationClose),\n navigationToggle: i18n('ariaLabels.navigationToggle', rest.ariaLabels?.navigationToggle),\n notifications: i18n('ariaLabels.notifications', rest.ariaLabels?.notifications),\n tools: i18n('ariaLabels.tools', rest.ariaLabels?.tools),\n toolsClose: i18n('ariaLabels.toolsClose', rest.ariaLabels?.toolsClose),\n toolsToggle: i18n('ariaLabels.toolsToggle', rest.ariaLabels?.toolsToggle),\n };\n\n // This re-builds the props including the default values\n const props = { contentType, headerSelector, footerSelector, ...rest, ariaLabels };\n\n const baseProps = getBaseProps(rest);\n\n return (\n <div ref={__internalRootRef} {...baseProps}>\n {isRefresh ? <RefreshedAppLayout {...props} ref={ref} /> : <OldAppLayout {...props} ref={ref} />}\n </div>\n );\n }\n);\n\nconst OldAppLayout = React.forwardRef(\n (\n {\n navigation,\n navigationWidth = 280,\n navigationHide,\n navigationOpen: controlledNavigationOpen,\n tools,\n toolsWidth = 290,\n toolsHide,\n toolsOpen: controlledToolsOpen,\n breadcrumbs,\n notifications,\n stickyNotifications,\n contentHeader,\n disableContentHeaderOverlap,\n content,\n contentType = 'default',\n disableContentPaddings,\n disableBodyScroll,\n maxContentWidth,\n minContentWidth,\n headerSelector = '#b #h',\n footerSelector = '#b #f',\n ariaLabels,\n splitPanel,\n splitPanelSize: controlledSplitPanelSize,\n splitPanelOpen: controlledSplitPanelOpen,\n splitPanelPreferences: controlledSplitPanelPreferences,\n onSplitPanelPreferencesChange,\n onSplitPanelResize,\n onSplitPanelToggle,\n onNavigationChange,\n onToolsChange,\n ...props\n }: AppLayoutProps,\n ref: React.Ref<AppLayoutProps.Ref>\n ) => {\n if (isDevelopment) {\n if (controlledToolsOpen && toolsHide) {\n warnOnce(\n 'AppLayout',\n `You have enabled both the \\`toolsOpen\\` prop and the \\`toolsHide\\` prop. This is not supported. Set \\`toolsOpen\\` to \\`false\\` when you set \\`toolsHide\\` to \\`true\\`.`\n );\n }\n }\n\n const rootRef = useRef<HTMLDivElement>(null);\n const isMobile = useMobile();\n\n const defaults = applyDefaults(contentType, { maxContentWidth, minContentWidth }, false);\n const [navigationOpen = false, setNavigationOpen] = useControllable(\n controlledNavigationOpen,\n onNavigationChange,\n isMobile ? false : defaults.navigationOpen,\n { componentName: 'AppLayout', controlledProp: 'navigationOpen', changeHandler: 'onNavigationChange' }\n );\n\n const [toolsOpen = false, setToolsOpen] = useControllable(\n controlledToolsOpen,\n onToolsChange,\n isMobile ? false : defaults.toolsOpen,\n { componentName: 'AppLayout', controlledProp: 'toolsOpen', changeHandler: 'onToolsChange' }\n );\n\n const {\n drawers,\n activeDrawer,\n activeDrawerSize,\n activeDrawerId,\n onActiveDrawerChange,\n onActiveDrawerResize,\n ...drawersProps\n } = useDrawers(props as InternalDrawerProps, { ariaLabels, tools, toolsOpen, toolsHide, toolsWidth });\n const hasDrawers = drawers.length > 0;\n\n const { refs: navigationRefs, setFocus: focusNavButtons } = useFocusControl(navigationOpen);\n const {\n refs: toolsRefs,\n setFocus: focusToolsButtons,\n loseFocus: loseToolsFocus,\n } = useFocusControl(toolsOpen || activeDrawer !== undefined, true);\n const {\n refs: drawerRefs,\n setFocus: focusDrawersButtons,\n loseFocus: loseDrawersFocus,\n setLastInteraction: setDrawerLastInteraction,\n } = useDrawerFocusControl([activeDrawer?.resizable], toolsOpen || activeDrawer !== undefined, true);\n\n const onNavigationToggle = useStableCallback((open: boolean) => {\n setNavigationOpen(open);\n focusNavButtons();\n fireNonCancelableEvent(onNavigationChange, { open });\n });\n const onToolsToggle = useCallback(\n (open: boolean) => {\n setToolsOpen(open);\n focusToolsButtons();\n fireNonCancelableEvent(onToolsChange, { open });\n },\n [setToolsOpen, onToolsChange, focusToolsButtons]\n );\n\n const onNavigationClick = (event: React.MouseEvent) => {\n const hasLink = findUpUntil(\n event.target as HTMLElement,\n node => node.tagName === 'A' && !!(node as HTMLAnchorElement).href\n );\n if (hasLink) {\n onNavigationToggle(false);\n }\n };\n\n useEffect(() => {\n // Close navigation drawer on mobile so that the main content is visible\n if (isMobile) {\n onNavigationToggle(false);\n }\n }, [isMobile, onNavigationToggle]);\n\n const navigationVisible = !navigationHide && navigationOpen;\n const toolsVisible = !toolsHide && toolsOpen;\n\n const { contentHeightStyle, headerHeight, footerHeight } = useContentHeight(\n headerSelector,\n footerSelector,\n disableBodyScroll\n );\n const [isSplitpanelForcedPosition, setIsSplitpanelForcedPosition] = useState(false);\n\n const [notificationsHeight, notificationsRef] = useContainerQuery(rect => rect.contentBoxHeight);\n const anyPanelOpen = navigationVisible || toolsVisible;\n const hasRenderedNotifications = notificationsHeight ? notificationsHeight > 0 : false;\n const stickyNotificationsHeight = stickyNotifications ? notificationsHeight : null;\n\n const [splitPanelPreferences, setSplitPanelPreferences] = useControllable(\n controlledSplitPanelPreferences,\n onSplitPanelPreferencesChange,\n undefined,\n {\n componentName: 'AppLayout',\n controlledProp: 'splitPanelPreferences',\n changeHandler: 'onSplitPanelPreferencesChange',\n }\n );\n const [splitPanelOpen = false, setSplitPanelOpen] = useControllable(\n controlledSplitPanelOpen,\n onSplitPanelToggle,\n false,\n {\n componentName: 'AppLayout',\n controlledProp: 'splitPanelOpen',\n changeHandler: 'onSplitPanelToggle',\n }\n );\n\n const splitPanelPosition = splitPanelPreferences?.position || 'bottom';\n const [splitPanelReportedToggle, setSplitPanelReportedToggle] = useState<SplitPanelSideToggleProps>({\n displayed: false,\n ariaLabel: undefined,\n });\n const splitPanelDisplayed = !!(splitPanel && (splitPanelReportedToggle.displayed || splitPanelOpen));\n\n const closedDrawerWidth = 40;\n const effectiveNavigationWidth = navigationHide ? 0 : navigationOpen ? navigationWidth : closedDrawerWidth;\n\n const getEffectiveToolsWidth = () => {\n if (toolsHide && (!splitPanelDisplayed || splitPanelPreferences?.position !== 'side') && drawers.length === 0) {\n return 0;\n }\n\n if (activeDrawer && activeDrawerSize) {\n return activeDrawerSize;\n }\n\n if (toolsOpen) {\n return toolsWidth;\n }\n\n return closedDrawerWidth;\n };\n\n const effectiveToolsWidth = getEffectiveToolsWidth();\n\n const defaultSplitPanelSize = getSplitPanelDefaultSize(splitPanelPosition);\n const [splitPanelSize = defaultSplitPanelSize, setSplitPanelSize] = useControllable(\n controlledSplitPanelSize,\n onSplitPanelResize,\n defaultSplitPanelSize,\n {\n componentName: 'AppLayout',\n controlledProp: 'splitPanelSize',\n changeHandler: 'onSplitPanelResize',\n }\n );\n\n const mainContentRef = useRef<HTMLDivElement>(null);\n const legacyScrollRootRef = useRef<HTMLElement>(null);\n\n const { refs: splitPanelRefs, setLastInteraction: setSplitPanelLastInteraction } = useSplitPanelFocusControl([\n splitPanelPreferences,\n splitPanelOpen,\n ]);\n\n const onSplitPanelPreferencesSet = useCallback(\n (detail: { position: 'side' | 'bottom' }) => {\n setSplitPanelPreferences(detail);\n setSplitPanelLastInteraction({ type: 'position' });\n fireNonCancelableEvent(onSplitPanelPreferencesChange, detail);\n },\n [setSplitPanelPreferences, onSplitPanelPreferencesChange, setSplitPanelLastInteraction]\n );\n const onSplitPanelSizeSet = useCallback(\n (detail: { size: number }) => {\n setSplitPanelSize(detail.size);\n fireNonCancelableEvent(onSplitPanelResize, detail);\n },\n [setSplitPanelSize, onSplitPanelResize]\n );\n\n const onSplitPanelToggleHandler = useCallback(() => {\n setSplitPanelOpen(!splitPanelOpen);\n setSplitPanelLastInteraction({ type: splitPanelOpen ? 'close' : 'open' });\n fireNonCancelableEvent(onSplitPanelToggle, { open: !splitPanelOpen });\n }, [setSplitPanelOpen, splitPanelOpen, onSplitPanelToggle, setSplitPanelLastInteraction]);\n\n const getSplitPanelMaxWidth = useStableCallback(() => {\n if (!mainContentRef.current || !defaults.minContentWidth) {\n return NaN;\n }\n\n const width = parseInt(getComputedStyle(mainContentRef.current).width);\n // when disableContentPaddings is true there is less available space,\n // so we subtract space-scaled-2x-xxxl * 2 for left and right padding\n const contentPadding = disableContentPaddings ? 80 : 0;\n const spaceAvailable = width - defaults.minContentWidth - contentPadding;\n\n const spaceTaken = finalSplitPanePosition === 'side' ? splitPanelSize : 0;\n return Math.max(0, spaceTaken + spaceAvailable);\n });\n\n const getDrawerMaxWidth = useStableCallback(() => {\n if (!mainContentRef.current || !defaults.minContentWidth) {\n return NaN;\n }\n\n // Either use the computed width of the drawer or the drawerSize as defined.\n const width = parseInt(getComputedStyle(mainContentRef.current).width || `${activeDrawerSize}`);\n\n // when disableContentPaddings is true there is less available space,\n // so we subtract space-scaled-2x-xxxl * 2 for left and right padding\n const contentPadding = disableContentPaddings ? 80 : 0;\n const spaceAvailable = width - defaults.minContentWidth - contentPadding;\n\n return Math.max(0, activeDrawerSize + spaceAvailable);\n });\n\n const getSplitPanelMaxHeight = useStableCallback(() => {\n if (typeof document === 'undefined') {\n return 0; // render the split panel in its minimum possible size\n } else if (disableBodyScroll && legacyScrollRootRef.current) {\n const availableHeight = legacyScrollRootRef.current.clientHeight;\n return availableHeight < CONSTRAINED_PAGE_HEIGHT ? availableHeight : availableHeight - MAIN_PANEL_MIN_HEIGHT;\n } else {\n const availableHeight = document.documentElement.clientHeight - headerHeight - footerHeight;\n return availableHeight < CONSTRAINED_PAGE_HEIGHT\n ? availableHeight - CONSTRAINED_MAIN_PANEL_MIN_HEIGHT\n : availableHeight - MAIN_PANEL_MIN_HEIGHT;\n }\n });\n\n const finalSplitPanePosition = isSplitpanelForcedPosition ? 'bottom' : splitPanelPosition;\n\n const splitPaneAvailableOnTheSide = splitPanelDisplayed && finalSplitPanePosition === 'side';\n const splitPanelOpenOnTheSide = splitPaneAvailableOnTheSide && splitPanelOpen;\n\n const toggleButtonsBarWidth = 0;\n\n const windowWidth = useWindowWidth();\n const { left: leftOffset, right: rightOffset } = useAppLayoutOffsets(rootRef.current);\n const contentWidthWithSplitPanel =\n windowWidth -\n leftOffset -\n rightOffset -\n effectiveToolsWidth -\n effectiveNavigationWidth -\n (disableContentPaddings ? 0 : toggleButtonsBarWidth);\n const isResizeInvalid = isMobile || (defaults.minContentWidth || 0) > contentWidthWithSplitPanel;\n\n useEffect(() => {\n const contentWidth = contentWidthWithSplitPanel - splitPanelSize;\n\n setIsSplitpanelForcedPosition(isMobile || (defaults.minContentWidth || 0) > contentWidth);\n // This is a workaround to avoid a forced position due to splitPanelSize, which is\n // user controlled variable.\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [contentWidthWithSplitPanel, activeDrawerSize, defaults.minContentWidth, isMobile]);\n\n const navigationClosedWidth = navigationHide || isMobile ? 0 : closedDrawerWidth;\n const toolsClosedWidth = toolsHide || isMobile || (!hasDrawers && toolsHide) ? 0 : closedDrawerWidth;\n\n const contentMaxWidthStyle = !isMobile ? { maxWidth: defaults.maxContentWidth } : undefined;\n\n const [splitPanelReportedSize, setSplitPanelReportedSize] = useState(0);\n const [splitPanelReportedHeaderHeight, setSplitPanelReportedHeaderHeight] = useState(0);\n\n const getSplitPanelRightOffset = () => {\n if (isMobile) {\n return 0;\n }\n\n if (hasDrawers) {\n if (activeDrawer) {\n if (!isResizeInvalid && activeDrawerSize) {\n return activeDrawerSize + closedDrawerWidth;\n }\n\n return toolsWidth + closedDrawerWidth;\n }\n return closedDrawerWidth;\n }\n\n if (!toolsHide && toolsOpen) {\n return toolsWidth;\n }\n return toolsClosedWidth;\n };\n\n const splitPanelContext: SplitPanelContextProps = {\n topOffset: headerHeight + (finalSplitPanePosition === 'bottom' ? stickyNotificationsHeight || 0 : 0),\n bottomOffset: footerHeight,\n leftOffset:\n leftOffset + (isMobile ? 0 : !navigationHide && navigationOpen ? navigationWidth : navigationClosedWidth),\n rightOffset: rightOffset + getSplitPanelRightOffset(),\n position: finalSplitPanePosition,\n size: splitPanelSize,\n getMaxWidth: getSplitPanelMaxWidth,\n getMaxHeight: getSplitPanelMaxHeight,\n disableContentPaddings,\n contentWidthStyles: contentMaxWidthStyle,\n isOpen: splitPanelOpen,\n isMobile,\n isForcedPosition: isSplitpanelForcedPosition,\n onResize: onSplitPanelSizeSet,\n onToggle: onSplitPanelToggleHandler,\n onPreferencesChange: onSplitPanelPreferencesSet,\n setSplitPanelToggle: setSplitPanelReportedToggle,\n reportSize: setSplitPanelReportedSize,\n reportHeaderHeight: setSplitPanelReportedHeaderHeight,\n refs: splitPanelRefs,\n };\n const splitPanelWrapped = splitPanel && (\n <SplitPanelContextProvider value={splitPanelContext}>{splitPanel}</SplitPanelContextProvider>\n );\n\n const contentWrapperProps: ContentWrapperProps = {\n contentType,\n navigationPadding: navigationHide || !!navigationOpen,\n contentWidthStyles: !isMobile\n ? { minWidth: defaults.minContentWidth, maxWidth: defaults.maxContentWidth }\n : undefined,\n toolsPadding:\n // tools padding is displayed in one of the three cases\n // 1. Nothing on the that screen edge (no tools panel and no split panel)\n toolsHide ||\n (hasDrawers && !activeDrawer && (!splitPanelDisplayed || finalSplitPanePosition !== 'side')) ||\n // 2. Tools panel is present and open\n toolsVisible ||\n // 3. Split panel is open in side position\n splitPanelOpenOnTheSide,\n isMobile,\n };\n\n useImperativeHandle(\n ref,\n () => ({\n openTools: () => onToolsToggle(true),\n closeNavigationIfNecessary: () => {\n if (isMobile) {\n onNavigationToggle(false);\n }\n },\n focusToolsClose: () => focusToolsButtons(true),\n focusSplitPanel: () => splitPanelRefs.slider.current?.focus(),\n }),\n [onToolsToggle, isMobile, onNavigationToggle, focusToolsButtons, splitPanelRefs.slider]\n );\n\n const splitPanelBottomOffset =\n (!splitPanelDisplayed || finalSplitPanePosition !== 'bottom'\n ? undefined\n : splitPanelOpen\n ? splitPanelReportedSize\n : splitPanelReportedHeaderHeight) ?? undefined;\n\n const [mobileBarHeight, mobileBarRef] = useContainerQuery(rect => rect.contentBoxHeight);\n\n return (\n <div\n className={clsx(styles.root, testutilStyles.root, disableBodyScroll && styles['root-no-scroll'])}\n ref={rootRef}\n >\n <div className={styles['layout-wrapper']} style={contentHeightStyle}>\n {isMobile && (!toolsHide || !navigationHide || breadcrumbs) && (\n <MobileToolbar\n anyPanelOpen={anyPanelOpen}\n toggleRefs={{ navigation: navigationRefs.toggle, tools: toolsRefs.toggle }}\n topOffset={headerHeight}\n ariaLabels={ariaLabels}\n navigationHide={navigationHide}\n toolsHide={toolsHide}\n onNavigationOpen={() => onNavigationToggle(true)}\n onToolsOpen={() => onToolsToggle(true)}\n unfocusable={anyPanelOpen}\n mobileBarRef={mobileBarRef}\n drawers={\n hasDrawers\n ? {\n items: drawers,\n activeDrawerId: activeDrawerId,\n onChange: changeDetail => {\n onActiveDrawerChange(changeDetail.activeDrawerId);\n if (changeDetail.activeDrawerId !== activeDrawerId) {\n onToolsToggle(changeDetail.activeDrawerId === TOOLS_DRAWER_ID);\n focusDrawersButtons();\n setDrawerLastInteraction({ type: 'open' });\n }\n },\n ariaLabel: drawersProps.ariaLabel,\n overflowAriaLabel: drawersProps.overflowAriaLabel,\n }\n : undefined\n }\n >\n {breadcrumbs}\n </MobileToolbar>\n )}\n <div className={clsx(styles.layout, disableBodyScroll && styles['layout-no-scroll'])}>\n {!navigationHide && (\n <Drawer\n contentClassName={testutilStyles.navigation}\n toggleClassName={testutilStyles['navigation-toggle']}\n closeClassName={testutilStyles['navigation-close']}\n ariaLabels={ariaLabels}\n bottomOffset={footerHeight}\n topOffset={headerHeight}\n isMobile={isMobile}\n isOpen={navigationOpen}\n onClick={isMobile ? onNavigationClick : undefined}\n onToggle={onNavigationToggle}\n toggleRefs={navigationRefs}\n type=\"navigation\"\n width={navigationWidth}\n >\n {navigation}\n </Drawer>\n )}\n <main\n ref={legacyScrollRootRef}\n className={clsx(styles['layout-main'], {\n [styles['layout-main-scrollable']]: disableBodyScroll,\n [testutilStyles['disable-body-scroll-root']]: disableBodyScroll,\n [styles.unfocusable]: isMobile && anyPanelOpen,\n })}\n >\n <div\n style={{\n marginBottom: splitPanelBottomOffset,\n }}\n >\n {notifications && (\n <Notifications\n disableContentPaddings={disableContentPaddings}\n testUtilsClassName={testutilStyles.notifications}\n labels={ariaLabels}\n topOffset={disableBodyScroll ? 0 : headerHeight}\n sticky={!isMobile && stickyNotifications}\n ref={notificationsRef}\n >\n {notifications}\n </Notifications>\n )}\n {((!isMobile && breadcrumbs) || contentHeader) && (\n <ContentWrapper {...contentWrapperProps}>\n {!isMobile && breadcrumbs && (\n <div className={clsx(testutilStyles.breadcrumbs, styles['breadcrumbs-desktop'])}>\n {breadcrumbs}\n </div>\n )}\n {contentHeader && (\n <div\n className={clsx(\n styles['content-header-wrapper'],\n !hasRenderedNotifications &&\n (isMobile || !breadcrumbs) &&\n styles['content-extra-top-padding'],\n !hasRenderedNotifications && !breadcrumbs && styles['content-header-wrapper-first-child'],\n !disableContentHeaderOverlap && styles['content-header-wrapper-overlapped']\n )}\n >\n {contentHeader}\n </div>\n )}\n </ContentWrapper>\n )}\n <ContentWrapper\n {...contentWrapperProps}\n ref={mainContentRef}\n disablePaddings={disableContentPaddings}\n // eslint-disable-next-line react/forbid-component-props\n className={clsx(\n !disableContentPaddings && styles['content-wrapper'],\n !disableContentPaddings &&\n (isMobile || !breadcrumbs) &&\n !contentHeader &&\n styles['content-extra-top-padding'],\n testutilStyles.content,\n !disableContentHeaderOverlap && contentHeader && styles['content-overlapped'],\n !hasRenderedNotifications &&\n !breadcrumbs &&\n !isMobile &&\n !contentHeader &&\n styles['content-wrapper-first-child']\n )}\n >\n <AppLayoutContext.Provider\n value={{\n stickyOffsetTop:\n // We don't support the table header being sticky in case the deprecated disableBodyScroll is enabled,\n // therefore we ensure the table header scrolls out of view by offseting a large enough value (9999px)\n (disableBodyScroll ? (isMobile ? -9999 : 0) : headerHeight) +\n (isMobile ? 0 : stickyNotificationsHeight !== null ? stickyNotificationsHeight : 0),\n stickyOffsetBottom: footerHeight + (splitPanelBottomOffset || 0),\n mobileBarHeight: mobileBarHeight ?? 0,\n }}\n >\n {content}\n </AppLayoutContext.Provider>\n </ContentWrapper>\n </div>\n {finalSplitPanePosition === 'bottom' && splitPanelWrapped}\n </main>\n\n {finalSplitPanePosition === 'side' && (\n <SideSplitPanelDrawer\n topOffset={headerHeight}\n bottomOffset={footerHeight}\n displayed={splitPanelDisplayed}\n width={splitPanelOpen && splitPanel ? splitPanelSize : undefined}\n >\n {splitPanelWrapped}\n </SideSplitPanelDrawer>\n )}\n\n {((hasDrawers && activeDrawerId) || (!hasDrawers && !toolsHide)) &&\n (hasDrawers ? (\n <ResizableDrawer\n contentClassName={\n activeDrawerId === TOOLS_DRAWER_ID\n ? clsx(testutilStyles.tools, testutilStyles['active-drawer'])\n : testutilStyles['active-drawer']\n }\n toggleClassName={testutilStyles['tools-toggle']}\n closeClassName={\n activeDrawerId === TOOLS_DRAWER_ID\n ? testutilStyles['tools-close']\n : testutilStyles['active-drawer-close-button']\n }\n ariaLabels={ariaLabels}\n width={!isResizeInvalid ? activeDrawerSize : toolsWidth}\n bottomOffset={footerHeight}\n topOffset={headerHeight}\n isMobile={isMobile}\n onToggle={onToolsToggle}\n isOpen={toolsOpen || activeDrawerId !== undefined}\n toggleRefs={toolsRefs}\n type=\"tools\"\n onLoseFocus={loseDrawersFocus}\n activeDrawer={activeDrawer}\n drawers={{\n items: drawers,\n activeDrawerId: activeDrawerId,\n onChange: changeDetail => {\n onToolsToggle(false);\n setDrawerLastInteraction({ type: 'close' });\n onActiveDrawerChange(changeDetail.activeDrawerId);\n },\n }}\n size={!isResizeInvalid ? activeDrawerSize : toolsWidth}\n onResize={changeDetail => onActiveDrawerResize(changeDetail)}\n refs={drawerRefs}\n getMaxWidth={getDrawerMaxWidth}\n >\n {activeDrawer?.content}\n </ResizableDrawer>\n ) : (\n <Drawer\n contentClassName={testutilStyles.tools}\n toggleClassName={testutilStyles['tools-toggle']}\n closeClassName={testutilStyles['tools-close']}\n ariaLabels={ariaLabels}\n width={effectiveToolsWidth}\n bottomOffset={footerHeight}\n topOffset={headerHeight}\n isMobile={isMobile}\n onToggle={onToolsToggle}\n isOpen={toolsOpen}\n toggleRefs={toolsRefs}\n type=\"tools\"\n onLoseFocus={loseToolsFocus}\n >\n {tools}\n </Drawer>\n ))}\n {hasDrawers && (\n <DrawerTriggersBar\n bottomOffset={footerHeight}\n topOffset={headerHeight}\n isMobile={isMobile}\n drawers={{\n items: drawers,\n activeDrawerId: activeDrawerId,\n onChange: changeDetail => {\n if (activeDrawerId !== changeDetail.activeDrawerId) {\n onToolsToggle(changeDetail.activeDrawerId === TOOLS_DRAWER_ID);\n focusDrawersButtons();\n setDrawerLastInteraction({ type: 'open' });\n }\n onActiveDrawerChange(changeDetail.activeDrawerId);\n },\n ariaLabel: drawersProps.ariaLabel,\n overflowAriaLabel: drawersProps.overflowAriaLabel,\n }}\n />\n )}\n </div>\n </div>\n </div>\n );\n }\n);\n\napplyDisplayName(AppLayout, 'AppLayout');\nexport default AppLayout;\n"]}
@@ -1,6 +1,5 @@
1
1
  import React from 'react';
2
2
  import { InternalDrawerProps } from '../drawer/interfaces';
3
- import { AppLayoutState } from '../defaults';
4
3
  import { AppLayoutProps } from '../interfaces';
5
4
  export declare const TOOLS_DRAWER_ID = "awsui-internal-tools";
6
5
  interface ToolsProps {
@@ -12,7 +11,7 @@ interface ToolsProps {
12
11
  }
13
12
  export declare function useDrawers({ drawers: ownDrawers, __disableRuntimeDrawers: disableRuntimeDrawers, }: InternalDrawerProps & {
14
13
  __disableRuntimeDrawers?: boolean;
15
- }, toolsProps: ToolsProps, defaults: AppLayoutState): {
14
+ }, toolsProps: ToolsProps): {
16
15
  ariaLabel: string | undefined;
17
16
  overflowAriaLabel: string | undefined;
18
17
  drawers: import("../drawer/interfaces").DrawerItem[];
@@ -1 +1 @@
1
- {"version":3,"file":"use-drawers.d.ts","sourceRoot":"lib/default/","sources":["app-layout/utils/use-drawers.ts"],"names":[],"mappings":"AAEA,OAAO,KAAsC,MAAM,OAAO,CAAC;AAE3D,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAO7C,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAG/C,eAAO,MAAM,eAAe,yBAAyB,CAAC;AAEtD,UAAU,UAAU;IAClB,SAAS,EAAE,OAAO,GAAG,SAAS,CAAC;IAC/B,SAAS,EAAE,OAAO,GAAG,SAAS,CAAC;IAC/B,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,KAAK,CAAC,SAAS,GAAG,SAAS,CAAC;IACnC,UAAU,EAAE,cAAc,CAAC,MAAM,GAAG,SAAS,CAAC;CAC/C;AAwDD,wBAAgB,UAAU,CACxB,EACE,OAAO,EAAE,UAAU,EACnB,uBAAuB,EAAE,qBAAqB,GAC/C,EAAE,mBAAmB,GAAG;IAAE,uBAAuB,CAAC,EAAE,OAAO,CAAA;CAAE,EAC9D,UAAU,EAAE,UAAU,EACtB,QAAQ,EAAE,cAAc;;;;;;;wCAiBqC,MAAM,GAAG,SAAS;;YAa7B,MAAM;cAAQ,MAAM;;EAiBvE"}
1
+ {"version":3,"file":"use-drawers.d.ts","sourceRoot":"lib/default/","sources":["app-layout/utils/use-drawers.ts"],"names":[],"mappings":"AAEA,OAAO,KAAsC,MAAM,OAAO,CAAC;AAE3D,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAM3D,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAG/C,eAAO,MAAM,eAAe,yBAAyB,CAAC;AAEtD,UAAU,UAAU;IAClB,SAAS,EAAE,OAAO,GAAG,SAAS,CAAC;IAC/B,SAAS,EAAE,OAAO,GAAG,SAAS,CAAC;IAC/B,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,KAAK,CAAC,SAAS,GAAG,SAAS,CAAC;IACnC,UAAU,EAAE,cAAc,CAAC,MAAM,GAAG,SAAS,CAAC;CAC/C;AAwDD,wBAAgB,UAAU,CACxB,EACE,OAAO,EAAE,UAAU,EACnB,uBAAuB,EAAE,qBAAqB,GAC/C,EAAE,mBAAmB,GAAG;IAAE,uBAAuB,CAAC,EAAE,OAAO,CAAA;CAAE,EAC9D,UAAU,EAAE,UAAU;;;;;;;wCAgBuC,MAAM,GAAG,SAAS;;YAa7B,MAAM;cAAQ,MAAM;;EAiBvE"}
@@ -2,7 +2,6 @@
2
2
  // SPDX-License-Identifier: Apache-2.0
3
3
  import { useEffect, useRef, useState } from 'react';
4
4
  import { useStableCallback } from '@cloudscape-design/component-toolkit/internal';
5
- import { useMobile } from '../../internal/hooks/use-mobile';
6
5
  import { useControllable } from '../../internal/hooks/use-controllable';
7
6
  import { fireNonCancelableEvent } from '../../internal/events';
8
7
  import { awsuiPluginsInternal } from '../../internal/plugins/api';
@@ -55,11 +54,10 @@ function useRuntimeDrawers(disableRuntimeDrawers, activeDrawerId, onActiveDrawer
55
54
  }, [disableRuntimeDrawers, onActiveDrawerChange]);
56
55
  return runtimeDrawers;
57
56
  }
58
- export function useDrawers({ drawers: ownDrawers, __disableRuntimeDrawers: disableRuntimeDrawers, }, toolsProps, defaults) {
57
+ export function useDrawers({ drawers: ownDrawers, __disableRuntimeDrawers: disableRuntimeDrawers, }, toolsProps) {
59
58
  var _a, _b, _c;
60
- const isMobile = useMobile();
61
59
  const toolsDrawer = getToolsDrawerItem(toolsProps);
62
- const [activeDrawerId, setActiveDrawerId] = useControllable(ownDrawers === null || ownDrawers === void 0 ? void 0 : ownDrawers.activeDrawerId, ownDrawers === null || ownDrawers === void 0 ? void 0 : ownDrawers.onChange, !isMobile && !toolsProps.toolsHide && toolsProps.toolsOpen && defaults.toolsOpen ? TOOLS_DRAWER_ID : undefined, {
60
+ const [activeDrawerId, setActiveDrawerId] = useControllable(ownDrawers === null || ownDrawers === void 0 ? void 0 : ownDrawers.activeDrawerId, ownDrawers === null || ownDrawers === void 0 ? void 0 : ownDrawers.onChange, !toolsProps.toolsHide && toolsProps.toolsOpen ? TOOLS_DRAWER_ID : undefined, {
63
61
  componentName: 'AppLayout',
64
62
  controlledProp: 'activeDrawerId',
65
63
  changeHandler: 'onChange',
@@ -1 +1 @@
1
- {"version":3,"file":"use-drawers.js","sourceRoot":"lib/default/","sources":["app-layout/utils/use-drawers.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport React, { useEffect, useRef, useState } from 'react';\nimport { useStableCallback } from '@cloudscape-design/component-toolkit/internal';\nimport { InternalDrawerProps } from '../drawer/interfaces';\nimport { AppLayoutState } from '../defaults';\nimport { useMobile } from '../../internal/hooks/use-mobile';\nimport { useControllable } from '../../internal/hooks/use-controllable';\nimport { fireNonCancelableEvent } from '../../internal/events';\nimport { awsuiPluginsInternal } from '../../internal/plugins/api';\nimport { sortByPriority } from '../../internal/plugins/helpers/utils';\nimport { convertRuntimeDrawers, DrawersLayout } from '../runtime-api';\nimport { AppLayoutProps } from '../interfaces';\nimport { togglesConfig } from '../toggles';\n\nexport const TOOLS_DRAWER_ID = 'awsui-internal-tools';\n\ninterface ToolsProps {\n toolsHide: boolean | undefined;\n toolsOpen: boolean | undefined;\n toolsWidth: number;\n tools: React.ReactNode | undefined;\n ariaLabels: AppLayoutProps.Labels | undefined;\n}\n\nfunction getToolsDrawerItem(props: ToolsProps) {\n // TODO: remove props.tools check, because it is incompatible with no-drawers behavior\n if (props.toolsHide || !props.tools) {\n return null;\n }\n const { iconName, getLabels } = togglesConfig.tools;\n const { mainLabel, closeLabel, openLabel } = getLabels(props.ariaLabels);\n return {\n id: TOOLS_DRAWER_ID,\n content: props.tools,\n resizable: false,\n ariaLabels: {\n triggerButton: openLabel,\n closeButton: closeLabel,\n content: mainLabel,\n },\n trigger: {\n iconName: iconName,\n },\n };\n}\n\nfunction useRuntimeDrawers(\n disableRuntimeDrawers: boolean | undefined,\n activeDrawerId: string | undefined,\n onActiveDrawerChange: (id: string | undefined) => void\n) {\n const [runtimeDrawers, setRuntimeDrawers] = useState<DrawersLayout>({ before: [], after: [] });\n\n const drawerWasOpenRef = useRef(false);\n drawerWasOpenRef.current = drawerWasOpenRef.current || !!activeDrawerId;\n\n useEffect(() => {\n if (disableRuntimeDrawers) {\n return;\n }\n const unsubscribe = awsuiPluginsInternal.appLayout.onDrawersRegistered(drawers => {\n setRuntimeDrawers(convertRuntimeDrawers(drawers));\n if (!drawerWasOpenRef.current) {\n const defaultActiveDrawer = sortByPriority(drawers).find(drawer => drawer.defaultActive);\n if (defaultActiveDrawer) {\n onActiveDrawerChange(defaultActiveDrawer.id);\n }\n }\n });\n return () => {\n unsubscribe();\n setRuntimeDrawers({ before: [], after: [] });\n };\n }, [disableRuntimeDrawers, onActiveDrawerChange]);\n\n return runtimeDrawers;\n}\n\nexport function useDrawers(\n {\n drawers: ownDrawers,\n __disableRuntimeDrawers: disableRuntimeDrawers,\n }: InternalDrawerProps & { __disableRuntimeDrawers?: boolean },\n toolsProps: ToolsProps,\n defaults: AppLayoutState\n) {\n const isMobile = useMobile();\n const toolsDrawer = getToolsDrawerItem(toolsProps);\n\n const [activeDrawerId, setActiveDrawerId] = useControllable(\n ownDrawers?.activeDrawerId,\n ownDrawers?.onChange,\n !isMobile && !toolsProps.toolsHide && toolsProps.toolsOpen && defaults.toolsOpen ? TOOLS_DRAWER_ID : undefined,\n {\n componentName: 'AppLayout',\n controlledProp: 'activeDrawerId',\n changeHandler: 'onChange',\n }\n );\n const [drawerSizes, setDrawerSizes] = useState<Record<string, number>>({});\n\n const onActiveDrawerChange = useStableCallback((newDrawerId: string | undefined) => {\n setActiveDrawerId(newDrawerId);\n fireNonCancelableEvent(ownDrawers?.onChange, newDrawerId);\n });\n\n const runtimeDrawers = useRuntimeDrawers(disableRuntimeDrawers, activeDrawerId, onActiveDrawerChange);\n const combinedDrawers = [...runtimeDrawers.before, ...(ownDrawers?.items ?? []), ...runtimeDrawers.after];\n if (toolsDrawer && combinedDrawers.length > 0) {\n combinedDrawers.unshift(toolsDrawer);\n }\n const activeDrawer = combinedDrawers.find(drawer => drawer.id === activeDrawerId);\n const activeDrawerIdResolved = activeDrawer?.id; // only defined when corresponding drawer exists\n\n function onActiveDrawerResize({ id, size }: { id: string; size: number }) {\n setDrawerSizes(oldSizes => ({ ...oldSizes, [id]: size }));\n fireNonCancelableEvent(ownDrawers?.onResize, { id, size });\n }\n\n return {\n ariaLabel: ownDrawers?.ariaLabel,\n overflowAriaLabel: ownDrawers?.overflowAriaLabel,\n drawers: combinedDrawers,\n activeDrawer,\n activeDrawerId: activeDrawerIdResolved,\n activeDrawerSize: activeDrawerIdResolved\n ? drawerSizes[activeDrawerIdResolved] ?? activeDrawer?.defaultSize ?? toolsProps.toolsWidth\n : toolsProps.toolsWidth,\n onActiveDrawerChange,\n onActiveDrawerResize,\n };\n}\n"]}
1
+ {"version":3,"file":"use-drawers.js","sourceRoot":"lib/default/","sources":["app-layout/utils/use-drawers.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport React, { useEffect, useRef, useState } from 'react';\nimport { useStableCallback } from '@cloudscape-design/component-toolkit/internal';\nimport { InternalDrawerProps } from '../drawer/interfaces';\nimport { useControllable } from '../../internal/hooks/use-controllable';\nimport { fireNonCancelableEvent } from '../../internal/events';\nimport { awsuiPluginsInternal } from '../../internal/plugins/api';\nimport { sortByPriority } from '../../internal/plugins/helpers/utils';\nimport { convertRuntimeDrawers, DrawersLayout } from '../runtime-api';\nimport { AppLayoutProps } from '../interfaces';\nimport { togglesConfig } from '../toggles';\n\nexport const TOOLS_DRAWER_ID = 'awsui-internal-tools';\n\ninterface ToolsProps {\n toolsHide: boolean | undefined;\n toolsOpen: boolean | undefined;\n toolsWidth: number;\n tools: React.ReactNode | undefined;\n ariaLabels: AppLayoutProps.Labels | undefined;\n}\n\nfunction getToolsDrawerItem(props: ToolsProps) {\n // TODO: remove props.tools check, because it is incompatible with no-drawers behavior\n if (props.toolsHide || !props.tools) {\n return null;\n }\n const { iconName, getLabels } = togglesConfig.tools;\n const { mainLabel, closeLabel, openLabel } = getLabels(props.ariaLabels);\n return {\n id: TOOLS_DRAWER_ID,\n content: props.tools,\n resizable: false,\n ariaLabels: {\n triggerButton: openLabel,\n closeButton: closeLabel,\n content: mainLabel,\n },\n trigger: {\n iconName: iconName,\n },\n };\n}\n\nfunction useRuntimeDrawers(\n disableRuntimeDrawers: boolean | undefined,\n activeDrawerId: string | undefined,\n onActiveDrawerChange: (id: string | undefined) => void\n) {\n const [runtimeDrawers, setRuntimeDrawers] = useState<DrawersLayout>({ before: [], after: [] });\n\n const drawerWasOpenRef = useRef(false);\n drawerWasOpenRef.current = drawerWasOpenRef.current || !!activeDrawerId;\n\n useEffect(() => {\n if (disableRuntimeDrawers) {\n return;\n }\n const unsubscribe = awsuiPluginsInternal.appLayout.onDrawersRegistered(drawers => {\n setRuntimeDrawers(convertRuntimeDrawers(drawers));\n if (!drawerWasOpenRef.current) {\n const defaultActiveDrawer = sortByPriority(drawers).find(drawer => drawer.defaultActive);\n if (defaultActiveDrawer) {\n onActiveDrawerChange(defaultActiveDrawer.id);\n }\n }\n });\n return () => {\n unsubscribe();\n setRuntimeDrawers({ before: [], after: [] });\n };\n }, [disableRuntimeDrawers, onActiveDrawerChange]);\n\n return runtimeDrawers;\n}\n\nexport function useDrawers(\n {\n drawers: ownDrawers,\n __disableRuntimeDrawers: disableRuntimeDrawers,\n }: InternalDrawerProps & { __disableRuntimeDrawers?: boolean },\n toolsProps: ToolsProps\n) {\n const toolsDrawer = getToolsDrawerItem(toolsProps);\n\n const [activeDrawerId, setActiveDrawerId] = useControllable(\n ownDrawers?.activeDrawerId,\n ownDrawers?.onChange,\n !toolsProps.toolsHide && toolsProps.toolsOpen ? TOOLS_DRAWER_ID : undefined,\n {\n componentName: 'AppLayout',\n controlledProp: 'activeDrawerId',\n changeHandler: 'onChange',\n }\n );\n const [drawerSizes, setDrawerSizes] = useState<Record<string, number>>({});\n\n const onActiveDrawerChange = useStableCallback((newDrawerId: string | undefined) => {\n setActiveDrawerId(newDrawerId);\n fireNonCancelableEvent(ownDrawers?.onChange, newDrawerId);\n });\n\n const runtimeDrawers = useRuntimeDrawers(disableRuntimeDrawers, activeDrawerId, onActiveDrawerChange);\n const combinedDrawers = [...runtimeDrawers.before, ...(ownDrawers?.items ?? []), ...runtimeDrawers.after];\n if (toolsDrawer && combinedDrawers.length > 0) {\n combinedDrawers.unshift(toolsDrawer);\n }\n const activeDrawer = combinedDrawers.find(drawer => drawer.id === activeDrawerId);\n const activeDrawerIdResolved = activeDrawer?.id; // only defined when corresponding drawer exists\n\n function onActiveDrawerResize({ id, size }: { id: string; size: number }) {\n setDrawerSizes(oldSizes => ({ ...oldSizes, [id]: size }));\n fireNonCancelableEvent(ownDrawers?.onResize, { id, size });\n }\n\n return {\n ariaLabel: ownDrawers?.ariaLabel,\n overflowAriaLabel: ownDrawers?.overflowAriaLabel,\n drawers: combinedDrawers,\n activeDrawer,\n activeDrawerId: activeDrawerIdResolved,\n activeDrawerSize: activeDrawerIdResolved\n ? drawerSizes[activeDrawerIdResolved] ?? activeDrawer?.defaultSize ?? toolsProps.toolsWidth\n : toolsProps.toolsWidth,\n onActiveDrawerChange,\n onActiveDrawerResize,\n };\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"context.d.ts","sourceRoot":"lib/default/","sources":["app-layout/visual-refresh/context.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"context.d.ts","sourceRoot":"lib/default/","sources":["app-layout/visual-refresh/context.tsx"],"names":[],"mappings":"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"}
@@ -224,7 +224,7 @@ export const AppLayoutInternalsProvider = React.forwardRef((_a, forwardRef) => {
224
224
  toolsOpen: isToolsOpen,
225
225
  tools: props.tools,
226
226
  toolsWidth,
227
- }, contentTypeDefaults), { drawers, activeDrawer, activeDrawerId, onActiveDrawerChange, onActiveDrawerResize, activeDrawerSize } = _e, drawersProps = __rest(_e, ["drawers", "activeDrawer", "activeDrawerId", "onActiveDrawerChange", "onActiveDrawerResize", "activeDrawerSize"]);
227
+ }), { drawers, activeDrawer, activeDrawerId, onActiveDrawerChange, onActiveDrawerResize, activeDrawerSize } = _e, drawersProps = __rest(_e, ["drawers", "activeDrawer", "activeDrawerId", "onActiveDrawerChange", "onActiveDrawerResize", "activeDrawerSize"]);
228
228
  const [drawersMaxWidth, setDrawersMaxWidth] = useState(toolsWidth);
229
229
  const { refs: drawersRefs, setFocus: focusDrawersButtons, loseFocus: loseDrawersFocus, setLastInteraction: setDrawerLastInteraction, } = useDrawerFocusControl([activeDrawerId, activeDrawer === null || activeDrawer === void 0 ? void 0 : activeDrawer.resizable], true, true);
230
230
  const drawerRef = useRef(null);
@@ -244,7 +244,7 @@ export const AppLayoutInternalsProvider = React.forwardRef((_a, forwardRef) => {
244
244
  };
245
245
  const drawersTriggerCount = drawers.length + (splitPanelDisplayed && splitPanelPosition === 'side' ? 1 : 0) + (!toolsHide ? 1 : 0);
246
246
  const hasOpenDrawer = activeDrawerId !== undefined ||
247
- isToolsOpen ||
247
+ (!toolsHide && isToolsOpen) ||
248
248
  (splitPanelDisplayed && splitPanelPosition === 'side' && isSplitPanelOpen);
249
249
  const hasDrawerViewportOverlay = isMobile && (!!activeDrawerId || (!navigationHide && isNavigationOpen) || (!toolsHide && isToolsOpen));
250
250
  /**