@cloudscape-design/components-themeable 3.0.1331 → 3.0.1333

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 (224) hide show
  1. package/lib/internal/manifest.json +1 -1
  2. package/lib/internal/scss/app-layout/constants.scss +4 -0
  3. package/lib/internal/scss/app-layout/visual-refresh-toolbar/navigation/styles.scss +43 -13
  4. package/lib/internal/scss/app-layout/visual-refresh-toolbar/skeleton/styles.scss +7 -1
  5. package/lib/internal/scss/app-layout/visual-refresh-toolbar/toolbar/styles.scss +2 -2
  6. package/lib/internal/scss/internal/generated/custom-css-properties/index.scss +174 -173
  7. package/lib/internal/scss/side-navigation/styles.scss +4 -7
  8. package/lib/internal/scss/status-indicator/styles.scss +4 -2
  9. package/lib/internal/scss/steps/styles.scss +7 -3
  10. package/lib/internal/template/alert/styles.css.js +27 -27
  11. package/lib/internal/template/alert/styles.scoped.css +50 -50
  12. package/lib/internal/template/alert/styles.selectors.js +27 -27
  13. package/lib/internal/template/annotation-context/annotation/styles.css.js +13 -13
  14. package/lib/internal/template/annotation-context/annotation/styles.scoped.css +21 -21
  15. package/lib/internal/template/annotation-context/annotation/styles.selectors.js +13 -13
  16. package/lib/internal/template/app-layout/classic.d.ts +1 -0
  17. package/lib/internal/template/app-layout/classic.d.ts.map +1 -1
  18. package/lib/internal/template/app-layout/index.d.ts.map +1 -1
  19. package/lib/internal/template/app-layout/index.js +2 -1
  20. package/lib/internal/template/app-layout/index.js.map +1 -1
  21. package/lib/internal/template/app-layout/interfaces.d.ts +16 -1
  22. package/lib/internal/template/app-layout/interfaces.d.ts.map +1 -1
  23. package/lib/internal/template/app-layout/interfaces.js.map +1 -1
  24. package/lib/internal/template/app-layout/internal.d.ts +1 -0
  25. package/lib/internal/template/app-layout/internal.d.ts.map +1 -1
  26. package/lib/internal/template/app-layout/notifications/styles.css.js +3 -3
  27. package/lib/internal/template/app-layout/notifications/styles.scoped.css +7 -7
  28. package/lib/internal/template/app-layout/notifications/styles.selectors.js +3 -3
  29. package/lib/internal/template/app-layout/visual-refresh/index.d.ts +1 -0
  30. package/lib/internal/template/app-layout/visual-refresh/index.d.ts.map +1 -1
  31. package/lib/internal/template/app-layout/visual-refresh/styles.css.js +86 -86
  32. package/lib/internal/template/app-layout/visual-refresh/styles.scoped.css +262 -262
  33. package/lib/internal/template/app-layout/visual-refresh/styles.selectors.js +86 -86
  34. package/lib/internal/template/app-layout/visual-refresh-toolbar/compute-layout.d.ts +3 -1
  35. package/lib/internal/template/app-layout/visual-refresh-toolbar/compute-layout.d.ts.map +1 -1
  36. package/lib/internal/template/app-layout/visual-refresh-toolbar/compute-layout.js +2 -2
  37. package/lib/internal/template/app-layout/visual-refresh-toolbar/compute-layout.js.map +1 -1
  38. package/lib/internal/template/app-layout/visual-refresh-toolbar/drawer/styles.css.js +32 -32
  39. package/lib/internal/template/app-layout/visual-refresh-toolbar/drawer/styles.scoped.css +93 -93
  40. package/lib/internal/template/app-layout/visual-refresh-toolbar/drawer/styles.selectors.js +32 -32
  41. package/lib/internal/template/app-layout/visual-refresh-toolbar/interfaces.d.ts +2 -0
  42. package/lib/internal/template/app-layout/visual-refresh-toolbar/interfaces.d.ts.map +1 -1
  43. package/lib/internal/template/app-layout/visual-refresh-toolbar/interfaces.js.map +1 -1
  44. package/lib/internal/template/app-layout/visual-refresh-toolbar/navigation/index.d.ts +2 -1
  45. package/lib/internal/template/app-layout/visual-refresh-toolbar/navigation/index.d.ts.map +1 -1
  46. package/lib/internal/template/app-layout/visual-refresh-toolbar/navigation/index.js +11 -5
  47. package/lib/internal/template/app-layout/visual-refresh-toolbar/navigation/index.js.map +1 -1
  48. package/lib/internal/template/app-layout/visual-refresh-toolbar/navigation/styles.css.js +6 -4
  49. package/lib/internal/template/app-layout/visual-refresh-toolbar/navigation/styles.scoped.css +34 -15
  50. package/lib/internal/template/app-layout/visual-refresh-toolbar/navigation/styles.selectors.js +6 -4
  51. package/lib/internal/template/app-layout/visual-refresh-toolbar/skeleton/skeleton-parts.d.ts.map +1 -1
  52. package/lib/internal/template/app-layout/visual-refresh-toolbar/skeleton/skeleton-parts.js +4 -2
  53. package/lib/internal/template/app-layout/visual-refresh-toolbar/skeleton/skeleton-parts.js.map +1 -1
  54. package/lib/internal/template/app-layout/visual-refresh-toolbar/skeleton/styles.css.js +30 -29
  55. package/lib/internal/template/app-layout/visual-refresh-toolbar/skeleton/styles.scoped.css +72 -67
  56. package/lib/internal/template/app-layout/visual-refresh-toolbar/skeleton/styles.selectors.js +30 -29
  57. package/lib/internal/template/app-layout/visual-refresh-toolbar/state/interfaces.d.ts +1 -0
  58. package/lib/internal/template/app-layout/visual-refresh-toolbar/state/interfaces.d.ts.map +1 -1
  59. package/lib/internal/template/app-layout/visual-refresh-toolbar/state/interfaces.js.map +1 -1
  60. package/lib/internal/template/app-layout/visual-refresh-toolbar/state/props-merger.d.ts.map +1 -1
  61. package/lib/internal/template/app-layout/visual-refresh-toolbar/state/props-merger.js +2 -0
  62. package/lib/internal/template/app-layout/visual-refresh-toolbar/state/props-merger.js.map +1 -1
  63. package/lib/internal/template/app-layout/visual-refresh-toolbar/state/use-app-layout.d.ts +1 -1
  64. package/lib/internal/template/app-layout/visual-refresh-toolbar/state/use-app-layout.d.ts.map +1 -1
  65. package/lib/internal/template/app-layout/visual-refresh-toolbar/state/use-app-layout.js +26 -3
  66. package/lib/internal/template/app-layout/visual-refresh-toolbar/state/use-app-layout.js.map +1 -1
  67. package/lib/internal/template/app-layout/visual-refresh-toolbar/state/use-skeleton-slots-attributes.d.ts.map +1 -1
  68. package/lib/internal/template/app-layout/visual-refresh-toolbar/state/use-skeleton-slots-attributes.js +2 -1
  69. package/lib/internal/template/app-layout/visual-refresh-toolbar/state/use-skeleton-slots-attributes.js.map +1 -1
  70. package/lib/internal/template/app-layout/visual-refresh-toolbar/toolbar/index.d.ts +1 -0
  71. package/lib/internal/template/app-layout/visual-refresh-toolbar/toolbar/index.d.ts.map +1 -1
  72. package/lib/internal/template/app-layout/visual-refresh-toolbar/toolbar/index.js.map +1 -1
  73. package/lib/internal/template/app-layout/visual-refresh-toolbar/toolbar/styles.css.js +14 -14
  74. package/lib/internal/template/app-layout/visual-refresh-toolbar/toolbar/styles.scoped.css +36 -36
  75. package/lib/internal/template/app-layout/visual-refresh-toolbar/toolbar/styles.selectors.js +14 -14
  76. package/lib/internal/template/app-layout/visual-refresh-toolbar/widget-areas/before-main-slot.d.ts.map +1 -1
  77. package/lib/internal/template/app-layout/visual-refresh-toolbar/widget-areas/before-main-slot.js +3 -3
  78. package/lib/internal/template/app-layout/visual-refresh-toolbar/widget-areas/before-main-slot.js.map +1 -1
  79. package/lib/internal/template/app-layout-toolbar/index.d.ts.map +1 -1
  80. package/lib/internal/template/app-layout-toolbar/index.js +2 -1
  81. package/lib/internal/template/app-layout-toolbar/index.js.map +1 -1
  82. package/lib/internal/template/attribute-editor/styles.css.js +15 -15
  83. package/lib/internal/template/attribute-editor/styles.scoped.css +29 -29
  84. package/lib/internal/template/attribute-editor/styles.selectors.js +15 -15
  85. package/lib/internal/template/breadcrumb-group/item/styles.css.js +7 -7
  86. package/lib/internal/template/breadcrumb-group/item/styles.scoped.css +30 -30
  87. package/lib/internal/template/breadcrumb-group/item/styles.selectors.js +7 -7
  88. package/lib/internal/template/button/styles.css.js +22 -22
  89. package/lib/internal/template/button/styles.scoped.css +256 -256
  90. package/lib/internal/template/button/styles.selectors.js +22 -22
  91. package/lib/internal/template/button-dropdown/item-element/styles.css.js +21 -21
  92. package/lib/internal/template/button-dropdown/item-element/styles.scoped.css +37 -37
  93. package/lib/internal/template/button-dropdown/item-element/styles.selectors.js +21 -21
  94. package/lib/internal/template/checkbox/styles.css.js +3 -3
  95. package/lib/internal/template/checkbox/styles.scoped.css +11 -11
  96. package/lib/internal/template/checkbox/styles.selectors.js +3 -3
  97. package/lib/internal/template/content-layout/styles.css.js +14 -14
  98. package/lib/internal/template/content-layout/styles.scoped.css +27 -27
  99. package/lib/internal/template/content-layout/styles.selectors.js +14 -14
  100. package/lib/internal/template/dropdown/styles.css.js +20 -20
  101. package/lib/internal/template/dropdown/styles.scoped.css +49 -49
  102. package/lib/internal/template/dropdown/styles.selectors.js +20 -20
  103. package/lib/internal/template/file-token-group/styles.css.js +23 -23
  104. package/lib/internal/template/file-token-group/styles.scoped.css +36 -36
  105. package/lib/internal/template/file-token-group/styles.selectors.js +23 -23
  106. package/lib/internal/template/flashbar/styles.css.js +50 -50
  107. package/lib/internal/template/flashbar/styles.scoped.css +192 -192
  108. package/lib/internal/template/flashbar/styles.selectors.js +50 -50
  109. package/lib/internal/template/help-panel/styles.css.js +6 -6
  110. package/lib/internal/template/help-panel/styles.scoped.css +72 -72
  111. package/lib/internal/template/help-panel/styles.selectors.js +6 -6
  112. package/lib/internal/template/input/styles.css.js +18 -18
  113. package/lib/internal/template/input/styles.scoped.css +82 -82
  114. package/lib/internal/template/input/styles.selectors.js +18 -18
  115. package/lib/internal/template/internal/base-component/styles.scoped.css +9 -1
  116. package/lib/internal/template/internal/components/abstract-switch/index.d.ts.map +1 -1
  117. package/lib/internal/template/internal/components/abstract-switch/index.js +7 -1
  118. package/lib/internal/template/internal/components/abstract-switch/index.js.map +1 -1
  119. package/lib/internal/template/internal/components/drag-handle-wrapper/styles.css.js +30 -30
  120. package/lib/internal/template/internal/components/drag-handle-wrapper/styles.scoped.css +58 -58
  121. package/lib/internal/template/internal/components/drag-handle-wrapper/styles.selectors.js +30 -30
  122. package/lib/internal/template/internal/components/option/styles.css.js +17 -17
  123. package/lib/internal/template/internal/components/option/styles.scoped.css +31 -31
  124. package/lib/internal/template/internal/components/option/styles.selectors.js +17 -17
  125. package/lib/internal/template/internal/components/radio-button/styles.css.js +7 -7
  126. package/lib/internal/template/internal/components/radio-button/styles.scoped.css +18 -18
  127. package/lib/internal/template/internal/components/radio-button/styles.selectors.js +7 -7
  128. package/lib/internal/template/internal/components/selectable-item/styles.css.js +22 -22
  129. package/lib/internal/template/internal/components/selectable-item/styles.scoped.css +57 -57
  130. package/lib/internal/template/internal/components/selectable-item/styles.selectors.js +22 -22
  131. package/lib/internal/template/internal/components/token-list/styles.css.js +10 -10
  132. package/lib/internal/template/internal/components/token-list/styles.scoped.css +25 -25
  133. package/lib/internal/template/internal/components/token-list/styles.selectors.js +10 -10
  134. package/lib/internal/template/internal/environment.js +2 -2
  135. package/lib/internal/template/internal/environment.json +2 -2
  136. package/lib/internal/template/internal/generated/custom-css-properties/index.d.ts +1 -0
  137. package/lib/internal/template/internal/generated/custom-css-properties/index.d.ts.map +1 -1
  138. package/lib/internal/template/internal/generated/custom-css-properties/index.js +173 -172
  139. package/lib/internal/template/internal/generated/custom-css-properties/index.js.map +1 -1
  140. package/lib/internal/template/internal/generated/styles/tokens.d.ts +2 -0
  141. package/lib/internal/template/internal/generated/styles/tokens.js +2 -0
  142. package/lib/internal/template/internal/generated/theming/index.cjs +40 -0
  143. package/lib/internal/template/internal/generated/theming/index.cjs.d.ts +27 -0
  144. package/lib/internal/template/internal/generated/theming/index.d.ts +27 -0
  145. package/lib/internal/template/internal/generated/theming/index.js +40 -0
  146. package/lib/internal/template/item-card/styles.css.js +14 -14
  147. package/lib/internal/template/item-card/styles.scoped.css +63 -63
  148. package/lib/internal/template/item-card/styles.selectors.js +14 -14
  149. package/lib/internal/template/link/styles.css.js +21 -21
  150. package/lib/internal/template/link/styles.scoped.css +117 -117
  151. package/lib/internal/template/link/styles.selectors.js +21 -21
  152. package/lib/internal/template/modal/styles.css.js +31 -31
  153. package/lib/internal/template/modal/styles.scoped.css +48 -48
  154. package/lib/internal/template/modal/styles.selectors.js +31 -31
  155. package/lib/internal/template/package.json +94 -0
  156. package/lib/internal/template/progress-bar/styles.css.js +18 -18
  157. package/lib/internal/template/progress-bar/styles.scoped.css +48 -48
  158. package/lib/internal/template/progress-bar/styles.selectors.js +18 -18
  159. package/lib/internal/template/prompt-input/styles.css.js +26 -26
  160. package/lib/internal/template/prompt-input/styles.scoped.css +105 -105
  161. package/lib/internal/template/prompt-input/styles.selectors.js +26 -26
  162. package/lib/internal/template/segmented-control/styles.css.js +16 -16
  163. package/lib/internal/template/segmented-control/styles.scoped.css +46 -46
  164. package/lib/internal/template/segmented-control/styles.selectors.js +16 -16
  165. package/lib/internal/template/side-navigation/implementation.d.ts.map +1 -1
  166. package/lib/internal/template/side-navigation/implementation.js +4 -3
  167. package/lib/internal/template/side-navigation/implementation.js.map +1 -1
  168. package/lib/internal/template/side-navigation/parts.d.ts +3 -1
  169. package/lib/internal/template/side-navigation/parts.d.ts.map +1 -1
  170. package/lib/internal/template/side-navigation/parts.js +38 -26
  171. package/lib/internal/template/side-navigation/parts.js.map +1 -1
  172. package/lib/internal/template/side-navigation/styles.css.js +47 -47
  173. package/lib/internal/template/side-navigation/styles.scoped.css +74 -76
  174. package/lib/internal/template/side-navigation/styles.selectors.js +47 -47
  175. package/lib/internal/template/slider/styles.css.js +26 -26
  176. package/lib/internal/template/slider/styles.scoped.css +165 -165
  177. package/lib/internal/template/slider/styles.selectors.js +26 -26
  178. package/lib/internal/template/spinner/styles.css.js +13 -13
  179. package/lib/internal/template/spinner/styles.scoped.css +39 -39
  180. package/lib/internal/template/spinner/styles.selectors.js +13 -13
  181. package/lib/internal/template/status-indicator/internal-interfaces.d.ts +3 -0
  182. package/lib/internal/template/status-indicator/internal-interfaces.d.ts.map +1 -0
  183. package/lib/internal/template/status-indicator/internal-interfaces.js +2 -0
  184. package/lib/internal/template/status-indicator/internal-interfaces.js.map +1 -0
  185. package/lib/internal/template/status-indicator/internal.d.ts +6 -2
  186. package/lib/internal/template/status-indicator/internal.d.ts.map +1 -1
  187. package/lib/internal/template/status-indicator/internal.js +1 -0
  188. package/lib/internal/template/status-indicator/internal.js.map +1 -1
  189. package/lib/internal/template/status-indicator/styles.css.js +25 -24
  190. package/lib/internal/template/status-indicator/styles.scoped.css +59 -53
  191. package/lib/internal/template/status-indicator/styles.selectors.js +25 -24
  192. package/lib/internal/template/steps/index.d.ts +1 -1
  193. package/lib/internal/template/steps/index.d.ts.map +1 -1
  194. package/lib/internal/template/steps/index.js +5 -3
  195. package/lib/internal/template/steps/index.js.map +1 -1
  196. package/lib/internal/template/steps/interfaces.d.ts +9 -2
  197. package/lib/internal/template/steps/interfaces.d.ts.map +1 -1
  198. package/lib/internal/template/steps/interfaces.js.map +1 -1
  199. package/lib/internal/template/steps/internal.d.ts +2 -2
  200. package/lib/internal/template/steps/internal.d.ts.map +1 -1
  201. package/lib/internal/template/steps/internal.js +12 -8
  202. package/lib/internal/template/steps/internal.js.map +1 -1
  203. package/lib/internal/template/steps/styles.css.js +13 -12
  204. package/lib/internal/template/steps/styles.scoped.css +27 -22
  205. package/lib/internal/template/steps/styles.selectors.js +13 -12
  206. package/lib/internal/template/tabs/styles.css.js +30 -30
  207. package/lib/internal/template/tabs/styles.scoped.css +76 -76
  208. package/lib/internal/template/tabs/styles.selectors.js +30 -30
  209. package/lib/internal/template/tag-editor/styles.css.js +3 -3
  210. package/lib/internal/template/tag-editor/styles.scoped.css +13 -13
  211. package/lib/internal/template/tag-editor/styles.selectors.js +3 -3
  212. package/lib/internal/template/text-content/styles.css.js +1 -1
  213. package/lib/internal/template/text-content/styles.scoped.css +66 -66
  214. package/lib/internal/template/text-content/styles.selectors.js +1 -1
  215. package/lib/internal/template/textarea/styles.css.js +5 -5
  216. package/lib/internal/template/textarea/styles.scoped.css +45 -45
  217. package/lib/internal/template/textarea/styles.selectors.js +5 -5
  218. package/lib/internal/template/toggle/styles.css.js +10 -10
  219. package/lib/internal/template/toggle/styles.scoped.css +23 -23
  220. package/lib/internal/template/toggle/styles.selectors.js +10 -10
  221. package/lib/internal/template/token/styles.css.js +14 -14
  222. package/lib/internal/template/token/styles.scoped.css +47 -47
  223. package/lib/internal/template/token/styles.selectors.js +14 -14
  224. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"use-app-layout.js","sourceRoot":"","sources":["../../../../../src/app-layout/visual-refresh-toolbar/state/use-app-layout.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 React, { ForwardedRef, useCallback, useEffect, useImperativeHandle, useRef, useState } from 'react';\n\nimport { useMergeRefs, useStableCallback, useUniqueId } from '@cloudscape-design/component-toolkit/internal';\n\nimport { SplitPanelSideToggleProps } from '../../../internal/context/split-panel-context';\nimport { fireNonCancelableEvent } from '../../../internal/events';\nimport { useControllable } from '../../../internal/hooks/use-controllable';\nimport { useIntersectionObserver } from '../../../internal/hooks/use-intersection-observer';\nimport { useMobile } from '../../../internal/hooks/use-mobile';\nimport { metrics } from '../../../internal/metrics';\nimport { useGetGlobalBreadcrumbs } from '../../../internal/plugins/helpers/use-global-breadcrumbs';\nimport { WidgetMessage } from '../../../internal/plugins/widget/interfaces';\nimport globalVars from '../../../internal/styles/global-vars';\nimport { getSplitPanelDefaultSize } from '../../../split-panel/utils/size-utils';\nimport { AppLayoutProps } from '../../interfaces';\nimport { SplitPanelProviderProps } from '../../split-panel';\nimport { MIN_DRAWER_SIZE, OnChangeParams, useDrawers } from '../../utils/use-drawers';\nimport { useAsyncFocusControl, useMultipleFocusControl } from '../../utils/use-focus-control';\nimport { useGlobalScrollPadding } from '../../utils/use-global-scroll-padding';\nimport { useSplitPanelFocusControl } from '../../utils/use-split-panel-focus-control';\nimport {\n computeHorizontalLayout,\n computeSplitPanelOffsets,\n computeVerticalLayout,\n CONTENT_PADDING,\n} from '../compute-layout';\nimport { AppLayoutState } from '../interfaces';\nimport { AppLayoutInternalProps, AppLayoutInternals } from '../interfaces';\nimport { useAiDrawer } from './use-ai-drawer';\nimport { useBottomDrawers } from './use-bottom-drawers';\nimport { useFeatureNotifications } from './use-feature-notifications';\nimport { useWidgetMessages } from './use-widget-messages';\n\nexport const useAppLayout = (\n hasToolbar: boolean,\n {\n ariaLabels,\n navigationOpen,\n navigationWidth,\n navigation,\n navigationHide,\n onNavigationChange,\n tools,\n toolsOpen: controlledToolsOpen,\n onToolsChange,\n toolsHide,\n toolsWidth,\n headerVariant,\n breadcrumbs,\n stickyNotifications,\n splitPanelPreferences: controlledSplitPanelPreferences,\n splitPanelOpen: controlledSplitPanelOpen,\n splitPanel,\n splitPanelSize: controlledSplitPanelSize,\n onSplitPanelToggle,\n onSplitPanelResize,\n onSplitPanelPreferencesChange,\n minContentWidth,\n placement,\n navigationTriggerHide,\n ...rest\n }: AppLayoutInternalProps,\n forwardRef: ForwardedRef<AppLayoutProps.Ref>\n): AppLayoutState => {\n const isMobile = useMobile();\n const splitPanelControlId = useUniqueId('split-panel');\n const [toolbarState, setToolbarState] = useState<'show' | 'hide'>('show');\n const [toolbarHeight, setToolbarHeight] = useState(0);\n const [notificationsHeight, setNotificationsHeight] = useState(0);\n const [navigationAnimationDisabled, setNavigationAnimationDisabled] = useState(true);\n const [splitPanelAnimationDisabled, setSplitPanelAnimationDisabled] = useState(true);\n const [drawerAnimationDisabled, setDrawerAnimationDisabled] = useState(true);\n const [isNested, setIsNested] = useState(false);\n const [expandedDrawerId, setInternalExpandedDrawerId] = useState<string | null>(null);\n const rootRefInternal = useRef<HTMLDivElement>(null);\n // This workaround ensures the ref is defined before checking if the app layout is nested.\n // On initial render, the ref might be undefined because this component loads asynchronously via the widget API.\n const onMountRootRef = useCallback(node => {\n setIsNested(getIsNestedInAppLayout(node));\n }, []);\n const { __forceEnableRuntimeMessages: forceEnableRuntimeMessages } = rest as any;\n\n const [toolsOpen = false, setToolsOpen] = useControllable(controlledToolsOpen, onToolsChange, false, {\n componentName: 'AppLayout',\n controlledProp: 'toolsOpen',\n changeHandler: 'onToolsChange',\n });\n const onToolsToggle = (open: boolean) => {\n setDrawerAnimationDisabled(false);\n setToolsOpen(open);\n drawersFocusControl.setFocus();\n fireNonCancelableEvent(onToolsChange, { open });\n };\n\n const setExpandedDrawerId = (value: string | null) => {\n setInternalExpandedDrawerId(value);\n\n if (aiDrawer?.onToggleFocusMode && (value === aiDrawer?.id || value === null)) {\n fireNonCancelableEvent(aiDrawer.onToggleFocusMode, {\n isExpanded: !!value,\n });\n }\n };\n\n const onGlobalDrawerFocus = (drawerId: string, open: boolean) => {\n globalDrawersFocusControl.setFocus({ force: true, drawerId, open });\n };\n\n const onAddNewActiveDrawer = (drawerId: string) => {\n // If either a local drawer or a bottom drawer is already open, and we attempt to open a new one,\n // it will replace the existing one instead of opening an additional drawer,\n // since only one local drawer is supported. Therefore, layout calculations are not necessary.\n if ((activeDrawer && drawers?.find(drawer => drawer.id === drawerId)) || activeGlobalBottomDrawerId === drawerId) {\n return;\n }\n // get the size of drawerId. it could be either local or global drawer\n const combinedDrawers = [...(drawers || []), ...globalDrawers];\n const newDrawer = combinedDrawers.find(drawer => drawer.id === drawerId);\n if (!newDrawer) {\n return;\n }\n const newDrawerSize = Math.min(newDrawer.defaultSize ?? drawerSizes[drawerId] ?? MIN_DRAWER_SIZE, MIN_DRAWER_SIZE);\n // check if the active drawers could be resized to fit the new drawers\n // to do this, we need to take all active drawers, sum up their min sizes, truncate it from resizableSpaceAvailable\n // and compare a given number with the new drawer id min size\n\n // the total size of all global drawers resized to their min size\n const availableSpaceForNewDrawer = resizableSpaceAvailable - totalActiveDrawersMinSize;\n if (availableSpaceForNewDrawer >= newDrawerSize) {\n return;\n }\n\n // now we made sure we cannot accommodate the new drawer with existing ones\n closeFirstDrawer();\n };\n\n const onGlobalBottomDrawerFocus = () => {\n bottomDrawersFocusControl.setFocus();\n };\n\n const { featureNotificationsProps, onOpenFeatureNotificationsDrawer, featureNotificationsMessageHandler } =\n useFeatureNotifications();\n\n const {\n drawers,\n activeDrawer,\n minDrawerSize,\n minGlobalDrawersSizes,\n activeDrawerSize,\n ariaLabelsWithDrawers,\n globalDrawers,\n activeGlobalDrawers,\n activeGlobalDrawersIds,\n activeGlobalDrawersSizes,\n drawerSizes,\n drawersOpenQueue,\n onActiveDrawerChange,\n onActiveDrawerResize,\n onActiveGlobalDrawersChange,\n } = useDrawers(\n {\n ...rest,\n externalLocalRuntimeDrawers: featureNotificationsProps?.drawer && [featureNotificationsProps?.drawer],\n onGlobalDrawerFocus,\n onAddNewActiveDrawer,\n expandedDrawerId,\n setExpandedDrawerId,\n },\n ariaLabels,\n {\n ariaLabels,\n toolsHide,\n toolsOpen,\n tools,\n toolsWidth,\n onToolsToggle,\n }\n );\n const {\n aiDrawer,\n aiDrawerMessageHandler,\n onActiveAiDrawerChange,\n activeAiDrawer,\n activeAiDrawerId,\n activeAiDrawerSize,\n minAiDrawerSize,\n onActiveAiDrawerResize,\n } = useAiDrawer({\n getMaxAiDrawerSize: () => maxAiDrawerSize,\n onAiDrawerFocus: () => aiDrawerFocusControl.setFocus(),\n expandedDrawerId,\n setExpandedDrawerId,\n });\n const aiDrawerFocusControl = useAsyncFocusControl(!!activeAiDrawer?.id, true, activeAiDrawer?.id);\n\n const {\n bottomDrawers,\n activeBottomDrawer,\n onActiveBottomDrawerChange: onActiveGlobalBottomDrawerChange,\n activeBottomDrawerSize: activeGlobalBottomDrawerSize,\n minBottomDrawerSize: minGlobalBottomDrawerSize,\n onActiveBottomDrawerResize,\n bottomDrawersMessageHandler,\n } = useBottomDrawers({\n onBottomDrawerFocus: onGlobalBottomDrawerFocus,\n expandedDrawerId,\n setExpandedDrawerId,\n drawersOpenQueue,\n });\n const activeGlobalBottomDrawerId = activeBottomDrawer?.id ?? null;\n\n const checkAIDrawerIdExists = (id: string) => {\n return aiDrawer?.id === id;\n };\n\n const checkBottomDrawerIdExists = (id: string) => {\n return !!bottomDrawers.find(drawer => drawer.id === id);\n };\n\n const checkDrawerIdExists = (id: string) => {\n return checkAIDrawerIdExists(id) || checkBottomDrawerIdExists(id);\n };\n\n const drawerGenericMessageHandler = (message: WidgetMessage) => {\n switch (message.type) {\n case 'expandDrawer':\n if (!checkDrawerIdExists(message.payload.id)) {\n metrics.sendOpsMetricObject('awsui-widget-drawer-incorrect-id', {\n id: message.payload.id,\n type: message.type,\n bottomDrawers: bottomDrawers.map(drawer => drawer.id).join(','),\n aiDrawer: aiDrawer?.id ?? '',\n });\n }\n setExpandedDrawerId(message.payload.id);\n break;\n case 'exitExpandedMode':\n setExpandedDrawerId(null);\n break;\n }\n };\n\n useWidgetMessages(hasToolbar || forceEnableRuntimeMessages, message => {\n if (message.type === 'expandDrawer' || message.type === 'exitExpandedMode') {\n drawerGenericMessageHandler(message);\n return;\n }\n\n if (\n ['registerFeatureNotifications', 'showFeaturePromptIfPossible', 'clearFeatureNotifications'].includes(\n message.type\n )\n ) {\n featureNotificationsMessageHandler(message);\n return;\n }\n\n // eslint-disable-next-line no-restricted-syntax -- postMessage validation: runtime data shape check\n if (!('payload' in message && 'id' in message.payload)) {\n metrics.sendOpsMetricObject('awsui-widget-drawer-incorrect-payload', {\n type: message.type,\n bottomDrawers: bottomDrawers.map(drawer => drawer.id).join(','),\n aiDrawer: aiDrawer?.id ?? '',\n });\n return;\n }\n\n const { id } = message.payload;\n\n if (checkAIDrawerIdExists(id) || message.type === 'registerLeftDrawer') {\n aiDrawerMessageHandler(message);\n return;\n }\n\n if (checkBottomDrawerIdExists(id) || message.type === 'registerBottomDrawer') {\n bottomDrawersMessageHandler(message);\n return;\n }\n\n metrics.sendOpsMetricObject('awsui-widget-drawer-incorrect-id', {\n id,\n type: message.type,\n bottomDrawers: bottomDrawers.map(drawer => drawer.id).join(','),\n aiDrawer: aiDrawer?.id ?? '',\n });\n });\n\n const onActiveDrawerChangeHandler = (\n drawerId: string | null,\n params: OnChangeParams = { initiatedByUserAction: true }\n ) => {\n if (params.initiatedByUserAction) {\n setDrawerAnimationDisabled(false);\n }\n onActiveDrawerChange(drawerId, params);\n drawersFocusControl.setFocus();\n if (featureNotificationsProps?.drawer?.id && featureNotificationsProps?.drawer?.id === drawerId) {\n onOpenFeatureNotificationsDrawer();\n }\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 onSplitPanelToggleHandler = () => {\n setSplitPanelAnimationDisabled(false);\n setSplitPanelOpen(!splitPanelOpen);\n splitPanelFocusControl.setLastInteraction({ type: splitPanelOpen ? 'close' : 'open' });\n fireNonCancelableEvent(onSplitPanelToggle, { open: !splitPanelOpen });\n };\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\n const onSplitPanelPreferencesChangeHandler = (detail: AppLayoutProps.SplitPanelPreferences) => {\n setSplitPanelPreferences(detail);\n splitPanelFocusControl.setLastInteraction({ type: 'position' });\n fireNonCancelableEvent(onSplitPanelPreferencesChange, detail);\n };\n\n const [splitPanelSize = 0, setSplitPanelSize] = useControllable(\n controlledSplitPanelSize,\n onSplitPanelResize,\n getSplitPanelDefaultSize(splitPanelPreferences?.position ?? 'bottom'),\n { componentName: 'AppLayout', controlledProp: 'splitPanelSize', changeHandler: 'onSplitPanelResize' }\n );\n\n const [splitPanelReportedSize, setSplitPanelReportedSize] = useState(0);\n const [splitPanelHeaderBlockSize, setSplitPanelHeaderBlockSize] = useState(0);\n\n const onSplitPanelResizeHandler = (size: number) => {\n setSplitPanelSize(size);\n fireNonCancelableEvent(onSplitPanelResize, { size });\n };\n\n const [splitPanelToggleConfig, setSplitPanelToggleConfig] = useState<SplitPanelSideToggleProps>({\n ariaLabel: undefined,\n displayed: false,\n });\n\n const [bottomDrawerReportedSize, setBottomDrawerReportedSize] = useState(0);\n\n const globalDrawersFocusControl = useMultipleFocusControl(true, activeGlobalDrawersIds);\n const drawersFocusControl = useAsyncFocusControl(!!activeDrawer?.id, true, activeDrawer?.id);\n const bottomDrawersFocusControl = useAsyncFocusControl(\n !!activeGlobalBottomDrawerId,\n true,\n activeGlobalBottomDrawerId\n );\n const navigationFocusControl = useAsyncFocusControl(navigationOpen, navigationTriggerHide);\n const splitPanelFocusControl = useSplitPanelFocusControl([splitPanelPreferences, splitPanelOpen]);\n\n const onNavigationToggle = useStableCallback(({ isOpen, autoFocus }: { isOpen: boolean; autoFocus: boolean }) => {\n setNavigationAnimationDisabled(false);\n navigationFocusControl.setFocus({ force: false, autoFocus });\n fireNonCancelableEvent(onNavigationChange, { open: isOpen });\n });\n\n useImperativeHandle(forwardRef, () => ({\n closeNavigationIfNecessary: () => isMobile && onNavigationToggle({ isOpen: false, autoFocus: true }),\n openTools: () => onToolsToggle(true),\n focusToolsClose: () => drawersFocusControl.setFocus({ force: true }),\n focusActiveDrawer: () => drawersFocusControl.setFocus({ force: true }),\n focusSplitPanel: () => splitPanelFocusControl.setLastInteraction({ type: 'open' }),\n focusNavigation: () => navigationFocusControl.setFocus({ force: true }),\n }));\n\n const resolvedStickyNotifications = !!stickyNotifications && !isMobile;\n //navigation must be null if hidden so toolbar knows to hide the toggle button\n const resolvedNavigation = navigationHide ? null : navigation || <></>;\n //navigation must not be open if navigationHide is true\n const resolvedNavigationOpen = !!resolvedNavigation && navigationOpen;\n const {\n maxDrawerSize,\n maxSplitPanelSize,\n splitPanelForcedPosition,\n splitPanelPosition,\n maxGlobalDrawersSizes,\n resizableSpaceAvailable,\n maxAiDrawerSize,\n } = computeHorizontalLayout({\n activeDrawerSize: activeDrawer ? activeDrawerSize : 0,\n splitPanelSize,\n minContentWidth,\n navigationOpen: resolvedNavigationOpen,\n navigationWidth,\n placement,\n splitPanelOpen,\n splitPanelPosition: splitPanelPreferences?.position,\n isMobile,\n activeGlobalDrawersSizes,\n activeAiDrawerSize,\n });\n\n const verticalOffsets = computeVerticalLayout({\n topOffset: placement.insetBlockStart,\n hasVisibleToolbar: hasToolbar && toolbarState !== 'hide',\n notificationsHeight: notificationsHeight ?? 0,\n toolbarHeight: toolbarHeight ?? 0,\n stickyNotifications: resolvedStickyNotifications,\n });\n\n const { ref: intersectionObserverRef, isIntersecting } = useIntersectionObserver({ initialState: true });\n\n const rootRef = useMergeRefs(rootRefInternal, intersectionObserverRef, onMountRootRef);\n\n const discoveredBreadcrumbs = useGetGlobalBreadcrumbs(hasToolbar && !breadcrumbs);\n\n useGlobalScrollPadding(verticalOffsets.header ?? 0);\n\n const getMaxGlobalBottomDrawerHeight = useCallback(() => {\n const splitPanelSize = splitPanelOpen && splitPanelPosition === 'bottom' ? splitPanelReportedSize : 0;\n const availableHeight =\n document.documentElement.clientHeight - placement.insetBlockStart - placement.insetBlockEnd - splitPanelSize;\n\n // skip reading sizes in JSDOM\n if (availableHeight === 0) {\n return Infinity;\n }\n\n // If the page is likely zoomed in at 200%, allow the split panel to fill the content area.\n return availableHeight < 400 ? availableHeight - 40 : availableHeight - 250;\n }, [splitPanelOpen, splitPanelPosition, splitPanelReportedSize, placement.insetBlockStart, placement.insetBlockEnd]);\n\n const appLayoutInternals: AppLayoutInternals = {\n ariaLabels: ariaLabelsWithDrawers,\n headerVariant,\n isMobile,\n breadcrumbs,\n discoveredBreadcrumbs,\n stickyNotifications: resolvedStickyNotifications,\n navigationOpen: resolvedNavigationOpen,\n navigation: resolvedNavigation,\n navigationFocusControl,\n activeDrawer,\n activeDrawerSize,\n minDrawerSize,\n maxDrawerSize,\n minGlobalDrawersSizes,\n maxGlobalDrawersSizes,\n drawers: drawers!,\n globalDrawers,\n activeGlobalDrawers,\n activeGlobalDrawersIds,\n activeGlobalDrawersSizes,\n onActiveGlobalDrawersChange: (drawerId: string, params: OnChangeParams) => {\n if (params.initiatedByUserAction) {\n setDrawerAnimationDisabled(false);\n }\n onActiveGlobalDrawersChange(drawerId, params);\n },\n drawersFocusControl,\n globalDrawersFocusControl,\n splitPanelPosition,\n splitPanelToggleConfig,\n splitPanelOpen,\n splitPanelControlId,\n splitPanelFocusControl,\n placement,\n toolbarState,\n setToolbarState,\n verticalOffsets,\n drawersOpenQueue: drawersOpenQueue.current,\n setToolbarHeight,\n setNotificationsHeight,\n onSplitPanelToggle: onSplitPanelToggleHandler,\n onNavigationToggle: isOpen => onNavigationToggle({ isOpen, autoFocus: true }),\n onActiveDrawerChange: onActiveDrawerChangeHandler,\n onActiveDrawerResize,\n splitPanelAnimationDisabled,\n drawerAnimationDisabled,\n expandedDrawerId,\n setExpandedDrawerId,\n aiDrawer,\n onActiveAiDrawerChange,\n activeAiDrawer,\n activeAiDrawerId,\n activeAiDrawerSize,\n minAiDrawerSize,\n maxAiDrawerSize,\n aiDrawerFocusControl,\n onActiveAiDrawerResize,\n };\n\n const splitPanelInternals: SplitPanelProviderProps = {\n bottomOffset: 0,\n getMaxHeight: useCallback(() => {\n const bottomDrawerHeight = activeGlobalBottomDrawerId ? bottomDrawerReportedSize : 0;\n const availableHeight =\n document.documentElement.clientHeight -\n placement.insetBlockStart -\n placement.insetBlockEnd -\n bottomDrawerHeight;\n // If the page is likely zoomed in at 200%, allow the split panel to fill the content area.\n return availableHeight < 400 ? availableHeight - 40 : availableHeight - 250;\n }, [activeGlobalBottomDrawerId, bottomDrawerReportedSize, placement.insetBlockEnd, placement.insetBlockStart]),\n maxWidth: maxSplitPanelSize,\n isForcedPosition: splitPanelForcedPosition,\n isOpen: splitPanelOpen,\n leftOffset: 0,\n onPreferencesChange: onSplitPanelPreferencesChangeHandler,\n onResize: onSplitPanelResizeHandler,\n onToggle: onSplitPanelToggleHandler,\n position: splitPanelPosition,\n reportSize: useStableCallback(size => setSplitPanelReportedSize(size)),\n reportHeaderHeight: useStableCallback(size => setSplitPanelHeaderBlockSize(size)),\n headerHeight: splitPanelHeaderBlockSize,\n rightOffset: 0,\n size: splitPanelSize,\n topOffset: 0,\n setSplitPanelToggle: setSplitPanelToggleConfig,\n refs: splitPanelFocusControl.refs,\n };\n\n const closeFirstDrawer = useStableCallback(() => {\n let drawerToClose = drawersOpenQueue.current[drawersOpenQueue.current.length - 1];\n if (drawerToClose === activeBottomDrawer?.id) {\n drawerToClose = drawersOpenQueue.current[drawersOpenQueue.current.length - 2];\n }\n if (activeDrawer && activeDrawer?.id === drawerToClose) {\n onActiveDrawerChange(null, { initiatedByUserAction: true });\n } else if (activeGlobalDrawersIds.includes(drawerToClose)) {\n onActiveGlobalDrawersChange(drawerToClose, { initiatedByUserAction: true });\n }\n });\n\n useEffect(() => {\n // Close navigation drawer on mobile so that the main content is visible\n if (isMobile) {\n onNavigationToggle({ isOpen: false, autoFocus: false });\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [isMobile]);\n\n const getTotalActiveDrawersMinSize = () => {\n const combinedDrawers = [...(drawers || []), ...globalDrawers];\n let result = activeGlobalDrawersIds\n .map(activeDrawerId =>\n Math.min(\n combinedDrawers.find(drawer => drawer.id === activeDrawerId)?.defaultSize ?? MIN_DRAWER_SIZE,\n MIN_DRAWER_SIZE\n )\n )\n .reduce((acc, curr) => acc + curr, 0);\n if (activeDrawer) {\n result += Math.min(activeDrawer?.defaultSize ?? MIN_DRAWER_SIZE, MIN_DRAWER_SIZE);\n }\n if (activeAiDrawer) {\n result += Math.min(activeAiDrawer?.defaultSize ?? MIN_DRAWER_SIZE, MIN_DRAWER_SIZE);\n }\n\n return result;\n };\n\n const totalActiveDrawersMinSize = getTotalActiveDrawersMinSize();\n\n useEffect(() => {\n if (isMobile) {\n return;\n }\n\n const activeNavigationWidth = !navigationHide && navigationOpen ? navigationWidth : 0;\n const scrollWidth = activeNavigationWidth + CONTENT_PADDING + totalActiveDrawersMinSize;\n const hasHorizontalScroll = scrollWidth > placement.inlineSize;\n if (hasHorizontalScroll) {\n if (!navigationHide && navigationOpen) {\n onNavigationToggle({ isOpen: false, autoFocus: false });\n return;\n }\n\n closeFirstDrawer();\n }\n }, [\n totalActiveDrawersMinSize,\n closeFirstDrawer,\n isMobile,\n navigationHide,\n navigationOpen,\n navigationWidth,\n onNavigationToggle,\n placement.inlineSize,\n ]);\n\n /**\n * Returns true if the AppLayout is nested\n * Does not apply to iframe\n */\n const getIsNestedInAppLayout = (element: HTMLElement | null): boolean => {\n let currentElement: Element | null = element?.parentElement ?? null;\n\n // this traverse is needed only for JSDOM\n // in real browsers the globalVar will be propagated to all descendants and this loops exits after initial iteration\n while (currentElement) {\n if (getComputedStyle(currentElement).getPropertyValue(globalVars.stickyVerticalTopOffset)) {\n return true;\n }\n currentElement = currentElement.parentElement;\n }\n\n return false;\n };\n\n const splitPanelOffsets = computeSplitPanelOffsets({\n placement,\n hasSplitPanel: !!splitPanel,\n splitPanelOpen,\n splitPanelPosition,\n splitPanelFullHeight: splitPanelReportedSize,\n splitPanelHeaderHeight: splitPanelHeaderBlockSize,\n });\n\n return {\n rootRef,\n isIntersecting,\n appLayoutInternals,\n splitPanelInternals,\n widgetizedState: {\n ...appLayoutInternals,\n aiDrawerExpandedMode: expandedDrawerId === activeAiDrawer?.id,\n isNested,\n navigationAnimationDisabled,\n verticalOffsets,\n splitPanelOffsets,\n activeGlobalBottomDrawerId,\n onActiveGlobalBottomDrawerChange,\n activeGlobalBottomDrawerSize,\n bottomDrawerReportedSize,\n minGlobalBottomDrawerSize,\n getMaxGlobalBottomDrawerHeight,\n reportBottomDrawerSize: useStableCallback(size => setBottomDrawerReportedSize(size)),\n onActiveBottomDrawerResize,\n bottomDrawers,\n bottomDrawersFocusControl,\n featureNotificationsProps,\n },\n };\n};\n"]}
