@cloudscape-design/components-themeable 3.0.1126 → 3.0.1127

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 (199) hide show
  1. package/lib/internal/manifest.json +1 -1
  2. package/lib/internal/scss/app-layout/resize/styles.scss +1 -1
  3. package/lib/internal/scss/app-layout/visual-refresh-toolbar/drawer/styles.scss +40 -0
  4. package/lib/internal/scss/app-layout/visual-refresh-toolbar/skeleton/styles.scss +20 -3
  5. package/lib/internal/scss/internal/generated/custom-css-properties/index.scss +87 -86
  6. package/lib/internal/template/alert/styles.css.js +27 -27
  7. package/lib/internal/template/alert/styles.scoped.css +50 -50
  8. package/lib/internal/template/alert/styles.selectors.js +27 -27
  9. package/lib/internal/template/annotation-context/annotation/styles.css.js +24 -24
  10. package/lib/internal/template/annotation-context/annotation/styles.scoped.css +32 -32
  11. package/lib/internal/template/annotation-context/annotation/styles.selectors.js +24 -24
  12. package/lib/internal/template/app-layout/notifications/styles.css.js +3 -3
  13. package/lib/internal/template/app-layout/notifications/styles.scoped.css +7 -7
  14. package/lib/internal/template/app-layout/notifications/styles.selectors.js +3 -3
  15. package/lib/internal/template/app-layout/resize/styles.css.js +5 -5
  16. package/lib/internal/template/app-layout/resize/styles.scoped.css +13 -13
  17. package/lib/internal/template/app-layout/resize/styles.selectors.js +5 -5
  18. package/lib/internal/template/app-layout/runtime-drawer/index.d.ts +1 -0
  19. package/lib/internal/template/app-layout/runtime-drawer/index.d.ts.map +1 -1
  20. package/lib/internal/template/app-layout/runtime-drawer/index.js.map +1 -1
  21. package/lib/internal/template/app-layout/utils/use-drawers.d.ts +1 -1
  22. package/lib/internal/template/app-layout/utils/use-drawers.d.ts.map +1 -1
  23. package/lib/internal/template/app-layout/utils/use-drawers.js +4 -2
  24. package/lib/internal/template/app-layout/utils/use-drawers.js.map +1 -1
  25. package/lib/internal/template/app-layout/visual-refresh/styles.css.js +86 -86
  26. package/lib/internal/template/app-layout/visual-refresh/styles.scoped.css +258 -258
  27. package/lib/internal/template/app-layout/visual-refresh/styles.selectors.js +86 -86
  28. package/lib/internal/template/app-layout/visual-refresh-toolbar/compute-layout.d.ts +1 -1
  29. package/lib/internal/template/app-layout/visual-refresh-toolbar/compute-layout.d.ts.map +1 -1
  30. package/lib/internal/template/app-layout/visual-refresh-toolbar/compute-layout.js +2 -2
  31. package/lib/internal/template/app-layout/visual-refresh-toolbar/compute-layout.js.map +1 -1
  32. package/lib/internal/template/app-layout/visual-refresh-toolbar/drawer/global-bottom-drawer.d.ts +13 -0
  33. package/lib/internal/template/app-layout/visual-refresh-toolbar/drawer/global-bottom-drawer.d.ts.map +1 -0
  34. package/lib/internal/template/app-layout/visual-refresh-toolbar/drawer/global-bottom-drawer.js +183 -0
  35. package/lib/internal/template/app-layout/visual-refresh-toolbar/drawer/global-bottom-drawer.js.map +1 -0
  36. package/lib/internal/template/app-layout/visual-refresh-toolbar/drawer/global-drawers.js +1 -1
  37. package/lib/internal/template/app-layout/visual-refresh-toolbar/drawer/global-drawers.js.map +1 -1
  38. package/lib/internal/template/app-layout/visual-refresh-toolbar/drawer/local-drawer.d.ts +2 -1
  39. package/lib/internal/template/app-layout/visual-refresh-toolbar/drawer/local-drawer.d.ts.map +1 -1
  40. package/lib/internal/template/app-layout/visual-refresh-toolbar/drawer/local-drawer.js +2 -2
  41. package/lib/internal/template/app-layout/visual-refresh-toolbar/drawer/local-drawer.js.map +1 -1
  42. package/lib/internal/template/app-layout/visual-refresh-toolbar/drawer/styles.css.js +27 -26
  43. package/lib/internal/template/app-layout/visual-refresh-toolbar/drawer/styles.scoped.css +110 -76
  44. package/lib/internal/template/app-layout/visual-refresh-toolbar/drawer/styles.selectors.js +27 -26
  45. package/lib/internal/template/app-layout/visual-refresh-toolbar/drawer/use-resize.d.ts +1 -1
  46. package/lib/internal/template/app-layout/visual-refresh-toolbar/drawer/use-resize.d.ts.map +1 -1
  47. package/lib/internal/template/app-layout/visual-refresh-toolbar/drawer/use-resize.js.map +1 -1
  48. package/lib/internal/template/app-layout/visual-refresh-toolbar/interfaces.d.ts +15 -2
  49. package/lib/internal/template/app-layout/visual-refresh-toolbar/interfaces.d.ts.map +1 -1
  50. package/lib/internal/template/app-layout/visual-refresh-toolbar/interfaces.js.map +1 -1
  51. package/lib/internal/template/app-layout/visual-refresh-toolbar/navigation/index.d.ts +2 -1
  52. package/lib/internal/template/app-layout/visual-refresh-toolbar/navigation/index.d.ts.map +1 -1
  53. package/lib/internal/template/app-layout/visual-refresh-toolbar/navigation/index.js +2 -2
  54. package/lib/internal/template/app-layout/visual-refresh-toolbar/navigation/index.js.map +1 -1
  55. package/lib/internal/template/app-layout/visual-refresh-toolbar/navigation/styles.css.js +4 -4
  56. package/lib/internal/template/app-layout/visual-refresh-toolbar/navigation/styles.scoped.css +7 -7
  57. package/lib/internal/template/app-layout/visual-refresh-toolbar/navigation/styles.selectors.js +4 -4
  58. package/lib/internal/template/app-layout/visual-refresh-toolbar/skeleton/styles.css.js +27 -25
  59. package/lib/internal/template/app-layout/visual-refresh-toolbar/skeleton/styles.scoped.css +68 -52
  60. package/lib/internal/template/app-layout/visual-refresh-toolbar/skeleton/styles.selectors.js +27 -25
  61. package/lib/internal/template/app-layout/visual-refresh-toolbar/split-panel/index.d.ts +2 -1
  62. package/lib/internal/template/app-layout/visual-refresh-toolbar/split-panel/index.d.ts.map +1 -1
  63. package/lib/internal/template/app-layout/visual-refresh-toolbar/split-panel/index.js +2 -2
  64. package/lib/internal/template/app-layout/visual-refresh-toolbar/split-panel/index.js.map +1 -1
  65. package/lib/internal/template/app-layout/visual-refresh-toolbar/state/interfaces.d.ts +4 -0
  66. package/lib/internal/template/app-layout/visual-refresh-toolbar/state/interfaces.d.ts.map +1 -1
  67. package/lib/internal/template/app-layout/visual-refresh-toolbar/state/interfaces.js.map +1 -1
  68. package/lib/internal/template/app-layout/visual-refresh-toolbar/state/props-merger.d.ts.map +1 -1
  69. package/lib/internal/template/app-layout/visual-refresh-toolbar/state/props-merger.js +12 -0
  70. package/lib/internal/template/app-layout/visual-refresh-toolbar/state/props-merger.js.map +1 -1
  71. package/lib/internal/template/app-layout/visual-refresh-toolbar/state/use-ai-drawer.d.ts.map +1 -1
  72. package/lib/internal/template/app-layout/visual-refresh-toolbar/state/use-ai-drawer.js +0 -17
  73. package/lib/internal/template/app-layout/visual-refresh-toolbar/state/use-ai-drawer.js.map +1 -1
  74. package/lib/internal/template/app-layout/visual-refresh-toolbar/state/use-app-layout.d.ts.map +1 -1
  75. package/lib/internal/template/app-layout/visual-refresh-toolbar/state/use-app-layout.js +108 -12
  76. package/lib/internal/template/app-layout/visual-refresh-toolbar/state/use-app-layout.js.map +1 -1
  77. package/lib/internal/template/app-layout/visual-refresh-toolbar/state/use-bottom-drawers.d.ts +33 -0
  78. package/lib/internal/template/app-layout/visual-refresh-toolbar/state/use-bottom-drawers.d.ts.map +1 -0
  79. package/lib/internal/template/app-layout/visual-refresh-toolbar/state/use-bottom-drawers.js +85 -0
  80. package/lib/internal/template/app-layout/visual-refresh-toolbar/state/use-bottom-drawers.js.map +1 -0
  81. package/lib/internal/template/app-layout/visual-refresh-toolbar/state/use-skeleton-slots-attributes.d.ts.map +1 -1
  82. package/lib/internal/template/app-layout/visual-refresh-toolbar/state/use-skeleton-slots-attributes.js +3 -1
  83. package/lib/internal/template/app-layout/visual-refresh-toolbar/state/use-skeleton-slots-attributes.js.map +1 -1
  84. package/lib/internal/template/app-layout/visual-refresh-toolbar/toolbar/drawer-triggers.d.ts +8 -3
  85. package/lib/internal/template/app-layout/visual-refresh-toolbar/toolbar/drawer-triggers.d.ts.map +1 -1
  86. package/lib/internal/template/app-layout/visual-refresh-toolbar/toolbar/drawer-triggers.js +34 -7
  87. package/lib/internal/template/app-layout/visual-refresh-toolbar/toolbar/drawer-triggers.js.map +1 -1
  88. package/lib/internal/template/app-layout/visual-refresh-toolbar/toolbar/index.d.ts +4 -0
  89. package/lib/internal/template/app-layout/visual-refresh-toolbar/toolbar/index.d.ts.map +1 -1
  90. package/lib/internal/template/app-layout/visual-refresh-toolbar/toolbar/index.js +7 -3
  91. package/lib/internal/template/app-layout/visual-refresh-toolbar/toolbar/index.js.map +1 -1
  92. package/lib/internal/template/app-layout/visual-refresh-toolbar/widget-areas/after-main-slot.d.ts.map +1 -1
  93. package/lib/internal/template/app-layout/visual-refresh-toolbar/widget-areas/after-main-slot.js +7 -3
  94. package/lib/internal/template/app-layout/visual-refresh-toolbar/widget-areas/after-main-slot.js.map +1 -1
  95. package/lib/internal/template/app-layout/visual-refresh-toolbar/widget-areas/before-main-slot.d.ts.map +1 -1
  96. package/lib/internal/template/app-layout/visual-refresh-toolbar/widget-areas/before-main-slot.js +2 -2
  97. package/lib/internal/template/app-layout/visual-refresh-toolbar/widget-areas/before-main-slot.js.map +1 -1
  98. package/lib/internal/template/app-layout/visual-refresh-toolbar/widget-areas/bottom-content-slot.d.ts.map +1 -1
  99. package/lib/internal/template/app-layout/visual-refresh-toolbar/widget-areas/bottom-content-slot.js +6 -2
  100. package/lib/internal/template/app-layout/visual-refresh-toolbar/widget-areas/bottom-content-slot.js.map +1 -1
  101. package/lib/internal/template/attribute-editor/interfaces.d.ts +2 -0
  102. package/lib/internal/template/attribute-editor/interfaces.d.ts.map +1 -1
  103. package/lib/internal/template/attribute-editor/interfaces.js.map +1 -1
  104. package/lib/internal/template/attribute-editor/row.d.ts.map +1 -1
  105. package/lib/internal/template/attribute-editor/row.js +2 -2
  106. package/lib/internal/template/attribute-editor/row.js.map +1 -1
  107. package/lib/internal/template/attribute-editor/styles.css.js +15 -15
  108. package/lib/internal/template/attribute-editor/styles.scoped.css +28 -28
  109. package/lib/internal/template/attribute-editor/styles.selectors.js +15 -15
  110. package/lib/internal/template/breadcrumb-group/item/styles.css.js +7 -7
  111. package/lib/internal/template/breadcrumb-group/item/styles.scoped.css +28 -28
  112. package/lib/internal/template/breadcrumb-group/item/styles.selectors.js +7 -7
  113. package/lib/internal/template/button/styles.css.js +22 -22
  114. package/lib/internal/template/button/styles.scoped.css +256 -256
  115. package/lib/internal/template/button/styles.selectors.js +22 -22
  116. package/lib/internal/template/button-dropdown/interfaces.d.ts +3 -1
  117. package/lib/internal/template/button-dropdown/interfaces.d.ts.map +1 -1
  118. package/lib/internal/template/button-dropdown/interfaces.js.map +1 -1
  119. package/lib/internal/template/button-dropdown/item-element/index.d.ts.map +1 -1
  120. package/lib/internal/template/button-dropdown/item-element/index.js +1 -1
  121. package/lib/internal/template/button-dropdown/item-element/index.js.map +1 -1
  122. package/lib/internal/template/button-dropdown/item-element/styles.css.js +16 -16
  123. package/lib/internal/template/button-dropdown/item-element/styles.scoped.css +27 -27
  124. package/lib/internal/template/button-dropdown/item-element/styles.selectors.js +16 -16
  125. package/lib/internal/template/checkbox/styles.css.js +3 -3
  126. package/lib/internal/template/checkbox/styles.scoped.css +11 -11
  127. package/lib/internal/template/checkbox/styles.selectors.js +3 -3
  128. package/lib/internal/template/content-layout/styles.css.js +14 -14
  129. package/lib/internal/template/content-layout/styles.scoped.css +27 -27
  130. package/lib/internal/template/content-layout/styles.selectors.js +14 -14
  131. package/lib/internal/template/flashbar/styles.css.js +50 -50
  132. package/lib/internal/template/flashbar/styles.scoped.css +187 -187
  133. package/lib/internal/template/flashbar/styles.selectors.js +50 -50
  134. package/lib/internal/template/help-panel/styles.css.js +6 -6
  135. package/lib/internal/template/help-panel/styles.scoped.css +73 -73
  136. package/lib/internal/template/help-panel/styles.selectors.js +6 -6
  137. package/lib/internal/template/internal/base-component/styles.scoped.css +1 -1
  138. package/lib/internal/template/internal/components/autosuggest-input/index.d.ts.map +1 -1
  139. package/lib/internal/template/internal/components/autosuggest-input/index.js +30 -7
  140. package/lib/internal/template/internal/components/autosuggest-input/index.js.map +1 -1
  141. package/lib/internal/template/internal/components/drag-handle-wrapper/styles.css.js +20 -20
  142. package/lib/internal/template/internal/components/drag-handle-wrapper/styles.scoped.css +48 -48
  143. package/lib/internal/template/internal/components/drag-handle-wrapper/styles.selectors.js +20 -20
  144. package/lib/internal/template/internal/components/dropdown/styles.css.js +20 -20
  145. package/lib/internal/template/internal/components/dropdown/styles.scoped.css +38 -38
  146. package/lib/internal/template/internal/components/dropdown/styles.selectors.js +20 -20
  147. package/lib/internal/template/internal/components/token-list/styles.css.js +10 -10
  148. package/lib/internal/template/internal/components/token-list/styles.scoped.css +25 -25
  149. package/lib/internal/template/internal/components/token-list/styles.selectors.js +10 -10
  150. package/lib/internal/template/internal/environment.js +2 -2
  151. package/lib/internal/template/internal/environment.json +2 -2
  152. package/lib/internal/template/internal/generated/custom-css-properties/index.d.ts +1 -0
  153. package/lib/internal/template/internal/generated/custom-css-properties/index.d.ts.map +1 -1
  154. package/lib/internal/template/internal/generated/custom-css-properties/index.js +86 -85
  155. package/lib/internal/template/internal/generated/custom-css-properties/index.js.map +1 -1
  156. package/lib/internal/template/internal/plugins/controllers/drawers.d.ts +1 -1
  157. package/lib/internal/template/internal/plugins/controllers/drawers.d.ts.map +1 -1
  158. package/lib/internal/template/internal/plugins/controllers/drawers.js.map +1 -1
  159. package/lib/internal/template/internal/plugins/widget/index.d.ts +6 -1
  160. package/lib/internal/template/internal/plugins/widget/index.d.ts.map +1 -1
  161. package/lib/internal/template/internal/plugins/widget/index.js +11 -1
  162. package/lib/internal/template/internal/plugins/widget/index.js.map +1 -1
  163. package/lib/internal/template/internal/plugins/widget/interfaces.d.ts +2 -1
  164. package/lib/internal/template/internal/plugins/widget/interfaces.d.ts.map +1 -1
  165. package/lib/internal/template/internal/plugins/widget/interfaces.js.map +1 -1
  166. package/lib/internal/template/internal/plugins/widget.d.ts +1 -1
  167. package/lib/internal/template/internal/plugins/widget.d.ts.map +1 -1
  168. package/lib/internal/template/internal/plugins/widget.js +1 -1
  169. package/lib/internal/template/internal/plugins/widget.js.map +1 -1
  170. package/lib/internal/template/link/styles.css.js +20 -20
  171. package/lib/internal/template/link/styles.scoped.css +103 -103
  172. package/lib/internal/template/link/styles.selectors.js +20 -20
  173. package/lib/internal/template/radio-group/styles.css.js +10 -10
  174. package/lib/internal/template/radio-group/styles.scoped.css +22 -22
  175. package/lib/internal/template/radio-group/styles.selectors.js +10 -10
  176. package/lib/internal/template/slider/styles.css.js +26 -26
  177. package/lib/internal/template/slider/styles.scoped.css +86 -86
  178. package/lib/internal/template/slider/styles.selectors.js +26 -26
  179. package/lib/internal/template/spinner/styles.css.js +13 -13
  180. package/lib/internal/template/spinner/styles.scoped.css +39 -39
  181. package/lib/internal/template/spinner/styles.selectors.js +13 -13
  182. package/lib/internal/template/tag-editor/styles.css.js +3 -3
  183. package/lib/internal/template/tag-editor/styles.scoped.css +13 -13
  184. package/lib/internal/template/tag-editor/styles.selectors.js +3 -3
  185. package/lib/internal/template/text-content/styles.css.js +1 -1
  186. package/lib/internal/template/text-content/styles.scoped.css +66 -66
  187. package/lib/internal/template/text-content/styles.selectors.js +1 -1
  188. package/lib/internal/template/toggle/styles.css.js +10 -10
  189. package/lib/internal/template/toggle/styles.scoped.css +23 -23
  190. package/lib/internal/template/toggle/styles.selectors.js +10 -10
  191. package/lib/internal/template/top-navigation/interfaces.d.ts +1 -1
  192. package/lib/internal/template/top-navigation/interfaces.js.map +1 -1
  193. package/lib/internal/template/top-navigation/internal.d.ts.map +1 -1
  194. package/lib/internal/template/top-navigation/internal.js +0 -9
  195. package/lib/internal/template/top-navigation/internal.js.map +1 -1
  196. package/lib/internal/template/top-navigation/parts/utility.d.ts.map +1 -1
  197. package/lib/internal/template/top-navigation/parts/utility.js +1 -15
  198. package/lib/internal/template/top-navigation/parts/utility.js.map +1 -1
  199. package/package.json +1 -1
