@cloudscape-design/components-themeable 3.0.269 → 3.0.271

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 (170) hide show
  1. package/lib/internal/manifest.json +1 -1
  2. package/lib/internal/scss/app-layout/test-classes/styles.scss +4 -0
  3. package/lib/internal/scss/collection-preferences/content-display/sortable-item.scss +80 -0
  4. package/lib/internal/scss/collection-preferences/content-display/styles.scss +33 -0
  5. package/lib/internal/scss/collection-preferences/styles.scss +1 -0
  6. package/lib/internal/scss/collection-preferences/visible-content.scss +1 -0
  7. package/lib/internal/scss/internal/components/token-list/styles.scss +3 -1
  8. package/lib/internal/scss/internal/drag-handle/styles.scss +18 -0
  9. package/lib/internal/scss/internal/handle/styles.scss +31 -0
  10. package/lib/internal/scss/table/body-cell/styles.scss +4 -159
  11. package/lib/internal/scss/table/header-cell/styles.scss +160 -0
  12. package/lib/internal/template/THIRD-PARTY-LICENSES +31 -0
  13. package/lib/internal/template/app-layout/drawer/index.d.ts +1 -1
  14. package/lib/internal/template/app-layout/drawer/index.d.ts.map +1 -1
  15. package/lib/internal/template/app-layout/drawer/index.js +3 -3
  16. package/lib/internal/template/app-layout/drawer/index.js.map +1 -1
  17. package/lib/internal/template/app-layout/drawer/interfaces.d.ts +17 -3
  18. package/lib/internal/template/app-layout/drawer/interfaces.d.ts.map +1 -1
  19. package/lib/internal/template/app-layout/drawer/interfaces.js.map +1 -1
  20. package/lib/internal/template/app-layout/drawer/resizable-drawer.d.ts.map +1 -1
  21. package/lib/internal/template/app-layout/drawer/resizable-drawer.js +6 -4
  22. package/lib/internal/template/app-layout/drawer/resizable-drawer.js.map +1 -1
  23. package/lib/internal/template/app-layout/index.d.ts.map +1 -1
  24. package/lib/internal/template/app-layout/index.js +47 -31
  25. package/lib/internal/template/app-layout/index.js.map +1 -1
  26. package/lib/internal/template/app-layout/mobile-toolbar/index.d.ts.map +1 -1
  27. package/lib/internal/template/app-layout/mobile-toolbar/index.js +4 -1
  28. package/lib/internal/template/app-layout/mobile-toolbar/index.js.map +1 -1
  29. package/lib/internal/template/app-layout/test-classes/styles.css.js +19 -18
  30. package/lib/internal/template/app-layout/test-classes/styles.scoped.css +22 -18
  31. package/lib/internal/template/app-layout/test-classes/styles.selectors.js +19 -18
  32. package/lib/internal/template/app-layout/visual-refresh/drawers.d.ts +1 -0
  33. package/lib/internal/template/app-layout/visual-refresh/drawers.d.ts.map +1 -1
  34. package/lib/internal/template/app-layout/visual-refresh/drawers.js +2 -2
  35. package/lib/internal/template/app-layout/visual-refresh/drawers.js.map +1 -1
  36. package/lib/internal/template/attribute-editor/row.d.ts.map +1 -1
  37. package/lib/internal/template/attribute-editor/row.js +1 -3
  38. package/lib/internal/template/attribute-editor/row.js.map +1 -1
  39. package/lib/internal/template/collection-preferences/content-display/index.d.ts +9 -0
  40. package/lib/internal/template/collection-preferences/content-display/index.d.ts.map +1 -0
  41. package/lib/internal/template/collection-preferences/content-display/index.js +55 -0
  42. package/lib/internal/template/collection-preferences/content-display/index.js.map +1 -0
  43. package/lib/internal/template/collection-preferences/content-display/keyboard-sensor/defaults.d.ts +3 -0
  44. package/lib/internal/template/collection-preferences/content-display/keyboard-sensor/defaults.d.ts.map +1 -0
  45. package/lib/internal/template/collection-preferences/content-display/keyboard-sensor/defaults.js +9 -0
  46. package/lib/internal/template/collection-preferences/content-display/keyboard-sensor/defaults.js.map +1 -0
  47. package/lib/internal/template/collection-preferences/content-display/keyboard-sensor/index.d.ts +19 -0
  48. package/lib/internal/template/collection-preferences/content-display/keyboard-sensor/index.d.ts.map +1 -0
  49. package/lib/internal/template/collection-preferences/content-display/keyboard-sensor/index.js +126 -0
  50. package/lib/internal/template/collection-preferences/content-display/keyboard-sensor/index.js.map +1 -0
  51. package/lib/internal/template/collection-preferences/content-display/keyboard-sensor/utilities/events.d.ts +11 -0
  52. package/lib/internal/template/collection-preferences/content-display/keyboard-sensor/utilities/events.d.ts.map +1 -0
  53. package/lib/internal/template/collection-preferences/content-display/keyboard-sensor/utilities/events.js +14 -0
  54. package/lib/internal/template/collection-preferences/content-display/keyboard-sensor/utilities/events.js.map +1 -0
  55. package/lib/internal/template/collection-preferences/content-display/keyboard-sensor/utilities/listeners.d.ts +8 -0
  56. package/lib/internal/template/collection-preferences/content-display/keyboard-sensor/utilities/listeners.d.ts.map +1 -0
  57. package/lib/internal/template/collection-preferences/content-display/keyboard-sensor/utilities/listeners.js +17 -0
  58. package/lib/internal/template/collection-preferences/content-display/keyboard-sensor/utilities/listeners.js.map +1 -0
  59. package/lib/internal/template/collection-preferences/content-display/keyboard-sensor/utilities/scroll.d.ts +30 -0
  60. package/lib/internal/template/collection-preferences/content-display/keyboard-sensor/utilities/scroll.d.ts.map +1 -0
  61. package/lib/internal/template/collection-preferences/content-display/keyboard-sensor/utilities/scroll.js +95 -0
  62. package/lib/internal/template/collection-preferences/content-display/keyboard-sensor/utilities/scroll.js.map +1 -0
  63. package/lib/internal/template/collection-preferences/content-display/sortable-item.d.ts +9 -0
  64. package/lib/internal/template/collection-preferences/content-display/sortable-item.d.ts.map +1 -0
  65. package/lib/internal/template/collection-preferences/content-display/sortable-item.js +52 -0
  66. package/lib/internal/template/collection-preferences/content-display/sortable-item.js.map +1 -0
  67. package/lib/internal/template/collection-preferences/content-display/styles.css.js +20 -0
  68. package/lib/internal/template/collection-preferences/content-display/styles.scoped.css +303 -0
  69. package/lib/internal/template/collection-preferences/content-display/styles.selectors.js +21 -0
  70. package/lib/internal/template/collection-preferences/content-display/use-drag-and-drop-reorder.d.ts +14 -0
  71. package/lib/internal/template/collection-preferences/content-display/use-drag-and-drop-reorder.d.ts.map +1 -0
  72. package/lib/internal/template/collection-preferences/content-display/use-drag-and-drop-reorder.js +144 -0
  73. package/lib/internal/template/collection-preferences/content-display/use-drag-and-drop-reorder.js.map +1 -0
  74. package/lib/internal/template/collection-preferences/content-display/use-live-announcements.d.ts +12 -0
  75. package/lib/internal/template/collection-preferences/content-display/use-live-announcements.d.ts.map +1 -0
  76. package/lib/internal/template/collection-preferences/content-display/use-live-announcements.js +40 -0
  77. package/lib/internal/template/collection-preferences/content-display/use-live-announcements.js.map +1 -0
  78. package/lib/internal/template/collection-preferences/content-display/utils.d.ts +9 -0
  79. package/lib/internal/template/collection-preferences/content-display/utils.d.ts.map +1 -0
  80. package/lib/internal/template/collection-preferences/content-display/utils.js +7 -0
  81. package/lib/internal/template/collection-preferences/content-display/utils.js.map +1 -0
  82. package/lib/internal/template/collection-preferences/index.d.ts +1 -1
  83. package/lib/internal/template/collection-preferences/index.d.ts.map +1 -1
  84. package/lib/internal/template/collection-preferences/index.js +15 -9
  85. package/lib/internal/template/collection-preferences/index.js.map +1 -1
  86. package/lib/internal/template/collection-preferences/interfaces.d.ts +47 -1
  87. package/lib/internal/template/collection-preferences/interfaces.d.ts.map +1 -1
  88. package/lib/internal/template/collection-preferences/interfaces.js.map +1 -1
  89. package/lib/internal/template/collection-preferences/styles.css.js +36 -21
  90. package/lib/internal/template/collection-preferences/styles.scoped.css +326 -22
  91. package/lib/internal/template/collection-preferences/styles.selectors.js +36 -21
  92. package/lib/internal/template/collection-preferences/utils.d.ts +1 -1
  93. package/lib/internal/template/collection-preferences/utils.d.ts.map +1 -1
  94. package/lib/internal/template/collection-preferences/utils.js +20 -9
  95. package/lib/internal/template/collection-preferences/utils.js.map +1 -1
  96. package/lib/internal/template/internal/components/token-list/styles.css.js +9 -9
  97. package/lib/internal/template/internal/components/token-list/styles.scoped.css +22 -21
  98. package/lib/internal/template/internal/components/token-list/styles.selectors.js +9 -9
  99. package/lib/internal/template/internal/drag-handle/index.d.ts +9 -0
  100. package/lib/internal/template/internal/drag-handle/index.d.ts.map +1 -0
  101. package/lib/internal/template/internal/drag-handle/index.js +13 -0
  102. package/lib/internal/template/internal/drag-handle/index.js.map +1 -0
  103. package/lib/internal/template/internal/drag-handle/styles.css.js +6 -0
  104. package/lib/internal/template/internal/drag-handle/styles.scoped.css +13 -0
  105. package/lib/internal/template/internal/drag-handle/styles.selectors.js +7 -0
  106. package/lib/internal/template/internal/environment.js +1 -1
  107. package/lib/internal/template/internal/handle/index.d.ts +3 -0
  108. package/lib/internal/template/internal/handle/index.d.ts.map +1 -0
  109. package/lib/internal/template/internal/handle/index.js +14 -0
  110. package/lib/internal/template/internal/handle/index.js.map +1 -0
  111. package/lib/internal/template/internal/handle/styles.css.js +7 -0
  112. package/lib/internal/template/internal/handle/styles.scoped.css +125 -0
  113. package/lib/internal/template/internal/handle/styles.selectors.js +8 -0
  114. package/lib/internal/template/package.json +3 -0
  115. package/lib/internal/template/table/body-cell/styles.css.js +23 -40
  116. package/lib/internal/template/table/body-cell/styles.scoped.css +59 -220
  117. package/lib/internal/template/table/body-cell/styles.selectors.js +23 -40
  118. package/lib/internal/template/table/header-cell/index.js +1 -1
  119. package/lib/internal/template/table/header-cell/index.js.map +1 -1
  120. package/lib/internal/template/table/header-cell/styles.css.js +24 -0
  121. package/lib/internal/template/table/header-cell/styles.scoped.css +252 -0
  122. package/lib/internal/template/table/header-cell/styles.selectors.js +25 -0
  123. package/lib/internal/template/table/interfaces.d.ts +16 -3
  124. package/lib/internal/template/table/interfaces.d.ts.map +1 -1
  125. package/lib/internal/template/table/interfaces.js.map +1 -1
  126. package/lib/internal/template/table/internal.d.ts.map +1 -1
  127. package/lib/internal/template/table/internal.js +17 -9
  128. package/lib/internal/template/table/internal.js.map +1 -1
  129. package/lib/internal/template/table/thead.d.ts.map +1 -1
  130. package/lib/internal/template/table/thead.js +4 -7
  131. package/lib/internal/template/table/thead.js.map +1 -1
  132. package/lib/internal/template/table/use-column-widths.js +1 -1
  133. package/lib/internal/template/table/use-column-widths.js.map +1 -1
  134. package/lib/internal/template/table/utils.d.ts +5 -0
  135. package/lib/internal/template/table/utils.d.ts.map +1 -1
  136. package/lib/internal/template/table/utils.js +23 -0
  137. package/lib/internal/template/table/utils.js.map +1 -1
  138. package/lib/internal/template/test-utils/dom/app-layout/index.d.ts +6 -0
  139. package/lib/internal/template/test-utils/dom/app-layout/index.js +18 -0
  140. package/lib/internal/template/test-utils/dom/app-layout/index.js.map +1 -1
  141. package/lib/internal/template/test-utils/dom/collection-preferences/content-display-preference.d.ts +37 -0
  142. package/lib/internal/template/test-utils/dom/collection-preferences/content-display-preference.js +62 -0
  143. package/lib/internal/template/test-utils/dom/collection-preferences/content-display-preference.js.map +1 -0
  144. package/lib/internal/template/test-utils/dom/collection-preferences/index.d.ts +2 -0
  145. package/lib/internal/template/test-utils/dom/collection-preferences/index.js +4 -0
  146. package/lib/internal/template/test-utils/dom/collection-preferences/index.js.map +1 -1
  147. package/lib/internal/template/test-utils/dom/table/index.js +10 -9
  148. package/lib/internal/template/test-utils/dom/table/index.js.map +1 -1
  149. package/lib/internal/template/test-utils/selectors/app-layout/index.d.ts +6 -0
  150. package/lib/internal/template/test-utils/selectors/app-layout/index.js +18 -0
  151. package/lib/internal/template/test-utils/selectors/app-layout/index.js.map +1 -1
  152. package/lib/internal/template/test-utils/selectors/collection-preferences/content-display-preference.d.ts +37 -0
  153. package/lib/internal/template/test-utils/selectors/collection-preferences/content-display-preference.js +62 -0
  154. package/lib/internal/template/test-utils/selectors/collection-preferences/content-display-preference.js.map +1 -0
  155. package/lib/internal/template/test-utils/selectors/collection-preferences/index.d.ts +2 -0
  156. package/lib/internal/template/test-utils/selectors/collection-preferences/index.js +4 -0
  157. package/lib/internal/template/test-utils/selectors/collection-preferences/index.js.map +1 -1
  158. package/lib/internal/template/test-utils/selectors/table/index.js +10 -9
  159. package/lib/internal/template/test-utils/selectors/table/index.js.map +1 -1
  160. package/lib/internal/template/test-utils/tsconfig.tsbuildinfo +1 -1
  161. package/lib/internal/template/top-navigation/parts/overflow-menu/menu-item.d.ts.map +1 -1
  162. package/lib/internal/template/top-navigation/parts/overflow-menu/menu-item.js +5 -4
  163. package/lib/internal/template/top-navigation/parts/overflow-menu/menu-item.js.map +1 -1
  164. package/lib/internal/template/top-navigation/parts/utility.js +1 -1
  165. package/lib/internal/template/top-navigation/parts/utility.js.map +1 -1
  166. package/package.json +1 -1
  167. package/lib/internal/template/table/table-wrapper.d.ts +0 -13
  168. package/lib/internal/template/table/table-wrapper.d.ts.map +0 -1
  169. package/lib/internal/template/table/table-wrapper.js +0 -15
  170. package/lib/internal/template/table/table-wrapper.js.map +0 -1