1
+ {"version":3,"file":"use-app-layout.js","sourceRoot":"","sources":["../../../../../src/app-layout/visual-refresh-toolbar/state/use-app-layout.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 React, { ForwardedRef, useCallback, useEffect, useImperativeHandle, useRef, useState } from 'react';\n\nimport { useMergeRefs, useStableCallback, useUniqueId, warnOnce } from '@cloudscape-design/component-toolkit/internal';\n\nimport { SplitPanelSideToggleProps } from '../../../internal/context/split-panel-context';\nimport { fireNonCancelableEvent } from '../../../internal/events';\nimport { useControllable } from '../../../internal/hooks/use-controllable';\nimport { useIntersectionObserver } from '../../../internal/hooks/use-intersection-observer';\nimport { useMobile } from '../../../internal/hooks/use-mobile';\nimport { metrics } from '../../../internal/metrics';\nimport { useGetGlobalBreadcrumbs } from '../../../internal/plugins/helpers/use-global-breadcrumbs';\nimport { WidgetMessage } from '../../../internal/plugins/widget/interfaces';\nimport globalVars from '../../../internal/styles/global-vars';\nimport { getSplitPanelDefaultSize } from '../../../split-panel/utils/size-utils';\nimport { AppLayoutProps } from '../../interfaces';\nimport { SplitPanelProviderProps } from '../../split-panel';\nimport { MIN_DRAWER_SIZE, OnChangeParams, useDrawers } from '../../utils/use-drawers';\nimport { useAsyncFocusControl, useMultipleFocusControl } from '../../utils/use-focus-control';\nimport { useGlobalScrollPadding } from '../../utils/use-global-scroll-padding';\nimport { useSplitPanelFocusControl } from '../../utils/use-split-panel-focus-control';\nimport {\n computeHorizontalLayout,\n computeSplitPanelOffsets,\n computeVerticalLayout,\n CONTENT_PADDING,\n} from '../compute-layout';\nimport { AppLayoutState } from '../interfaces';\nimport { AppLayoutInternalProps, AppLayoutInternals } from '../interfaces';\nimport { useAiDrawer } from './use-ai-drawer';\nimport { useBottomDrawers } from './use-bottom-drawers';\nimport { useFeatureNotifications } from './use-feature-notifications';\nimport { useWidgetMessages } from './use-widget-messages';\n\nexport const useAppLayout = (\n hasToolbar: boolean,\n {\n ariaLabels,\n navigationOpen,\n navigationWidth,\n navigationCloseBehavior,\n navigationCollapsedWidth,\n navigation,\n navigationHide,\n onNavigationChange,\n tools,\n toolsOpen: controlledToolsOpen,\n onToolsChange,\n toolsHide,\n toolsWidth,\n headerVariant,\n breadcrumbs,\n stickyNotifications,\n splitPanelPreferences: controlledSplitPanelPreferences,\n splitPanelOpen: controlledSplitPanelOpen,\n splitPanel,\n splitPanelSize: controlledSplitPanelSize,\n onSplitPanelToggle,\n onSplitPanelResize,\n onSplitPanelPreferencesChange,\n minContentWidth,\n placement,\n navigationTriggerHide,\n ...rest\n }: AppLayoutInternalProps,\n forwardRef: ForwardedRef<AppLayoutProps.Ref>\n): AppLayoutState => {\n const isMobile = useMobile();\n const navigationCollapsible = navigationCloseBehavior === 'collapse';\n\n if (navigationCollapsible && navigationCollapsedWidth !== undefined && navigationCollapsedWidth >= navigationWidth) {\n warnOnce(\n 'AppLayout',\n '`navigationCollapsedWidth` should be smaller than `navigationWidth`. ' +\n 'When collapsed width equals or exceeds the expanded width, the ARIA expanded/collapsed semantics become inverted.'\n );\n }\n\n const splitPanelControlId = useUniqueId('split-panel');\n const [toolbarState, setToolbarState] = useState<'show' | 'hide'>('show');\n const [toolbarHeight, setToolbarHeight] = useState(0);\n const [notificationsHeight, setNotificationsHeight] = useState(0);\n const [navigationAnimationDisabled, setNavigationAnimationDisabled] = useState(true);\n const [splitPanelAnimationDisabled, setSplitPanelAnimationDisabled] = useState(true);\n const [drawerAnimationDisabled, setDrawerAnimationDisabled] = useState(true);\n const [isNested, setIsNested] = useState(false);\n const [expandedDrawerId, setInternalExpandedDrawerId] = useState<string | null>(null);\n const rootRefInternal = useRef<HTMLDivElement>(null);\n // This workaround ensures the ref is defined before checking if the app layout is nested.\n // On initial render, the ref might be undefined because this component loads asynchronously via the widget API.\n const onMountRootRef = useCallback(node => {\n setIsNested(getIsNestedInAppLayout(node));\n }, []);\n const { __forceEnableRuntimeMessages: forceEnableRuntimeMessages } = rest as any;\n\n const [toolsOpen = false, setToolsOpen] = useControllable(controlledToolsOpen, onToolsChange, false, {\n componentName: 'AppLayout',\n controlledProp: 'toolsOpen',\n changeHandler: 'onToolsChange',\n });\n const onToolsToggle = (open: boolean) => {\n setDrawerAnimationDisabled(false);\n setToolsOpen(open);\n drawersFocusControl.setFocus();\n fireNonCancelableEvent(onToolsChange, { open });\n };\n\n const setExpandedDrawerId = (value: string | null) => {\n setInternalExpandedDrawerId(value);\n\n if (aiDrawer?.onToggleFocusMode && (value === aiDrawer?.id || value === null)) {\n fireNonCancelableEvent(aiDrawer.onToggleFocusMode, {\n isExpanded: !!value,\n });\n }\n };\n\n const onGlobalDrawerFocus = (drawerId: string, open: boolean) => {\n globalDrawersFocusControl.setFocus({ force: true, drawerId, open });\n };\n\n const onAddNewActiveDrawer = (drawerId: string) => {\n // If either a local drawer or a bottom drawer is already open, and we attempt to open a new one,\n // it will replace the existing one instead of opening an additional drawer,\n // since only one local drawer is supported. Therefore, layout calculations are not necessary.\n if ((activeDrawer && drawers?.find(drawer => drawer.id === drawerId)) || activeGlobalBottomDrawerId === drawerId) {\n return;\n }\n // get the size of drawerId. it could be either local or global drawer\n const combinedDrawers = [...(drawers || []), ...globalDrawers];\n const newDrawer = combinedDrawers.find(drawer => drawer.id === drawerId);\n if (!newDrawer) {\n return;\n }\n const newDrawerSize = Math.min(newDrawer.defaultSize ?? drawerSizes[drawerId] ?? MIN_DRAWER_SIZE, MIN_DRAWER_SIZE);\n // check if the active drawers could be resized to fit the new drawers\n // to do this, we need to take all active drawers, sum up their min sizes, truncate it from resizableSpaceAvailable\n // and compare a given number with the new drawer id min size\n\n // the total size of all global drawers resized to their min size\n const availableSpaceForNewDrawer = resizableSpaceAvailable - totalActiveDrawersMinSize;\n if (availableSpaceForNewDrawer >= newDrawerSize) {\n return;\n }\n\n // now we made sure we cannot accommodate the new drawer with existing ones\n closeFirstDrawer();\n };\n\n const onGlobalBottomDrawerFocus = () => {\n bottomDrawersFocusControl.setFocus();\n };\n\n const { featureNotificationsProps, onOpenFeatureNotificationsDrawer, featureNotificationsMessageHandler } =\n useFeatureNotifications();\n\n const {\n drawers,\n activeDrawer,\n minDrawerSize,\n minGlobalDrawersSizes,\n activeDrawerSize,\n ariaLabelsWithDrawers,\n globalDrawers,\n activeGlobalDrawers,\n activeGlobalDrawersIds,\n activeGlobalDrawersSizes,\n drawerSizes,\n drawersOpenQueue,\n onActiveDrawerChange,\n onActiveDrawerResize,\n onActiveGlobalDrawersChange,\n } = useDrawers(\n {\n ...rest,\n externalLocalRuntimeDrawers: featureNotificationsProps?.drawer && [featureNotificationsProps?.drawer],\n onGlobalDrawerFocus,\n onAddNewActiveDrawer,\n expandedDrawerId,\n setExpandedDrawerId,\n },\n ariaLabels,\n {\n ariaLabels,\n toolsHide,\n toolsOpen,\n tools,\n toolsWidth,\n onToolsToggle,\n }\n );\n const {\n aiDrawer,\n aiDrawerMessageHandler,\n onActiveAiDrawerChange,\n activeAiDrawer,\n activeAiDrawerId,\n activeAiDrawerSize,\n minAiDrawerSize,\n onActiveAiDrawerResize,\n } = useAiDrawer({\n getMaxAiDrawerSize: () => maxAiDrawerSize,\n onAiDrawerFocus: () => aiDrawerFocusControl.setFocus(),\n expandedDrawerId,\n setExpandedDrawerId,\n });\n const aiDrawerFocusControl = useAsyncFocusControl(!!activeAiDrawer?.id, true, activeAiDrawer?.id);\n\n const {\n bottomDrawers,\n activeBottomDrawer,\n onActiveBottomDrawerChange: onActiveGlobalBottomDrawerChange,\n activeBottomDrawerSize: activeGlobalBottomDrawerSize,\n minBottomDrawerSize: minGlobalBottomDrawerSize,\n onActiveBottomDrawerResize,\n bottomDrawersMessageHandler,\n } = useBottomDrawers({\n onBottomDrawerFocus: onGlobalBottomDrawerFocus,\n expandedDrawerId,\n setExpandedDrawerId,\n drawersOpenQueue,\n });\n const activeGlobalBottomDrawerId = activeBottomDrawer?.id ?? null;\n\n const checkAIDrawerIdExists = (id: string) => {\n return aiDrawer?.id === id;\n };\n\n const checkBottomDrawerIdExists = (id: string) => {\n return !!bottomDrawers.find(drawer => drawer.id === id);\n };\n\n const checkDrawerIdExists = (id: string) => {\n return checkAIDrawerIdExists(id) || checkBottomDrawerIdExists(id);\n };\n\n const drawerGenericMessageHandler = (message: WidgetMessage) => {\n switch (message.type) {\n case 'expandDrawer':\n if (!checkDrawerIdExists(message.payload.id)) {\n metrics.sendOpsMetricObject('awsui-widget-drawer-incorrect-id', {\n id: message.payload.id,\n type: message.type,\n bottomDrawers: bottomDrawers.map(drawer => drawer.id).join(','),\n aiDrawer: aiDrawer?.id ?? '',\n });\n }\n setExpandedDrawerId(message.payload.id);\n break;\n case 'exitExpandedMode':\n setExpandedDrawerId(null);\n break;\n }\n };\n\n useWidgetMessages(hasToolbar || forceEnableRuntimeMessages, message => {\n if (message.type === 'expandDrawer' || message.type === 'exitExpandedMode') {\n drawerGenericMessageHandler(message);\n return;\n }\n\n if (\n ['registerFeatureNotifications', 'showFeaturePromptIfPossible', 'clearFeatureNotifications'].includes(\n message.type\n )\n ) {\n featureNotificationsMessageHandler(message);\n return;\n }\n\n // eslint-disable-next-line no-restricted-syntax -- postMessage validation: runtime data shape check\n if (!('payload' in message && 'id' in message.payload)) {\n metrics.sendOpsMetricObject('awsui-widget-drawer-incorrect-payload', {\n type: message.type,\n bottomDrawers: bottomDrawers.map(drawer => drawer.id).join(','),\n aiDrawer: aiDrawer?.id ?? '',\n });\n return;\n }\n\n const { id } = message.payload;\n\n if (checkAIDrawerIdExists(id) || message.type === 'registerLeftDrawer') {\n aiDrawerMessageHandler(message);\n return;\n }\n\n if (checkBottomDrawerIdExists(id) || message.type === 'registerBottomDrawer') {\n bottomDrawersMessageHandler(message);\n return;\n }\n\n metrics.sendOpsMetricObject('awsui-widget-drawer-incorrect-id', {\n id,\n type: message.type,\n bottomDrawers: bottomDrawers.map(drawer => drawer.id).join(','),\n aiDrawer: aiDrawer?.id ?? '',\n });\n });\n\n const onActiveDrawerChangeHandler = (\n drawerId: string | null,\n params: OnChangeParams = { initiatedByUserAction: true }\n ) => {\n if (params.initiatedByUserAction) {\n setDrawerAnimationDisabled(false);\n }\n onActiveDrawerChange(drawerId, params);\n drawersFocusControl.setFocus();\n if (featureNotificationsProps?.drawer?.id && featureNotificationsProps?.drawer?.id === drawerId) {\n onOpenFeatureNotificationsDrawer();\n }\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 onSplitPanelToggleHandler = () => {\n setSplitPanelAnimationDisabled(false);\n setSplitPanelOpen(!splitPanelOpen);\n splitPanelFocusControl.setLastInteraction({ type: splitPanelOpen ? 'close' : 'open' });\n fireNonCancelableEvent(onSplitPanelToggle, { open: !splitPanelOpen });\n };\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\n const onSplitPanelPreferencesChangeHandler = (detail: AppLayoutProps.SplitPanelPreferences) => {\n setSplitPanelPreferences(detail);\n splitPanelFocusControl.setLastInteraction({ type: 'position' });\n fireNonCancelableEvent(onSplitPanelPreferencesChange, detail);\n };\n\n const [splitPanelSize = 0, setSplitPanelSize] = useControllable(\n controlledSplitPanelSize,\n onSplitPanelResize,\n getSplitPanelDefaultSize(splitPanelPreferences?.position ?? 'bottom'),\n { componentName: 'AppLayout', controlledProp: 'splitPanelSize', changeHandler: 'onSplitPanelResize' }\n );\n\n const [splitPanelReportedSize, setSplitPanelReportedSize] = useState(0);\n const [splitPanelHeaderBlockSize, setSplitPanelHeaderBlockSize] = useState(0);\n\n const onSplitPanelResizeHandler = (size: number) => {\n setSplitPanelSize(size);\n fireNonCancelableEvent(onSplitPanelResize, { size });\n };\n\n const [splitPanelToggleConfig, setSplitPanelToggleConfig] = useState<SplitPanelSideToggleProps>({\n ariaLabel: undefined,\n displayed: false,\n });\n\n const [bottomDrawerReportedSize, setBottomDrawerReportedSize] = useState(0);\n\n const globalDrawersFocusControl = useMultipleFocusControl(true, activeGlobalDrawersIds);\n const drawersFocusControl = useAsyncFocusControl(!!activeDrawer?.id, true, activeDrawer?.id);\n const bottomDrawersFocusControl = useAsyncFocusControl(\n !!activeGlobalBottomDrawerId,\n true,\n activeGlobalBottomDrawerId\n );\n const navigationFocusControl = useAsyncFocusControl(navigationOpen, navigationTriggerHide);\n const splitPanelFocusControl = useSplitPanelFocusControl([splitPanelPreferences, splitPanelOpen]);\n\n const onNavigationToggle = useStableCallback(({ isOpen, autoFocus }: { isOpen: boolean; autoFocus: boolean }) => {\n setNavigationAnimationDisabled(false);\n navigationFocusControl.setFocus({ force: false, autoFocus });\n fireNonCancelableEvent(onNavigationChange, { open: isOpen });\n });\n\n useImperativeHandle(forwardRef, () => ({\n closeNavigationIfNecessary: () => isMobile && onNavigationToggle({ isOpen: false, autoFocus: true }),\n openTools: () => onToolsToggle(true),\n focusToolsClose: () => drawersFocusControl.setFocus({ force: true }),\n focusActiveDrawer: () => drawersFocusControl.setFocus({ force: true }),\n focusSplitPanel: () => splitPanelFocusControl.setLastInteraction({ type: 'open' }),\n focusNavigation: () => navigationFocusControl.setFocus({ force: true }),\n }));\n\n const resolvedStickyNotifications = !!stickyNotifications && !isMobile;\n //navigation must be null if hidden so toolbar knows to hide the toggle button\n const resolvedNavigation = navigationHide ? null : navigation || <></>;\n //navigation must not be open if navigationHide is true\n const resolvedNavigationOpen = !!resolvedNavigation && navigationOpen;\n const {\n maxDrawerSize,\n maxSplitPanelSize,\n splitPanelForcedPosition,\n splitPanelPosition,\n maxGlobalDrawersSizes,\n resizableSpaceAvailable,\n maxAiDrawerSize,\n } = computeHorizontalLayout({\n activeDrawerSize: activeDrawer ? activeDrawerSize : 0,\n splitPanelSize,\n minContentWidth,\n navigationOpen: resolvedNavigationOpen,\n navigationWidth,\n navigationCollapsible,\n navigationCollapsedWidth,\n placement,\n splitPanelOpen,\n splitPanelPosition: splitPanelPreferences?.position,\n isMobile,\n activeGlobalDrawersSizes,\n activeAiDrawerSize,\n });\n\n const verticalOffsets = computeVerticalLayout({\n topOffset: placement.insetBlockStart,\n hasVisibleToolbar: hasToolbar && toolbarState !== 'hide',\n notificationsHeight: notificationsHeight ?? 0,\n toolbarHeight: toolbarHeight ?? 0,\n stickyNotifications: resolvedStickyNotifications,\n });\n\n const { ref: intersectionObserverRef, isIntersecting } = useIntersectionObserver({ initialState: true });\n\n const rootRef = useMergeRefs(rootRefInternal, intersectionObserverRef, onMountRootRef);\n\n const discoveredBreadcrumbs = useGetGlobalBreadcrumbs(hasToolbar && !breadcrumbs);\n\n useGlobalScrollPadding(verticalOffsets.header ?? 0);\n\n const getMaxGlobalBottomDrawerHeight = useCallback(() => {\n const splitPanelSize = splitPanelOpen && splitPanelPosition === 'bottom' ? splitPanelReportedSize : 0;\n const availableHeight =\n document.documentElement.clientHeight - placement.insetBlockStart - placement.insetBlockEnd - splitPanelSize;\n\n // skip reading sizes in JSDOM\n if (availableHeight === 0) {\n return Infinity;\n }\n\n // If the page is likely zoomed in at 200%, allow the split panel to fill the content area.\n return availableHeight < 400 ? availableHeight - 40 : availableHeight - 250;\n }, [splitPanelOpen, splitPanelPosition, splitPanelReportedSize, placement.insetBlockStart, placement.insetBlockEnd]);\n\n const appLayoutInternals: AppLayoutInternals = {\n ariaLabels: ariaLabelsWithDrawers,\n headerVariant,\n isMobile,\n breadcrumbs,\n discoveredBreadcrumbs,\n stickyNotifications: resolvedStickyNotifications,\n navigationOpen: resolvedNavigationOpen,\n navigation: resolvedNavigation,\n navigationFocusControl,\n activeDrawer,\n activeDrawerSize,\n minDrawerSize,\n maxDrawerSize,\n minGlobalDrawersSizes,\n maxGlobalDrawersSizes,\n drawers: drawers!,\n globalDrawers,\n activeGlobalDrawers,\n activeGlobalDrawersIds,\n activeGlobalDrawersSizes,\n onActiveGlobalDrawersChange: (drawerId: string, params: OnChangeParams) => {\n if (params.initiatedByUserAction) {\n setDrawerAnimationDisabled(false);\n }\n onActiveGlobalDrawersChange(drawerId, params);\n },\n drawersFocusControl,\n globalDrawersFocusControl,\n splitPanelPosition,\n splitPanelToggleConfig,\n splitPanelOpen,\n splitPanelControlId,\n splitPanelFocusControl,\n placement,\n toolbarState,\n setToolbarState,\n verticalOffsets,\n drawersOpenQueue: drawersOpenQueue.current,\n setToolbarHeight,\n setNotificationsHeight,\n onSplitPanelToggle: onSplitPanelToggleHandler,\n onNavigationToggle: isOpen => onNavigationToggle({ isOpen, autoFocus: true }),\n onActiveDrawerChange: onActiveDrawerChangeHandler,\n onActiveDrawerResize,\n splitPanelAnimationDisabled,\n drawerAnimationDisabled,\n expandedDrawerId,\n setExpandedDrawerId,\n aiDrawer,\n onActiveAiDrawerChange,\n activeAiDrawer,\n activeAiDrawerId,\n activeAiDrawerSize,\n minAiDrawerSize,\n maxAiDrawerSize,\n aiDrawerFocusControl,\n onActiveAiDrawerResize,\n };\n\n const splitPanelInternals: SplitPanelProviderProps = {\n bottomOffset: 0,\n getMaxHeight: useCallback(() => {\n const bottomDrawerHeight = activeGlobalBottomDrawerId ? bottomDrawerReportedSize : 0;\n const availableHeight =\n document.documentElement.clientHeight -\n placement.insetBlockStart -\n placement.insetBlockEnd -\n bottomDrawerHeight;\n // If the page is likely zoomed in at 200%, allow the split panel to fill the content area.\n return availableHeight < 400 ? availableHeight - 40 : availableHeight - 250;\n }, [activeGlobalBottomDrawerId, bottomDrawerReportedSize, placement.insetBlockEnd, placement.insetBlockStart]),\n maxWidth: maxSplitPanelSize,\n isForcedPosition: splitPanelForcedPosition,\n isOpen: splitPanelOpen,\n leftOffset: 0,\n onPreferencesChange: onSplitPanelPreferencesChangeHandler,\n onResize: onSplitPanelResizeHandler,\n onToggle: onSplitPanelToggleHandler,\n position: splitPanelPosition,\n reportSize: useStableCallback(size => setSplitPanelReportedSize(size)),\n reportHeaderHeight: useStableCallback(size => setSplitPanelHeaderBlockSize(size)),\n headerHeight: splitPanelHeaderBlockSize,\n rightOffset: 0,\n size: splitPanelSize,\n topOffset: 0,\n setSplitPanelToggle: setSplitPanelToggleConfig,\n refs: splitPanelFocusControl.refs,\n };\n\n const closeFirstDrawer = useStableCallback(() => {\n let drawerToClose = drawersOpenQueue.current[drawersOpenQueue.current.length - 1];\n if (drawerToClose === activeBottomDrawer?.id) {\n drawerToClose = drawersOpenQueue.current[drawersOpenQueue.current.length - 2];\n }\n if (activeDrawer && activeDrawer?.id === drawerToClose) {\n onActiveDrawerChange(null, { initiatedByUserAction: true });\n } else if (activeGlobalDrawersIds.includes(drawerToClose)) {\n onActiveGlobalDrawersChange(drawerToClose, { initiatedByUserAction: true });\n }\n });\n\n useEffect(() => {\n // Close navigation drawer on mobile so that the main content is visible\n if (isMobile) {\n onNavigationToggle({ isOpen: false, autoFocus: false });\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [isMobile]);\n\n const getTotalActiveDrawersMinSize = () => {\n const combinedDrawers = [...(drawers || []), ...globalDrawers];\n let result = activeGlobalDrawersIds\n .map(activeDrawerId =>\n Math.min(\n combinedDrawers.find(drawer => drawer.id === activeDrawerId)?.defaultSize ?? MIN_DRAWER_SIZE,\n MIN_DRAWER_SIZE\n )\n )\n .reduce((acc, curr) => acc + curr, 0);\n if (activeDrawer) {\n result += Math.min(activeDrawer?.defaultSize ?? MIN_DRAWER_SIZE, MIN_DRAWER_SIZE);\n }\n if (activeAiDrawer) {\n result += Math.min(activeAiDrawer?.defaultSize ?? MIN_DRAWER_SIZE, MIN_DRAWER_SIZE);\n }\n\n return result;\n };\n\n const totalActiveDrawersMinSize = getTotalActiveDrawersMinSize();\n\n useEffect(() => {\n if (isMobile) {\n return;\n }\n\n function getActiveNavigationWidth() {\n if (navigationHide) {\n return 0;\n }\n if (navigationOpen) {\n return navigationWidth;\n }\n if (navigationCollapsible) {\n return navigationCollapsedWidth;\n }\n return 0;\n }\n\n const activeNavigationWidth = getActiveNavigationWidth();\n const scrollWidth = activeNavigationWidth + CONTENT_PADDING + totalActiveDrawersMinSize;\n const hasHorizontalScroll = scrollWidth > placement.inlineSize;\n if (hasHorizontalScroll) {\n if (!navigationHide && navigationOpen) {\n onNavigationToggle({ isOpen: false, autoFocus: false });\n return;\n }\n\n closeFirstDrawer();\n }\n }, [\n totalActiveDrawersMinSize,\n closeFirstDrawer,\n isMobile,\n navigationCollapsible,\n navigationCollapsedWidth,\n navigationHide,\n navigationOpen,\n navigationWidth,\n onNavigationToggle,\n placement.inlineSize,\n ]);\n\n /**\n * Returns true if the AppLayout is nested\n * Does not apply to iframe\n */\n const getIsNestedInAppLayout = (element: HTMLElement | null): boolean => {\n let currentElement: Element | null = element?.parentElement ?? null;\n\n // this traverse is needed only for JSDOM\n // in real browsers the globalVar will be propagated to all descendants and this loops exits after initial iteration\n while (currentElement) {\n if (getComputedStyle(currentElement).getPropertyValue(globalVars.stickyVerticalTopOffset)) {\n return true;\n }\n currentElement = currentElement.parentElement;\n }\n\n return false;\n };\n\n const splitPanelOffsets = computeSplitPanelOffsets({\n placement,\n hasSplitPanel: !!splitPanel,\n splitPanelOpen,\n splitPanelPosition,\n splitPanelFullHeight: splitPanelReportedSize,\n splitPanelHeaderHeight: splitPanelHeaderBlockSize,\n });\n\n return {\n rootRef,\n isIntersecting,\n appLayoutInternals,\n splitPanelInternals,\n widgetizedState: {\n ...appLayoutInternals,\n aiDrawerExpandedMode: expandedDrawerId === activeAiDrawer?.id,\n isNested,\n navigationAnimationDisabled,\n verticalOffsets,\n splitPanelOffsets,\n activeGlobalBottomDrawerId,\n onActiveGlobalBottomDrawerChange,\n activeGlobalBottomDrawerSize,\n bottomDrawerReportedSize,\n minGlobalBottomDrawerSize,\n getMaxGlobalBottomDrawerHeight,\n reportBottomDrawerSize: useStableCallback(size => setBottomDrawerReportedSize(size)),\n onActiveBottomDrawerResize,\n bottomDrawers,\n bottomDrawersFocusControl,\n featureNotificationsProps,\n navigationCollapsible,\n navigationCollapsedWidth,\n },\n };\n};\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"use-skeleton-slots-attributes.d.ts","sourceRoot":"","sources":["../../../../../src/app-layout/visual-refresh-toolbar/state/use-skeleton-slots-attributes.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,sBAAsB,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AACvE,OAAO,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AAOjE,eAAO,MAAM,0BAA0B,GACrC,YAAY,OAAO,EACnB,gBAAgB,sBAAsB,EACtC,gBAAgB,cAAc,KAC7B,uBA2EF,CAAC"}
1
+ {"version":3,"file":"use-skeleton-slots-attributes.d.ts","sourceRoot":"","sources":["../../../../../src/app-layout/visual-refresh-toolbar/state/use-skeleton-slots-attributes.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,sBAAsB,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AACvE,OAAO,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AAOjE,eAAO,MAAM,0BAA0B,GACrC,YAAY,OAAO,EACnB,gBAAgB,sBAAsB,EACtC,gBAAgB,cAAc,KAC7B,uBA6EF,CAAC"}
@@ -9,7 +9,7 @@ import styles from '../skeleton/styles.css.js';
9
9
  const contentTypeCustomWidths = ['dashboard', 'cards', 'table'];
10
10
  export const useSkeletonSlotsAttributes = (hasToolbar, appLayoutProps, appLayoutState) => {
11
11
  var _a, _b, _c;
12
- const { isNested, activeDrawerSize, navigationOpen, verticalOffsets, splitPanelOffsets, activeDrawer, expandedDrawerId, activeAiDrawer, activeGlobalBottomDrawerId, } = (_a = appLayoutState.widgetizedState) !== null && _a !== void 0 ? _a : {};
12
+ const { isNested, activeDrawerSize, navigationOpen, verticalOffsets, splitPanelOffsets, activeDrawer, expandedDrawerId, activeAiDrawer, activeGlobalBottomDrawerId, navigationCollapsedWidth, } = (_a = appLayoutState.widgetizedState) !== null && _a !== void 0 ? _a : {};
13
13
  const { contentType, placement, maxContentWidth, navigationWidth, minContentWidth, disableContentPaddings } = appLayoutProps;
14
14
  const isMobile = useMobile();
15
15
  const toolsOpen = !!activeDrawer;
@@ -30,6 +30,7 @@ export const useSkeletonSlotsAttributes = (hasToolbar, appLayoutProps, appLayout
30
30
  minBlockSize: isNested ? '100%' : `calc(100vh - ${placement.insetBlockStart + placement.insetBlockEnd}px)`,
31
31
  [customCssProps.maxContentWidth]: isMaxWidth ? '100%' : maxContentWidth ? `${maxContentWidth}px` : '',
32
32
  [customCssProps.navigationWidth]: `${navigationWidth}px`,
33
+ [customCssProps.navigationCollapsedWidth]: `${navigationCollapsedWidth}px`,
33
34
  [customCssProps.toolsWidth]: `${activeDrawerSize}px`,
34
35
  },
35
36
  };
@@ -1 +1 @@
1
- {"version":3,"file":"use-skeleton-slots-attributes.js","sourceRoot":"","sources":["../../../../../src/app-layout/visual-refresh-toolbar/state/use-skeleton-slots-attributes.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 clsx from 'clsx';\n\nimport customCssProps from '../../../internal/generated/custom-css-properties';\nimport { useMobile } from '../../../internal/hooks/use-mobile';\nimport globalVars from '../../../internal/styles/global-vars';\nimport { AppLayoutInternalProps, AppLayoutState } from '../interfaces';\nimport { SkeletonSlotsAttributes } from '../skeleton/interfaces';\n\nimport testutilStyles from '../../test-classes/styles.css.js';\nimport styles from '../skeleton/styles.css.js';\n\nconst contentTypeCustomWidths: Array<string | undefined> = ['dashboard', 'cards', 'table'];\n\nexport const useSkeletonSlotsAttributes = (\n hasToolbar: boolean,\n appLayoutProps: AppLayoutInternalProps,\n appLayoutState: AppLayoutState\n): SkeletonSlotsAttributes => {\n const {\n isNested,\n activeDrawerSize,\n navigationOpen,\n verticalOffsets,\n splitPanelOffsets,\n activeDrawer,\n expandedDrawerId,\n activeAiDrawer,\n activeGlobalBottomDrawerId,\n } = appLayoutState.widgetizedState ?? {};\n const { contentType, placement, maxContentWidth, navigationWidth, minContentWidth, disableContentPaddings } =\n appLayoutProps;\n const isMobile = useMobile();\n const toolsOpen = !!activeDrawer;\n const drawerExpandedMode = !!expandedDrawerId;\n const aiDrawerExpandedMode = expandedDrawerId === activeAiDrawer?.id;\n const bottomDrawerExpandedMode = expandedDrawerId === activeGlobalBottomDrawerId;\n const anyPanelOpen = navigationOpen || toolsOpen;\n const isMaxWidth = maxContentWidth === Number.MAX_VALUE || maxContentWidth === Number.MAX_SAFE_INTEGER;\n\n const wrapperElAttributes = {\n className: clsx(styles.root, testutilStyles.root, {\n [styles['has-adaptive-widths-default']]: !contentTypeCustomWidths.includes(contentType),\n [styles['has-adaptive-widths-dashboard']]: contentType === 'dashboard',\n [styles['drawer-expanded-mode']]: drawerExpandedMode,\n [styles['ai-drawer-expanded-mode']]: aiDrawerExpandedMode,\n [styles['bottom-drawer-expanded-mode']]: bottomDrawerExpandedMode,\n }),\n style: {\n minBlockSize: isNested ? '100%' : `calc(100vh - ${placement.insetBlockStart + placement.insetBlockEnd}px)`,\n [customCssProps.maxContentWidth]: isMaxWidth ? '100%' : maxContentWidth ? `${maxContentWidth}px` : '',\n [customCssProps.navigationWidth]: `${navigationWidth}px`,\n [customCssProps.toolsWidth]: `${activeDrawerSize}px`,\n },\n };\n\n const mainElAttributes = {\n className: clsx(\n styles['main-landmark'],\n isMobile && anyPanelOpen && styles['unfocusable-mobile'],\n drawerExpandedMode && styles.hidden\n ),\n };\n\n const contentWrapperElAttributes = {\n className: clsx(styles.main, { [styles['main-disable-paddings']]: disableContentPaddings }),\n style: {\n paddingBlockEnd: splitPanelOffsets?.mainContentPaddingBlockEnd,\n ...(hasToolbar || !isNested\n ? {\n [globalVars.stickyVerticalTopOffset]: `${verticalOffsets?.header ?? 0}px`,\n [globalVars.stickyVerticalBottomOffset]: `${splitPanelOffsets?.stickyVerticalBottomOffset ?? 0}px`,\n }\n : {}),\n ...(!isMobile ? { minWidth: `${minContentWidth}px` } : {}),\n },\n };\n\n const contentHeaderElAttributes = {\n className: styles['content-header'],\n };\n\n const contentElAttributes = {\n className: clsx(styles.content, testutilStyles.content),\n };\n\n return {\n wrapperElAttributes,\n mainElAttributes,\n contentWrapperElAttributes,\n contentHeaderElAttributes,\n contentElAttributes,\n };\n};\n"]}
1
+ {"version":3,"file":"use-skeleton-slots-attributes.js","sourceRoot":"","sources":["../../../../../src/app-layout/visual-refresh-toolbar/state/use-skeleton-slots-attributes.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 clsx from 'clsx';\n\nimport customCssProps from '../../../internal/generated/custom-css-properties';\nimport { useMobile } from '../../../internal/hooks/use-mobile';\nimport globalVars from '../../../internal/styles/global-vars';\nimport { AppLayoutInternalProps, AppLayoutState } from '../interfaces';\nimport { SkeletonSlotsAttributes } from '../skeleton/interfaces';\n\nimport testutilStyles from '../../test-classes/styles.css.js';\nimport styles from '../skeleton/styles.css.js';\n\nconst contentTypeCustomWidths: Array<string | undefined> = ['dashboard', 'cards', 'table'];\n\nexport const useSkeletonSlotsAttributes = (\n hasToolbar: boolean,\n appLayoutProps: AppLayoutInternalProps,\n appLayoutState: AppLayoutState\n): SkeletonSlotsAttributes => {\n const {\n isNested,\n activeDrawerSize,\n navigationOpen,\n verticalOffsets,\n splitPanelOffsets,\n activeDrawer,\n expandedDrawerId,\n activeAiDrawer,\n activeGlobalBottomDrawerId,\n navigationCollapsedWidth,\n } = appLayoutState.widgetizedState ?? {};\n const { contentType, placement, maxContentWidth, navigationWidth, minContentWidth, disableContentPaddings } =\n appLayoutProps;\n const isMobile = useMobile();\n const toolsOpen = !!activeDrawer;\n const drawerExpandedMode = !!expandedDrawerId;\n const aiDrawerExpandedMode = expandedDrawerId === activeAiDrawer?.id;\n const bottomDrawerExpandedMode = expandedDrawerId === activeGlobalBottomDrawerId;\n const anyPanelOpen = navigationOpen || toolsOpen;\n const isMaxWidth = maxContentWidth === Number.MAX_VALUE || maxContentWidth === Number.MAX_SAFE_INTEGER;\n\n const wrapperElAttributes = {\n className: clsx(styles.root, testutilStyles.root, {\n [styles['has-adaptive-widths-default']]: !contentTypeCustomWidths.includes(contentType),\n [styles['has-adaptive-widths-dashboard']]: contentType === 'dashboard',\n [styles['drawer-expanded-mode']]: drawerExpandedMode,\n [styles['ai-drawer-expanded-mode']]: aiDrawerExpandedMode,\n [styles['bottom-drawer-expanded-mode']]: bottomDrawerExpandedMode,\n }),\n style: {\n minBlockSize: isNested ? '100%' : `calc(100vh - ${placement.insetBlockStart + placement.insetBlockEnd}px)`,\n [customCssProps.maxContentWidth]: isMaxWidth ? '100%' : maxContentWidth ? `${maxContentWidth}px` : '',\n [customCssProps.navigationWidth]: `${navigationWidth}px`,\n [customCssProps.navigationCollapsedWidth]: `${navigationCollapsedWidth}px`,\n [customCssProps.toolsWidth]: `${activeDrawerSize}px`,\n },\n };\n\n const mainElAttributes = {\n className: clsx(\n styles['main-landmark'],\n isMobile && anyPanelOpen && styles['unfocusable-mobile'],\n drawerExpandedMode && styles.hidden\n ),\n };\n\n const contentWrapperElAttributes = {\n className: clsx(styles.main, { [styles['main-disable-paddings']]: disableContentPaddings }),\n style: {\n paddingBlockEnd: splitPanelOffsets?.mainContentPaddingBlockEnd,\n ...(hasToolbar || !isNested\n ? {\n [globalVars.stickyVerticalTopOffset]: `${verticalOffsets?.header ?? 0}px`,\n [globalVars.stickyVerticalBottomOffset]: `${splitPanelOffsets?.stickyVerticalBottomOffset ?? 0}px`,\n }\n : {}),\n ...(!isMobile ? { minWidth: `${minContentWidth}px` } : {}),\n },\n };\n\n const contentHeaderElAttributes = {\n className: styles['content-header'],\n };\n\n const contentElAttributes = {\n className: clsx(styles.content, testutilStyles.content),\n };\n\n return {\n wrapperElAttributes,\n mainElAttributes,\n contentWrapperElAttributes,\n contentHeaderElAttributes,\n contentElAttributes,\n };\n};\n"]}
@@ -10,6 +10,7 @@ export interface ToolbarProps {
10
10
  ariaLabels?: AppLayoutProps.Labels;
11
11
  hasNavigation?: boolean;
12
12
  navigationOpen?: boolean;
13
+ navigationCollapsible?: boolean;
13
14
  onNavigationToggle?: (open: boolean) => void;
14
15
  navigationFocusRef?: React.Ref<Focusable>;
15
16
  hasBreadcrumbsPortal?: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/app-layout/visual-refresh-toolbar/toolbar/index.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/app-layout/visual-refresh-toolbar/toolbar/index.tsx"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/app-layout/visual-refresh-toolbar/toolbar/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 React, { useEffect, useRef } from 'react';\nimport { Transition } from 'react-transition-group';\nimport clsx from 'clsx';\n\nimport { useResizeObserver } from '@cloudscape-design/component-toolkit/internal';\n\nimport { AppLayoutBuiltInErrorBoundary } from '../../../error-boundary/internal';\nimport { createWidgetizedComponent } from '../../../internal/widgets';\nimport { AppLayoutProps } from '../../interfaces';\nimport { OnChangeParams } from '../../utils/use-drawers';\nimport { Focusable, FocusControlMultipleStates } from '../../utils/use-focus-control';\nimport { AppLayoutInternals } from '../interfaces';\nimport { ToolbarSkeleton } from '../skeleton/skeleton-parts';\nimport { ToolbarSlot } from '../skeleton/slots';\nimport { ToolbarBreadcrumbsSection, ToolbarContainer } from '../skeleton/toolbar-container';\nimport { FeatureNotificationsProps } from '../state/use-feature-notifications';\nimport { DrawerTriggers, SplitPanelToggleProps } from './drawer-triggers';\nimport TriggerButton from './trigger-button';\n\nimport sharedStyles from '../../resize/styles.css.js';\nimport testutilStyles from '../../test-classes/styles.css.js';\nimport styles from './styles.css.js';\n\nexport { SplitPanelToggleProps };\n\nexport interface ToolbarProps {\n ariaLabels?: AppLayoutProps.Labels;\n // navigation\n hasNavigation?: boolean;\n navigationOpen?: boolean;\n onNavigationToggle?: (open: boolean) => void;\n navigationFocusRef?: React.Ref<Focusable>;\n\n // breadcrumbs\n hasBreadcrumbsPortal?: boolean;\n\n // split panel\n hasSplitPanel?: boolean;\n splitPanelToggleProps?: SplitPanelToggleProps;\n splitPanelFocusRef?: React.Ref<Focusable>;\n onSplitPanelToggle?: () => void;\n\n // drawers\n activeDrawerId?: string | null;\n drawers?: ReadonlyArray<AppLayoutProps.Drawer>;\n drawersFocusRef?: React.Ref<Focusable>;\n bottomDrawersFocusRef?: React.Ref<Focusable>;\n globalDrawersFocusControl?: FocusControlMultipleStates;\n onActiveDrawerChange?: (drawerId: string | null, params: OnChangeParams) => void;\n globalDrawers?: ReadonlyArray<AppLayoutProps.Drawer> | undefined;\n activeGlobalDrawersIds?: ReadonlyArray<string>;\n onActiveGlobalDrawersChange?: ((drawerId: string, params: OnChangeParams) => void) | undefined;\n bottomDrawers?: ReadonlyArray<AppLayoutProps.Drawer> | undefined;\n activeGlobalBottomDrawerId?: string | null;\n onActiveGlobalBottomDrawerChange?: (value: string | null, params: OnChangeParams) => void;\n\n expandedDrawerId?: string | null;\n setExpandedDrawerId?: (value: string | null) => void;\n\n aiDrawer?: AppLayoutProps.Drawer;\n onActiveAiDrawerChange?: (value: string | null) => void;\n activeAiDrawerId?: string | null;\n aiDrawerFocusRef?: React.Ref<Focusable>;\n}\n\nexport interface AppLayoutToolbarImplementationProps {\n appLayoutInternals: AppLayoutInternals;\n toolbarProps: ToolbarProps;\n featureNotificationsProps?: FeatureNotificationsProps;\n}\n\nexport function AppLayoutToolbarImplementation({\n appLayoutInternals,\n // the value could be undefined if this component is loaded as a widget by a different app layout version\n // not testable in a single-version setup\n toolbarProps = {},\n featureNotificationsProps,\n}: AppLayoutToolbarImplementationProps) {\n const {\n breadcrumbs,\n discoveredBreadcrumbs,\n verticalOffsets,\n isMobile,\n setToolbarHeight,\n aiDrawer,\n activeAiDrawer,\n onActiveAiDrawerChange,\n } = appLayoutInternals;\n const {\n ariaLabels,\n activeDrawerId,\n drawers,\n drawersFocusRef,\n onActiveDrawerChange,\n globalDrawersFocusControl,\n globalDrawers,\n activeGlobalDrawersIds,\n onActiveGlobalDrawersChange,\n hasNavigation,\n navigationOpen,\n navigationFocusRef,\n onNavigationToggle,\n hasSplitPanel,\n splitPanelFocusRef,\n splitPanelToggleProps,\n onSplitPanelToggle,\n expandedDrawerId,\n setExpandedDrawerId,\n aiDrawerFocusRef,\n onActiveGlobalBottomDrawerChange,\n activeGlobalBottomDrawerId,\n bottomDrawersFocusRef,\n bottomDrawers,\n } = toolbarProps;\n const drawerExpandedMode = !!expandedDrawerId;\n const ref = useRef<HTMLElement>(null);\n const aiDrawerTransitionRef = useRef<HTMLDivElement>(null);\n const activeAiDrawerId = activeAiDrawer?.id;\n useResizeObserver(ref, entry => setToolbarHeight(entry.borderBoxHeight));\n useEffect(() => {\n return () => {\n setToolbarHeight(0);\n };\n // unmount effect only\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n const anyPanelOpenInMobile =\n !!isMobile &&\n (!!activeDrawerId ||\n !!activeGlobalDrawersIds?.length ||\n !!activeAiDrawerId ||\n !!activeGlobalBottomDrawerId ||\n (!!navigationOpen && !!hasNavigation));\n useEffect(() => {\n if (anyPanelOpenInMobile) {\n document.body.classList.add(styles['block-body-scroll']);\n } else {\n document.body.classList.remove(styles['block-body-scroll']);\n }\n return () => {\n document.body.classList.remove(styles['block-body-scroll']);\n };\n }, [anyPanelOpenInMobile]);\n\n const navLandmarkAttributes = navigationOpen\n ? { role: 'presentation' }\n : { role: 'navigation', 'aria-label': ariaLabels?.navigation };\n\n return (\n <ToolbarSlot\n ref={ref}\n className={clsx((aiDrawer?.trigger || !!activeAiDrawerId) && styles['with-ai-drawer'], {\n [testutilStyles['mobile-bar']]: isMobile,\n })}\n style={{\n insetBlockStart: verticalOffsets.toolbar,\n }}\n >\n <AppLayoutBuiltInErrorBoundary appLayoutPart=\"left-drawer-trigger\">\n <Transition\n in={!!(aiDrawer?.trigger && !activeAiDrawerId)}\n timeout={{ enter: 0, exit: 165 }}\n mountOnEnter={true}\n unmountOnExit={true}\n nodeRef={aiDrawerTransitionRef}\n >\n {state => (\n <div\n className={clsx(!!aiDrawer?.trigger?.customIcon && styles['universal-toolbar-ai-custom'], [\n sharedStyles['with-motion-horizontal'],\n ])}\n style={{\n opacity: ['entering', 'exiting'].includes(state) ? 0 : 1,\n }}\n >\n <TriggerButton\n ariaLabel={aiDrawer?.ariaLabels?.triggerButton}\n ariaExpanded={!!activeAiDrawerId}\n iconName={aiDrawer?.trigger!.iconName}\n iconSvg={aiDrawer?.trigger!.iconSvg}\n customSvg={aiDrawer?.trigger!.customIcon}\n className={testutilStyles['ai-drawer-toggle']}\n onClick={() => {\n if (setExpandedDrawerId) {\n setExpandedDrawerId(null);\n }\n onActiveAiDrawerChange?.(aiDrawer?.id ?? null, { initiatedByUserAction: true });\n }}\n ref={aiDrawerFocusRef}\n selected={!drawerExpandedMode && !!activeAiDrawerId}\n disabled={anyPanelOpenInMobile}\n variant={aiDrawer?.trigger?.customIcon ? 'custom' : 'default'}\n testId={`awsui-app-layout-trigger-${aiDrawer?.id}`}\n isForPreviousActiveDrawer={true}\n />\n </div>\n )}\n </Transition>\n </AppLayoutBuiltInErrorBoundary>\n <ToolbarContainer hasAiDrawer={!!activeAiDrawerId}>\n {hasNavigation && (\n <nav {...navLandmarkAttributes} className={clsx(styles['universal-toolbar-nav'])}>\n <AppLayoutBuiltInErrorBoundary appLayoutPart=\"toolbar-trigger-nav\">\n <TriggerButton\n ariaLabel={ariaLabels?.navigationToggle ?? undefined}\n ariaExpanded={!drawerExpandedMode && navigationOpen}\n iconName=\"menu\"\n className={testutilStyles['navigation-toggle']}\n onClick={() => {\n if (setExpandedDrawerId) {\n setExpandedDrawerId(null);\n }\n if (navigationOpen && expandedDrawerId) {\n return;\n }\n onNavigationToggle?.(!navigationOpen);\n }}\n ref={navigationFocusRef}\n selected={!drawerExpandedMode && navigationOpen}\n disabled={anyPanelOpenInMobile}\n />\n </AppLayoutBuiltInErrorBoundary>\n </nav>\n )}\n {(breadcrumbs || discoveredBreadcrumbs) && (\n <AppLayoutBuiltInErrorBoundary appLayoutPart=\"breadcrumbs\">\n <ToolbarBreadcrumbsSection\n ownBreadcrumbs={appLayoutInternals.breadcrumbs}\n discoveredBreadcrumbs={appLayoutInternals.discoveredBreadcrumbs}\n includeTestUtils={true}\n />\n </AppLayoutBuiltInErrorBoundary>\n )}\n {(drawers?.length ||\n globalDrawers?.length ||\n bottomDrawers?.length ||\n (hasSplitPanel && splitPanelToggleProps?.displayed)) && (\n <div className={clsx(styles['universal-toolbar-drawers'])}>\n <AppLayoutBuiltInErrorBoundary appLayoutPart=\"toolbar-triggers\">\n <DrawerTriggers\n ariaLabels={ariaLabels}\n activeDrawerId={activeDrawerId ?? null}\n drawers={drawers?.filter(item => !!item.trigger) ?? []}\n drawersFocusRef={drawersFocusRef}\n onActiveDrawerChange={onActiveDrawerChange}\n splitPanelToggleProps={splitPanelToggleProps?.displayed ? splitPanelToggleProps : undefined}\n splitPanelFocusRef={splitPanelFocusRef}\n onSplitPanelToggle={onSplitPanelToggle}\n disabled={anyPanelOpenInMobile}\n globalDrawersFocusControl={globalDrawersFocusControl}\n bottomDrawersFocusRef={bottomDrawersFocusRef}\n globalDrawers={globalDrawers?.filter(item => !!item.trigger) ?? []}\n activeGlobalDrawersIds={activeGlobalDrawersIds ?? []}\n onActiveGlobalDrawersChange={onActiveGlobalDrawersChange}\n expandedDrawerId={expandedDrawerId}\n setExpandedDrawerId={setExpandedDrawerId!}\n bottomDrawers={bottomDrawers}\n onActiveGlobalBottomDrawerChange={onActiveGlobalBottomDrawerChange}\n activeGlobalBottomDrawerId={activeGlobalBottomDrawerId}\n featureNotificationsProps={featureNotificationsProps}\n />\n </AppLayoutBuiltInErrorBoundary>\n </div>\n )}\n </ToolbarContainer>\n </ToolbarSlot>\n );\n}\n\nexport const AppLayoutToolbar = createWidgetizedComponent(AppLayoutToolbarImplementation, ToolbarSkeleton);\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/app-layout/visual-refresh-toolbar/toolbar/index.tsx"],"names":[],"mappings":"AAAA,qEAAqE;AACrE,sCAAsC;AACtC,OAAO,KAAK,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AACjD,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB,OAAO,EAAE,iBAAiB,EAAE,MAAM,+CAA+C,CAAC;AAElF,OAAO,EAAE,6BAA6B,EAAE,MAAM,kCAAkC,CAAC;AACjF,OAAO,EAAE,yBAAyB,EAAE,MAAM,2BAA2B,CAAC;AAKtE,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAC7D,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,yBAAyB,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAE5F,OAAO,EAAE,cAAc,EAAyB,MAAM,mBAAmB,CAAC;AAC1E,OAAO,aAAa,MAAM,kBAAkB,CAAC;AAE7C,OAAO,YAAY,MAAM,4BAA4B,CAAC;AACtD,OAAO,cAAc,MAAM,kCAAkC,CAAC;AAC9D,OAAO,MAAM,MAAM,iBAAiB,CAAC;AAmDrC,MAAM,UAAU,8BAA8B,CAAC,EAC7C,kBAAkB;AAClB,yGAAyG;AACzG,yCAAyC;AACzC,YAAY,GAAG,EAAE,EACjB,yBAAyB,GACW;;IACpC,MAAM,EACJ,WAAW,EACX,qBAAqB,EACrB,eAAe,EACf,QAAQ,EACR,gBAAgB,EAChB,QAAQ,EACR,cAAc,EACd,sBAAsB,GACvB,GAAG,kBAAkB,CAAC;IACvB,MAAM,EACJ,UAAU,EACV,cAAc,EACd,OAAO,EACP,eAAe,EACf,oBAAoB,EACpB,yBAAyB,EACzB,aAAa,EACb,sBAAsB,EACtB,2BAA2B,EAC3B,aAAa,EACb,cAAc,EACd,kBAAkB,EAClB,kBAAkB,EAClB,aAAa,EACb,kBAAkB,EAClB,qBAAqB,EACrB,kBAAkB,EAClB,gBAAgB,EAChB,mBAAmB,EACnB,gBAAgB,EAChB,gCAAgC,EAChC,0BAA0B,EAC1B,qBAAqB,EACrB,aAAa,GACd,GAAG,YAAY,CAAC;IACjB,MAAM,kBAAkB,GAAG,CAAC,CAAC,gBAAgB,CAAC;IAC9C,MAAM,GAAG,GAAG,MAAM,CAAc,IAAI,CAAC,CAAC;IACtC,MAAM,qBAAqB,GAAG,MAAM,CAAiB,IAAI,CAAC,CAAC;IAC3D,MAAM,gBAAgB,GAAG,cAAc,aAAd,cAAc,uBAAd,cAAc,CAAE,EAAE,CAAC;IAC5C,iBAAiB,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,CAAC,gBAAgB,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC,CAAC;IACzE,SAAS,CAAC,GAAG,EAAE;QACb,OAAO,GAAG,EAAE;YACV,gBAAgB,CAAC,CAAC,CAAC,CAAC;QACtB,CAAC,CAAC;QACF,sBAAsB;QACtB,uDAAuD;IACzD,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,MAAM,oBAAoB,GACxB,CAAC,CAAC,QAAQ;QACV,CAAC,CAAC,CAAC,cAAc;YACf,CAAC,CAAC,CAAA,sBAAsB,aAAtB,sBAAsB,uBAAtB,sBAAsB,CAAE,MAAM,CAAA;YAChC,CAAC,CAAC,gBAAgB;YAClB,CAAC,CAAC,0BAA0B;YAC5B,CAAC,CAAC,CAAC,cAAc,IAAI,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC;IAC3C,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,oBAAoB,EAAE,CAAC;YACzB,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC,CAAC;QAC3D,CAAC;aAAM,CAAC;YACN,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC,CAAC;QAC9D,CAAC;QACD,OAAO,GAAG,EAAE;YACV,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC,CAAC;QAC9D,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,oBAAoB,CAAC,CAAC,CAAC;IAE3B,MAAM,qBAAqB,GAAG,cAAc;QAC1C,CAAC,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE;QAC1B,CAAC,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,YAAY,EAAE,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,UAAU,EAAE,CAAC;IAEjE,OAAO,CACL,oBAAC,WAAW,IACV,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,IAAI,CAAC,CAAC,CAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,OAAO,KAAI,CAAC,CAAC,gBAAgB,CAAC,IAAI,MAAM,CAAC,gBAAgB,CAAC,EAAE;YACrF,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC,EAAE,QAAQ;SACzC,CAAC,EACF,KAAK,EAAE;YACL,eAAe,EAAE,eAAe,CAAC,OAAO;SACzC;QAED,oBAAC,6BAA6B,IAAC,aAAa,EAAC,qBAAqB;YAChE,oBAAC,UAAU,IACT,EAAE,EAAE,CAAC,CAAC,CAAC,CAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,OAAO,KAAI,CAAC,gBAAgB,CAAC,EAC9C,OAAO,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,EAChC,YAAY,EAAE,IAAI,EAClB,aAAa,EAAE,IAAI,EACnB,OAAO,EAAE,qBAAqB,IAE7B,KAAK,CAAC,EAAE;;gBAAC,OAAA,CACR,6BACE,SAAS,EAAE,IAAI,CAAC,CAAC,CAAC,CAAA,MAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,OAAO,0CAAE,UAAU,CAAA,IAAI,MAAM,CAAC,6BAA6B,CAAC,EAAE;wBACxF,YAAY,CAAC,wBAAwB,CAAC;qBACvC,CAAC,EACF,KAAK,EAAE;wBACL,OAAO,EAAE,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;qBACzD;oBAED,oBAAC,aAAa,IACZ,SAAS,EAAE,MAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,UAAU,0CAAE,aAAa,EAC9C,YAAY,EAAE,CAAC,CAAC,gBAAgB,EAChC,QAAQ,EAAE,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,OAAO,CAAE,QAAQ,EACrC,OAAO,EAAE,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,OAAO,CAAE,OAAO,EACnC,SAAS,EAAE,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,OAAO,CAAE,UAAU,EACxC,SAAS,EAAE,cAAc,CAAC,kBAAkB,CAAC,EAC7C,OAAO,EAAE,GAAG,EAAE;;4BACZ,IAAI,mBAAmB,EAAE,CAAC;gCACxB,mBAAmB,CAAC,IAAI,CAAC,CAAC;4BAC5B,CAAC;4BACD,sBAAsB,aAAtB,sBAAsB,uBAAtB,sBAAsB,CAAG,MAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,EAAE,mCAAI,IAAI,EAAE,EAAE,qBAAqB,EAAE,IAAI,EAAE,CAAC,CAAC;wBAClF,CAAC,EACD,GAAG,EAAE,gBAAgB,EACrB,QAAQ,EAAE,CAAC,kBAAkB,IAAI,CAAC,CAAC,gBAAgB,EACnD,QAAQ,EAAE,oBAAoB,EAC9B,OAAO,EAAE,CAAA,MAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,OAAO,0CAAE,UAAU,EAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,EAC7D,MAAM,EAAE,4BAA4B,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,EAAE,EAAE,EAClD,yBAAyB,EAAE,IAAI,GAC/B,CACE,CACP,CAAA;aAAA,CACU,CACiB;QAChC,oBAAC,gBAAgB,IAAC,WAAW,EAAE,CAAC,CAAC,gBAAgB;YAC9C,aAAa,IAAI,CAChB,gCAAS,qBAAqB,EAAE,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,uBAAuB,CAAC,CAAC;gBAC9E,oBAAC,6BAA6B,IAAC,aAAa,EAAC,qBAAqB;oBAChE,oBAAC,aAAa,IACZ,SAAS,EAAE,MAAA,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,gBAAgB,mCAAI,SAAS,EACpD,YAAY,EAAE,CAAC,kBAAkB,IAAI,cAAc,EACnD,QAAQ,EAAC,MAAM,EACf,SAAS,EAAE,cAAc,CAAC,mBAAmB,CAAC,EAC9C,OAAO,EAAE,GAAG,EAAE;4BACZ,IAAI,mBAAmB,EAAE,CAAC;gCACxB,mBAAmB,CAAC,IAAI,CAAC,CAAC;4BAC5B,CAAC;4BACD,IAAI,cAAc,IAAI,gBAAgB,EAAE,CAAC;gCACvC,OAAO;4BACT,CAAC;4BACD,kBAAkB,aAAlB,kBAAkB,uBAAlB,kBAAkB,CAAG,CAAC,cAAc,CAAC,CAAC;wBACxC,CAAC,EACD,GAAG,EAAE,kBAAkB,EACvB,QAAQ,EAAE,CAAC,kBAAkB,IAAI,cAAc,EAC/C,QAAQ,EAAE,oBAAoB,GAC9B,CAC4B,CAC5B,CACP;YACA,CAAC,WAAW,IAAI,qBAAqB,CAAC,IAAI,CACzC,oBAAC,6BAA6B,IAAC,aAAa,EAAC,aAAa;gBACxD,oBAAC,yBAAyB,IACxB,cAAc,EAAE,kBAAkB,CAAC,WAAW,EAC9C,qBAAqB,EAAE,kBAAkB,CAAC,qBAAqB,EAC/D,gBAAgB,EAAE,IAAI,GACtB,CAC4B,CACjC;YACA,CAAC,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,MAAM;iBACf,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,MAAM,CAAA;iBACrB,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,MAAM,CAAA;gBACrB,CAAC,aAAa,KAAI,qBAAqB,aAArB,qBAAqB,uBAArB,qBAAqB,CAAE,SAAS,CAAA,CAAC,CAAC,IAAI,CACxD,6BAAK,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,2BAA2B,CAAC,CAAC;gBACvD,oBAAC,6BAA6B,IAAC,aAAa,EAAC,kBAAkB;oBAC7D,oBAAC,cAAc,IACb,UAAU,EAAE,UAAU,EACtB,cAAc,EAAE,cAAc,aAAd,cAAc,cAAd,cAAc,GAAI,IAAI,EACtC,OAAO,EAAE,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,mCAAI,EAAE,EACtD,eAAe,EAAE,eAAe,EAChC,oBAAoB,EAAE,oBAAoB,EAC1C,qBAAqB,EAAE,CAAA,qBAAqB,aAArB,qBAAqB,uBAArB,qBAAqB,CAAE,SAAS,EAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,SAAS,EAC3F,kBAAkB,EAAE,kBAAkB,EACtC,kBAAkB,EAAE,kBAAkB,EACtC,QAAQ,EAAE,oBAAoB,EAC9B,yBAAyB,EAAE,yBAAyB,EACpD,qBAAqB,EAAE,qBAAqB,EAC5C,aAAa,EAAE,MAAA,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,mCAAI,EAAE,EAClE,sBAAsB,EAAE,sBAAsB,aAAtB,sBAAsB,cAAtB,sBAAsB,GAAI,EAAE,EACpD,2BAA2B,EAAE,2BAA2B,EACxD,gBAAgB,EAAE,gBAAgB,EAClC,mBAAmB,EAAE,mBAAoB,EACzC,aAAa,EAAE,aAAa,EAC5B,gCAAgC,EAAE,gCAAgC,EAClE,0BAA0B,EAAE,0BAA0B,EACtD,yBAAyB,EAAE,yBAAyB,GACpD,CAC4B,CAC5B,CACP,CACgB,CACP,CACf,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,MAAM,gBAAgB,GAAG,yBAAyB,CAAC,8BAA8B,EAAE,eAAe,CAAC,CAAC","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport React, { useEffect, useRef } from 'react';\nimport { Transition } from 'react-transition-group';\nimport clsx from 'clsx';\n\nimport { useResizeObserver } from '@cloudscape-design/component-toolkit/internal';\n\nimport { AppLayoutBuiltInErrorBoundary } from '../../../error-boundary/internal';\nimport { createWidgetizedComponent } from '../../../internal/widgets';\nimport { AppLayoutProps } from '../../interfaces';\nimport { OnChangeParams } from '../../utils/use-drawers';\nimport { Focusable, FocusControlMultipleStates } from '../../utils/use-focus-control';\nimport { AppLayoutInternals } from '../interfaces';\nimport { ToolbarSkeleton } from '../skeleton/skeleton-parts';\nimport { ToolbarSlot } from '../skeleton/slots';\nimport { ToolbarBreadcrumbsSection, ToolbarContainer } from '../skeleton/toolbar-container';\nimport { FeatureNotificationsProps } from '../state/use-feature-notifications';\nimport { DrawerTriggers, SplitPanelToggleProps } from './drawer-triggers';\nimport TriggerButton from './trigger-button';\n\nimport sharedStyles from '../../resize/styles.css.js';\nimport testutilStyles from '../../test-classes/styles.css.js';\nimport styles from './styles.css.js';\n\nexport { SplitPanelToggleProps };\n\nexport interface ToolbarProps {\n ariaLabels?: AppLayoutProps.Labels;\n // navigation\n hasNavigation?: boolean;\n navigationOpen?: boolean;\n navigationCollapsible?: boolean;\n onNavigationToggle?: (open: boolean) => void;\n navigationFocusRef?: React.Ref<Focusable>;\n\n // breadcrumbs\n hasBreadcrumbsPortal?: boolean;\n\n // split panel\n hasSplitPanel?: boolean;\n splitPanelToggleProps?: SplitPanelToggleProps;\n splitPanelFocusRef?: React.Ref<Focusable>;\n onSplitPanelToggle?: () => void;\n\n // drawers\n activeDrawerId?: string | null;\n drawers?: ReadonlyArray<AppLayoutProps.Drawer>;\n drawersFocusRef?: React.Ref<Focusable>;\n bottomDrawersFocusRef?: React.Ref<Focusable>;\n globalDrawersFocusControl?: FocusControlMultipleStates;\n onActiveDrawerChange?: (drawerId: string | null, params: OnChangeParams) => void;\n globalDrawers?: ReadonlyArray<AppLayoutProps.Drawer> | undefined;\n activeGlobalDrawersIds?: ReadonlyArray<string>;\n onActiveGlobalDrawersChange?: ((drawerId: string, params: OnChangeParams) => void) | undefined;\n bottomDrawers?: ReadonlyArray<AppLayoutProps.Drawer> | undefined;\n activeGlobalBottomDrawerId?: string | null;\n onActiveGlobalBottomDrawerChange?: (value: string | null, params: OnChangeParams) => void;\n\n expandedDrawerId?: string | null;\n setExpandedDrawerId?: (value: string | null) => void;\n\n aiDrawer?: AppLayoutProps.Drawer;\n onActiveAiDrawerChange?: (value: string | null) => void;\n activeAiDrawerId?: string | null;\n aiDrawerFocusRef?: React.Ref<Focusable>;\n}\n\nexport interface AppLayoutToolbarImplementationProps {\n appLayoutInternals: AppLayoutInternals;\n toolbarProps: ToolbarProps;\n featureNotificationsProps?: FeatureNotificationsProps;\n}\n\nexport function AppLayoutToolbarImplementation({\n appLayoutInternals,\n // the value could be undefined if this component is loaded as a widget by a different app layout version\n // not testable in a single-version setup\n toolbarProps = {},\n featureNotificationsProps,\n}: AppLayoutToolbarImplementationProps) {\n const {\n breadcrumbs,\n discoveredBreadcrumbs,\n verticalOffsets,\n isMobile,\n setToolbarHeight,\n aiDrawer,\n activeAiDrawer,\n onActiveAiDrawerChange,\n } = appLayoutInternals;\n const {\n ariaLabels,\n activeDrawerId,\n drawers,\n drawersFocusRef,\n onActiveDrawerChange,\n globalDrawersFocusControl,\n globalDrawers,\n activeGlobalDrawersIds,\n onActiveGlobalDrawersChange,\n hasNavigation,\n navigationOpen,\n navigationFocusRef,\n onNavigationToggle,\n hasSplitPanel,\n splitPanelFocusRef,\n splitPanelToggleProps,\n onSplitPanelToggle,\n expandedDrawerId,\n setExpandedDrawerId,\n aiDrawerFocusRef,\n onActiveGlobalBottomDrawerChange,\n activeGlobalBottomDrawerId,\n bottomDrawersFocusRef,\n bottomDrawers,\n } = toolbarProps;\n const drawerExpandedMode = !!expandedDrawerId;\n const ref = useRef<HTMLElement>(null);\n const aiDrawerTransitionRef = useRef<HTMLDivElement>(null);\n const activeAiDrawerId = activeAiDrawer?.id;\n useResizeObserver(ref, entry => setToolbarHeight(entry.borderBoxHeight));\n useEffect(() => {\n return () => {\n setToolbarHeight(0);\n };\n // unmount effect only\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n const anyPanelOpenInMobile =\n !!isMobile &&\n (!!activeDrawerId ||\n !!activeGlobalDrawersIds?.length ||\n !!activeAiDrawerId ||\n !!activeGlobalBottomDrawerId ||\n (!!navigationOpen && !!hasNavigation));\n useEffect(() => {\n if (anyPanelOpenInMobile) {\n document.body.classList.add(styles['block-body-scroll']);\n } else {\n document.body.classList.remove(styles['block-body-scroll']);\n }\n return () => {\n document.body.classList.remove(styles['block-body-scroll']);\n };\n }, [anyPanelOpenInMobile]);\n\n const navLandmarkAttributes = navigationOpen\n ? { role: 'presentation' }\n : { role: 'navigation', 'aria-label': ariaLabels?.navigation };\n\n return (\n <ToolbarSlot\n ref={ref}\n className={clsx((aiDrawer?.trigger || !!activeAiDrawerId) && styles['with-ai-drawer'], {\n [testutilStyles['mobile-bar']]: isMobile,\n })}\n style={{\n insetBlockStart: verticalOffsets.toolbar,\n }}\n >\n <AppLayoutBuiltInErrorBoundary appLayoutPart=\"left-drawer-trigger\">\n <Transition\n in={!!(aiDrawer?.trigger && !activeAiDrawerId)}\n timeout={{ enter: 0, exit: 165 }}\n mountOnEnter={true}\n unmountOnExit={true}\n nodeRef={aiDrawerTransitionRef}\n >\n {state => (\n <div\n className={clsx(!!aiDrawer?.trigger?.customIcon && styles['universal-toolbar-ai-custom'], [\n sharedStyles['with-motion-horizontal'],\n ])}\n style={{\n opacity: ['entering', 'exiting'].includes(state) ? 0 : 1,\n }}\n >\n <TriggerButton\n ariaLabel={aiDrawer?.ariaLabels?.triggerButton}\n ariaExpanded={!!activeAiDrawerId}\n iconName={aiDrawer?.trigger!.iconName}\n iconSvg={aiDrawer?.trigger!.iconSvg}\n customSvg={aiDrawer?.trigger!.customIcon}\n className={testutilStyles['ai-drawer-toggle']}\n onClick={() => {\n if (setExpandedDrawerId) {\n setExpandedDrawerId(null);\n }\n onActiveAiDrawerChange?.(aiDrawer?.id ?? null, { initiatedByUserAction: true });\n }}\n ref={aiDrawerFocusRef}\n selected={!drawerExpandedMode && !!activeAiDrawerId}\n disabled={anyPanelOpenInMobile}\n variant={aiDrawer?.trigger?.customIcon ? 'custom' : 'default'}\n testId={`awsui-app-layout-trigger-${aiDrawer?.id}`}\n isForPreviousActiveDrawer={true}\n />\n </div>\n )}\n </Transition>\n </AppLayoutBuiltInErrorBoundary>\n <ToolbarContainer hasAiDrawer={!!activeAiDrawerId}>\n {hasNavigation && (\n <nav {...navLandmarkAttributes} className={clsx(styles['universal-toolbar-nav'])}>\n <AppLayoutBuiltInErrorBoundary appLayoutPart=\"toolbar-trigger-nav\">\n <TriggerButton\n ariaLabel={ariaLabels?.navigationToggle ?? undefined}\n ariaExpanded={!drawerExpandedMode && navigationOpen}\n iconName=\"menu\"\n className={testutilStyles['navigation-toggle']}\n onClick={() => {\n if (setExpandedDrawerId) {\n setExpandedDrawerId(null);\n }\n if (navigationOpen && expandedDrawerId) {\n return;\n }\n onNavigationToggle?.(!navigationOpen);\n }}\n ref={navigationFocusRef}\n selected={!drawerExpandedMode && navigationOpen}\n disabled={anyPanelOpenInMobile}\n />\n </AppLayoutBuiltInErrorBoundary>\n </nav>\n )}\n {(breadcrumbs || discoveredBreadcrumbs) && (\n <AppLayoutBuiltInErrorBoundary appLayoutPart=\"breadcrumbs\">\n <ToolbarBreadcrumbsSection\n ownBreadcrumbs={appLayoutInternals.breadcrumbs}\n discoveredBreadcrumbs={appLayoutInternals.discoveredBreadcrumbs}\n includeTestUtils={true}\n />\n </AppLayoutBuiltInErrorBoundary>\n )}\n {(drawers?.length ||\n globalDrawers?.length ||\n bottomDrawers?.length ||\n (hasSplitPanel && splitPanelToggleProps?.displayed)) && (\n <div className={clsx(styles['universal-toolbar-drawers'])}>\n <AppLayoutBuiltInErrorBoundary appLayoutPart=\"toolbar-triggers\">\n <DrawerTriggers\n ariaLabels={ariaLabels}\n activeDrawerId={activeDrawerId ?? null}\n drawers={drawers?.filter(item => !!item.trigger) ?? []}\n drawersFocusRef={drawersFocusRef}\n onActiveDrawerChange={onActiveDrawerChange}\n splitPanelToggleProps={splitPanelToggleProps?.displayed ? splitPanelToggleProps : undefined}\n splitPanelFocusRef={splitPanelFocusRef}\n onSplitPanelToggle={onSplitPanelToggle}\n disabled={anyPanelOpenInMobile}\n globalDrawersFocusControl={globalDrawersFocusControl}\n bottomDrawersFocusRef={bottomDrawersFocusRef}\n globalDrawers={globalDrawers?.filter(item => !!item.trigger) ?? []}\n activeGlobalDrawersIds={activeGlobalDrawersIds ?? []}\n onActiveGlobalDrawersChange={onActiveGlobalDrawersChange}\n expandedDrawerId={expandedDrawerId}\n setExpandedDrawerId={setExpandedDrawerId!}\n bottomDrawers={bottomDrawers}\n onActiveGlobalBottomDrawerChange={onActiveGlobalBottomDrawerChange}\n activeGlobalBottomDrawerId={activeGlobalBottomDrawerId}\n featureNotificationsProps={featureNotificationsProps}\n />\n </AppLayoutBuiltInErrorBoundary>\n </div>\n )}\n </ToolbarContainer>\n </ToolbarSlot>\n );\n}\n\nexport const AppLayoutToolbar = createWidgetizedComponent(AppLayoutToolbarImplementation, ToolbarSkeleton);\n"]}
@@ -1,19 +1,19 @@
1
1
 
2
2
  import './styles.scoped.css';
3
3
  export default {
4
- "universal-toolbar": "awsui_universal-toolbar_1kzri_117v3_153",
5
- "with-ai-drawer": "awsui_with-ai-drawer_1kzri_117v3_172",
6
- "universal-toolbar-ai-custom": "awsui_universal-toolbar-ai-custom_1kzri_117v3_172",
7
- "disable-body-scroll": "awsui_disable-body-scroll_1kzri_117v3_217",
8
- "toolbar-container": "awsui_toolbar-container_1kzri_117v3_270",
9
- "universal-toolbar-nav": "awsui_universal-toolbar-nav_1kzri_117v3_297",
10
- "universal-toolbar-breadcrumbs": "awsui_universal-toolbar-breadcrumbs_1kzri_117v3_302",
11
- "universal-toolbar-drawers": "awsui_universal-toolbar-drawers_1kzri_117v3_311",
12
- "drawers-desktop-triggers-container": "awsui_drawers-desktop-triggers-container_1kzri_117v3_319",
13
- "drawers-mobile-triggers-container": "awsui_drawers-mobile-triggers-container_1kzri_117v3_320",
14
- "drawers-trigger-content": "awsui_drawers-trigger-content_1kzri_117v3_362",
15
- "group-divider": "awsui_group-divider_1kzri_117v3_372",
16
- "drawers-trigger": "awsui_drawers-trigger_1kzri_117v3_362",
17
- "block-body-scroll": "awsui_block-body-scroll_1kzri_117v3_385"
4
+ "universal-toolbar": "awsui_universal-toolbar_1kzri_1g205_153",
5
+ "with-ai-drawer": "awsui_with-ai-drawer_1kzri_1g205_172",
6
+ "universal-toolbar-ai-custom": "awsui_universal-toolbar-ai-custom_1kzri_1g205_172",
7
+ "disable-body-scroll": "awsui_disable-body-scroll_1kzri_1g205_217",
8
+ "toolbar-container": "awsui_toolbar-container_1kzri_1g205_270",
9
+ "universal-toolbar-nav": "awsui_universal-toolbar-nav_1kzri_1g205_297",
10
+ "universal-toolbar-breadcrumbs": "awsui_universal-toolbar-breadcrumbs_1kzri_1g205_302",
11
+ "universal-toolbar-drawers": "awsui_universal-toolbar-drawers_1kzri_1g205_311",
12
+ "drawers-desktop-triggers-container": "awsui_drawers-desktop-triggers-container_1kzri_1g205_319",
13
+ "drawers-mobile-triggers-container": "awsui_drawers-mobile-triggers-container_1kzri_1g205_320",
14
+ "drawers-trigger-content": "awsui_drawers-trigger-content_1kzri_1g205_362",
15
+ "group-divider": "awsui_group-divider_1kzri_1g205_372",
16
+ "drawers-trigger": "awsui_drawers-trigger_1kzri_1g205_362",
17
+ "block-body-scroll": "awsui_block-body-scroll_1kzri_1g205_385"
18
18
  };
19
19