@@ -145,7 +145,9 @@ export function useDrawers({ drawers, activeDrawerId: controlledActiveDrawerId,
145
145
  const drawersOpenQueue = useRef([]);
146
146
  function onActiveDrawerResize({ id, size }) {
147
147
  setDrawerSizes(oldSizes => (Object.assign(Object.assign({}, oldSizes), { [id]: size })));
148
- fireNonCancelableEvent(activeDrawer === null || activeDrawer === void 0 ? void 0 : activeDrawer.onResize, { id, size });
148
+ if ((activeDrawer === null || activeDrawer === void 0 ? void 0 : activeDrawer.id) === id) {
149
+ fireNonCancelableEvent(activeDrawer === null || activeDrawer === void 0 ? void 0 : activeDrawer.onResize, { id, size });
150
+ }
149
151
  const activeGlobalDrawer = runtimeGlobalDrawers.find(drawer => drawer.id === id);
150
152
  fireNonCancelableEvent(activeGlobalDrawer === null || activeGlobalDrawer === void 0 ? void 0 : activeGlobalDrawer.onResize, { id, size });
151
153
  }
@@ -235,7 +237,7 @@ export function useDrawers({ drawers, activeDrawerId: controlledActiveDrawerId,
235
237
  minDrawerSize,
236
238
  minGlobalDrawersSizes,
237
239
  drawerSizes,
238
- drawersOpenQueue: drawersOpenQueue.current,
240
+ drawersOpenQueue,
239
241
  onActiveDrawerChange,
240
242
  onActiveDrawerResize,
241
243
  onActiveGlobalDrawersChange,
@@ -1 +1 @@
1
- {"version":3,"file":"use-drawers.js","sourceRoot":"","sources":["../../../../src/app-layout/utils/use-drawers.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport React, { useEffect, useRef, useState } from 'react';\n\nimport { useStableCallback } from '@cloudscape-design/component-toolkit/internal';\n\nimport { fireNonCancelableEvent } from '../../internal/events';\nimport { useControllable } from '../../internal/hooks/use-controllable';\nimport { awsuiPluginsInternal } from '../../internal/plugins/api';\nimport { DrawersToggledListener } from '../../internal/plugins/controllers/drawers';\nimport { sortByPriority } from '../../internal/plugins/helpers/utils';\nimport { AppLayoutProps } from '../interfaces';\nimport { convertRuntimeDrawers, DrawersLayout } from '../runtime-drawer';\nimport { togglesConfig } from '../toggles';\n\nexport const TOOLS_DRAWER_ID = 'awsui-internal-tools';\n\ninterface ToolsProps {\n toolsHide: boolean | undefined;\n toolsOpen: boolean | undefined;\n toolsWidth: number;\n tools: React.ReactNode | undefined;\n onToolsToggle: (newOpen: boolean) => void;\n ariaLabels: AppLayoutProps.Labels | undefined;\n disableDrawersMerge?: boolean;\n}\n\nexport interface OnChangeParams {\n initiatedByUserAction: boolean;\n}\n\nfunction getToolsDrawerItem(props: ToolsProps): AppLayoutProps.Drawer | null {\n if (props.toolsHide) {\n return null;\n }\n const { iconName, getLabels } = togglesConfig.tools;\n const { mainLabel, closeLabel, openLabel } = getLabels(props.ariaLabels);\n return {\n id: TOOLS_DRAWER_ID,\n content: props.tools,\n resizable: false,\n ariaLabels: {\n triggerButton: openLabel,\n closeButton: closeLabel,\n drawerName: mainLabel ?? '',\n },\n trigger: {\n iconName: iconName,\n },\n };\n}\n\nconst DRAWERS_LIMIT = 2;\n\nconst DEFAULT_ON_CHANGE_PARAMS = { initiatedByUserAction: true };\n\nfunction useRuntimeDrawers(\n disableRuntimeDrawers: boolean | undefined,\n activeDrawerId: string | null,\n onActiveDrawerChange: (newDrawerId: string | null, { initiatedByUserAction }: OnChangeParams) => void,\n activeGlobalDrawersIds: Array<string>,\n onActiveGlobalDrawersChange: (newDrawerId: string, { initiatedByUserAction }: OnChangeParams) => void\n) {\n const [runtimeDrawers, setRuntimeDrawers] = useState<DrawersLayout>({\n localBefore: [],\n localAfter: [],\n global: [],\n });\n const onLocalDrawerChangeStable = useStableCallback(onActiveDrawerChange);\n const onGlobalDrawersChangeStable = useStableCallback(onActiveGlobalDrawersChange);\n\n const localDrawerWasOpenRef = useRef(false);\n localDrawerWasOpenRef.current = localDrawerWasOpenRef.current || !!activeDrawerId;\n const activeGlobalDrawersIdsRef = useRef<Array<string>>([]);\n activeGlobalDrawersIdsRef.current = activeGlobalDrawersIds;\n\n useEffect(() => {\n if (disableRuntimeDrawers) {\n return;\n }\n const unsubscribe = awsuiPluginsInternal.appLayout.onDrawersRegistered(drawers => {\n const localDrawers = drawers.filter(drawer => drawer.type !== 'global');\n const globalDrawers = drawers.filter(drawer => drawer.type === 'global');\n setRuntimeDrawers(convertRuntimeDrawers(localDrawers, globalDrawers));\n if (!localDrawerWasOpenRef.current) {\n const defaultActiveLocalDrawer = sortByPriority(localDrawers).find(drawer => drawer.defaultActive);\n if (defaultActiveLocalDrawer) {\n onLocalDrawerChangeStable(defaultActiveLocalDrawer.id, { initiatedByUserAction: false });\n }\n }\n\n const drawersNotActiveByDefault = globalDrawers.filter(drawer => !drawer.defaultActive);\n const hasDrawersOpenByUserAction = drawersNotActiveByDefault.find(drawer =>\n activeGlobalDrawersIdsRef.current.includes(drawer.id)\n );\n if (hasDrawersOpenByUserAction || activeGlobalDrawersIdsRef.current.length === DRAWERS_LIMIT) {\n return;\n }\n\n const defaultActiveGlobalDrawers = sortByPriority(globalDrawers).filter(\n drawer => !activeGlobalDrawersIdsRef.current.includes(drawer.id) && drawer.defaultActive\n );\n defaultActiveGlobalDrawers.forEach(drawer => {\n onGlobalDrawersChangeStable(drawer.id, { initiatedByUserAction: false });\n });\n });\n return () => {\n unsubscribe();\n setRuntimeDrawers({ localBefore: [], localAfter: [], global: [] });\n };\n }, [disableRuntimeDrawers, onGlobalDrawersChangeStable, onLocalDrawerChangeStable]);\n\n return runtimeDrawers;\n}\n\nfunction useDrawerRuntimeOpenClose(\n disableRuntimeDrawers: boolean | undefined,\n localDrawers: AppLayoutProps.Drawer[] | null,\n globalDrawers: AppLayoutProps.Drawer[],\n activeDrawerId: string | null,\n onActiveDrawerChange: (newDrawerId: string | null, { initiatedByUserAction }: OnChangeParams) => void,\n activeGlobalDrawersIds: Array<string>,\n onActiveGlobalDrawersChange: (newDrawerId: string, { initiatedByUserAction }: OnChangeParams) => void\n) {\n const onDrawerOpened: DrawersToggledListener = useStableCallback((drawerId, params = DEFAULT_ON_CHANGE_PARAMS) => {\n const localDrawer = localDrawers?.find(drawer => drawer.id === drawerId);\n const globalDrawer = globalDrawers.find(drawer => drawer.id === drawerId);\n if (localDrawer && activeDrawerId !== drawerId) {\n onActiveDrawerChange(drawerId, params);\n }\n if (globalDrawer && !activeGlobalDrawersIds.includes(drawerId)) {\n onActiveGlobalDrawersChange(drawerId, params);\n }\n });\n\n const onDrawerClosed: DrawersToggledListener = useStableCallback((drawerId, params = DEFAULT_ON_CHANGE_PARAMS) => {\n const localDrawer = localDrawers?.find(drawer => drawer.id === drawerId);\n const globalDrawer = globalDrawers.find(drawer => drawer.id === drawerId);\n if (localDrawer && activeDrawerId === drawerId) {\n onActiveDrawerChange(null, params);\n }\n if (globalDrawer && activeGlobalDrawersIds.includes(drawerId)) {\n onActiveGlobalDrawersChange(drawerId, params);\n }\n });\n\n useEffect(() => {\n if (disableRuntimeDrawers) {\n return;\n }\n return awsuiPluginsInternal.appLayout.onDrawerOpened(onDrawerOpened);\n }, [disableRuntimeDrawers, onDrawerOpened]);\n\n useEffect(() => {\n if (disableRuntimeDrawers) {\n return;\n }\n return awsuiPluginsInternal.appLayout.onDrawerClosed(onDrawerClosed);\n }, [disableRuntimeDrawers, onDrawerClosed]);\n}\n\nfunction useDrawerRuntimeResize(\n disableRuntimeDrawers: boolean | undefined,\n onActiveDrawerResize: ({ id, size }: { id: string; size: number }) => void\n) {\n const onRuntimeDrawerResize = useStableCallback((drawerId: string, size: number) => {\n onActiveDrawerResize({ id: drawerId, size });\n });\n\n useEffect(() => {\n if (disableRuntimeDrawers) {\n return;\n }\n\n return awsuiPluginsInternal.appLayout.onDrawerResize(onRuntimeDrawerResize);\n }, [disableRuntimeDrawers, onRuntimeDrawerResize]);\n}\n\nfunction applyToolsDrawer(toolsProps: ToolsProps, runtimeDrawers: DrawersLayout) {\n const drawers = [...runtimeDrawers.localBefore, ...runtimeDrawers.localAfter];\n if (drawers.length === 0 && toolsProps.disableDrawersMerge) {\n return null;\n }\n const toolsItem = getToolsDrawerItem(toolsProps);\n if (toolsItem) {\n drawers.unshift(toolsItem);\n }\n\n return drawers;\n}\n\nexport const MIN_DRAWER_SIZE = 290;\n\ntype UseDrawersProps = Pick<AppLayoutProps, 'drawers' | 'activeDrawerId' | 'onDrawerChange'> & {\n __disableRuntimeDrawers?: boolean;\n onGlobalDrawerFocus?: (drawerId: string, open: boolean) => void;\n onAddNewActiveDrawer?: (drawerId: string) => void;\n};\n\nexport function useDrawers(\n {\n drawers,\n activeDrawerId: controlledActiveDrawerId,\n onDrawerChange,\n onGlobalDrawerFocus,\n onAddNewActiveDrawer,\n __disableRuntimeDrawers: disableRuntimeDrawers,\n }: UseDrawersProps,\n ariaLabels: AppLayoutProps['ariaLabels'],\n toolsProps: ToolsProps\n) {\n const [activeDrawerId = null, setActiveDrawerId] = useControllable(controlledActiveDrawerId, onDrawerChange, null, {\n componentName: 'AppLayout',\n controlledProp: 'activeDrawerId',\n changeHandler: 'onChange',\n });\n const [activeGlobalDrawersIds, setActiveGlobalDrawersIds] = useState<Array<string>>([]);\n const [drawerSizes, setDrawerSizes] = useState<Record<string, number>>({});\n const [expandedDrawerId, setExpandedDrawerId] = useState<string | null>(null);\n // FIFO queue that keeps track of open drawers, where the first element is the most recently opened drawer\n const drawersOpenQueue = useRef<Array<string>>([]);\n\n function onActiveDrawerResize({ id, size }: { id: string; size: number }) {\n setDrawerSizes(oldSizes => ({ ...oldSizes, [id]: size }));\n fireNonCancelableEvent(activeDrawer?.onResize, { id, size });\n const activeGlobalDrawer = runtimeGlobalDrawers.find(drawer => drawer.id === id);\n fireNonCancelableEvent(activeGlobalDrawer?.onResize, { id, size });\n }\n\n function onActiveDrawerChange(\n newDrawerId: string | null,\n { initiatedByUserAction }: OnChangeParams = DEFAULT_ON_CHANGE_PARAMS\n ) {\n setActiveDrawerId(newDrawerId);\n if (newDrawerId) {\n onAddNewActiveDrawer?.(newDrawerId);\n }\n if (hasOwnDrawers) {\n fireNonCancelableEvent(onDrawerChange, { activeDrawerId: newDrawerId });\n } else if (!toolsProps.toolsHide) {\n toolsProps.onToolsToggle(newDrawerId === TOOLS_DRAWER_ID);\n }\n\n if (newDrawerId) {\n drawersOpenQueue.current = [newDrawerId, ...drawersOpenQueue.current];\n const newDrawer = [...runtimeDrawers.localBefore, ...runtimeDrawers.localAfter]?.find(\n drawer => drawer.id === newDrawerId\n );\n fireNonCancelableEvent(newDrawer?.onToggle, { isOpen: true, initiatedByUserAction });\n }\n\n if (activeDrawerId) {\n drawersOpenQueue.current = drawersOpenQueue.current.filter(id => id !== activeDrawerId);\n const activeDrawer = [...runtimeDrawers.localBefore, ...runtimeDrawers.localAfter]?.find(\n drawer => drawer.id === activeDrawerId\n );\n fireNonCancelableEvent(activeDrawer?.onToggle, { isOpen: false, initiatedByUserAction });\n }\n }\n\n function onActiveGlobalDrawersChange(\n drawerId: string,\n { initiatedByUserAction }: Partial<OnChangeParams> = DEFAULT_ON_CHANGE_PARAMS\n ) {\n const drawer = runtimeGlobalDrawers.find(drawer => drawer.id === drawerId);\n if (activeGlobalDrawersIds.includes(drawerId)) {\n setActiveGlobalDrawersIds(currentState => currentState.filter(id => id !== drawerId));\n onGlobalDrawerFocus?.(drawerId, false);\n drawersOpenQueue.current = drawersOpenQueue.current.filter(id => id !== drawerId);\n fireNonCancelableEvent(drawer?.onToggle, { isOpen: false, initiatedByUserAction });\n if (drawerId === expandedDrawerId) {\n setExpandedDrawerId(null);\n }\n } else if (drawerId) {\n onAddNewActiveDrawer?.(drawerId);\n setActiveGlobalDrawersIds(currentState => [drawerId, ...currentState].slice(0, DRAWERS_LIMIT!));\n onGlobalDrawerFocus?.(drawerId, true);\n drawersOpenQueue.current = [drawerId, ...drawersOpenQueue.current];\n fireNonCancelableEvent(drawer?.onToggle, { isOpen: true, initiatedByUserAction });\n }\n }\n\n const hasOwnDrawers = !!drawers;\n // support toolsOpen in runtime-drawers-only mode\n let activeDrawerIdResolved =\n toolsProps?.toolsOpen && !hasOwnDrawers\n ? TOOLS_DRAWER_ID\n : activeDrawerId !== TOOLS_DRAWER_ID\n ? activeDrawerId\n : null;\n const runtimeDrawers = useRuntimeDrawers(\n disableRuntimeDrawers,\n activeDrawerIdResolved,\n onActiveDrawerChange,\n activeGlobalDrawersIds,\n onActiveGlobalDrawersChange\n );\n const { localBefore, localAfter, global: runtimeGlobalDrawers } = runtimeDrawers;\n const combinedLocalDrawers = drawers\n ? [...localBefore, ...drawers, ...localAfter]\n : applyToolsDrawer(toolsProps, runtimeDrawers);\n const activeDrawer = combinedLocalDrawers?.find(drawer => drawer.id === activeDrawerIdResolved);\n // ensure that id is only defined when the drawer exists\n activeDrawerIdResolved = activeDrawer?.id ?? null;\n const activeGlobalDrawers = runtimeGlobalDrawers.filter(drawer => activeGlobalDrawersIds.includes(drawer.id));\n\n useDrawerRuntimeOpenClose(\n disableRuntimeDrawers,\n combinedLocalDrawers,\n runtimeGlobalDrawers,\n activeDrawerId,\n onActiveDrawerChange,\n activeGlobalDrawersIds,\n onActiveGlobalDrawersChange\n );\n\n useDrawerRuntimeResize(disableRuntimeDrawers, onActiveDrawerResize);\n\n const activeDrawerSize = activeDrawerIdResolved\n ? (drawerSizes[activeDrawerIdResolved] ?? activeDrawer?.defaultSize ?? toolsProps.toolsWidth)\n : toolsProps.toolsWidth;\n const activeGlobalDrawersSizes: Record<string, number> = activeGlobalDrawersIds.reduce(\n (acc, currentGlobalDrawerId) => {\n const currentGlobalDrawer = runtimeGlobalDrawers.find(drawer => drawer.id === currentGlobalDrawerId);\n return {\n ...acc,\n [currentGlobalDrawerId]:\n drawerSizes[currentGlobalDrawerId] ?? currentGlobalDrawer?.defaultSize ?? MIN_DRAWER_SIZE,\n };\n },\n {}\n );\n const minGlobalDrawersSizes: Record<string, number> = runtimeGlobalDrawers.reduce((acc, globalDrawer) => {\n return {\n ...acc,\n [globalDrawer.id]: Math.min(globalDrawer.defaultSize ?? MIN_DRAWER_SIZE, MIN_DRAWER_SIZE),\n };\n }, {});\n const minDrawerSize = Math.min(\n toolsProps?.toolsOpen ? toolsProps.toolsWidth : (activeDrawer?.defaultSize ?? MIN_DRAWER_SIZE),\n MIN_DRAWER_SIZE\n );\n\n return {\n ariaLabelsWithDrawers: ariaLabels,\n drawers: combinedLocalDrawers || undefined,\n activeDrawer,\n activeDrawerId: activeDrawerIdResolved,\n globalDrawers: runtimeGlobalDrawers,\n activeGlobalDrawers: activeGlobalDrawers,\n activeGlobalDrawersIds,\n activeGlobalDrawersSizes,\n activeDrawerSize,\n minDrawerSize,\n minGlobalDrawersSizes,\n drawerSizes,\n drawersOpenQueue: drawersOpenQueue.current,\n onActiveDrawerChange,\n onActiveDrawerResize,\n onActiveGlobalDrawersChange,\n expandedDrawerId,\n setExpandedDrawerId,\n };\n}\n"]}
1
+ {"version":3,"file":"use-drawers.js","sourceRoot":"","sources":["../../../../src/app-layout/utils/use-drawers.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport React, { useEffect, useRef, useState } from 'react';\n\nimport { useStableCallback } from '@cloudscape-design/component-toolkit/internal';\n\nimport { fireNonCancelableEvent } from '../../internal/events';\nimport { useControllable } from '../../internal/hooks/use-controllable';\nimport { awsuiPluginsInternal } from '../../internal/plugins/api';\nimport { DrawersToggledListener } from '../../internal/plugins/controllers/drawers';\nimport { sortByPriority } from '../../internal/plugins/helpers/utils';\nimport { AppLayoutProps } from '../interfaces';\nimport { convertRuntimeDrawers, DrawersLayout } from '../runtime-drawer';\nimport { togglesConfig } from '../toggles';\n\nexport const TOOLS_DRAWER_ID = 'awsui-internal-tools';\n\ninterface ToolsProps {\n toolsHide: boolean | undefined;\n toolsOpen: boolean | undefined;\n toolsWidth: number;\n tools: React.ReactNode | undefined;\n onToolsToggle: (newOpen: boolean) => void;\n ariaLabels: AppLayoutProps.Labels | undefined;\n disableDrawersMerge?: boolean;\n}\n\nexport interface OnChangeParams {\n initiatedByUserAction: boolean;\n}\n\nfunction getToolsDrawerItem(props: ToolsProps): AppLayoutProps.Drawer | null {\n if (props.toolsHide) {\n return null;\n }\n const { iconName, getLabels } = togglesConfig.tools;\n const { mainLabel, closeLabel, openLabel } = getLabels(props.ariaLabels);\n return {\n id: TOOLS_DRAWER_ID,\n content: props.tools,\n resizable: false,\n ariaLabels: {\n triggerButton: openLabel,\n closeButton: closeLabel,\n drawerName: mainLabel ?? '',\n },\n trigger: {\n iconName: iconName,\n },\n };\n}\n\nconst DRAWERS_LIMIT = 2;\n\nconst DEFAULT_ON_CHANGE_PARAMS = { initiatedByUserAction: true };\n\nfunction useRuntimeDrawers(\n disableRuntimeDrawers: boolean | undefined,\n activeDrawerId: string | null,\n onActiveDrawerChange: (newDrawerId: string | null, { initiatedByUserAction }: OnChangeParams) => void,\n activeGlobalDrawersIds: Array<string>,\n onActiveGlobalDrawersChange: (newDrawerId: string, { initiatedByUserAction }: OnChangeParams) => void\n) {\n const [runtimeDrawers, setRuntimeDrawers] = useState<DrawersLayout>({\n localBefore: [],\n localAfter: [],\n global: [],\n });\n const onLocalDrawerChangeStable = useStableCallback(onActiveDrawerChange);\n const onGlobalDrawersChangeStable = useStableCallback(onActiveGlobalDrawersChange);\n\n const localDrawerWasOpenRef = useRef(false);\n localDrawerWasOpenRef.current = localDrawerWasOpenRef.current || !!activeDrawerId;\n const activeGlobalDrawersIdsRef = useRef<Array<string>>([]);\n activeGlobalDrawersIdsRef.current = activeGlobalDrawersIds;\n\n useEffect(() => {\n if (disableRuntimeDrawers) {\n return;\n }\n const unsubscribe = awsuiPluginsInternal.appLayout.onDrawersRegistered(drawers => {\n const localDrawers = drawers.filter(drawer => drawer.type !== 'global');\n const globalDrawers = drawers.filter(drawer => drawer.type === 'global');\n setRuntimeDrawers(convertRuntimeDrawers(localDrawers, globalDrawers));\n if (!localDrawerWasOpenRef.current) {\n const defaultActiveLocalDrawer = sortByPriority(localDrawers).find(drawer => drawer.defaultActive);\n if (defaultActiveLocalDrawer) {\n onLocalDrawerChangeStable(defaultActiveLocalDrawer.id, { initiatedByUserAction: false });\n }\n }\n\n const drawersNotActiveByDefault = globalDrawers.filter(drawer => !drawer.defaultActive);\n const hasDrawersOpenByUserAction = drawersNotActiveByDefault.find(drawer =>\n activeGlobalDrawersIdsRef.current.includes(drawer.id)\n );\n if (hasDrawersOpenByUserAction || activeGlobalDrawersIdsRef.current.length === DRAWERS_LIMIT) {\n return;\n }\n\n const defaultActiveGlobalDrawers = sortByPriority(globalDrawers).filter(\n drawer => !activeGlobalDrawersIdsRef.current.includes(drawer.id) && drawer.defaultActive\n );\n defaultActiveGlobalDrawers.forEach(drawer => {\n onGlobalDrawersChangeStable(drawer.id, { initiatedByUserAction: false });\n });\n });\n return () => {\n unsubscribe();\n setRuntimeDrawers({ localBefore: [], localAfter: [], global: [] });\n };\n }, [disableRuntimeDrawers, onGlobalDrawersChangeStable, onLocalDrawerChangeStable]);\n\n return runtimeDrawers;\n}\n\nfunction useDrawerRuntimeOpenClose(\n disableRuntimeDrawers: boolean | undefined,\n localDrawers: AppLayoutProps.Drawer[] | null,\n globalDrawers: AppLayoutProps.Drawer[],\n activeDrawerId: string | null,\n onActiveDrawerChange: (newDrawerId: string | null, { initiatedByUserAction }: OnChangeParams) => void,\n activeGlobalDrawersIds: Array<string>,\n onActiveGlobalDrawersChange: (newDrawerId: string, { initiatedByUserAction }: OnChangeParams) => void\n) {\n const onDrawerOpened: DrawersToggledListener = useStableCallback((drawerId, params = DEFAULT_ON_CHANGE_PARAMS) => {\n const localDrawer = localDrawers?.find(drawer => drawer.id === drawerId);\n const globalDrawer = globalDrawers.find(drawer => drawer.id === drawerId);\n if (localDrawer && activeDrawerId !== drawerId) {\n onActiveDrawerChange(drawerId, params);\n }\n if (globalDrawer && !activeGlobalDrawersIds.includes(drawerId)) {\n onActiveGlobalDrawersChange(drawerId, params);\n }\n });\n\n const onDrawerClosed: DrawersToggledListener = useStableCallback((drawerId, params = DEFAULT_ON_CHANGE_PARAMS) => {\n const localDrawer = localDrawers?.find(drawer => drawer.id === drawerId);\n const globalDrawer = globalDrawers.find(drawer => drawer.id === drawerId);\n if (localDrawer && activeDrawerId === drawerId) {\n onActiveDrawerChange(null, params);\n }\n if (globalDrawer && activeGlobalDrawersIds.includes(drawerId)) {\n onActiveGlobalDrawersChange(drawerId, params);\n }\n });\n\n useEffect(() => {\n if (disableRuntimeDrawers) {\n return;\n }\n return awsuiPluginsInternal.appLayout.onDrawerOpened(onDrawerOpened);\n }, [disableRuntimeDrawers, onDrawerOpened]);\n\n useEffect(() => {\n if (disableRuntimeDrawers) {\n return;\n }\n return awsuiPluginsInternal.appLayout.onDrawerClosed(onDrawerClosed);\n }, [disableRuntimeDrawers, onDrawerClosed]);\n}\n\nfunction useDrawerRuntimeResize(\n disableRuntimeDrawers: boolean | undefined,\n onActiveDrawerResize: ({ id, size }: { id: string; size: number }) => void\n) {\n const onRuntimeDrawerResize = useStableCallback((drawerId: string, size: number) => {\n onActiveDrawerResize({ id: drawerId, size });\n });\n\n useEffect(() => {\n if (disableRuntimeDrawers) {\n return;\n }\n\n return awsuiPluginsInternal.appLayout.onDrawerResize(onRuntimeDrawerResize);\n }, [disableRuntimeDrawers, onRuntimeDrawerResize]);\n}\n\nfunction applyToolsDrawer(toolsProps: ToolsProps, runtimeDrawers: DrawersLayout) {\n const drawers = [...runtimeDrawers.localBefore, ...runtimeDrawers.localAfter];\n if (drawers.length === 0 && toolsProps.disableDrawersMerge) {\n return null;\n }\n const toolsItem = getToolsDrawerItem(toolsProps);\n if (toolsItem) {\n drawers.unshift(toolsItem);\n }\n\n return drawers;\n}\n\nexport const MIN_DRAWER_SIZE = 290;\n\ntype UseDrawersProps = Pick<AppLayoutProps, 'drawers' | 'activeDrawerId' | 'onDrawerChange'> & {\n __disableRuntimeDrawers?: boolean;\n onGlobalDrawerFocus?: (drawerId: string, open: boolean) => void;\n onAddNewActiveDrawer?: (drawerId: string) => void;\n};\n\nexport function useDrawers(\n {\n drawers,\n activeDrawerId: controlledActiveDrawerId,\n onDrawerChange,\n onGlobalDrawerFocus,\n onAddNewActiveDrawer,\n __disableRuntimeDrawers: disableRuntimeDrawers,\n }: UseDrawersProps,\n ariaLabels: AppLayoutProps['ariaLabels'],\n toolsProps: ToolsProps\n) {\n const [activeDrawerId = null, setActiveDrawerId] = useControllable(controlledActiveDrawerId, onDrawerChange, null, {\n componentName: 'AppLayout',\n controlledProp: 'activeDrawerId',\n changeHandler: 'onChange',\n });\n const [activeGlobalDrawersIds, setActiveGlobalDrawersIds] = useState<Array<string>>([]);\n const [drawerSizes, setDrawerSizes] = useState<Record<string, number>>({});\n const [expandedDrawerId, setExpandedDrawerId] = useState<string | null>(null);\n // FIFO queue that keeps track of open drawers, where the first element is the most recently opened drawer\n const drawersOpenQueue = useRef<Array<string>>([]);\n\n function onActiveDrawerResize({ id, size }: { id: string; size: number }) {\n setDrawerSizes(oldSizes => ({ ...oldSizes, [id]: size }));\n if (activeDrawer?.id === id) {\n fireNonCancelableEvent(activeDrawer?.onResize, { id, size });\n }\n const activeGlobalDrawer = runtimeGlobalDrawers.find(drawer => drawer.id === id);\n fireNonCancelableEvent(activeGlobalDrawer?.onResize, { id, size });\n }\n\n function onActiveDrawerChange(\n newDrawerId: string | null,\n { initiatedByUserAction }: OnChangeParams = DEFAULT_ON_CHANGE_PARAMS\n ) {\n setActiveDrawerId(newDrawerId);\n if (newDrawerId) {\n onAddNewActiveDrawer?.(newDrawerId);\n }\n if (hasOwnDrawers) {\n fireNonCancelableEvent(onDrawerChange, { activeDrawerId: newDrawerId });\n } else if (!toolsProps.toolsHide) {\n toolsProps.onToolsToggle(newDrawerId === TOOLS_DRAWER_ID);\n }\n\n if (newDrawerId) {\n drawersOpenQueue.current = [newDrawerId, ...drawersOpenQueue.current];\n const newDrawer = [...runtimeDrawers.localBefore, ...runtimeDrawers.localAfter]?.find(\n drawer => drawer.id === newDrawerId\n );\n fireNonCancelableEvent(newDrawer?.onToggle, { isOpen: true, initiatedByUserAction });\n }\n\n if (activeDrawerId) {\n drawersOpenQueue.current = drawersOpenQueue.current.filter(id => id !== activeDrawerId);\n const activeDrawer = [...runtimeDrawers.localBefore, ...runtimeDrawers.localAfter]?.find(\n drawer => drawer.id === activeDrawerId\n );\n fireNonCancelableEvent(activeDrawer?.onToggle, { isOpen: false, initiatedByUserAction });\n }\n }\n\n function onActiveGlobalDrawersChange(\n drawerId: string,\n { initiatedByUserAction }: Partial<OnChangeParams> = DEFAULT_ON_CHANGE_PARAMS\n ) {\n const drawer = runtimeGlobalDrawers.find(drawer => drawer.id === drawerId);\n if (activeGlobalDrawersIds.includes(drawerId)) {\n setActiveGlobalDrawersIds(currentState => currentState.filter(id => id !== drawerId));\n onGlobalDrawerFocus?.(drawerId, false);\n drawersOpenQueue.current = drawersOpenQueue.current.filter(id => id !== drawerId);\n fireNonCancelableEvent(drawer?.onToggle, { isOpen: false, initiatedByUserAction });\n if (drawerId === expandedDrawerId) {\n setExpandedDrawerId(null);\n }\n } else if (drawerId) {\n onAddNewActiveDrawer?.(drawerId);\n setActiveGlobalDrawersIds(currentState => [drawerId, ...currentState].slice(0, DRAWERS_LIMIT!));\n onGlobalDrawerFocus?.(drawerId, true);\n drawersOpenQueue.current = [drawerId, ...drawersOpenQueue.current];\n fireNonCancelableEvent(drawer?.onToggle, { isOpen: true, initiatedByUserAction });\n }\n }\n\n const hasOwnDrawers = !!drawers;\n // support toolsOpen in runtime-drawers-only mode\n let activeDrawerIdResolved =\n toolsProps?.toolsOpen && !hasOwnDrawers\n ? TOOLS_DRAWER_ID\n : activeDrawerId !== TOOLS_DRAWER_ID\n ? activeDrawerId\n : null;\n const runtimeDrawers = useRuntimeDrawers(\n disableRuntimeDrawers,\n activeDrawerIdResolved,\n onActiveDrawerChange,\n activeGlobalDrawersIds,\n onActiveGlobalDrawersChange\n );\n const { localBefore, localAfter, global: runtimeGlobalDrawers } = runtimeDrawers;\n const combinedLocalDrawers = drawers\n ? [...localBefore, ...drawers, ...localAfter]\n : applyToolsDrawer(toolsProps, runtimeDrawers);\n const activeDrawer = combinedLocalDrawers?.find(drawer => drawer.id === activeDrawerIdResolved);\n // ensure that id is only defined when the drawer exists\n activeDrawerIdResolved = activeDrawer?.id ?? null;\n const activeGlobalDrawers = runtimeGlobalDrawers.filter(drawer => activeGlobalDrawersIds.includes(drawer.id));\n\n useDrawerRuntimeOpenClose(\n disableRuntimeDrawers,\n combinedLocalDrawers,\n runtimeGlobalDrawers,\n activeDrawerId,\n onActiveDrawerChange,\n activeGlobalDrawersIds,\n onActiveGlobalDrawersChange\n );\n\n useDrawerRuntimeResize(disableRuntimeDrawers, onActiveDrawerResize);\n\n const activeDrawerSize = activeDrawerIdResolved\n ? (drawerSizes[activeDrawerIdResolved] ?? activeDrawer?.defaultSize ?? toolsProps.toolsWidth)\n : toolsProps.toolsWidth;\n const activeGlobalDrawersSizes: Record<string, number> = activeGlobalDrawersIds.reduce(\n (acc, currentGlobalDrawerId) => {\n const currentGlobalDrawer = runtimeGlobalDrawers.find(drawer => drawer.id === currentGlobalDrawerId);\n return {\n ...acc,\n [currentGlobalDrawerId]:\n drawerSizes[currentGlobalDrawerId] ?? currentGlobalDrawer?.defaultSize ?? MIN_DRAWER_SIZE,\n };\n },\n {}\n );\n const minGlobalDrawersSizes: Record<string, number> = runtimeGlobalDrawers.reduce((acc, globalDrawer) => {\n return {\n ...acc,\n [globalDrawer.id]: Math.min(globalDrawer.defaultSize ?? MIN_DRAWER_SIZE, MIN_DRAWER_SIZE),\n };\n }, {});\n const minDrawerSize = Math.min(\n toolsProps?.toolsOpen ? toolsProps.toolsWidth : (activeDrawer?.defaultSize ?? MIN_DRAWER_SIZE),\n MIN_DRAWER_SIZE\n );\n\n return {\n ariaLabelsWithDrawers: ariaLabels,\n drawers: combinedLocalDrawers || undefined,\n activeDrawer,\n activeDrawerId: activeDrawerIdResolved,\n globalDrawers: runtimeGlobalDrawers,\n activeGlobalDrawers: activeGlobalDrawers,\n activeGlobalDrawersIds,\n activeGlobalDrawersSizes,\n activeDrawerSize,\n minDrawerSize,\n minGlobalDrawersSizes,\n drawerSizes,\n drawersOpenQueue,\n onActiveDrawerChange,\n onActiveDrawerResize,\n onActiveGlobalDrawersChange,\n expandedDrawerId,\n setExpandedDrawerId,\n };\n}\n"]}
@@ -1,91 +1,91 @@
1
1
 
2
2
  import './styles.scoped.css';
3
3
  export default {
4
- "background": "awsui_background_hyvsj_12yx8_149",
5
- "scrolling-background": "awsui_scrolling-background_hyvsj_12yx8_152",
6
- "breadcrumbs": "awsui_breadcrumbs_hyvsj_12yx8_163",
7
- "drawers-container": "awsui_drawers-container_hyvsj_12yx8_176",
8
- "has-open-drawer": "awsui_has-open-drawer_hyvsj_12yx8_187",
9
- "disable-body-scroll": "awsui_disable-body-scroll_hyvsj_12yx8_208",
10
- "drawers-desktop-triggers-container": "awsui_drawers-desktop-triggers-container_hyvsj_12yx8_213",
11
- "has-multiple-triggers": "awsui_has-multiple-triggers_hyvsj_12yx8_251",
12
- "drawers-mobile-triggers-container": "awsui_drawers-mobile-triggers-container_hyvsj_12yx8_261",
13
- "drawers-trigger-content": "awsui_drawers-trigger-content_hyvsj_12yx8_266",
14
- "drawers-trigger-overflow": "awsui_drawers-trigger-overflow_hyvsj_12yx8_280",
15
- "drawers-trigger": "awsui_drawers-trigger_hyvsj_12yx8_266",
16
- "drawer": "awsui_drawer_hyvsj_12yx8_176",
17
- "drawer-content-container": "awsui_drawer-content-container_hyvsj_12yx8_311",
18
- "drawer-close-button": "awsui_drawer-close-button_hyvsj_12yx8_320",
19
- "drawer-content": "awsui_drawer-content_hyvsj_12yx8_311",
20
- "drawer-content-hidden": "awsui_drawer-content-hidden_hyvsj_12yx8_329",
21
- "drawer-slider": "awsui_drawer-slider_hyvsj_12yx8_332",
22
- "is-drawer-open": "awsui_is-drawer-open_hyvsj_12yx8_339",
23
- "content": "awsui_content_hyvsj_12yx8_365",
24
- "layout": "awsui_layout_hyvsj_12yx8_390",
25
- "has-max-content-width": "awsui_has-max-content-width_hyvsj_12yx8_462",
26
- "content-type-dashboard": "awsui_content-type-dashboard_hyvsj_12yx8_477",
27
- "content-type-table": "awsui_content-type-table_hyvsj_12yx8_491",
28
- "content-type-cards": "awsui_content-type-cards_hyvsj_12yx8_491",
29
- "is-overlap-disabled": "awsui_is-overlap-disabled_hyvsj_12yx8_497",
30
- "is-hide-mobile-toolbar": "awsui_is-hide-mobile-toolbar_hyvsj_12yx8_500",
31
- "has-content-gap-left": "awsui_has-content-gap-left_hyvsj_12yx8_514",
32
- "has-content-gap-right": "awsui_has-content-gap-right_hyvsj_12yx8_517",
33
- "has-breadcrumbs": "awsui_has-breadcrumbs_hyvsj_12yx8_527",
34
- "content-first-child-header": "awsui_content-first-child-header_hyvsj_12yx8_530",
35
- "content-first-child-notifications": "awsui_content-first-child-notifications_hyvsj_12yx8_530",
36
- "has-header": "awsui_has-header_hyvsj_12yx8_530",
37
- "content-first-child-main": "awsui_content-first-child-main_hyvsj_12yx8_545",
38
- "disable-content-paddings": "awsui_disable-content-paddings_hyvsj_12yx8_545",
39
- "has-left-toggles-gutter": "awsui_has-left-toggles-gutter_hyvsj_12yx8_565",
40
- "has-right-toggles-gutter": "awsui_has-right-toggles-gutter_hyvsj_12yx8_568",
41
- "has-split-panel": "awsui_has-split-panel_hyvsj_12yx8_588",
42
- "split-panel-position-bottom": "awsui_split-panel-position-bottom_hyvsj_12yx8_588",
43
- "block-body-scroll": "awsui_block-body-scroll_hyvsj_12yx8_596",
44
- "unfocusable": "awsui_unfocusable_hyvsj_12yx8_601",
45
- "container": "awsui_container_hyvsj_12yx8_611",
46
- "is-navigation-open": "awsui_is-navigation-open_hyvsj_12yx8_637",
47
- "is-tools-open": "awsui_is-tools-open_hyvsj_12yx8_640",
48
- "is-split-panel-open": "awsui_is-split-panel-open_hyvsj_12yx8_640",
49
- "split-panel-position-side": "awsui_split-panel-position-side_hyvsj_12yx8_640",
50
- "has-active-drawer": "awsui_has-active-drawer_hyvsj_12yx8_640",
51
- "mobile-toolbar": "awsui_mobile-toolbar_hyvsj_12yx8_653",
52
- "remove-high-contrast-header": "awsui_remove-high-contrast-header_hyvsj_12yx8_670",
53
- "mobile-toolbar-nav": "awsui_mobile-toolbar-nav_hyvsj_12yx8_674",
54
- "mobile-toolbar-breadcrumbs": "awsui_mobile-toolbar-breadcrumbs_hyvsj_12yx8_678",
55
- "mobile-toolbar-tools": "awsui_mobile-toolbar-tools_hyvsj_12yx8_682",
56
- "navigation-container": "awsui_navigation-container_hyvsj_12yx8_691",
57
- "show-navigation": "awsui_show-navigation_hyvsj_12yx8_729",
58
- "animating": "awsui_animating_hyvsj_12yx8_752",
59
- "showButtons": "awsui_showButtons_hyvsj_12yx8_1",
60
- "navigation": "awsui_navigation_hyvsj_12yx8_691",
61
- "openNavigation": "awsui_openNavigation_hyvsj_12yx8_1",
62
- "animated-content": "awsui_animated-content_hyvsj_12yx8_816",
63
- "content-container": "awsui_content-container_hyvsj_12yx8_819",
64
- "hide-navigation": "awsui_hide-navigation_hyvsj_12yx8_828",
65
- "notifications": "awsui_notifications_hyvsj_12yx8_838",
66
- "has-notification-content": "awsui_has-notification-content_hyvsj_12yx8_843",
67
- "sticky-notifications": "awsui_sticky-notifications_hyvsj_12yx8_847",
68
- "high-contrast": "awsui_high-contrast_hyvsj_12yx8_852",
69
- "split-panel-bottom": "awsui_split-panel-bottom_hyvsj_12yx8_870",
70
- "position-bottom": "awsui_position-bottom_hyvsj_12yx8_917",
71
- "openSplitPanelBottom": "awsui_openSplitPanelBottom_hyvsj_12yx8_1",
72
- "split-panel-side": "awsui_split-panel-side_hyvsj_12yx8_946",
73
- "position-side": "awsui_position-side_hyvsj_12yx8_959",
74
- "tools-container": "awsui_tools-container_hyvsj_12yx8_981",
75
- "tools": "awsui_tools_hyvsj_12yx8_981",
76
- "openTools": "awsui_openTools_hyvsj_12yx8_1",
77
- "has-tools-form-persistence": "awsui_has-tools-form-persistence_hyvsj_12yx8_1070",
78
- "hide-tools": "awsui_hide-tools_hyvsj_12yx8_1080",
79
- "show-tools": "awsui_show-tools_hyvsj_12yx8_1092",
80
- "has-tools-form": "awsui_has-tools-form_hyvsj_12yx8_1070",
81
- "trigger-button-styles": "awsui_trigger-button-styles_hyvsj_12yx8_1172",
82
- "trigger-badge-wrapper": "awsui_trigger-badge-wrapper_hyvsj_12yx8_1188",
83
- "trigger": "awsui_trigger_hyvsj_12yx8_1172",
84
- "selected": "awsui_selected_hyvsj_12yx8_1240",
85
- "badge": "awsui_badge_hyvsj_12yx8_1260",
86
- "trigger-wrapper": "awsui_trigger-wrapper_hyvsj_12yx8_1264",
87
- "trigger-wrapper-tooltip-visible": "awsui_trigger-wrapper-tooltip-visible_hyvsj_12yx8_1275",
88
- "dot": "awsui_dot_hyvsj_12yx8_1279",
89
- "trigger-tooltip": "awsui_trigger-tooltip_hyvsj_12yx8_1292"
4
+ "background": "awsui_background_hyvsj_1kl4h_149",
5
+ "scrolling-background": "awsui_scrolling-background_hyvsj_1kl4h_152",
6
+ "breadcrumbs": "awsui_breadcrumbs_hyvsj_1kl4h_163",
7
+ "drawers-container": "awsui_drawers-container_hyvsj_1kl4h_176",
8
+ "has-open-drawer": "awsui_has-open-drawer_hyvsj_1kl4h_187",
9
+ "disable-body-scroll": "awsui_disable-body-scroll_hyvsj_1kl4h_208",
10
+ "drawers-desktop-triggers-container": "awsui_drawers-desktop-triggers-container_hyvsj_1kl4h_213",
11
+ "has-multiple-triggers": "awsui_has-multiple-triggers_hyvsj_1kl4h_251",
12
+ "drawers-mobile-triggers-container": "awsui_drawers-mobile-triggers-container_hyvsj_1kl4h_261",
13
+ "drawers-trigger-content": "awsui_drawers-trigger-content_hyvsj_1kl4h_266",
14
+ "drawers-trigger-overflow": "awsui_drawers-trigger-overflow_hyvsj_1kl4h_280",
15
+ "drawers-trigger": "awsui_drawers-trigger_hyvsj_1kl4h_266",
16
+ "drawer": "awsui_drawer_hyvsj_1kl4h_176",
17
+ "drawer-content-container": "awsui_drawer-content-container_hyvsj_1kl4h_311",
18
+ "drawer-close-button": "awsui_drawer-close-button_hyvsj_1kl4h_320",
19
+ "drawer-content": "awsui_drawer-content_hyvsj_1kl4h_311",
20
+ "drawer-content-hidden": "awsui_drawer-content-hidden_hyvsj_1kl4h_329",
21
+ "drawer-slider": "awsui_drawer-slider_hyvsj_1kl4h_332",
22
+ "is-drawer-open": "awsui_is-drawer-open_hyvsj_1kl4h_339",
23
+ "content": "awsui_content_hyvsj_1kl4h_365",
24
+ "layout": "awsui_layout_hyvsj_1kl4h_390",
25
+ "has-max-content-width": "awsui_has-max-content-width_hyvsj_1kl4h_462",
26
+ "content-type-dashboard": "awsui_content-type-dashboard_hyvsj_1kl4h_477",
27
+ "content-type-table": "awsui_content-type-table_hyvsj_1kl4h_491",
28
+ "content-type-cards": "awsui_content-type-cards_hyvsj_1kl4h_491",
29
+ "is-overlap-disabled": "awsui_is-overlap-disabled_hyvsj_1kl4h_497",
30
+ "is-hide-mobile-toolbar": "awsui_is-hide-mobile-toolbar_hyvsj_1kl4h_500",
31
+ "has-content-gap-left": "awsui_has-content-gap-left_hyvsj_1kl4h_514",
32
+ "has-content-gap-right": "awsui_has-content-gap-right_hyvsj_1kl4h_517",
33
+ "has-breadcrumbs": "awsui_has-breadcrumbs_hyvsj_1kl4h_527",
34
+ "content-first-child-header": "awsui_content-first-child-header_hyvsj_1kl4h_530",
35
+ "content-first-child-notifications": "awsui_content-first-child-notifications_hyvsj_1kl4h_530",
36
+ "has-header": "awsui_has-header_hyvsj_1kl4h_530",
37
+ "content-first-child-main": "awsui_content-first-child-main_hyvsj_1kl4h_545",
38
+ "disable-content-paddings": "awsui_disable-content-paddings_hyvsj_1kl4h_545",
39
+ "has-left-toggles-gutter": "awsui_has-left-toggles-gutter_hyvsj_1kl4h_565",
40
+ "has-right-toggles-gutter": "awsui_has-right-toggles-gutter_hyvsj_1kl4h_568",
41
+ "has-split-panel": "awsui_has-split-panel_hyvsj_1kl4h_588",
42
+ "split-panel-position-bottom": "awsui_split-panel-position-bottom_hyvsj_1kl4h_588",
43
+ "block-body-scroll": "awsui_block-body-scroll_hyvsj_1kl4h_596",
44
+ "unfocusable": "awsui_unfocusable_hyvsj_1kl4h_601",
45
+ "container": "awsui_container_hyvsj_1kl4h_611",
46
+ "is-navigation-open": "awsui_is-navigation-open_hyvsj_1kl4h_637",
47
+ "is-tools-open": "awsui_is-tools-open_hyvsj_1kl4h_640",
48
+ "is-split-panel-open": "awsui_is-split-panel-open_hyvsj_1kl4h_640",
49
+ "split-panel-position-side": "awsui_split-panel-position-side_hyvsj_1kl4h_640",
50
+ "has-active-drawer": "awsui_has-active-drawer_hyvsj_1kl4h_640",
51
+ "mobile-toolbar": "awsui_mobile-toolbar_hyvsj_1kl4h_653",
52
+ "remove-high-contrast-header": "awsui_remove-high-contrast-header_hyvsj_1kl4h_670",
53
+ "mobile-toolbar-nav": "awsui_mobile-toolbar-nav_hyvsj_1kl4h_674",
54
+ "mobile-toolbar-breadcrumbs": "awsui_mobile-toolbar-breadcrumbs_hyvsj_1kl4h_678",
55
+ "mobile-toolbar-tools": "awsui_mobile-toolbar-tools_hyvsj_1kl4h_682",
56
+ "navigation-container": "awsui_navigation-container_hyvsj_1kl4h_691",
57
+ "show-navigation": "awsui_show-navigation_hyvsj_1kl4h_729",
58
+ "animating": "awsui_animating_hyvsj_1kl4h_752",
59
+ "showButtons": "awsui_showButtons_hyvsj_1kl4h_1",
60
+ "navigation": "awsui_navigation_hyvsj_1kl4h_691",
61
+ "openNavigation": "awsui_openNavigation_hyvsj_1kl4h_1",
62
+ "animated-content": "awsui_animated-content_hyvsj_1kl4h_816",
63
+ "content-container": "awsui_content-container_hyvsj_1kl4h_819",
64
+ "hide-navigation": "awsui_hide-navigation_hyvsj_1kl4h_828",
65
+ "notifications": "awsui_notifications_hyvsj_1kl4h_838",
66
+ "has-notification-content": "awsui_has-notification-content_hyvsj_1kl4h_843",
67
+ "sticky-notifications": "awsui_sticky-notifications_hyvsj_1kl4h_847",
68
+ "high-contrast": "awsui_high-contrast_hyvsj_1kl4h_852",
69
+ "split-panel-bottom": "awsui_split-panel-bottom_hyvsj_1kl4h_870",
70
+ "position-bottom": "awsui_position-bottom_hyvsj_1kl4h_917",
71
+ "openSplitPanelBottom": "awsui_openSplitPanelBottom_hyvsj_1kl4h_1",
72
+ "split-panel-side": "awsui_split-panel-side_hyvsj_1kl4h_946",
73
+ "position-side": "awsui_position-side_hyvsj_1kl4h_959",
74
+ "tools-container": "awsui_tools-container_hyvsj_1kl4h_981",
75
+ "tools": "awsui_tools_hyvsj_1kl4h_981",
76
+ "openTools": "awsui_openTools_hyvsj_1kl4h_1",
77
+ "has-tools-form-persistence": "awsui_has-tools-form-persistence_hyvsj_1kl4h_1070",
78
+ "hide-tools": "awsui_hide-tools_hyvsj_1kl4h_1080",
79
+ "show-tools": "awsui_show-tools_hyvsj_1kl4h_1092",
80
+ "has-tools-form": "awsui_has-tools-form_hyvsj_1kl4h_1070",
81
+ "trigger-button-styles": "awsui_trigger-button-styles_hyvsj_1kl4h_1172",
82
+ "trigger-badge-wrapper": "awsui_trigger-badge-wrapper_hyvsj_1kl4h_1188",
83
+ "trigger": "awsui_trigger_hyvsj_1kl4h_1172",
84
+ "selected": "awsui_selected_hyvsj_1kl4h_1240",
85
+ "badge": "awsui_badge_hyvsj_1kl4h_1260",
86
+ "trigger-wrapper": "awsui_trigger-wrapper_hyvsj_1kl4h_1264",
87
+ "trigger-wrapper-tooltip-visible": "awsui_trigger-wrapper-tooltip-visible_hyvsj_1kl4h_1275",
88
+ "dot": "awsui_dot_hyvsj_1kl4h_1279",
89
+ "trigger-tooltip": "awsui_trigger-tooltip_hyvsj_1kl4h_1292"
90
90
  };
91
91