@@ -3,6 +3,7 @@ import { ButtonProps } from '../../button/interfaces';
3
3
  import { togglesConfig } from '../toggles';
4
4
  import { AppLayoutProps } from '../interfaces';
5
5
  import { IconProps } from '../../icon/interfaces';
6
+ import { NonCancelableEventHandler } from '../../internal/events';
6
7
  import { DrawerFocusControlRefs } from '../utils/use-drawer-focus-control';
7
8
  export interface DesktopDrawerProps {
8
9
  contentClassName: string;
@@ -34,7 +35,7 @@ export interface DesktopDrawerProps {
34
35
  resizeHandle?: React.ReactNode;
35
36
  }
36
37
  export interface ResizableDrawerProps extends DesktopDrawerProps {
37
- activeDrawer: DrawerItem;
38
+ activeDrawer?: DrawerItem;
38
39
  onResize: (resizeDetail: {
39
40
  size: number;
40
41
  id: string;
@@ -45,16 +46,17 @@ export interface ResizableDrawerProps extends DesktopDrawerProps {
45
46
  }
46
47
  export interface DrawerTriggersBarProps {
47
48
  contentClassName: string;
49
+ toggleClassName: string;
48
50
  topOffset: number | undefined;
49
51
  bottomOffset: number | undefined;
50
52
  isMobile: boolean;
51
53
  drawers?: {
52
54
  items: Array<DrawerItem>;
53
- activeDrawerId: string | undefined;
55
+ activeDrawerId?: string;
54
56
  onChange: (changeDetail: {
55
57
  activeDrawerId: string | undefined;
56
58
  }) => void;
57
- ariaLabel: string;
59
+ ariaLabel?: string;
58
60
  };
59
61
  }
60
62
  export interface DrawerItemAriaLabels {
@@ -81,4 +83,16 @@ export interface SizeControlProps {
81
83
  setSidePanelWidth: (width: number) => void;
82
84
  setBottomPanelHeight: (height: number) => void;
83
85
  }
86
+ export interface InternalDrawerProps {
87
+ drawers?: {
88
+ items: Array<DrawerItem>;
89
+ activeDrawerId?: string;
90
+ onChange?: NonCancelableEventHandler<string>;
91
+ onResize?: NonCancelableEventHandler<{
92
+ size: number;
93
+ id: string;
94
+ }>;
95
+ ariaLabel?: string;
96
+ };
97
+ }
84
98
  //# sourceMappingURL=interfaces.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"interfaces.d.ts","sourceRoot":"lib/default/","sources":["app-layout/drawer/interfaces.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"interfaces.d.ts","sourceRoot":"lib/default/","sources":["app-layout/drawer/interfaces.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"interfaces.js","sourceRoot":"lib/default/","sources":["app-layout/drawer/interfaces.ts"],"names":[],"mappings":"","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport React from 'react';\nimport { ButtonProps } from '../../button/interfaces';\nimport { togglesConfig } from '../toggles';\nimport { AppLayoutProps } from '../interfaces';\nimport { IconProps } from '../../icon/interfaces';\n\nimport { DrawerFocusControlRefs } from '../utils/use-drawer-focus-control';\n\nexport interface DesktopDrawerProps {\n contentClassName: string;\n toggleClassName: string;\n closeClassName: string;\n toggleRefs: {\n toggle: React.Ref<ButtonProps.Ref>;\n close: React.Ref<ButtonProps.Ref>;\n };\n width: number;\n topOffset: number | undefined;\n bottomOffset: number | undefined;\n ariaLabels: AppLayoutProps.Labels | undefined;\n drawersAriaLabels?: DrawerItemAriaLabels | undefined;\n children: React.ReactNode;\n type: keyof typeof togglesConfig;\n isMobile: boolean;\n isOpen: boolean;\n onToggle: (isOpen: boolean) => void;\n onClick?: (event: React.MouseEvent) => void;\n onLoseFocus?: (event: React.FocusEvent) => void;\n drawers?: {\n items: Array<DrawerItem>;\n activeDrawerId: string | undefined;\n onChange: (changeDetail: { activeDrawerId: string | undefined }) => void;\n };\n resizeHandle?: React.ReactNode;\n}\n\nexport interface ResizableDrawerProps extends DesktopDrawerProps {\n activeDrawer: DrawerItem;\n onResize: (resizeDetail: { size: number; id: string }) => void;\n size: number;\n getMaxWidth: () => number;\n refs: DrawerFocusControlRefs;\n}\n\nexport interface DrawerTriggersBarProps {\n contentClassName: string;\n topOffset: number | undefined;\n bottomOffset: number | undefined;\n isMobile: boolean;\n drawers?: {\n items: Array<DrawerItem>;\n activeDrawerId: string | undefined;\n onChange: (changeDetail: { activeDrawerId: string | undefined }) => void;\n ariaLabel: string;\n };\n}\n\nexport interface DrawerItemAriaLabels {\n content?: string;\n closeButton?: string;\n triggerButton?: string;\n resizeHandle?: string;\n}\n\nexport interface DrawerItem {\n id: string;\n content: React.ReactNode;\n trigger: {\n iconName?: IconProps.Name;\n iconSvg?: React.ReactNode;\n };\n ariaLabels: DrawerItemAriaLabels;\n resizable?: boolean;\n size?: number;\n}\n\nexport interface SizeControlProps {\n position: 'side';\n splitPanelRef?: React.RefObject<HTMLDivElement>;\n handleRef?: React.RefObject<HTMLDivElement>;\n setSidePanelWidth: (width: number) => void;\n setBottomPanelHeight: (height: number) => void;\n}\n"]}
1
+ {"version":3,"file":"interfaces.js","sourceRoot":"lib/default/","sources":["app-layout/drawer/interfaces.ts"],"names":[],"mappings":"","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport React from 'react';\nimport { ButtonProps } from '../../button/interfaces';\nimport { togglesConfig } from '../toggles';\nimport { AppLayoutProps } from '../interfaces';\nimport { IconProps } from '../../icon/interfaces';\nimport { NonCancelableEventHandler } from '../../internal/events';\n\nimport { DrawerFocusControlRefs } from '../utils/use-drawer-focus-control';\n\nexport interface DesktopDrawerProps {\n contentClassName: string;\n toggleClassName: string;\n closeClassName: string;\n toggleRefs: {\n toggle: React.Ref<ButtonProps.Ref>;\n close: React.Ref<ButtonProps.Ref>;\n };\n width: number;\n topOffset: number | undefined;\n bottomOffset: number | undefined;\n ariaLabels: AppLayoutProps.Labels | undefined;\n drawersAriaLabels?: DrawerItemAriaLabels | undefined;\n children: React.ReactNode;\n type: keyof typeof togglesConfig;\n isMobile: boolean;\n isOpen: boolean;\n onToggle: (isOpen: boolean) => void;\n onClick?: (event: React.MouseEvent) => void;\n onLoseFocus?: (event: React.FocusEvent) => void;\n drawers?: {\n items: Array<DrawerItem>;\n activeDrawerId: string | undefined;\n onChange: (changeDetail: { activeDrawerId: string | undefined }) => void;\n };\n resizeHandle?: React.ReactNode;\n}\n\nexport interface ResizableDrawerProps extends DesktopDrawerProps {\n activeDrawer?: DrawerItem;\n onResize: (resizeDetail: { size: number; id: string }) => void;\n size: number;\n getMaxWidth: () => number;\n refs: DrawerFocusControlRefs;\n}\n\nexport interface DrawerTriggersBarProps {\n contentClassName: string;\n toggleClassName: string;\n topOffset: number | undefined;\n bottomOffset: number | undefined;\n isMobile: boolean;\n drawers?: {\n items: Array<DrawerItem>;\n activeDrawerId?: string;\n onChange: (changeDetail: { activeDrawerId: string | undefined }) => void;\n ariaLabel?: string;\n };\n}\n\nexport interface DrawerItemAriaLabels {\n content?: string;\n closeButton?: string;\n triggerButton?: string;\n resizeHandle?: string;\n}\n\nexport interface DrawerItem {\n id: string;\n content: React.ReactNode;\n trigger: {\n iconName?: IconProps.Name;\n iconSvg?: React.ReactNode;\n };\n ariaLabels: DrawerItemAriaLabels;\n resizable?: boolean;\n size?: number;\n}\n\nexport interface SizeControlProps {\n position: 'side';\n splitPanelRef?: React.RefObject<HTMLDivElement>;\n handleRef?: React.RefObject<HTMLDivElement>;\n setSidePanelWidth: (width: number) => void;\n setBottomPanelHeight: (height: number) => void;\n}\n\nexport interface InternalDrawerProps {\n drawers?: {\n items: Array<DrawerItem>;\n activeDrawerId?: string;\n onChange?: NonCancelableEventHandler<string>;\n onResize?: NonCancelableEventHandler<{ size: number; id: string }>;\n ariaLabel?: string;\n };\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"resizable-drawer.d.ts","sourceRoot":"lib/default/","sources":["app-layout/drawer/resizable-drawer.tsx"],"names":[],"mappings":";AAYA,OAAO,EAAoB,oBAAoB,EAAE,MAAM,cAAc,CAAC;AAEtE,eAAO,MAAM,eAAe,kEAOzB,oBAAoB,gBAsEtB,CAAC"}
1
+ {"version":3,"file":"resizable-drawer.d.ts","sourceRoot":"lib/default/","sources":["app-layout/drawer/resizable-drawer.tsx"],"names":[],"mappings":";AAaA,OAAO,EAAoB,oBAAoB,EAAE,MAAM,cAAc,CAAC;AAEtE,eAAO,MAAM,eAAe,kEAOzB,oBAAoB,gBAsEtB,CAAC"}
@@ -7,9 +7,11 @@ import { getLimitedValue } from '../../split-panel/utils/size-utils';
7
7
  import { usePointerEvents } from '../../split-panel/utils/use-pointer-events';
8
8
  import { useKeyboardEvents } from '../../split-panel/utils/use-keyboard-events';
9
9
  import { Drawer } from './index';
10
+ import testutilStyles from '../test-classes/styles.css.js';
10
11
  import ResizeHandler from '../../split-panel/icons/resize-handler';
11
12
  import splitPanelStyles from '../../split-panel/styles.css.js';
12
13
  export const ResizableDrawer = (_a) => {
14
+ var _b;
13
15
  var { onResize, size, getMaxWidth, refs, activeDrawer } = _a, props = __rest(_a, ["onResize", "size", "getMaxWidth", "refs", "activeDrawer"]);
14
16
  const { isOpen, children, isMobile } = props;
15
17
  const MIN_WIDTH = (activeDrawer === null || activeDrawer === void 0 ? void 0 : activeDrawer.size) && activeDrawer.size < 280 ? activeDrawer === null || activeDrawer === void 0 ? void 0 : activeDrawer.size : 280;
@@ -26,8 +28,8 @@ export const ResizableDrawer = (_a) => {
26
28
  const setSidePanelWidth = (width) => {
27
29
  const maxWidth = getMaxWidth();
28
30
  const size = getLimitedValue(MIN_WIDTH, width, maxWidth);
29
- const id = activeDrawer.id;
30
- if (isOpen && maxWidth >= MIN_WIDTH) {
31
+ const id = activeDrawer === null || activeDrawer === void 0 ? void 0 : activeDrawer.id;
32
+ if (isOpen && id && maxWidth >= MIN_WIDTH) {
31
33
  onResize({ size, id });
32
34
  }
33
35
  };
@@ -43,9 +45,9 @@ export const ResizableDrawer = (_a) => {
43
45
  };
44
46
  const onSliderPointerDown = usePointerEvents(sizeControlProps);
45
47
  const onKeyDown = useKeyboardEvents(sizeControlProps);
46
- const resizeHandle = (React.createElement("div", { ref: refs.slider, role: "slider", tabIndex: 0, "aria-label": activeDrawer.ariaLabels.resizeHandle, "aria-valuemax": 100, "aria-valuemin": 0, "aria-valuenow": relativeSize, className: clsx(splitPanelStyles.slider, splitPanelStyles[`slider-side`]), onKeyDown: onKeyDown, onPointerDown: onSliderPointerDown },
48
+ const resizeHandle = (React.createElement("div", { ref: refs.slider, role: "slider", tabIndex: 0, "aria-label": (_b = activeDrawer === null || activeDrawer === void 0 ? void 0 : activeDrawer.ariaLabels) === null || _b === void 0 ? void 0 : _b.resizeHandle, "aria-valuemax": 100, "aria-valuemin": 0, "aria-valuenow": relativeSize, className: clsx(splitPanelStyles.slider, splitPanelStyles[`slider-side`], testutilStyles['drawers-slider']), onKeyDown: onKeyDown, onPointerDown: onSliderPointerDown },
47
49
  React.createElement(ResizeHandler, { className: clsx(splitPanelStyles['slider-icon'], splitPanelStyles[`slider-icon-side`]) })));
48
50
  return (React.createElement(Drawer, Object.assign({}, props, { ref: drawerRefObject, resizeHandle: !isMobile &&
49
- activeDrawer.resizable && React.createElement("div", { className: splitPanelStyles['slider-wrapper-side'] }, resizeHandle) }), children));
51
+ (activeDrawer === null || activeDrawer === void 0 ? void 0 : activeDrawer.resizable) && React.createElement("div", { className: splitPanelStyles['slider-wrapper-side'] }, resizeHandle) }), children));
50
52
  };
51
53
  //# sourceMappingURL=resizable-drawer.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"resizable-drawer.js","sourceRoot":"lib/default/","sources":["app-layout/drawer/resizable-drawer.tsx"],"names":[],"mappings":"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","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport clsx from 'clsx';\nimport React, { useEffect, useState, useRef } from 'react';\n\nimport { getLimitedValue } from '../../split-panel/utils/size-utils';\nimport { usePointerEvents } from '../../split-panel/utils/use-pointer-events';\nimport { useKeyboardEvents } from '../../split-panel/utils/use-keyboard-events';\nimport { Drawer } from './index';\n\nimport ResizeHandler from '../../split-panel/icons/resize-handler';\nimport splitPanelStyles from '../../split-panel/styles.css.js';\nimport { SizeControlProps, ResizableDrawerProps } from './interfaces';\n\nexport const ResizableDrawer = ({\n onResize,\n size,\n getMaxWidth,\n refs,\n activeDrawer,\n ...props\n}: ResizableDrawerProps) => {\n const { isOpen, children, isMobile } = props;\n\n const MIN_WIDTH = activeDrawer?.size && activeDrawer.size < 280 ? activeDrawer?.size : 280;\n const [relativeSize, setRelativeSize] = useState(0);\n\n useEffect(() => {\n // effects are called inside out in the components tree\n // wait one frame to allow app-layout to complete its calculations\n const handle = requestAnimationFrame(() => {\n const maxSize = getMaxWidth();\n setRelativeSize((size / maxSize) * 100);\n });\n return () => cancelAnimationFrame(handle);\n }, [size, getMaxWidth]);\n\n const setSidePanelWidth = (width: number) => {\n const maxWidth = getMaxWidth();\n const size = getLimitedValue(MIN_WIDTH, width, maxWidth);\n const id = activeDrawer.id;\n\n if (isOpen && maxWidth >= MIN_WIDTH) {\n onResize({ size, id });\n }\n };\n\n const position = 'side';\n const setBottomPanelHeight = () => {};\n const drawerRefObject = useRef<HTMLDivElement>(null);\n\n const sizeControlProps: SizeControlProps = {\n position,\n splitPanelRef: drawerRefObject,\n handleRef: refs.slider,\n setSidePanelWidth,\n setBottomPanelHeight,\n };\n\n const onSliderPointerDown = usePointerEvents(sizeControlProps);\n const onKeyDown = useKeyboardEvents(sizeControlProps);\n\n const resizeHandle = (\n <div\n ref={refs.slider}\n role=\"slider\"\n tabIndex={0}\n aria-label={activeDrawer.ariaLabels.resizeHandle}\n aria-valuemax={100}\n aria-valuemin={0}\n aria-valuenow={relativeSize}\n className={clsx(splitPanelStyles.slider, splitPanelStyles[`slider-side`])}\n onKeyDown={onKeyDown}\n onPointerDown={onSliderPointerDown}\n >\n <ResizeHandler className={clsx(splitPanelStyles['slider-icon'], splitPanelStyles[`slider-icon-side`])} />\n </div>\n );\n\n return (\n <Drawer\n {...props}\n ref={drawerRefObject}\n resizeHandle={\n !isMobile &&\n activeDrawer.resizable && <div className={splitPanelStyles['slider-wrapper-side']}>{resizeHandle}</div>\n }\n >\n {children}\n </Drawer>\n );\n};\n"]}
1
+ {"version":3,"file":"resizable-drawer.js","sourceRoot":"lib/default/","sources":["app-layout/drawer/resizable-drawer.tsx"],"names":[],"mappings":"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","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport clsx from 'clsx';\nimport React, { useEffect, useState, useRef } from 'react';\n\nimport { getLimitedValue } from '../../split-panel/utils/size-utils';\nimport { usePointerEvents } from '../../split-panel/utils/use-pointer-events';\nimport { useKeyboardEvents } from '../../split-panel/utils/use-keyboard-events';\nimport { Drawer } from './index';\nimport testutilStyles from '../test-classes/styles.css.js';\n\nimport ResizeHandler from '../../split-panel/icons/resize-handler';\nimport splitPanelStyles from '../../split-panel/styles.css.js';\nimport { SizeControlProps, ResizableDrawerProps } from './interfaces';\n\nexport const ResizableDrawer = ({\n onResize,\n size,\n getMaxWidth,\n refs,\n activeDrawer,\n ...props\n}: ResizableDrawerProps) => {\n const { isOpen, children, isMobile } = props;\n\n const MIN_WIDTH = activeDrawer?.size && activeDrawer.size < 280 ? activeDrawer?.size : 280;\n const [relativeSize, setRelativeSize] = useState(0);\n\n useEffect(() => {\n // effects are called inside out in the components tree\n // wait one frame to allow app-layout to complete its calculations\n const handle = requestAnimationFrame(() => {\n const maxSize = getMaxWidth();\n setRelativeSize((size / maxSize) * 100);\n });\n return () => cancelAnimationFrame(handle);\n }, [size, getMaxWidth]);\n\n const setSidePanelWidth = (width: number) => {\n const maxWidth = getMaxWidth();\n const size = getLimitedValue(MIN_WIDTH, width, maxWidth);\n const id = activeDrawer?.id;\n\n if (isOpen && id && maxWidth >= MIN_WIDTH) {\n onResize({ size, id });\n }\n };\n\n const position = 'side';\n const setBottomPanelHeight = () => {};\n const drawerRefObject = useRef<HTMLDivElement>(null);\n\n const sizeControlProps: SizeControlProps = {\n position,\n splitPanelRef: drawerRefObject,\n handleRef: refs.slider,\n setSidePanelWidth,\n setBottomPanelHeight,\n };\n\n const onSliderPointerDown = usePointerEvents(sizeControlProps);\n const onKeyDown = useKeyboardEvents(sizeControlProps);\n\n const resizeHandle = (\n <div\n ref={refs.slider}\n role=\"slider\"\n tabIndex={0}\n aria-label={activeDrawer?.ariaLabels?.resizeHandle}\n aria-valuemax={100}\n aria-valuemin={0}\n aria-valuenow={relativeSize}\n className={clsx(splitPanelStyles.slider, splitPanelStyles[`slider-side`], testutilStyles['drawers-slider'])}\n onKeyDown={onKeyDown}\n onPointerDown={onSliderPointerDown}\n >\n <ResizeHandler className={clsx(splitPanelStyles['slider-icon'], splitPanelStyles[`slider-icon-side`])} />\n </div>\n );\n\n return (\n <Drawer\n {...props}\n ref={drawerRefObject}\n resizeHandle={\n !isMobile &&\n activeDrawer?.resizable && <div className={splitPanelStyles['slider-wrapper-side']}>{resizeHandle}</div>\n }\n >\n {children}\n </Drawer>\n );\n};\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"lib/default/","sources":["app-layout/index.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAwE,MAAM,OAAO,CAAC;AAM7F,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAyC9C,OAAO,EAAE,cAAc,EAAE,CAAC;AAE1B,QAAA,MAAM,SAAS,2FA8Bd,CAAC;AAsqBF,eAAe,SAAS,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"lib/default/","sources":["app-layout/index.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAwE,MAAM,OAAO,CAAC;AAM7F,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAyC9C,OAAO,EAAE,cAAc,EAAE,CAAC;AAE1B,QAAA,MAAM,SAAS,2FA8Bd,CAAC;AAgsBF,eAAe,SAAS,CAAC"}
@@ -57,7 +57,7 @@ const AppLayout = React.forwardRef((_a, ref) => {
57
57
  return (React.createElement("div", Object.assign({ ref: __internalRootRef }, baseProps), isRefresh ? React.createElement(RefreshedAppLayout, Object.assign({}, props, { ref: ref })) : React.createElement(OldAppLayout, Object.assign({}, props, { ref: ref }))));
58
58
  });
59
59
  const OldAppLayout = React.forwardRef((_a, ref) => {
60
- var _b;
60
+ var _b, _c;
61
61
  var { navigation, navigationWidth = 280, navigationHide, navigationOpen: controlledNavigationOpen, tools, toolsWidth = 290, toolsHide, toolsOpen: controlledToolsOpen, breadcrumbs, notifications, stickyNotifications, contentHeader, disableContentHeaderOverlap, content, contentType = 'default', disableContentPaddings, disableBodyScroll, maxContentWidth, minContentWidth, headerSelector = '#b #h', footerSelector = '#b #f', ariaLabels, splitPanel, splitPanelSize: controlledSplitPanelSize, splitPanelOpen: controlledSplitPanelOpen, splitPanelPreferences: controlledSplitPanelPreferences, onSplitPanelPreferencesChange, onSplitPanelResize, onSplitPanelToggle, onNavigationChange, onToolsChange } = _a, props = __rest(_a, ["navigation", "navigationWidth", "navigationHide", "navigationOpen", "tools", "toolsWidth", "toolsHide", "toolsOpen", "breadcrumbs", "notifications", "stickyNotifications", "contentHeader", "disableContentHeaderOverlap", "content", "contentType", "disableContentPaddings", "disableBodyScroll", "maxContentWidth", "minContentWidth", "headerSelector", "footerSelector", "ariaLabels", "splitPanel", "splitPanelSize", "splitPanelOpen", "splitPanelPreferences", "onSplitPanelPreferencesChange", "onSplitPanelResize", "onSplitPanelToggle", "onNavigationChange", "onToolsChange"]);
62
62
  if (isDevelopment) {
63
63
  if (controlledToolsOpen && toolsHide) {
@@ -65,12 +65,13 @@ const OldAppLayout = React.forwardRef((_a, ref) => {
65
65
  }
66
66
  }
67
67
  const drawers = props.drawers;
68
+ const hasDrawers = drawers && drawers.items.length > 0;
68
69
  const rootRef = useRef(null);
69
70
  const isMobile = useMobile();
70
71
  const defaults = applyDefaults(contentType, { maxContentWidth, minContentWidth }, false);
71
72
  const [navigationOpen = false, setNavigationOpen] = useControllable(controlledNavigationOpen, onNavigationChange, isMobile ? false : defaults.navigationOpen, { componentName: 'AppLayout', controlledProp: 'navigationOpen', changeHandler: 'onNavigationChange' });
72
73
  const [toolsOpen = false, setToolsOpen] = useControllable(controlledToolsOpen, onToolsChange, isMobile ? false : defaults.toolsOpen, { componentName: 'AppLayout', controlledProp: 'toolsOpen', changeHandler: 'onToolsChange' });
73
- const [activeDrawerId, setActiveDrawersId] = useControllable(drawers === null || drawers === void 0 ? void 0 : drawers.activeDrawerId, drawers === null || drawers === void 0 ? void 0 : drawers.onChange, isMobile ? false : tools ? defaults.toolsOpen : '', {
74
+ const [activeDrawerId, setActiveDrawerId] = useControllable(drawers === null || drawers === void 0 ? void 0 : drawers.activeDrawerId, drawers === null || drawers === void 0 ? void 0 : drawers.onChange, isMobile ? false : tools ? defaults.toolsOpen : '', {
74
75
  componentName: 'AppLayout',
75
76
  controlledProp: 'activeDrawerId',
76
77
  changeHandler: 'onChange',
@@ -80,6 +81,7 @@ const OldAppLayout = React.forwardRef((_a, ref) => {
80
81
  const toolsItem = {
81
82
  id: 'tools',
82
83
  content: tools,
84
+ resizable: false,
83
85
  ariaLabels: {
84
86
  triggerButton: openLabel,
85
87
  closeButton: closeLabel,
@@ -90,18 +92,19 @@ const OldAppLayout = React.forwardRef((_a, ref) => {
90
92
  },
91
93
  };
92
94
  const getAllDrawerItems = () => {
93
- if (drawers) {
94
- return tools ? [toolsItem, ...drawers.items] : drawers.items;
95
+ if (!hasDrawers) {
96
+ return;
95
97
  }
98
+ return tools ? [toolsItem, ...drawers.items] : drawers.items;
96
99
  };
97
100
  const selectedDrawer = tools && toolsOpen
98
101
  ? toolsItem
99
- : drawers &&
100
- drawers.items &&
101
- getAllDrawerItems().filter((drawerItem) => drawerItem.id === activeDrawerId)[0];
102
+ : hasDrawers
103
+ ? (_b = getAllDrawerItems()) === null || _b === void 0 ? void 0 : _b.filter((drawerItem) => drawerItem.id === activeDrawerId)[0]
104
+ : undefined;
102
105
  const { refs: navigationRefs, setFocus: focusNavButtons } = useFocusControl(navigationOpen);
103
- const { refs: toolsRefs, setFocus: focusToolsButtons, loseFocus: loseToolsFocus, } = useFocusControl(toolsOpen || activeDrawerId, true);
104
- const { refs: drawerRefs, setFocus: focusDrawersButtons, loseFocus: loseDrawersFocus, setLastInteraction: setDrawerLastInteraction, } = useDrawerFocusControl([selectedDrawer === null || selectedDrawer === void 0 ? void 0 : selectedDrawer.resizable], toolsOpen || activeDrawerId, true);
106
+ const { refs: toolsRefs, setFocus: focusToolsButtons, loseFocus: loseToolsFocus, } = useFocusControl(toolsOpen || selectedDrawer !== undefined, true);
107
+ const { refs: drawerRefs, setFocus: focusDrawersButtons, loseFocus: loseDrawersFocus, setLastInteraction: setDrawerLastInteraction, } = useDrawerFocusControl([selectedDrawer === null || selectedDrawer === void 0 ? void 0 : selectedDrawer.resizable], toolsOpen || selectedDrawer !== undefined, true);
105
108
  const onNavigationToggle = useCallback((open) => {
106
109
  setNavigationOpen(open);
107
110
  focusNavButtons();
@@ -137,12 +140,24 @@ const OldAppLayout = React.forwardRef((_a, ref) => {
137
140
  controlledProp: 'splitPanelOpen',
138
141
  changeHandler: 'onSplitPanelToggle',
139
142
  });
140
- const defaultDrawerSize = (selectedDrawer === null || selectedDrawer === void 0 ? void 0 : selectedDrawer.size) || toolsWidth;
141
- const [drawerSize = defaultDrawerSize, setDrawerSize] = useControllable(selectedDrawer === null || selectedDrawer === void 0 ? void 0 : selectedDrawer.size, drawers === null || drawers === void 0 ? void 0 : drawers.onResize, defaultDrawerSize, {
143
+ const sizes = (() => {
144
+ const sizes = {};
145
+ if (!drawers) {
146
+ return {};
147
+ }
148
+ for (const item of drawers.items) {
149
+ if (item.size) {
150
+ sizes[item.id] = item.size;
151
+ }
152
+ }
153
+ return sizes;
154
+ })();
155
+ const [drawerSizes = {}, setDrawerSizes] = useControllable(Object.keys(sizes).length > 0 ? sizes : undefined, drawers === null || drawers === void 0 ? void 0 : drawers.onResize, {}, {
142
156
  componentName: 'AppLayout',
143
- controlledProp: 'drawerSize',
144
- changeHandler: 'onDrawerSize',
157
+ controlledProp: 'drawers.items[].size',
158
+ changeHandler: 'drawers.onResize',
145
159
  });
160
+ const drawerSize = (selectedDrawer === null || selectedDrawer === void 0 ? void 0 : selectedDrawer.id) && drawerSizes[selectedDrawer === null || selectedDrawer === void 0 ? void 0 : selectedDrawer.id] ? drawerSizes[selectedDrawer === null || selectedDrawer === void 0 ? void 0 : selectedDrawer.id] : toolsWidth;
146
161
  const splitPanelPosition = (splitPanelPreferences === null || splitPanelPreferences === void 0 ? void 0 : splitPanelPreferences.position) || 'bottom';
147
162
  const [splitPanelReportedToggle, setSplitPanelReportedToggle] = useState({
148
163
  displayed: false,
@@ -185,10 +200,6 @@ const OldAppLayout = React.forwardRef((_a, ref) => {
185
200
  setSplitPanelSize(detail.size);
186
201
  fireNonCancelableEvent(onSplitPanelResize, detail);
187
202
  }, [setSplitPanelSize, onSplitPanelResize]);
188
- const onDrawerSizeSet = (detail) => {
189
- setDrawerSize(detail.size);
190
- fireNonCancelableEvent(drawers.onResize, detail);
191
- };
192
203
  const onSplitPanelToggleHandler = useCallback(() => {
193
204
  setSplitPanelOpen(!splitPanelOpen);
194
205
  setSplitPanelLastInteraction({ type: splitPanelOpen ? 'close' : 'open' });
@@ -254,7 +265,7 @@ const OldAppLayout = React.forwardRef((_a, ref) => {
254
265
  // eslint-disable-next-line react-hooks/exhaustive-deps
255
266
  }, [contentWidthWithSplitPanel, drawerSize, defaults.minContentWidth, isMobile]);
256
267
  const navigationClosedWidth = navigationHide || isMobile ? 0 : closedDrawerWidth;
257
- const toolsClosedWidth = toolsHide || isMobile || (!drawers && toolsHide) ? 0 : closedDrawerWidth;
268
+ const toolsClosedWidth = toolsHide || isMobile || (!hasDrawers && toolsHide) ? 0 : closedDrawerWidth;
258
269
  const contentMaxWidthStyle = !isMobile ? { maxWidth: defaults.maxContentWidth } : undefined;
259
270
  const [splitPanelReportedSize, setSplitPanelReportedSize] = useState(0);
260
271
  const [splitPanelReportedHeaderHeight, setSplitPanelReportedHeaderHeight] = useState(0);
@@ -262,9 +273,9 @@ const OldAppLayout = React.forwardRef((_a, ref) => {
262
273
  if (isMobile) {
263
274
  return 0;
264
275
  }
265
- if (drawers) {
276
+ if (hasDrawers) {
266
277
  if (activeDrawerId) {
267
- if (selectedDrawer.resizable && !isResizeInvalid) {
278
+ if (!isResizeInvalid && drawerSize) {
268
279
  return drawerSize + closedDrawerWidth;
269
280
  }
270
281
  return toolsWidth + closedDrawerWidth;
@@ -309,7 +320,7 @@ const OldAppLayout = React.forwardRef((_a, ref) => {
309
320
  // tools padding is displayed in one of the three cases
310
321
  // 1. Nothing on the that screen edge (no tools panel and no split panel)
311
322
  toolsHide ||
312
- (drawers && !activeDrawerId && (!splitPanelDisplayed || finalSplitPanePosition !== 'side')) ||
323
+ (hasDrawers && !activeDrawerId && (!splitPanelDisplayed || finalSplitPanePosition !== 'side')) ||
313
324
  // 2. Tools panel is present and open
314
325
  toolsVisible ||
315
326
  // 3. Split panel is open in side position
@@ -325,11 +336,11 @@ const OldAppLayout = React.forwardRef((_a, ref) => {
325
336
  },
326
337
  focusToolsClose: () => focusToolsButtons(true),
327
338
  }), [isMobile, onNavigationToggle, onToolsToggle, focusToolsButtons]);
328
- const splitPanelBottomOffset = (_b = (!splitPanelDisplayed || finalSplitPanePosition !== 'bottom'
339
+ const splitPanelBottomOffset = (_c = (!splitPanelDisplayed || finalSplitPanePosition !== 'bottom'
329
340
  ? undefined
330
341
  : splitPanelOpen
331
342
  ? splitPanelReportedSize
332
- : splitPanelReportedHeaderHeight)) !== null && _b !== void 0 ? _b : undefined;
343
+ : splitPanelReportedHeaderHeight)) !== null && _c !== void 0 ? _c : undefined;
333
344
  return (React.createElement("div", { className: clsx(styles.root, testutilStyles.root, disableBodyScroll && styles['root-no-scroll']), ref: rootRef },
334
345
  React.createElement("div", { className: styles['layout-wrapper'], style: contentHeightStyle },
335
346
  isMobile && (!toolsHide || !navigationHide || breadcrumbs) && (React.createElement(MobileToolbar, { anyPanelOpen: anyPanelOpen, toggleRefs: { navigation: navigationRefs.toggle, tools: toolsRefs.toggle }, topOffset: headerHeight, ariaLabels: ariaLabels, navigationHide: navigationHide, toolsHide: toolsHide, onNavigationOpen: () => onNavigationToggle(true), onToolsOpen: () => onToolsToggle(true), unfocusable: anyPanelOpen, drawers: drawers
@@ -340,7 +351,7 @@ const OldAppLayout = React.forwardRef((_a, ref) => {
340
351
  if ((selectedDrawer === null || selectedDrawer === void 0 ? void 0 : selectedDrawer.id) !== changeDetail.activeDrawerId) {
341
352
  onToolsToggle(changeDetail.activeDrawerId === 'tools');
342
353
  focusDrawersButtons();
343
- setActiveDrawersId(changeDetail.activeDrawerId);
354
+ setActiveDrawerId(changeDetail.activeDrawerId);
344
355
  setDrawerLastInteraction({ type: 'open' });
345
356
  fireNonCancelableEvent(drawers.onChange, changeDetail.activeDrawerId);
346
357
  }
@@ -382,25 +393,30 @@ const OldAppLayout = React.forwardRef((_a, ref) => {
382
393
  } }, content))),
383
394
  finalSplitPanePosition === 'bottom' && splitPanelWrapped),
384
395
  finalSplitPanePosition === 'side' && (React.createElement(SideSplitPanelDrawer, { topOffset: headerHeight, bottomOffset: footerHeight, displayed: splitPanelDisplayed, width: splitPanelOpen ? splitPanelSize : undefined }, splitPanelWrapped)),
385
- ((drawers && (selectedDrawer === null || selectedDrawer === void 0 ? void 0 : selectedDrawer.id)) || (!drawers && !toolsHide)) &&
386
- (drawers ? (React.createElement(ResizableDrawer, { contentClassName: (selectedDrawer === null || selectedDrawer === void 0 ? void 0 : selectedDrawer.id) === 'tools' ? testutilStyles.tools : '', toggleClassName: (selectedDrawer === null || selectedDrawer === void 0 ? void 0 : selectedDrawer.id) === 'tools' ? testutilStyles['tools-toggle'] : '', closeClassName: (selectedDrawer === null || selectedDrawer === void 0 ? void 0 : selectedDrawer.id) === 'tools' ? testutilStyles['tools-close'] : '', ariaLabels: ariaLabels, drawersAriaLabels: selectedDrawer === null || selectedDrawer === void 0 ? void 0 : selectedDrawer.ariaLabels, width: (selectedDrawer === null || selectedDrawer === void 0 ? void 0 : selectedDrawer.resizable) && !isResizeInvalid ? drawerSize : toolsWidth, bottomOffset: footerHeight, topOffset: headerHeight, isMobile: isMobile, onToggle: onToolsToggle, isOpen: toolsOpen || activeDrawerId !== undefined, toggleRefs: toolsRefs, type: "tools", onLoseFocus: drawers ? loseDrawersFocus : loseToolsFocus, activeDrawer: selectedDrawer, drawers: {
396
+ ((hasDrawers && (selectedDrawer === null || selectedDrawer === void 0 ? void 0 : selectedDrawer.id)) || (!hasDrawers && !toolsHide)) &&
397
+ (hasDrawers ? (React.createElement(ResizableDrawer, { contentClassName: (selectedDrawer === null || selectedDrawer === void 0 ? void 0 : selectedDrawer.id) === 'tools' ? testutilStyles.tools : testutilStyles['active-drawer'], toggleClassName: (selectedDrawer === null || selectedDrawer === void 0 ? void 0 : selectedDrawer.id) === 'tools' ? testutilStyles['tools-toggle'] : testutilStyles['drawers-trigger'], closeClassName: (selectedDrawer === null || selectedDrawer === void 0 ? void 0 : selectedDrawer.id) === 'tools'
398
+ ? testutilStyles['tools-close']
399
+ : testutilStyles['active-drawer-close-button'], ariaLabels: ariaLabels, drawersAriaLabels: selectedDrawer === null || selectedDrawer === void 0 ? void 0 : selectedDrawer.ariaLabels, width: !isResizeInvalid ? drawerSize : toolsWidth, bottomOffset: footerHeight, topOffset: headerHeight, isMobile: isMobile, onToggle: onToolsToggle, isOpen: toolsOpen || activeDrawerId !== undefined, toggleRefs: toolsRefs, type: "tools", onLoseFocus: hasDrawers ? loseDrawersFocus : loseToolsFocus, activeDrawer: selectedDrawer, drawers: {
387
400
  items: tools && !toolsHide ? [toolsItem, ...drawers.items] : drawers.items,
388
- activeDrawerId: selectedDrawer.id,
401
+ activeDrawerId: selectedDrawer === null || selectedDrawer === void 0 ? void 0 : selectedDrawer.id,
389
402
  onChange: changeDetail => {
390
403
  onToolsToggle(false);
391
404
  setDrawerLastInteraction({ type: 'close' });
392
- setActiveDrawersId(changeDetail.activeDrawerId);
405
+ setActiveDrawerId(changeDetail.activeDrawerId);
393
406
  fireNonCancelableEvent(drawers.onChange, changeDetail.activeDrawerId);
394
407
  },
395
- }, size: (selectedDrawer === null || selectedDrawer === void 0 ? void 0 : selectedDrawer.resizable) && !isResizeInvalid ? drawerSize : toolsWidth, onResize: onDrawerSizeSet, refs: drawerRefs, getMaxWidth: getDrawerMaxWidth }, selectedDrawer.content)) : (React.createElement(Drawer, { contentClassName: testutilStyles.tools, toggleClassName: testutilStyles['tools-toggle'], closeClassName: testutilStyles['tools-close'], ariaLabels: ariaLabels, width: effectiveToolsWidth, bottomOffset: footerHeight, topOffset: headerHeight, isMobile: isMobile, onToggle: onToolsToggle, isOpen: toolsOpen, toggleRefs: toolsRefs, type: "tools", onLoseFocus: loseToolsFocus }, tools))),
396
- drawers && (React.createElement(DrawerTriggersBar, { contentClassName: testutilStyles.tools, bottomOffset: footerHeight, topOffset: headerHeight, isMobile: isMobile, drawers: {
408
+ }, size: !isResizeInvalid ? drawerSize : toolsWidth, onResize: changeDetail => {
409
+ fireNonCancelableEvent(drawers.onResize, changeDetail);
410
+ setDrawerSizes(Object.assign(Object.assign({}, drawerSizes), { [changeDetail.id]: changeDetail.size }));
411
+ }, refs: drawerRefs, getMaxWidth: getDrawerMaxWidth }, selectedDrawer === null || selectedDrawer === void 0 ? void 0 : selectedDrawer.content)) : (React.createElement(Drawer, { contentClassName: testutilStyles.tools, toggleClassName: testutilStyles['tools-toggle'], closeClassName: testutilStyles['tools-close'], ariaLabels: ariaLabels, width: effectiveToolsWidth, bottomOffset: footerHeight, topOffset: headerHeight, isMobile: isMobile, onToggle: onToolsToggle, isOpen: toolsOpen, toggleRefs: toolsRefs, type: "tools", onLoseFocus: loseToolsFocus }, tools))),
412
+ hasDrawers && (React.createElement(DrawerTriggersBar, { contentClassName: testutilStyles['drawers-desktop-triggers-container'], toggleClassName: testutilStyles['drawers-trigger'], bottomOffset: footerHeight, topOffset: headerHeight, isMobile: isMobile, drawers: {
397
413
  items: tools && !toolsHide ? [toolsItem, ...drawers.items] : drawers.items,
398
414
  activeDrawerId: selectedDrawer === null || selectedDrawer === void 0 ? void 0 : selectedDrawer.id,
399
415
  onChange: changeDetail => {
400
416
  if ((selectedDrawer === null || selectedDrawer === void 0 ? void 0 : selectedDrawer.id) !== changeDetail.activeDrawerId) {
401
417
  onToolsToggle(changeDetail.activeDrawerId === 'tools');
402
418
  focusDrawersButtons();
403
- setActiveDrawersId(changeDetail.activeDrawerId);
419
+ setActiveDrawerId(changeDetail.activeDrawerId);
404
420
  setDrawerLastInteraction({ type: 'open' });
405
421
  fireNonCancelableEvent(drawers.onChange, changeDetail.activeDrawerId);
406
422
  }