@cloudscape-design/components 3.0.360 → 3.0.362

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 (194) hide show
  1. package/annotation-context/annotation/styles.css.js +24 -24
  2. package/annotation-context/annotation/styles.scoped.css +30 -30
  3. package/annotation-context/annotation/styles.selectors.js +24 -24
  4. package/app-layout/index.d.ts.map +1 -1
  5. package/app-layout/index.js +4 -5
  6. package/app-layout/index.js.map +1 -1
  7. package/app-layout/utils/use-content-width.js +1 -1
  8. package/app-layout/utils/use-content-width.js.map +1 -1
  9. package/app-layout/utils/use-observed-element.js +1 -1
  10. package/app-layout/utils/use-observed-element.js.map +1 -1
  11. package/app-layout/visual-refresh/styles.css.js +69 -69
  12. package/app-layout/visual-refresh/styles.scoped.css +169 -169
  13. package/app-layout/visual-refresh/styles.selectors.js +69 -69
  14. package/area-chart/model/use-chart-model.d.ts.map +1 -1
  15. package/area-chart/model/use-chart-model.js +2 -2
  16. package/area-chart/model/use-chart-model.js.map +1 -1
  17. package/area-chart/styles.css.js +6 -6
  18. package/area-chart/styles.scoped.css +10 -10
  19. package/area-chart/styles.selectors.js +6 -6
  20. package/attribute-editor/styles.css.js +14 -14
  21. package/attribute-editor/styles.scoped.css +25 -25
  22. package/attribute-editor/styles.selectors.js +14 -14
  23. package/button-dropdown/category-elements/styles.css.js +13 -13
  24. package/button-dropdown/category-elements/styles.scoped.css +27 -27
  25. package/button-dropdown/category-elements/styles.selectors.js +13 -13
  26. package/button-dropdown/item-element/styles.css.js +15 -15
  27. package/button-dropdown/item-element/styles.scoped.css +19 -19
  28. package/button-dropdown/item-element/styles.selectors.js +15 -15
  29. package/button-dropdown/styles.css.js +14 -14
  30. package/button-dropdown/styles.scoped.css +22 -22
  31. package/button-dropdown/styles.selectors.js +14 -14
  32. package/code-editor/listeners.js +2 -2
  33. package/code-editor/listeners.js.map +1 -1
  34. package/code-editor/resizable-box/index.js +2 -2
  35. package/code-editor/resizable-box/index.js.map +1 -1
  36. package/code-editor/styles.css.js +32 -32
  37. package/code-editor/styles.scoped.css +130 -130
  38. package/code-editor/styles.selectors.js +32 -32
  39. package/collection-preferences/content-display/styles.css.js +11 -11
  40. package/collection-preferences/content-display/styles.scoped.css +18 -18
  41. package/collection-preferences/content-display/styles.selectors.js +11 -11
  42. package/collection-preferences/styles.css.js +37 -37
  43. package/collection-preferences/styles.scoped.css +47 -47
  44. package/collection-preferences/styles.selectors.js +37 -37
  45. package/column-layout/flexible-column-layout/styles.css.js +5 -5
  46. package/column-layout/flexible-column-layout/styles.scoped.css +5 -5
  47. package/column-layout/flexible-column-layout/styles.selectors.js +5 -5
  48. package/column-layout/styles.css.js +13 -13
  49. package/column-layout/styles.scoped.css +46 -46
  50. package/column-layout/styles.selectors.js +13 -13
  51. package/container/styles.css.js +28 -28
  52. package/container/styles.scoped.css +55 -55
  53. package/container/styles.selectors.js +28 -28
  54. package/date-range-picker/styles.css.js +38 -38
  55. package/date-range-picker/styles.scoped.css +47 -47
  56. package/date-range-picker/styles.selectors.js +38 -38
  57. package/expandable-section/styles.css.js +29 -29
  58. package/expandable-section/styles.scoped.css +66 -66
  59. package/expandable-section/styles.selectors.js +29 -29
  60. package/form-field/styles.css.js +19 -19
  61. package/form-field/styles.scoped.css +30 -30
  62. package/form-field/styles.selectors.js +19 -19
  63. package/help-panel/styles.css.js +4 -4
  64. package/help-panel/styles.scoped.css +66 -66
  65. package/help-panel/styles.selectors.js +4 -4
  66. package/internal/base-component/styles.scoped.css +81 -57
  67. package/internal/components/dark-ribbon/index.js +2 -2
  68. package/internal/components/dark-ribbon/index.js.map +1 -1
  69. package/internal/components/dropdown-footer/styles.css.js +3 -3
  70. package/internal/components/dropdown-footer/styles.scoped.css +4 -4
  71. package/internal/components/dropdown-footer/styles.selectors.js +3 -3
  72. package/internal/components/options-list/index.d.ts.map +1 -1
  73. package/internal/components/options-list/index.js +2 -2
  74. package/internal/components/options-list/index.js.map +1 -1
  75. package/internal/components/selectable-item/styles.css.js +16 -16
  76. package/internal/components/selectable-item/styles.scoped.css +31 -31
  77. package/internal/components/selectable-item/styles.selectors.js +16 -16
  78. package/internal/components/token-list/styles.css.js +9 -9
  79. package/internal/components/token-list/styles.scoped.css +22 -22
  80. package/internal/components/token-list/styles.selectors.js +9 -9
  81. package/internal/environment.js +1 -1
  82. package/internal/environment.json +1 -1
  83. package/internal/generated/styles/tokens.js +1 -1
  84. package/internal/generated/theming/index.cjs +25 -23
  85. package/internal/generated/theming/index.js +25 -23
  86. package/internal/hooks/container-queries/index.d.ts +0 -1
  87. package/internal/hooks/container-queries/index.d.ts.map +1 -1
  88. package/internal/hooks/container-queries/index.js +0 -1
  89. package/internal/hooks/container-queries/index.js.map +1 -1
  90. package/internal/hooks/container-queries/use-height-measure.js +1 -1
  91. package/internal/hooks/container-queries/use-height-measure.js.map +1 -1
  92. package/internal/hooks/use-dynamic-overlap/index.js +1 -1
  93. package/internal/hooks/use-dynamic-overlap/index.js.map +1 -1
  94. package/internal/hooks/use-mobile/index.js +1 -1
  95. package/internal/hooks/use-mobile/index.js.map +1 -1
  96. package/internal/hooks/use-mouse-down-target.js +1 -1
  97. package/internal/hooks/use-mouse-down-target.js.map +1 -1
  98. package/internal/hooks/use-mutation-observer/index.d.ts.map +1 -1
  99. package/internal/hooks/use-mutation-observer/index.js +2 -3
  100. package/internal/hooks/use-mutation-observer/index.js.map +1 -1
  101. package/internal/manifest.json +1 -1
  102. package/modal/styles.css.js +23 -23
  103. package/modal/styles.scoped.css +39 -39
  104. package/modal/styles.selectors.js +23 -23
  105. package/package.json +1 -1
  106. package/pie-chart/labels.js +1 -1
  107. package/pie-chart/labels.js.map +1 -1
  108. package/pie-chart/styles.css.js +27 -27
  109. package/pie-chart/styles.scoped.css +43 -43
  110. package/pie-chart/styles.selectors.js +27 -27
  111. package/popover/container.d.ts.map +1 -1
  112. package/popover/container.js +1 -1
  113. package/popover/container.js.map +1 -1
  114. package/property-filter/styles.css.js +29 -29
  115. package/property-filter/styles.scoped.css +33 -33
  116. package/property-filter/styles.selectors.js +29 -29
  117. package/s3-resource-selector/s3-in-context/styles.css.js +7 -7
  118. package/s3-resource-selector/s3-in-context/styles.scoped.css +10 -10
  119. package/s3-resource-selector/s3-in-context/styles.selectors.js +7 -7
  120. package/s3-resource-selector/s3-in-context/use-versions-fetch.d.ts.map +1 -1
  121. package/s3-resource-selector/s3-in-context/use-versions-fetch.js +2 -2
  122. package/s3-resource-selector/s3-in-context/use-versions-fetch.js.map +1 -1
  123. package/s3-resource-selector/s3-modal/basic-table.d.ts.map +1 -1
  124. package/s3-resource-selector/s3-modal/basic-table.js +2 -2
  125. package/s3-resource-selector/s3-modal/basic-table.js.map +1 -1
  126. package/side-navigation/styles.css.js +28 -28
  127. package/side-navigation/styles.scoped.css +43 -43
  128. package/side-navigation/styles.selectors.js +28 -28
  129. package/split-panel/bottom.js +1 -1
  130. package/split-panel/bottom.js.map +1 -1
  131. package/split-panel/styles.css.js +56 -56
  132. package/split-panel/styles.scoped.css +85 -85
  133. package/split-panel/styles.selectors.js +56 -56
  134. package/table/body-cell/click-away.js +2 -2
  135. package/table/body-cell/click-away.js.map +1 -1
  136. package/table/body-cell/styles.css.js +28 -28
  137. package/table/body-cell/styles.scoped.css +76 -76
  138. package/table/body-cell/styles.selectors.js +28 -28
  139. package/table/header-cell/styles.css.js +24 -24
  140. package/table/header-cell/styles.scoped.css +43 -43
  141. package/table/header-cell/styles.selectors.js +24 -24
  142. package/table/resizer/index.js +3 -3
  143. package/table/resizer/index.js.map +1 -1
  144. package/table/sticky-columns/use-sticky-columns.d.ts.map +1 -1
  145. package/table/sticky-columns/use-sticky-columns.js +2 -3
  146. package/table/sticky-columns/use-sticky-columns.js.map +1 -1
  147. package/table/sticky-scrollbar/styles.css.js +6 -6
  148. package/table/sticky-scrollbar/styles.scoped.css +9 -9
  149. package/table/sticky-scrollbar/styles.selectors.js +6 -6
  150. package/table/styles.css.js +34 -34
  151. package/table/styles.scoped.css +42 -42
  152. package/table/styles.selectors.js +34 -34
  153. package/table/use-sticky-header.js +1 -1
  154. package/table/use-sticky-header.js.map +1 -1
  155. package/tabs/styles.css.js +21 -21
  156. package/tabs/styles.scoped.css +46 -46
  157. package/tabs/styles.selectors.js +21 -21
  158. package/tag-editor/index.d.ts.map +1 -1
  159. package/tag-editor/index.js +6 -6
  160. package/tag-editor/index.js.map +1 -1
  161. package/tiles/styles.css.js +29 -29
  162. package/tiles/styles.scoped.css +73 -73
  163. package/tiles/styles.selectors.js +29 -29
  164. package/top-navigation/1.0-beta/styles.css.js +25 -25
  165. package/top-navigation/1.0-beta/styles.scoped.css +43 -43
  166. package/top-navigation/1.0-beta/styles.selectors.js +25 -25
  167. package/top-navigation/styles.css.js +47 -47
  168. package/top-navigation/styles.scoped.css +73 -73
  169. package/top-navigation/styles.selectors.js +47 -47
  170. package/tutorial-panel/components/tutorial-detail-view/styles.css.js +20 -20
  171. package/tutorial-panel/components/tutorial-detail-view/styles.scoped.css +23 -23
  172. package/tutorial-panel/components/tutorial-detail-view/styles.selectors.js +20 -20
  173. package/tutorial-panel/components/tutorial-list/styles.css.js +18 -18
  174. package/tutorial-panel/components/tutorial-list/styles.scoped.css +28 -28
  175. package/tutorial-panel/components/tutorial-list/styles.selectors.js +18 -18
  176. package/wizard/styles.css.js +31 -31
  177. package/wizard/styles.scoped.css +63 -63
  178. package/wizard/styles.selectors.js +31 -31
  179. package/internal/hooks/container-queries/use-resize-observer.d.ts +0 -21
  180. package/internal/hooks/container-queries/use-resize-observer.d.ts.map +0 -1
  181. package/internal/hooks/container-queries/use-resize-observer.js +0 -54
  182. package/internal/hooks/container-queries/use-resize-observer.js.map +0 -1
  183. package/internal/hooks/container-queries/utils.d.ts +0 -4
  184. package/internal/hooks/container-queries/utils.d.ts.map +0 -1
  185. package/internal/hooks/container-queries/utils.js +0 -10
  186. package/internal/hooks/container-queries/utils.js.map +0 -1
  187. package/internal/hooks/use-singleton-handler/index.d.ts +0 -11
  188. package/internal/hooks/use-singleton-handler/index.d.ts.map +0 -1
  189. package/internal/hooks/use-singleton-handler/index.js +0 -45
  190. package/internal/hooks/use-singleton-handler/index.js.map +0 -1
  191. package/internal/hooks/use-stable-event-handler/index.d.ts +0 -10
  192. package/internal/hooks/use-stable-event-handler/index.d.ts.map +0 -1
  193. package/internal/hooks/use-stable-event-handler/index.js +0 -19
  194. package/internal/hooks/use-stable-event-handler/index.js.map +0 -1
@@ -1,29 +1,29 @@
1
1
 
2
2
  import './styles.scoped.css';
3
3
  export default {
4
- "arrow": "awsui_arrow_1hpp3_lcjop_93",
5
- "arrow-outer": "awsui_arrow-outer_1hpp3_lcjop_97",
6
- "arrow-inner": "awsui_arrow-inner_1hpp3_lcjop_97",
7
- "arrow-position-right-top": "awsui_arrow-position-right-top_1hpp3_lcjop_128",
8
- "arrow-position-right-bottom": "awsui_arrow-position-right-bottom_1hpp3_lcjop_128",
9
- "arrow-position-left-top": "awsui_arrow-position-left-top_1hpp3_lcjop_131",
10
- "arrow-position-left-bottom": "awsui_arrow-position-left-bottom_1hpp3_lcjop_131",
11
- "arrow-position-top-center": "awsui_arrow-position-top-center_1hpp3_lcjop_134",
12
- "arrow-position-top-responsive": "awsui_arrow-position-top-responsive_1hpp3_lcjop_134",
13
- "arrow-position-bottom-center": "awsui_arrow-position-bottom-center_1hpp3_lcjop_137",
14
- "arrow-position-bottom-responsive": "awsui_arrow-position-bottom-responsive_1hpp3_lcjop_137",
15
- "annotation": "awsui_annotation_1hpp3_lcjop_145",
16
- "next-button": "awsui_next-button_1hpp3_lcjop_146",
17
- "previous-button": "awsui_previous-button_1hpp3_lcjop_147",
18
- "finish-button": "awsui_finish-button_1hpp3_lcjop_148",
19
- "header": "awsui_header_1hpp3_lcjop_149",
20
- "step-counter-content": "awsui_step-counter-content_1hpp3_lcjop_150",
21
- "content": "awsui_content_1hpp3_lcjop_151",
22
- "description": "awsui_description_1hpp3_lcjop_155",
23
- "actionBar": "awsui_actionBar_1hpp3_lcjop_160",
24
- "stepCounter": "awsui_stepCounter_1hpp3_lcjop_167",
25
- "divider": "awsui_divider_1hpp3_lcjop_171",
26
- "hotspot": "awsui_hotspot_1hpp3_lcjop_175",
27
- "icon": "awsui_icon_1hpp3_lcjop_215"
4
+ "arrow": "awsui_arrow_1hpp3_1bkb5_93",
5
+ "arrow-outer": "awsui_arrow-outer_1hpp3_1bkb5_97",
6
+ "arrow-inner": "awsui_arrow-inner_1hpp3_1bkb5_97",
7
+ "arrow-position-right-top": "awsui_arrow-position-right-top_1hpp3_1bkb5_128",
8
+ "arrow-position-right-bottom": "awsui_arrow-position-right-bottom_1hpp3_1bkb5_128",
9
+ "arrow-position-left-top": "awsui_arrow-position-left-top_1hpp3_1bkb5_131",
10
+ "arrow-position-left-bottom": "awsui_arrow-position-left-bottom_1hpp3_1bkb5_131",
11
+ "arrow-position-top-center": "awsui_arrow-position-top-center_1hpp3_1bkb5_134",
12
+ "arrow-position-top-responsive": "awsui_arrow-position-top-responsive_1hpp3_1bkb5_134",
13
+ "arrow-position-bottom-center": "awsui_arrow-position-bottom-center_1hpp3_1bkb5_137",
14
+ "arrow-position-bottom-responsive": "awsui_arrow-position-bottom-responsive_1hpp3_1bkb5_137",
15
+ "annotation": "awsui_annotation_1hpp3_1bkb5_145",
16
+ "next-button": "awsui_next-button_1hpp3_1bkb5_146",
17
+ "previous-button": "awsui_previous-button_1hpp3_1bkb5_147",
18
+ "finish-button": "awsui_finish-button_1hpp3_1bkb5_148",
19
+ "header": "awsui_header_1hpp3_1bkb5_149",
20
+ "step-counter-content": "awsui_step-counter-content_1hpp3_1bkb5_150",
21
+ "content": "awsui_content_1hpp3_1bkb5_151",
22
+ "description": "awsui_description_1hpp3_1bkb5_155",
23
+ "actionBar": "awsui_actionBar_1hpp3_1bkb5_160",
24
+ "stepCounter": "awsui_stepCounter_1hpp3_1bkb5_167",
25
+ "divider": "awsui_divider_1hpp3_1bkb5_171",
26
+ "hotspot": "awsui_hotspot_1hpp3_1bkb5_175",
27
+ "icon": "awsui_icon_1hpp3_1bkb5_215"
28
28
  };
29
29
 
@@ -90,11 +90,11 @@ surrounding text. (WCAG F73) https://www.w3.org/WAI/WCAG21/Techniques/failures/F
90
90
  Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
91
91
  SPDX-License-Identifier: Apache-2.0
92
92
  */
93
- .awsui_arrow_1hpp3_lcjop_93:not(#\9) {
93
+ .awsui_arrow_1hpp3_1bkb5_93:not(#\9) {
94
94
  width: 20px;
95
95
  height: 10px;
96
96
  }
97
- .awsui_arrow-outer_1hpp3_lcjop_97:not(#\9), .awsui_arrow-inner_1hpp3_lcjop_97:not(#\9) {
97
+ .awsui_arrow-outer_1hpp3_1bkb5_97:not(#\9), .awsui_arrow-inner_1hpp3_1bkb5_97:not(#\9) {
98
98
  position: absolute;
99
99
  overflow: hidden;
100
100
  width: 20px;
@@ -102,7 +102,7 @@ surrounding text. (WCAG F73) https://www.w3.org/WAI/WCAG21/Techniques/failures/F
102
102
  top: 0;
103
103
  left: 0;
104
104
  }
105
- .awsui_arrow-outer_1hpp3_lcjop_97:not(#\9)::after, .awsui_arrow-inner_1hpp3_lcjop_97:not(#\9)::after {
105
+ .awsui_arrow-outer_1hpp3_1bkb5_97:not(#\9)::after, .awsui_arrow-inner_1hpp3_1bkb5_97:not(#\9)::after {
106
106
  content: "";
107
107
  box-sizing: border-box;
108
108
  display: inline-block;
@@ -115,26 +115,26 @@ surrounding text. (WCAG F73) https://www.w3.org/WAI/WCAG21/Techniques/failures/F
115
115
  transform: rotate(45deg);
116
116
  transform-origin: 0 100%;
117
117
  }
118
- .awsui_arrow-outer_1hpp3_lcjop_97:not(#\9)::after {
118
+ .awsui_arrow-outer_1hpp3_1bkb5_97:not(#\9)::after {
119
119
  background-color: var(--color-border-status-info-8upc6f, #0972d3);
120
120
  }
121
- .awsui_arrow-inner_1hpp3_lcjop_97:not(#\9) {
121
+ .awsui_arrow-inner_1hpp3_1bkb5_97:not(#\9) {
122
122
  top: 2px;
123
123
  }
124
- .awsui_arrow-inner_1hpp3_lcjop_97:not(#\9)::after {
124
+ .awsui_arrow-inner_1hpp3_1bkb5_97:not(#\9)::after {
125
125
  border-radius: 1px 0 0 0;
126
126
  background-color: var(--color-background-status-info-mvnbre, #f2f8fd);
127
127
  }
128
- .awsui_arrow-position-right-top_1hpp3_lcjop_128 > .awsui_arrow-outer_1hpp3_lcjop_97:not(#\9)::after, .awsui_arrow-position-right-bottom_1hpp3_lcjop_128 > .awsui_arrow-outer_1hpp3_lcjop_97:not(#\9)::after {
128
+ .awsui_arrow-position-right-top_1hpp3_1bkb5_128 > .awsui_arrow-outer_1hpp3_1bkb5_97:not(#\9)::after, .awsui_arrow-position-right-bottom_1hpp3_1bkb5_128 > .awsui_arrow-outer_1hpp3_1bkb5_97:not(#\9)::after {
129
129
  box-shadow: -0.71px 0.71px 4px -2px var(--color-shadow-default-8jp634, rgba(0, 7, 22, 0.12));
130
130
  }
131
- .awsui_arrow-position-left-top_1hpp3_lcjop_131 > .awsui_arrow-outer_1hpp3_lcjop_97:not(#\9)::after, .awsui_arrow-position-left-bottom_1hpp3_lcjop_131 > .awsui_arrow-outer_1hpp3_lcjop_97:not(#\9)::after {
131
+ .awsui_arrow-position-left-top_1hpp3_1bkb5_131 > .awsui_arrow-outer_1hpp3_1bkb5_97:not(#\9)::after, .awsui_arrow-position-left-bottom_1hpp3_1bkb5_131 > .awsui_arrow-outer_1hpp3_1bkb5_97:not(#\9)::after {
132
132
  box-shadow: 0.71px -0.71px 4px -2px var(--color-shadow-default-8jp634, rgba(0, 7, 22, 0.12));
133
133
  }
134
- .awsui_arrow-position-top-center_1hpp3_lcjop_134 > .awsui_arrow-outer_1hpp3_lcjop_97:not(#\9)::after, .awsui_arrow-position-top-responsive_1hpp3_lcjop_134 > .awsui_arrow-outer_1hpp3_lcjop_97:not(#\9)::after {
134
+ .awsui_arrow-position-top-center_1hpp3_1bkb5_134 > .awsui_arrow-outer_1hpp3_1bkb5_97:not(#\9)::after, .awsui_arrow-position-top-responsive_1hpp3_1bkb5_134 > .awsui_arrow-outer_1hpp3_1bkb5_97:not(#\9)::after {
135
135
  box-shadow: -0.71px -0.71px 4px -2px var(--color-shadow-default-8jp634, rgba(0, 7, 22, 0.12));
136
136
  }
137
- .awsui_arrow-position-bottom-center_1hpp3_lcjop_137 > .awsui_arrow-outer_1hpp3_lcjop_97:not(#\9)::after, .awsui_arrow-position-bottom-responsive_1hpp3_lcjop_137 > .awsui_arrow-outer_1hpp3_lcjop_97:not(#\9)::after {
137
+ .awsui_arrow-position-bottom-center_1hpp3_1bkb5_137 > .awsui_arrow-outer_1hpp3_1bkb5_97:not(#\9)::after, .awsui_arrow-position-bottom-responsive_1hpp3_1bkb5_137 > .awsui_arrow-outer_1hpp3_1bkb5_97:not(#\9)::after {
138
138
  box-shadow: 0.71px 0.71px 4px -2px var(--color-shadow-default-8jp634, rgba(0, 7, 22, 0.12));
139
139
  }
140
140
 
@@ -142,37 +142,37 @@ surrounding text. (WCAG F73) https://www.w3.org/WAI/WCAG21/Techniques/failures/F
142
142
  Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
143
143
  SPDX-License-Identifier: Apache-2.0
144
144
  */
145
- .awsui_annotation_1hpp3_lcjop_145:not(#\9),
146
- .awsui_next-button_1hpp3_lcjop_146:not(#\9),
147
- .awsui_previous-button_1hpp3_lcjop_147:not(#\9),
148
- .awsui_finish-button_1hpp3_lcjop_148:not(#\9),
149
- .awsui_header_1hpp3_lcjop_149:not(#\9),
150
- .awsui_step-counter-content_1hpp3_lcjop_150:not(#\9),
151
- .awsui_content_1hpp3_lcjop_151:not(#\9) {
145
+ .awsui_annotation_1hpp3_1bkb5_145:not(#\9),
146
+ .awsui_next-button_1hpp3_1bkb5_146:not(#\9),
147
+ .awsui_previous-button_1hpp3_1bkb5_147:not(#\9),
148
+ .awsui_finish-button_1hpp3_1bkb5_148:not(#\9),
149
+ .awsui_header_1hpp3_1bkb5_149:not(#\9),
150
+ .awsui_step-counter-content_1hpp3_1bkb5_150:not(#\9),
151
+ .awsui_content_1hpp3_1bkb5_151:not(#\9) {
152
152
  /* used in test-utils */
153
153
  }
154
154
 
155
- .awsui_description_1hpp3_lcjop_155:not(#\9) {
155
+ .awsui_description_1hpp3_1bkb5_155:not(#\9) {
156
156
  overflow: hidden;
157
157
  margin-top: var(--space-xxs-p8yyaw, 4px);
158
158
  }
159
159
 
160
- .awsui_actionBar_1hpp3_lcjop_160:not(#\9) {
160
+ .awsui_actionBar_1hpp3_1bkb5_160:not(#\9) {
161
161
  display: flex;
162
162
  justify-content: space-between;
163
163
  align-items: center;
164
164
  position: relative;
165
165
  }
166
166
 
167
- .awsui_stepCounter_1hpp3_lcjop_167:not(#\9) {
167
+ .awsui_stepCounter_1hpp3_1bkb5_167:not(#\9) {
168
168
  margin-right: 20px;
169
169
  }
170
170
 
171
- .awsui_divider_1hpp3_lcjop_171:not(#\9) {
172
- border-bottom: var(--border-divider-section-width-4ax5o2, 2px) solid var(--color-border-divider-default-d3adp9, #e9ebed);
171
+ .awsui_divider_1hpp3_1bkb5_171:not(#\9) {
172
+ border-bottom: var(--border-divider-section-width-8a5uu9, 2px) solid var(--color-border-divider-default-et9j7s, #e9ebed);
173
173
  }
174
174
 
175
- .awsui_hotspot_1hpp3_lcjop_175:not(#\9) {
175
+ .awsui_hotspot_1hpp3_1bkb5_175:not(#\9) {
176
176
  /* stylelint-disable-next-line plugin/no-unsupported-browser-features */
177
177
  border-collapse: separate;
178
178
  border-spacing: 0;
@@ -217,17 +217,17 @@ surrounding text. (WCAG F73) https://www.w3.org/WAI/WCAG21/Techniques/failures/F
217
217
  width: 16px;
218
218
  height: 16px;
219
219
  }
220
- .awsui_hotspot_1hpp3_lcjop_175:not(#\9):focus {
220
+ .awsui_hotspot_1hpp3_1bkb5_175:not(#\9):focus {
221
221
  outline: none;
222
222
  }
223
- body[data-awsui-focus-visible=true] .awsui_hotspot_1hpp3_lcjop_175:not(#\9):focus {
223
+ body[data-awsui-focus-visible=true] .awsui_hotspot_1hpp3_1bkb5_175:not(#\9):focus {
224
224
  position: relative;
225
225
  }
226
- body[data-awsui-focus-visible=true] .awsui_hotspot_1hpp3_lcjop_175:not(#\9):focus {
226
+ body[data-awsui-focus-visible=true] .awsui_hotspot_1hpp3_1bkb5_175:not(#\9):focus {
227
227
  outline: 2px dotted transparent;
228
228
  outline-offset: calc(2px - 1px);
229
229
  }
230
- body[data-awsui-focus-visible=true] .awsui_hotspot_1hpp3_lcjop_175:not(#\9):focus::before {
230
+ body[data-awsui-focus-visible=true] .awsui_hotspot_1hpp3_1bkb5_175:not(#\9):focus::before {
231
231
  content: " ";
232
232
  display: block;
233
233
  position: absolute;
@@ -238,13 +238,13 @@ body[data-awsui-focus-visible=true] .awsui_hotspot_1hpp3_lcjop_175:not(#\9):focu
238
238
  border-radius: var(--border-radius-control-circular-focus-ring-w07mub, 4px);
239
239
  box-shadow: 0 0 0 2px var(--color-border-item-focused-b2ntyl, #0972d3);
240
240
  }
241
- .awsui_hotspot_1hpp3_lcjop_175 > .awsui_icon_1hpp3_lcjop_215:not(#\9) {
241
+ .awsui_hotspot_1hpp3_1bkb5_175 > .awsui_icon_1hpp3_1bkb5_215:not(#\9) {
242
242
  position: relative;
243
243
  stroke: var(--color-text-link-default-latg1a, #0972d3);
244
244
  }
245
- .awsui_hotspot_1hpp3_lcjop_175:not(#\9):hover > .awsui_icon_1hpp3_lcjop_215 {
245
+ .awsui_hotspot_1hpp3_1bkb5_175:not(#\9):hover > .awsui_icon_1hpp3_1bkb5_215 {
246
246
  stroke: var(--color-text-link-hover-8j6p14, #033160);
247
247
  }
248
- .awsui_hotspot_1hpp3_lcjop_175:not(#\9):active > .awsui_icon_1hpp3_lcjop_215 {
248
+ .awsui_hotspot_1hpp3_1bkb5_175:not(#\9):active > .awsui_icon_1hpp3_1bkb5_215 {
249
249
  stroke: var(--color-text-link-default-latg1a, #0972d3);
250
250
  }
@@ -2,29 +2,29 @@
2
2
  // es-module interop with Babel and Typescript
3
3
  Object.defineProperty(exports, "__esModule", { value: true });
4
4
  module.exports.default = {
5
- "arrow": "awsui_arrow_1hpp3_lcjop_93",
6
- "arrow-outer": "awsui_arrow-outer_1hpp3_lcjop_97",
7
- "arrow-inner": "awsui_arrow-inner_1hpp3_lcjop_97",
8
- "arrow-position-right-top": "awsui_arrow-position-right-top_1hpp3_lcjop_128",
9
- "arrow-position-right-bottom": "awsui_arrow-position-right-bottom_1hpp3_lcjop_128",
10
- "arrow-position-left-top": "awsui_arrow-position-left-top_1hpp3_lcjop_131",
11
- "arrow-position-left-bottom": "awsui_arrow-position-left-bottom_1hpp3_lcjop_131",
12
- "arrow-position-top-center": "awsui_arrow-position-top-center_1hpp3_lcjop_134",
13
- "arrow-position-top-responsive": "awsui_arrow-position-top-responsive_1hpp3_lcjop_134",
14
- "arrow-position-bottom-center": "awsui_arrow-position-bottom-center_1hpp3_lcjop_137",
15
- "arrow-position-bottom-responsive": "awsui_arrow-position-bottom-responsive_1hpp3_lcjop_137",
16
- "annotation": "awsui_annotation_1hpp3_lcjop_145",
17
- "next-button": "awsui_next-button_1hpp3_lcjop_146",
18
- "previous-button": "awsui_previous-button_1hpp3_lcjop_147",
19
- "finish-button": "awsui_finish-button_1hpp3_lcjop_148",
20
- "header": "awsui_header_1hpp3_lcjop_149",
21
- "step-counter-content": "awsui_step-counter-content_1hpp3_lcjop_150",
22
- "content": "awsui_content_1hpp3_lcjop_151",
23
- "description": "awsui_description_1hpp3_lcjop_155",
24
- "actionBar": "awsui_actionBar_1hpp3_lcjop_160",
25
- "stepCounter": "awsui_stepCounter_1hpp3_lcjop_167",
26
- "divider": "awsui_divider_1hpp3_lcjop_171",
27
- "hotspot": "awsui_hotspot_1hpp3_lcjop_175",
28
- "icon": "awsui_icon_1hpp3_lcjop_215"
5
+ "arrow": "awsui_arrow_1hpp3_1bkb5_93",
6
+ "arrow-outer": "awsui_arrow-outer_1hpp3_1bkb5_97",
7
+ "arrow-inner": "awsui_arrow-inner_1hpp3_1bkb5_97",
8
+ "arrow-position-right-top": "awsui_arrow-position-right-top_1hpp3_1bkb5_128",
9
+ "arrow-position-right-bottom": "awsui_arrow-position-right-bottom_1hpp3_1bkb5_128",
10
+ "arrow-position-left-top": "awsui_arrow-position-left-top_1hpp3_1bkb5_131",
11
+ "arrow-position-left-bottom": "awsui_arrow-position-left-bottom_1hpp3_1bkb5_131",
12
+ "arrow-position-top-center": "awsui_arrow-position-top-center_1hpp3_1bkb5_134",
13
+ "arrow-position-top-responsive": "awsui_arrow-position-top-responsive_1hpp3_1bkb5_134",
14
+ "arrow-position-bottom-center": "awsui_arrow-position-bottom-center_1hpp3_1bkb5_137",
15
+ "arrow-position-bottom-responsive": "awsui_arrow-position-bottom-responsive_1hpp3_1bkb5_137",
16
+ "annotation": "awsui_annotation_1hpp3_1bkb5_145",
17
+ "next-button": "awsui_next-button_1hpp3_1bkb5_146",
18
+ "previous-button": "awsui_previous-button_1hpp3_1bkb5_147",
19
+ "finish-button": "awsui_finish-button_1hpp3_1bkb5_148",
20
+ "header": "awsui_header_1hpp3_1bkb5_149",
21
+ "step-counter-content": "awsui_step-counter-content_1hpp3_1bkb5_150",
22
+ "content": "awsui_content_1hpp3_1bkb5_151",
23
+ "description": "awsui_description_1hpp3_1bkb5_155",
24
+ "actionBar": "awsui_actionBar_1hpp3_1bkb5_160",
25
+ "stepCounter": "awsui_stepCounter_1hpp3_1bkb5_167",
26
+ "divider": "awsui_divider_1hpp3_1bkb5_171",
27
+ "hotspot": "awsui_hotspot_1hpp3_1bkb5_175",
28
+ "icon": "awsui_icon_1hpp3_1bkb5_215"
29
29
  };
30
30
 
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"lib/default/","sources":["app-layout/index.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAiF,MAAM,OAAO,CAAC;AAMtG,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AA2C9C,OAAO,EAAE,cAAc,EAAE,CAAC;AAE1B,QAAA,MAAM,SAAS,2FAoDd,CAAC;AAwsBF,eAAe,SAAS,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"lib/default/","sources":["app-layout/index.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAiF,MAAM,OAAO,CAAC;AAMtG,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AA0C9C,OAAO,EAAE,cAAc,EAAE,CAAC;AAE1B,QAAA,MAAM,SAAS,2FAoDd,CAAC;AAwsBF,eAAe,SAAS,CAAC"}
@@ -17,7 +17,6 @@ import styles from './styles.css.js';
17
17
  import testutilStyles from './test-classes/styles.css.js';
18
18
  import { findUpUntil } from '../internal/utils/dom';
19
19
  import { AppLayoutContext } from '../internal/context/app-layout-context';
20
- import { useStableEventHandler } from '../internal/hooks/use-stable-event-handler';
21
20
  import { applyDisplayName } from '../internal/utils/apply-display-name';
22
21
  import { SplitPanelContextProvider, } from '../internal/context/split-panel-context';
23
22
  import { CONSTRAINED_MAIN_PANEL_MIN_HEIGHT, CONSTRAINED_PAGE_HEIGHT, getSplitPanelDefaultSize, MAIN_PANEL_MIN_HEIGHT, } from '../split-panel/utils/size-utils';
@@ -30,7 +29,7 @@ import { togglesConfig } from './toggles';
30
29
  import { SideSplitPanelDrawer } from './split-panel-drawer';
31
30
  import useAppLayoutOffsets from './utils/use-content-width';
32
31
  import { isDevelopment } from '../internal/is-development';
33
- import { warnOnce } from '@cloudscape-design/component-toolkit/internal';
32
+ import { useStableCallback, warnOnce } from '@cloudscape-design/component-toolkit/internal';
34
33
  import RefreshedAppLayout from './visual-refresh';
35
34
  import { useInternalI18n } from '../i18n/context';
36
35
  import { useSplitPanelFocusControl } from './utils/use-split-panel-focus-control';
@@ -224,7 +223,7 @@ const OldAppLayout = React.forwardRef((_a, ref) => {
224
223
  setSplitPanelLastInteraction({ type: splitPanelOpen ? 'close' : 'open' });
225
224
  fireNonCancelableEvent(onSplitPanelToggle, { open: !splitPanelOpen });
226
225
  }, [setSplitPanelOpen, splitPanelOpen, onSplitPanelToggle, setSplitPanelLastInteraction]);
227
- const getSplitPanelMaxWidth = useStableEventHandler(() => {
226
+ const getSplitPanelMaxWidth = useStableCallback(() => {
228
227
  if (!mainContentRef.current || !defaults.minContentWidth) {
229
228
  return NaN;
230
229
  }
@@ -236,7 +235,7 @@ const OldAppLayout = React.forwardRef((_a, ref) => {
236
235
  const spaceTaken = finalSplitPanePosition === 'side' ? splitPanelSize : 0;
237
236
  return Math.max(0, spaceTaken + spaceAvailable);
238
237
  });
239
- const getDrawerMaxWidth = useStableEventHandler(() => {
238
+ const getDrawerMaxWidth = useStableCallback(() => {
240
239
  if (!mainContentRef.current || !defaults.minContentWidth) {
241
240
  return NaN;
242
241
  }
@@ -249,7 +248,7 @@ const OldAppLayout = React.forwardRef((_a, ref) => {
249
248
  const spaceTaken = drawerSize;
250
249
  return Math.max(0, spaceTaken + spaceAvailable);
251
250
  });
252
- const getSplitPanelMaxHeight = useStableEventHandler(() => {
251
+ const getSplitPanelMaxHeight = useStableCallback(() => {
253
252
  if (typeof document === 'undefined') {
254
253
  return 0; // render the split panel in its minimum possible size
255
254
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"lib/default/","sources":["app-layout/index.tsx"],"names":[],"mappings":";AAAA,qEAAqE;AACrE,sCAAsC;AACtC,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,KAAK,EAAE,EAAE,WAAW,EAAE,SAAS,EAAE,mBAAmB,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACtG,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,EAAE,eAAe,EAAE,MAAM,oCAAoC,CAAC;AACrE,OAAO,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AACzD,OAAO,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AAC5D,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAE3C,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAC5D,OAAO,cAAc,MAAM,0BAA0B,CAAC;AACtD,OAAO,gBAAgB,MAAM,4BAA4B,CAAC;AAC1D,OAAO,MAAM,MAAM,iBAAiB,CAAC;AACrC,OAAO,cAAc,MAAM,8BAA8B,CAAC;AAC1D,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAE,gBAAgB,EAAE,MAAM,wCAAwC,CAAC;AAC1E,OAAO,EAAE,qBAAqB,EAAE,MAAM,4CAA4C,CAAC;AACnF,OAAO,EAAE,gBAAgB,EAAE,MAAM,sCAAsC,CAAC;AACxE,OAAO,EACL,yBAAyB,GAG1B,MAAM,yCAAyC,CAAC;AACjD,OAAO,EACL,iCAAiC,EACjC,uBAAuB,EACvB,wBAAwB,EACxB,qBAAqB,GACtB,MAAM,iCAAiC,CAAC;AACzC,OAAO,gBAAgB,MAAM,sCAAsC,CAAC;AACpE,OAAO,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AACrE,OAAO,cAAuC,MAAM,mBAAmB,CAAC;AACxE,OAAO,EAAE,MAAM,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAE5D,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,mBAAmB,MAAM,2BAA2B,CAAC;AAC5D,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAE,QAAQ,EAAE,MAAM,+CAA+C,CAAC;AAEzE,OAAO,kBAAkB,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,yBAAyB,EAAE,MAAM,uCAAuC,CAAC;AAClF,OAAO,EAAE,qBAAqB,EAAE,MAAM,kCAAkC,CAAC;AACzE,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,EAAiB,qBAAqB,EAAE,MAAM,eAAe,CAAC;AACrE,OAAO,EAAE,iBAAiB,EAAE,MAAM,sCAAsC,CAAC;AAIzE,MAAM,SAAS,GAAG,KAAK,CAAC,UAAU,CAChC,CACE,EAAwG,EACxG,GAAkC,EAClC,EAAE;;QAFF,EAAE,WAAW,GAAG,SAAS,EAAE,cAAc,GAAG,OAAO,EAAE,cAAc,GAAG,OAAO,OAA2B,EAAtB,IAAI,cAAtF,mDAAwF,CAAF;IAGtF,MAAM,EAAE,iBAAiB,EAAE,GAAG,gBAAgB,CAAiB,WAAW,CAAC,CAAC;IAC5E,MAAM,CAAC,cAAc,EAAE,iBAAiB,CAAC,GAAG,QAAQ,CAAgB,EAAE,MAAM,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC;IAC/F,MAAM,SAAS,GAAG,gBAAgB,EAAE,CAAC;IAErC,MAAM,IAAI,GAAG,eAAe,CAAC,YAAY,CAAC,CAAC;IAC3C,MAAM,UAAU,GAAG;QACjB,UAAU,EAAE,IAAI,CAAC,uBAAuB,EAAE,MAAA,IAAI,CAAC,UAAU,0CAAE,UAAU,CAAC;QACtE,eAAe,EAAE,IAAI,CAAC,4BAA4B,EAAE,MAAA,IAAI,CAAC,UAAU,0CAAE,eAAe,CAAC;QACrF,gBAAgB,EAAE,IAAI,CAAC,6BAA6B,EAAE,MAAA,IAAI,CAAC,UAAU,0CAAE,gBAAgB,CAAC;QACxF,aAAa,EAAE,IAAI,CAAC,0BAA0B,EAAE,MAAA,IAAI,CAAC,UAAU,0CAAE,aAAa,CAAC;QAC/E,KAAK,EAAE,IAAI,CAAC,kBAAkB,EAAE,MAAA,IAAI,CAAC,UAAU,0CAAE,KAAK,CAAC;QACvD,UAAU,EAAE,IAAI,CAAC,uBAAuB,EAAE,MAAA,IAAI,CAAC,UAAU,0CAAE,UAAU,CAAC;QACtE,WAAW,EAAE,IAAI,CAAC,wBAAwB,EAAE,MAAA,IAAI,CAAC,UAAU,0CAAE,WAAW,CAAC;KAC1E,CAAC;IAEF,wDAAwD;IACxD,MAAM,KAAK,iCAAK,WAAW,EAAE,cAAc,EAAE,cAAc,IAAK,IAAI,KAAE,UAAU,GAAE,CAAC;IAEnF,MAAM,SAAS,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;IACrC,MAAM,UAAU,GAAI,KAAa,CAAC,OAAO,CAAC;IAC1C,MAAM,qBAAqB,GAAI,KAAa,CAAC,uBAAuB,CAAC;IACrE,MAAM,eAAe,GAAG,CAAC,GAAG,cAAc,CAAC,MAAM,EAAE,GAAG,CAAC,MAAA,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,KAAK,mCAAI,EAAE,CAAC,EAAE,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC;IAC1G,MAAM,YAAY,GAAG,eAAe,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,iCAAM,UAAU,KAAE,KAAK,EAAE,eAAe,IAAG,CAAC,CAAC,UAAU,CAAC;IAEzG,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,qBAAqB,EAAE;YACzB,OAAO;SACR;QACD,MAAM,WAAW,GAAG,oBAAoB,CAAC,SAAS,CAAC,mBAAmB,CAAC,OAAO,CAAC,EAAE,CAC/E,iBAAiB,CAAC,qBAAqB,CAAC,OAAO,CAAC,CAAC,CAClD,CAAC;QACF,OAAO,GAAG,EAAE;YACV,WAAW,EAAE,CAAC;YACd,iBAAiB,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC;QAC/C,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,qBAAqB,CAAC,CAAC,CAAC;IAE5B,OAAO,CACL,2CAAK,GAAG,EAAE,iBAAiB,IAAM,SAAS,GACvC,SAAS,CAAC,CAAC,CAAC,CACX,oBAAC,kBAAkB,oBAAK,KAAK,EAAM,EAAE,OAAO,EAAE,YAAY,EAAE,IAAE,GAAG,EAAE,GAAG,IAAI,CAC3E,CAAC,CAAC,CAAC,CACF,oBAAC,YAAY,oBAAK,KAAK,EAAM,EAAE,OAAO,EAAE,YAAY,EAAE,IAAE,GAAG,EAAE,GAAG,IAAI,CACrE,CACG,CACP,CAAC;AACJ,CAAC,CACF,CAAC;AAEF,MAAM,YAAY,GAAG,KAAK,CAAC,UAAU,CACnC,CACE,EAiCiB,EACjB,GAAkC,EAClC,EAAE;;QAnCF,EACE,UAAU,EACV,eAAe,GAAG,GAAG,EACrB,cAAc,EACd,cAAc,EAAE,wBAAwB,EACxC,KAAK,EACL,UAAU,GAAG,GAAG,EAChB,SAAS,EACT,SAAS,EAAE,mBAAmB,EAC9B,WAAW,EACX,aAAa,EACb,mBAAmB,EACnB,aAAa,EACb,2BAA2B,EAC3B,OAAO,EACP,WAAW,GAAG,SAAS,EACvB,sBAAsB,EACtB,iBAAiB,EACjB,eAAe,EACf,eAAe,EACf,cAAc,GAAG,OAAO,EACxB,cAAc,GAAG,OAAO,EACxB,UAAU,EACV,UAAU,EACV,cAAc,EAAE,wBAAwB,EACxC,cAAc,EAAE,wBAAwB,EACxC,qBAAqB,EAAE,+BAA+B,EACtD,6BAA6B,EAC7B,kBAAkB,EAClB,kBAAkB,EAClB,kBAAkB,EAClB,aAAa,OAEE,EADZ,KAAK,cAhCV,6jBAiCC,CADS;IAIV,IAAI,aAAa,EAAE;QACjB,IAAI,mBAAmB,IAAI,SAAS,EAAE;YACpC,QAAQ,CACN,WAAW,EACX,wKAAwK,CACzK,CAAC;SACH;KACF;IAED,MAAM,OAAO,GAAI,KAA6B,CAAC,OAAO,CAAC;IACvD,MAAM,UAAU,GAAG,OAAO,IAAI,OAAO,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;IAEvD,MAAM,OAAO,GAAG,MAAM,CAAiB,IAAI,CAAC,CAAC;IAC7C,MAAM,QAAQ,GAAG,SAAS,EAAE,CAAC;IAE7B,MAAM,QAAQ,GAAG,aAAa,CAAC,WAAW,EAAE,EAAE,eAAe,EAAE,eAAe,EAAE,EAAE,KAAK,CAAC,CAAC;IACzF,MAAM,CAAC,cAAc,GAAG,KAAK,EAAE,iBAAiB,CAAC,GAAG,eAAe,CACjE,wBAAwB,EACxB,kBAAkB,EAClB,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,cAAc,EAC1C,EAAE,aAAa,EAAE,WAAW,EAAE,cAAc,EAAE,gBAAgB,EAAE,aAAa,EAAE,oBAAoB,EAAE,CACtG,CAAC;IAEF,MAAM,CAAC,SAAS,GAAG,KAAK,EAAE,YAAY,CAAC,GAAG,eAAe,CACvD,mBAAmB,EACnB,aAAa,EACb,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,SAAS,EACrC,EAAE,aAAa,EAAE,WAAW,EAAE,cAAc,EAAE,WAAW,EAAE,aAAa,EAAE,eAAe,EAAE,CAC5F,CAAC;IAEF,MAAM,CAAC,cAAc,EAAE,iBAAiB,CAAC,GAAG,eAAe,CACzD,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,cAAc,EACvB,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,QAAQ,EACjB,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAClD;QACE,aAAa,EAAE,WAAW;QAC1B,cAAc,EAAE,gBAAgB;QAChC,aAAa,EAAE,UAAU;KAC1B,CACF,CAAC;IAEF,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,aAAa,CAAC,KAAK,CAAC;IACpD,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,GAAG,SAAS,CAAC,UAAU,CAAC,CAAC;IAEnE,MAAM,SAAS,GAAG;QAChB,EAAE,EAAE,OAAO;QACX,OAAO,EAAE,KAAK;QACd,SAAS,EAAE,KAAK;QAChB,UAAU,EAAE;YACV,aAAa,EAAE,SAAS;YACxB,WAAW,EAAE,UAAU;YACvB,OAAO,EAAE,SAAS;SACnB;QACD,OAAO,EAAE;YACP,QAAQ,EAAE,QAAQ;SACnB;KACF,CAAC;IAEF,MAAM,iBAAiB,GAAG,GAAG,EAAE;QAC7B,IAAI,CAAC,UAAU,EAAE;YACf,OAAO;SACR;QACD,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC;IAC/D,CAAC,CAAC;IAEF,MAAM,cAAc,GAClB,KAAK,IAAI,SAAS;QAChB,CAAC,CAAC,SAAS;QACX,CAAC,CAAC,UAAU;YACZ,CAAC,CAAC,MAAA,iBAAiB,EAAE,0CAAE,MAAM,CAAC,CAAC,UAAsB,EAAE,EAAE,CAAC,UAAU,CAAC,EAAE,KAAK,cAAc,EAAE,CAAC,CAAC;YAC9F,CAAC,CAAC,SAAS,CAAC;IAEhB,MAAM,EAAE,IAAI,EAAE,cAAc,EAAE,QAAQ,EAAE,eAAe,EAAE,GAAG,eAAe,CAAC,cAAc,CAAC,CAAC;IAC5F,MAAM,EACJ,IAAI,EAAE,SAAS,EACf,QAAQ,EAAE,iBAAiB,EAC3B,SAAS,EAAE,cAAc,GAC1B,GAAG,eAAe,CAAC,SAAS,IAAI,cAAc,KAAK,SAAS,EAAE,IAAI,CAAC,CAAC;IACrE,MAAM,EACJ,IAAI,EAAE,UAAU,EAChB,QAAQ,EAAE,mBAAmB,EAC7B,SAAS,EAAE,gBAAgB,EAC3B,kBAAkB,EAAE,wBAAwB,GAC7C,GAAG,qBAAqB,CAAC,CAAC,cAAc,aAAd,cAAc,uBAAd,cAAc,CAAE,SAAS,CAAC,EAAE,SAAS,IAAI,cAAc,KAAK,SAAS,EAAE,IAAI,CAAC,CAAC;IAExG,MAAM,kBAAkB,GAAG,WAAW,CACpC,CAAC,IAAa,EAAE,EAAE;QAChB,iBAAiB,CAAC,IAAI,CAAC,CAAC;QACxB,eAAe,EAAE,CAAC;QAClB,sBAAsB,CAAC,kBAAkB,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;IACvD,CAAC,EACD,CAAC,iBAAiB,EAAE,kBAAkB,EAAE,eAAe,CAAC,CACzD,CAAC;IACF,MAAM,aAAa,GAAG,WAAW,CAC/B,CAAC,IAAa,EAAE,EAAE;QAChB,YAAY,CAAC,IAAI,CAAC,CAAC;QACnB,iBAAiB,EAAE,CAAC;QACpB,sBAAsB,CAAC,aAAa,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;IAClD,CAAC,EACD,CAAC,YAAY,EAAE,aAAa,EAAE,iBAAiB,CAAC,CACjD,CAAC;IAEF,MAAM,iBAAiB,GAAG,CAAC,KAAuB,EAAE,EAAE;QACpD,MAAM,OAAO,GAAG,WAAW,CACzB,KAAK,CAAC,MAAqB,EAC3B,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,KAAK,GAAG,IAAI,CAAC,CAAE,IAA0B,CAAC,IAAI,CACnE,CAAC;QACF,IAAI,OAAO,EAAE;YACX,kBAAkB,CAAC,KAAK,CAAC,CAAC;SAC3B;IACH,CAAC,CAAC;IAEF,MAAM,iBAAiB,GAAG,CAAC,cAAc,IAAI,cAAc,CAAC;IAC5D,MAAM,YAAY,GAAG,CAAC,SAAS,IAAI,SAAS,CAAC;IAE7C,MAAM,EAAE,kBAAkB,EAAE,YAAY,EAAE,YAAY,EAAE,GAAG,gBAAgB,CACzE,cAAc,EACd,cAAc,EACd,iBAAiB,CAClB,CAAC;IACF,MAAM,CAAC,0BAA0B,EAAE,6BAA6B,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IACpF,MAAM,CAAC,eAAe,EAAE,kBAAkB,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAE9D,MAAM,CAAC,mBAAmB,EAAE,gBAAgB,CAAC,GAAG,iBAAiB,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;IACjG,MAAM,YAAY,GAAG,iBAAiB,IAAI,YAAY,CAAC;IACvD,MAAM,wBAAwB,GAAG,mBAAmB,CAAC,CAAC,CAAC,mBAAmB,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;IACvF,MAAM,yBAAyB,GAAG,mBAAmB,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,IAAI,CAAC;IAEnF,MAAM,CAAC,qBAAqB,EAAE,wBAAwB,CAAC,GAAG,eAAe,CACvE,+BAA+B,EAC/B,6BAA6B,EAC7B,SAAS,EACT;QACE,aAAa,EAAE,WAAW;QAC1B,cAAc,EAAE,uBAAuB;QACvC,aAAa,EAAE,+BAA+B;KAC/C,CACF,CAAC;IACF,MAAM,CAAC,cAAc,GAAG,KAAK,EAAE,iBAAiB,CAAC,GAAG,eAAe,CACjE,wBAAwB,EACxB,kBAAkB,EAClB,KAAK,EACL;QACE,aAAa,EAAE,WAAW;QAC1B,cAAc,EAAE,gBAAgB;QAChC,aAAa,EAAE,oBAAoB;KACpC,CACF,CAAC;IAEF,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,KAAK,KAAI,EAAE,EAAE,CAAC,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,KAAK,CAAC,CAAC,CAAC;IAE1E,MAAM,kBAAkB,GAAG,WAAW,CAAC,GAAG,EAAE;QAC1C,MAAM,KAAK,GAA6B,EAAE,CAAC;QAC3C,IAAI,CAAC,WAAW,EAAE;YAChB,OAAO,EAAE,CAAC;SACX;QAED,KAAK,MAAM,IAAI,IAAI,WAAW,EAAE;YAC9B,IAAI,IAAI,CAAC,WAAW,EAAE;gBACpB,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,WAAW,IAAI,UAAU,CAAC;aACjD;SACF;QACD,OAAO,KAAK,CAAC;IACf,CAAC,EAAE,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC,CAAC;IAE9B,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,QAAQ,CAAC,GAAG,EAAE,CAAC,kBAAkB,EAAE,CAAC,CAAC;IAE3E,SAAS,CAAC,GAAG,EAAE;QACb,oEAAoE;QACpE,mEAAmE;QACnE,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC,iCAAM,kBAAkB,EAAE,GAAK,IAAI,EAAG,CAAC,CAAC;IACjE,CAAC,EAAE,CAAC,kBAAkB,CAAC,CAAC,CAAC;IAEzB,MAAM,UAAU,GACd,CAAA,cAAc,aAAd,cAAc,uBAAd,cAAc,CAAE,EAAE,KAAI,WAAW,CAAC,cAAc,aAAd,cAAc,uBAAd,cAAc,CAAE,EAAE,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,cAAc,aAAd,cAAc,uBAAd,cAAc,CAAE,EAAE,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC;IAEvG,MAAM,kBAAkB,GAAG,CAAA,qBAAqB,aAArB,qBAAqB,uBAArB,qBAAqB,CAAE,QAAQ,KAAI,QAAQ,CAAC;IACvE,MAAM,CAAC,wBAAwB,EAAE,2BAA2B,CAAC,GAAG,QAAQ,CAA4B;QAClG,SAAS,EAAE,KAAK;QAChB,SAAS,EAAE,SAAS;KACrB,CAAC,CAAC;IACH,MAAM,mBAAmB,GAAG,CAAC,CAAC,CAAC,UAAU,IAAI,CAAC,wBAAwB,CAAC,SAAS,IAAI,cAAc,CAAC,CAAC,CAAC;IAErG,MAAM,iBAAiB,GAAG,EAAE,CAAC;IAC7B,MAAM,wBAAwB,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,iBAAiB,CAAC;IAE3G,MAAM,sBAAsB,GAAG,GAAG,EAAE;QAClC,IAAI,SAAS,IAAI,CAAC,CAAC,mBAAmB,IAAI,CAAA,qBAAqB,aAArB,qBAAqB,uBAArB,qBAAqB,CAAE,QAAQ,MAAK,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE;YACjG,OAAO,CAAC,CAAC;SACV;QAED,IAAI,cAAc,aAAd,cAAc,uBAAd,cAAc,CAAE,SAAS,EAAE;YAC7B,OAAO,UAAU,CAAC;SACnB;QAED,IAAI,SAAS,IAAI,cAAc,EAAE;YAC/B,OAAO,UAAU,CAAC;SACnB;QAED,OAAO,iBAAiB,CAAC;IAC3B,CAAC,CAAC;IAEF,MAAM,mBAAmB,GAAG,sBAAsB,EAAE,CAAC;IAErD,MAAM,qBAAqB,GAAG,wBAAwB,CAAC,kBAAkB,CAAC,CAAC;IAC3E,MAAM,CAAC,cAAc,GAAG,qBAAqB,EAAE,iBAAiB,CAAC,GAAG,eAAe,CACjF,wBAAwB,EACxB,kBAAkB,EAClB,qBAAqB,EACrB;QACE,aAAa,EAAE,WAAW;QAC1B,cAAc,EAAE,gBAAgB;QAChC,aAAa,EAAE,oBAAoB;KACpC,CACF,CAAC;IAEF,MAAM,cAAc,GAAG,MAAM,CAAiB,IAAI,CAAC,CAAC;IACpD,MAAM,mBAAmB,GAAG,MAAM,CAAc,IAAI,CAAC,CAAC;IAEtD,MAAM,EAAE,IAAI,EAAE,cAAc,EAAE,kBAAkB,EAAE,4BAA4B,EAAE,GAAG,yBAAyB,CAAC;QAC3G,qBAAqB;QACrB,cAAc;KACf,CAAC,CAAC;IAEH,MAAM,0BAA0B,GAAG,WAAW,CAC5C,CAAC,MAAuC,EAAE,EAAE;QAC1C,wBAAwB,CAAC,MAAM,CAAC,CAAC;QACjC,4BAA4B,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,CAAC;QACnD,sBAAsB,CAAC,6BAA6B,EAAE,MAAM,CAAC,CAAC;IAChE,CAAC,EACD,CAAC,wBAAwB,EAAE,6BAA6B,EAAE,4BAA4B,CAAC,CACxF,CAAC;IACF,MAAM,mBAAmB,GAAG,WAAW,CACrC,CAAC,MAAwB,EAAE,EAAE;QAC3B,iBAAiB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAC/B,sBAAsB,CAAC,kBAAkB,EAAE,MAAM,CAAC,CAAC;IACrD,CAAC,EACD,CAAC,iBAAiB,EAAE,kBAAkB,CAAC,CACxC,CAAC;IAEF,MAAM,yBAAyB,GAAG,WAAW,CAAC,GAAG,EAAE;QACjD,iBAAiB,CAAC,CAAC,cAAc,CAAC,CAAC;QACnC,4BAA4B,CAAC,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;QAC1E,sBAAsB,CAAC,kBAAkB,EAAE,EAAE,IAAI,EAAE,CAAC,cAAc,EAAE,CAAC,CAAC;IACxE,CAAC,EAAE,CAAC,iBAAiB,EAAE,cAAc,EAAE,kBAAkB,EAAE,4BAA4B,CAAC,CAAC,CAAC;IAE1F,MAAM,qBAAqB,GAAG,qBAAqB,CAAC,GAAG,EAAE;QACvD,IAAI,CAAC,cAAc,CAAC,OAAO,IAAI,CAAC,QAAQ,CAAC,eAAe,EAAE;YACxD,OAAO,GAAG,CAAC;SACZ;QAED,MAAM,KAAK,GAAG,QAAQ,CAAC,gBAAgB,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC;QACvE,qEAAqE;QACrE,qEAAqE;QACrE,MAAM,cAAc,GAAG,sBAAsB,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QACvD,MAAM,cAAc,GAAG,KAAK,GAAG,QAAQ,CAAC,eAAe,GAAG,cAAc,CAAC;QAEzE,MAAM,UAAU,GAAG,sBAAsB,KAAK,MAAM,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC;QAC1E,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,UAAU,GAAG,cAAc,CAAC,CAAC;IAClD,CAAC,CAAC,CAAC;IAEH,MAAM,iBAAiB,GAAG,qBAAqB,CAAC,GAAG,EAAE;QACnD,IAAI,CAAC,cAAc,CAAC,OAAO,IAAI,CAAC,QAAQ,CAAC,eAAe,EAAE;YACxD,OAAO,GAAG,CAAC;SACZ;QAED,4EAA4E;QAC5E,MAAM,KAAK,GAAG,QAAQ,CAAC,gBAAgB,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,KAAK,IAAI,GAAG,UAAU,EAAE,CAAC,CAAC;QAE1F,qEAAqE;QACrE,qEAAqE;QACrE,MAAM,cAAc,GAAG,sBAAsB,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QACvD,MAAM,cAAc,GAAG,KAAK,GAAG,QAAQ,CAAC,eAAe,GAAG,cAAc,CAAC;QACzE,MAAM,UAAU,GAAG,UAAU,CAAC;QAE9B,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,UAAU,GAAG,cAAc,CAAC,CAAC;IAClD,CAAC,CAAC,CAAC;IAEH,MAAM,sBAAsB,GAAG,qBAAqB,CAAC,GAAG,EAAE;QACxD,IAAI,OAAO,QAAQ,KAAK,WAAW,EAAE;YACnC,OAAO,CAAC,CAAC,CAAC,sDAAsD;SACjE;aAAM,IAAI,iBAAiB,IAAI,mBAAmB,CAAC,OAAO,EAAE;YAC3D,MAAM,eAAe,GAAG,mBAAmB,CAAC,OAAO,CAAC,YAAY,CAAC;YACjE,OAAO,eAAe,GAAG,uBAAuB,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,eAAe,GAAG,qBAAqB,CAAC;SAC9G;aAAM;YACL,MAAM,eAAe,GAAG,QAAQ,CAAC,eAAe,CAAC,YAAY,GAAG,YAAY,GAAG,YAAY,CAAC;YAC5F,OAAO,eAAe,GAAG,uBAAuB;gBAC9C,CAAC,CAAC,eAAe,GAAG,iCAAiC;gBACrD,CAAC,CAAC,eAAe,GAAG,qBAAqB,CAAC;SAC7C;IACH,CAAC,CAAC,CAAC;IAEH,MAAM,sBAAsB,GAAG,0BAA0B,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,kBAAkB,CAAC;IAE1F,MAAM,2BAA2B,GAAG,mBAAmB,IAAI,sBAAsB,KAAK,MAAM,CAAC;IAC7F,MAAM,uBAAuB,GAAG,2BAA2B,IAAI,cAAc,CAAC;IAE9E,MAAM,qBAAqB,GAAG,CAAC,CAAC;IAEhC,MAAM,WAAW,GAAG,cAAc,EAAE,CAAC;IACrC,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,WAAW,EAAE,GAAG,mBAAmB,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IACtF,MAAM,0BAA0B,GAC9B,WAAW;QACX,UAAU;QACV,WAAW;QACX,mBAAmB;QACnB,wBAAwB;QACxB,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC;IAEvD,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,YAAY,GAAG,0BAA0B,GAAG,cAAc,CAAC;QAEjE,6BAA6B,CAAC,QAAQ,IAAI,CAAC,QAAQ,CAAC,eAAe,IAAI,CAAC,CAAC,GAAG,YAAY,CAAC,CAAC;QAC1F,kBAAkB,CAAC,QAAQ,IAAI,CAAC,QAAQ,CAAC,eAAe,IAAI,CAAC,CAAC,GAAG,0BAA0B,CAAC,CAAC;QAC7F,kFAAkF;QAClF,4BAA4B;QAC5B,uDAAuD;IACzD,CAAC,EAAE,CAAC,0BAA0B,EAAE,UAAU,EAAE,QAAQ,CAAC,eAAe,EAAE,QAAQ,CAAC,CAAC,CAAC;IAEjF,MAAM,qBAAqB,GAAG,cAAc,IAAI,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC;IACjF,MAAM,gBAAgB,GAAG,SAAS,IAAI,QAAQ,IAAI,CAAC,CAAC,UAAU,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC;IAErG,MAAM,oBAAoB,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,QAAQ,CAAC,eAAe,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;IAE5F,MAAM,CAAC,sBAAsB,EAAE,yBAAyB,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;IACxE,MAAM,CAAC,8BAA8B,EAAE,iCAAiC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;IAExF,MAAM,wBAAwB,GAAG,GAAG,EAAE;QACpC,IAAI,QAAQ,EAAE;YACZ,OAAO,CAAC,CAAC;SACV;QAED,IAAI,UAAU,EAAE;YACd,IAAI,cAAc,EAAE;gBAClB,IAAI,CAAC,eAAe,IAAI,UAAU,EAAE;oBAClC,OAAO,UAAU,GAAG,iBAAiB,CAAC;iBACvC;gBAED,OAAO,UAAU,GAAG,iBAAiB,CAAC;aACvC;YACD,OAAO,iBAAiB,CAAC;SAC1B;QAED,IAAI,CAAC,SAAS,IAAI,SAAS,EAAE;YAC3B,OAAO,UAAU,CAAC;SACnB;QACD,OAAO,gBAAgB,CAAC;IAC1B,CAAC,CAAC;IAEF,MAAM,iBAAiB,GAA2B;QAChD,SAAS,EAAE,YAAY,GAAG,CAAC,sBAAsB,KAAK,QAAQ,CAAC,CAAC,CAAC,yBAAyB,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACpG,YAAY,EAAE,YAAY;QAC1B,UAAU,EACR,UAAU,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,cAAc,IAAI,cAAc,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,qBAAqB,CAAC;QAC3G,WAAW,EAAE,WAAW,GAAG,wBAAwB,EAAE;QACrD,QAAQ,EAAE,sBAAsB;QAChC,IAAI,EAAE,cAAc;QACpB,WAAW,EAAE,qBAAqB;QAClC,YAAY,EAAE,sBAAsB;QACpC,sBAAsB;QACtB,kBAAkB,EAAE,oBAAoB;QACxC,MAAM,EAAE,cAAc;QACtB,QAAQ;QACR,gBAAgB,EAAE,0BAA0B;QAC5C,QAAQ,EAAE,mBAAmB;QAC7B,QAAQ,EAAE,yBAAyB;QACnC,mBAAmB,EAAE,0BAA0B;QAC/C,mBAAmB,EAAE,2BAA2B;QAChD,UAAU,EAAE,yBAAyB;QACrC,kBAAkB,EAAE,iCAAiC;QACrD,IAAI,EAAE,cAAc;KACrB,CAAC;IACF,MAAM,iBAAiB,GAAG,UAAU,IAAI,CACtC,oBAAC,yBAAyB,IAAC,KAAK,EAAE,iBAAiB,IAAG,UAAU,CAA6B,CAC9F,CAAC;IAEF,MAAM,mBAAmB,GAAwB;QAC/C,WAAW;QACX,iBAAiB,EAAE,cAAc,IAAI,CAAC,CAAC,cAAc;QACrD,kBAAkB,EAAE,CAAC,QAAQ;YAC3B,CAAC,CAAC,EAAE,QAAQ,EAAE,QAAQ,CAAC,eAAe,EAAE,QAAQ,EAAE,QAAQ,CAAC,eAAe,EAAE;YAC5E,CAAC,CAAC,SAAS;QACb,YAAY;QACV,uDAAuD;QACvD,yEAAyE;QACzE,SAAS;YACT,CAAC,UAAU,IAAI,CAAC,cAAc,IAAI,CAAC,CAAC,mBAAmB,IAAI,sBAAsB,KAAK,MAAM,CAAC,CAAC;YAC9F,qCAAqC;YACrC,YAAY;YACZ,0CAA0C;YAC1C,uBAAuB;QACzB,QAAQ;KACT,CAAC;IAEF,mBAAmB,CACjB,GAAG,EACH,GAAG,EAAE,CAAC,CAAC;QACL,SAAS,EAAE,GAAG,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC;QACpC,0BAA0B,EAAE,GAAG,EAAE;YAC/B,IAAI,QAAQ,EAAE;gBACZ,kBAAkB,CAAC,KAAK,CAAC,CAAC;aAC3B;QACH,CAAC;QACD,eAAe,EAAE,GAAG,EAAE,CAAC,iBAAiB,CAAC,IAAI,CAAC;KAC/C,CAAC,EACF,CAAC,QAAQ,EAAE,kBAAkB,EAAE,aAAa,EAAE,iBAAiB,CAAC,CACjE,CAAC;IAEF,MAAM,sBAAsB,GAC1B,MAAA,CAAC,CAAC,mBAAmB,IAAI,sBAAsB,KAAK,QAAQ;QAC1D,CAAC,CAAC,SAAS;QACX,CAAC,CAAC,cAAc;YAChB,CAAC,CAAC,sBAAsB;YACxB,CAAC,CAAC,8BAA8B,CAAC,mCAAI,SAAS,CAAC;IAEnD,MAAM,CAAC,eAAe,EAAE,YAAY,CAAC,GAAG,iBAAiB,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;IAEzF,OAAO,CACL,6BACE,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,cAAc,CAAC,IAAI,EAAE,iBAAiB,IAAI,MAAM,CAAC,gBAAgB,CAAC,CAAC,EAChG,GAAG,EAAE,OAAO;QAEZ,6BAAK,SAAS,EAAE,MAAM,CAAC,gBAAgB,CAAC,EAAE,KAAK,EAAE,kBAAkB;YAChE,QAAQ,IAAI,CAAC,CAAC,SAAS,IAAI,CAAC,cAAc,IAAI,WAAW,CAAC,IAAI,CAC7D,oBAAC,aAAa,IACZ,YAAY,EAAE,YAAY,EAC1B,UAAU,EAAE,EAAE,UAAU,EAAE,cAAc,CAAC,MAAM,EAAE,KAAK,EAAE,SAAS,CAAC,MAAM,EAAE,EAC1E,SAAS,EAAE,YAAY,EACvB,UAAU,EAAE,UAAU,EACtB,cAAc,EAAE,cAAc,EAC9B,SAAS,EAAE,SAAS,EACpB,gBAAgB,EAAE,GAAG,EAAE,CAAC,kBAAkB,CAAC,IAAI,CAAC,EAChD,WAAW,EAAE,GAAG,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,EACtC,WAAW,EAAE,YAAY,EACzB,YAAY,EAAE,YAAY,EAC1B,OAAO,EACL,OAAO;oBACL,CAAC,CAAC;wBACE,KAAK,EAAE,KAAK,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK;wBAC1E,cAAc,EAAE,cAAc,aAAd,cAAc,uBAAd,cAAc,CAAE,EAAE;wBAClC,QAAQ,EAAE,YAAY,CAAC,EAAE;4BACvB,IAAI,CAAA,cAAc,aAAd,cAAc,uBAAd,cAAc,CAAE,EAAE,MAAK,YAAY,CAAC,cAAc,EAAE;gCACtD,aAAa,CAAC,YAAY,CAAC,cAAc,KAAK,OAAO,CAAC,CAAC;gCACvD,mBAAmB,EAAE,CAAC;gCACtB,iBAAiB,CAAC,YAAY,CAAC,cAAc,CAAC,CAAC;gCAC/C,wBAAwB,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;gCAC3C,sBAAsB,CAAC,OAAO,CAAC,QAAQ,EAAE,YAAY,CAAC,cAAc,CAAC,CAAC;6BACvE;wBACH,CAAC;wBACD,SAAS,EAAE,OAAO,CAAC,SAAS;qBAC7B;oBACH,CAAC,CAAC,SAAS,IAGd,WAAW,CACE,CACjB;YACD,6BAAK,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,iBAAiB,IAAI,MAAM,CAAC,kBAAkB,CAAC,CAAC;gBACjF,CAAC,cAAc,IAAI,CAClB,oBAAC,MAAM,IACL,gBAAgB,EAAE,cAAc,CAAC,UAAU,EAC3C,eAAe,EAAE,cAAc,CAAC,mBAAmB,CAAC,EACpD,cAAc,EAAE,cAAc,CAAC,kBAAkB,CAAC,EAClD,UAAU,EAAE,UAAU,EACtB,YAAY,EAAE,YAAY,EAC1B,SAAS,EAAE,YAAY,EACvB,QAAQ,EAAE,QAAQ,EAClB,MAAM,EAAE,cAAc,EACtB,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,SAAS,EACjD,QAAQ,EAAE,kBAAkB,EAC5B,UAAU,EAAE,cAAc,EAC1B,IAAI,EAAC,YAAY,EACjB,KAAK,EAAE,eAAe,IAErB,UAAU,CACJ,CACV;gBACD,8BACE,GAAG,EAAE,mBAAmB,EACxB,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE;wBACrC,CAAC,MAAM,CAAC,wBAAwB,CAAC,CAAC,EAAE,iBAAiB;wBACrD,CAAC,cAAc,CAAC,0BAA0B,CAAC,CAAC,EAAE,iBAAiB;wBAC/D,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,QAAQ,IAAI,YAAY;qBAC/C,CAAC;oBAEF,6BACE,KAAK,EAAE;4BACL,YAAY,EAAE,sBAAsB;yBACrC;wBAEA,aAAa,IAAI,CAChB,oBAAC,aAAa,IACZ,sBAAsB,EAAE,sBAAsB,EAC9C,kBAAkB,EAAE,cAAc,CAAC,aAAa,EAChD,MAAM,EAAE,UAAU,EAClB,SAAS,EAAE,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,EAC/C,MAAM,EAAE,CAAC,QAAQ,IAAI,mBAAmB,EACxC,GAAG,EAAE,gBAAgB,IAEpB,aAAa,CACA,CACjB;wBACA,CAAC,CAAC,CAAC,QAAQ,IAAI,WAAW,CAAC,IAAI,aAAa,CAAC,IAAI,CAChD,oBAAC,cAAc,oBAAK,mBAAmB;4BACpC,CAAC,QAAQ,IAAI,WAAW,IAAI,CAC3B,6BAAK,SAAS,EAAE,IAAI,CAAC,cAAc,CAAC,WAAW,EAAE,MAAM,CAAC,qBAAqB,CAAC,CAAC,IAC5E,WAAW,CACR,CACP;4BACA,aAAa,IAAI,CAChB,6BACE,SAAS,EAAE,IAAI,CACb,MAAM,CAAC,wBAAwB,CAAC,EAChC,CAAC,wBAAwB;oCACvB,CAAC,QAAQ,IAAI,CAAC,WAAW,CAAC;oCAC1B,MAAM,CAAC,2BAA2B,CAAC,EACrC,CAAC,wBAAwB,IAAI,CAAC,WAAW,IAAI,MAAM,CAAC,oCAAoC,CAAC,EACzF,CAAC,2BAA2B,IAAI,MAAM,CAAC,mCAAmC,CAAC,CAC5E,IAEA,aAAa,CACV,CACP,CACc,CAClB;wBACD,oBAAC,cAAc,oBACT,mBAAmB,IACvB,GAAG,EAAE,cAAc,EACnB,eAAe,EAAE,sBAAsB;4BACvC,wDAAwD;4BACxD,SAAS,EAAE,IAAI,CACb,CAAC,sBAAsB,IAAI,MAAM,CAAC,iBAAiB,CAAC,EACpD,CAAC,sBAAsB;gCACrB,CAAC,QAAQ,IAAI,CAAC,WAAW,CAAC;gCAC1B,CAAC,aAAa;gCACd,MAAM,CAAC,2BAA2B,CAAC,EACrC,cAAc,CAAC,OAAO,EACtB,CAAC,2BAA2B,IAAI,aAAa,IAAI,MAAM,CAAC,oBAAoB,CAAC,EAC7E,CAAC,wBAAwB;gCACvB,CAAC,WAAW;gCACZ,CAAC,QAAQ;gCACT,CAAC,aAAa;gCACd,MAAM,CAAC,6BAA6B,CAAC,CACxC;4BAED,oBAAC,gBAAgB,CAAC,QAAQ,IACxB,KAAK,EAAE;oCACL,eAAe;oCACb,sGAAsG;oCACtG,sGAAsG;oCACtG,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC;wCAC3D,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,yBAAyB,KAAK,IAAI,CAAC,CAAC,CAAC,yBAAyB,CAAC,CAAC,CAAC,CAAC,CAAC;oCACrF,kBAAkB,EAAE,YAAY,GAAG,CAAC,sBAAsB,IAAI,CAAC,CAAC;oCAChE,eAAe,EAAE,eAAe,aAAf,eAAe,cAAf,eAAe,GAAI,CAAC;iCACtC,IAEA,OAAO,CACkB,CACb,CACb;oBACL,sBAAsB,KAAK,QAAQ,IAAI,iBAAiB,CACpD;gBAEN,sBAAsB,KAAK,MAAM,IAAI,CACpC,oBAAC,oBAAoB,IACnB,SAAS,EAAE,YAAY,EACvB,YAAY,EAAE,YAAY,EAC1B,SAAS,EAAE,mBAAmB,EAC9B,KAAK,EAAE,cAAc,IAAI,UAAU,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,SAAS,IAE/D,iBAAiB,CACG,CACxB;gBAEA,CAAC,CAAC,UAAU,KAAI,cAAc,aAAd,cAAc,uBAAd,cAAc,CAAE,EAAE,CAAA,CAAC,IAAI,CAAC,CAAC,UAAU,IAAI,CAAC,SAAS,CAAC,CAAC;oBAClE,CAAC,UAAU,CAAC,CAAC,CAAC,CACZ,oBAAC,eAAe,IACd,gBAAgB,EACd,CAAA,cAAc,aAAd,cAAc,uBAAd,cAAc,CAAE,EAAE,MAAK,OAAO,CAAC,CAAC,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC,cAAc,CAAC,eAAe,CAAC,EAEzF,eAAe,EAAE,cAAc,CAAC,cAAc,CAAC,EAC/C,cAAc,EACZ,CAAA,cAAc,aAAd,cAAc,uBAAd,cAAc,CAAE,EAAE,MAAK,OAAO;4BAC5B,CAAC,CAAC,cAAc,CAAC,aAAa,CAAC;4BAC/B,CAAC,CAAC,cAAc,CAAC,4BAA4B,CAAC,EAElD,UAAU,EAAE,UAAU,EACtB,iBAAiB,EAAE,cAAc,aAAd,cAAc,uBAAd,cAAc,CAAE,UAAU,EAC7C,KAAK,EAAE,CAAC,eAAe,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,UAAU,EACjD,YAAY,EAAE,YAAY,EAC1B,SAAS,EAAE,YAAY,EACvB,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EAAE,aAAa,EACvB,MAAM,EAAE,SAAS,IAAI,cAAc,KAAK,SAAS,EACjD,UAAU,EAAE,SAAS,EACrB,IAAI,EAAC,OAAO,EACZ,WAAW,EAAE,UAAU,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,cAAc,EAC3D,YAAY,EAAE,cAAc,EAC5B,OAAO,EAAE;4BACP,KAAK,EAAE,KAAK,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK;4BAC1E,cAAc,EAAE,cAAc,aAAd,cAAc,uBAAd,cAAc,CAAE,EAAE;4BAClC,QAAQ,EAAE,YAAY,CAAC,EAAE;gCACvB,aAAa,CAAC,KAAK,CAAC,CAAC;gCACrB,wBAAwB,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;gCAC5C,iBAAiB,CAAC,YAAY,CAAC,cAAc,CAAC,CAAC;gCAC/C,sBAAsB,CAAC,OAAO,CAAC,QAAQ,EAAE,YAAY,CAAC,cAAc,CAAC,CAAC;4BACxE,CAAC;yBACF,EACD,IAAI,EAAE,CAAC,eAAe,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,UAAU,EAChD,QAAQ,EAAE,YAAY,CAAC,EAAE;4BACvB,sBAAsB,CAAC,OAAO,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;4BACvD,MAAM,UAAU,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,KAAK,YAAY,CAAC,EAAE,CAAC,CAAC;4BACxE,IAAI,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,QAAQ,EAAE;gCACxB,sBAAsB,CAAC,UAAU,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;6BAC3D;4BACD,cAAc,iCAAM,WAAW,KAAE,CAAC,YAAY,CAAC,EAAE,CAAC,EAAE,YAAY,CAAC,IAAI,IAAG,CAAC;wBAC3E,CAAC,EACD,IAAI,EAAE,UAAU,EAChB,WAAW,EAAE,iBAAiB,IAE7B,cAAc,aAAd,cAAc,uBAAd,cAAc,CAAE,OAAO,CACR,CACnB,CAAC,CAAC,CAAC,CACF,oBAAC,MAAM,IACL,gBAAgB,EAAE,cAAc,CAAC,KAAK,EACtC,eAAe,EAAE,cAAc,CAAC,cAAc,CAAC,EAC/C,cAAc,EAAE,cAAc,CAAC,aAAa,CAAC,EAC7C,UAAU,EAAE,UAAU,EACtB,KAAK,EAAE,mBAAmB,EAC1B,YAAY,EAAE,YAAY,EAC1B,SAAS,EAAE,YAAY,EACvB,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EAAE,aAAa,EACvB,MAAM,EAAE,SAAS,EACjB,UAAU,EAAE,SAAS,EACrB,IAAI,EAAC,OAAO,EACZ,WAAW,EAAE,cAAc,IAE1B,KAAK,CACC,CACV,CAAC;gBACH,UAAU,IAAI,CACb,oBAAC,iBAAiB,IAChB,gBAAgB,EAAE,cAAc,CAAC,oCAAoC,CAAC,EACtE,eAAe,EAAE,cAAc,CAAC,iBAAiB,CAAC,EAClD,YAAY,EAAE,YAAY,EAC1B,SAAS,EAAE,YAAY,EACvB,QAAQ,EAAE,QAAQ,EAClB,OAAO,EAAE;wBACP,KAAK,EAAE,KAAK,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK;wBAC1E,cAAc,EAAE,cAAc,aAAd,cAAc,uBAAd,cAAc,CAAE,EAAE;wBAClC,QAAQ,EAAE,YAAY,CAAC,EAAE;4BACvB,IAAI,CAAA,cAAc,aAAd,cAAc,uBAAd,cAAc,CAAE,EAAE,MAAK,YAAY,CAAC,cAAc,EAAE;gCACtD,aAAa,CAAC,YAAY,CAAC,cAAc,KAAK,OAAO,CAAC,CAAC;gCACvD,mBAAmB,EAAE,CAAC;gCACtB,iBAAiB,CAAC,YAAY,CAAC,cAAc,CAAC,CAAC;gCAC/C,wBAAwB,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;gCAC3C,sBAAsB,CAAC,OAAO,CAAC,QAAQ,EAAE,YAAY,CAAC,cAAc,CAAC,CAAC;6BACvE;wBACH,CAAC;wBACD,SAAS,EAAE,OAAO,CAAC,SAAS;qBAC7B,GACD,CACH,CACG,CACF,CACF,CACP,CAAC;AACJ,CAAC,CACF,CAAC;AAEF,gBAAgB,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;AACzC,eAAe,SAAS,CAAC","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport clsx from 'clsx';\nimport React, { useCallback, useEffect, useImperativeHandle, useMemo, useRef, useState } from 'react';\nimport { getBaseProps } from '../internal/base-component';\nimport { useControllable } from '../internal/hooks/use-controllable';\nimport { useMobile } from '../internal/hooks/use-mobile';\nimport { fireNonCancelableEvent } from '../internal/events';\nimport { applyDefaults } from './defaults';\nimport { AppLayoutProps } from './interfaces';\nimport { Notifications } from './notifications';\nimport { MobileToolbar } from './mobile-toolbar';\nimport { useFocusControl } from './utils/use-focus-control';\nimport useWindowWidth from './utils/use-window-width';\nimport useContentHeight from './utils/use-content-height';\nimport styles from './styles.css.js';\nimport testutilStyles from './test-classes/styles.css.js';\nimport { findUpUntil } from '../internal/utils/dom';\nimport { AppLayoutContext } from '../internal/context/app-layout-context';\nimport { useStableEventHandler } from '../internal/hooks/use-stable-event-handler';\nimport { applyDisplayName } from '../internal/utils/apply-display-name';\nimport {\n SplitPanelContextProvider,\n SplitPanelContextProps,\n SplitPanelSideToggleProps,\n} from '../internal/context/split-panel-context';\nimport {\n CONSTRAINED_MAIN_PANEL_MIN_HEIGHT,\n CONSTRAINED_PAGE_HEIGHT,\n getSplitPanelDefaultSize,\n MAIN_PANEL_MIN_HEIGHT,\n} from '../split-panel/utils/size-utils';\nimport useBaseComponent from '../internal/hooks/use-base-component';\nimport { useVisualRefresh } from '../internal/hooks/use-visual-mode';\nimport ContentWrapper, { ContentWrapperProps } from './content-wrapper';\nimport { Drawer, DrawerTriggersBar } from './drawer';\nimport { ResizableDrawer } from './drawer/resizable-drawer';\nimport { DrawerItem, InternalDrawerProps } from './drawer/interfaces';\nimport { togglesConfig } from './toggles';\nimport { SideSplitPanelDrawer } from './split-panel-drawer';\nimport useAppLayoutOffsets from './utils/use-content-width';\nimport { isDevelopment } from '../internal/is-development';\nimport { warnOnce } from '@cloudscape-design/component-toolkit/internal';\n\nimport RefreshedAppLayout from './visual-refresh';\nimport { useInternalI18n } from '../i18n/context';\nimport { useSplitPanelFocusControl } from './utils/use-split-panel-focus-control';\nimport { useDrawerFocusControl } from './utils/use-drawer-focus-control';\nimport { awsuiPluginsInternal } from '../internal/plugins/api';\nimport { DrawersLayout, convertRuntimeDrawers } from './runtime-api';\nimport { useContainerQuery } from '@cloudscape-design/component-toolkit';\n\nexport { AppLayoutProps };\n\nconst AppLayout = React.forwardRef(\n (\n { contentType = 'default', headerSelector = '#b #h', footerSelector = '#b #f', ...rest }: AppLayoutProps,\n ref: React.Ref<AppLayoutProps.Ref>\n ) => {\n const { __internalRootRef } = useBaseComponent<HTMLDivElement>('AppLayout');\n const [runtimeDrawers, setRuntimeDrawers] = useState<DrawersLayout>({ before: [], after: [] });\n const isRefresh = useVisualRefresh();\n\n const i18n = useInternalI18n('app-layout');\n const ariaLabels = {\n navigation: i18n('ariaLabels.navigation', rest.ariaLabels?.navigation),\n navigationClose: i18n('ariaLabels.navigationClose', rest.ariaLabels?.navigationClose),\n navigationToggle: i18n('ariaLabels.navigationToggle', rest.ariaLabels?.navigationToggle),\n notifications: i18n('ariaLabels.notifications', rest.ariaLabels?.notifications),\n tools: i18n('ariaLabels.tools', rest.ariaLabels?.tools),\n toolsClose: i18n('ariaLabels.toolsClose', rest.ariaLabels?.toolsClose),\n toolsToggle: i18n('ariaLabels.toolsToggle', rest.ariaLabels?.toolsToggle),\n };\n\n // This re-builds the props including the default values\n const props = { contentType, headerSelector, footerSelector, ...rest, ariaLabels };\n\n const baseProps = getBaseProps(rest);\n const ownDrawers = (props as any).drawers;\n const disableRuntimeDrawers = (props as any).__disableRuntimeDrawers;\n const combinedDrawers = [...runtimeDrawers.before, ...(ownDrawers?.items ?? []), ...runtimeDrawers.after];\n const finalDrawers = combinedDrawers.length > 0 ? { ...ownDrawers, items: combinedDrawers } : ownDrawers;\n\n useEffect(() => {\n if (disableRuntimeDrawers) {\n return;\n }\n const unsubscribe = awsuiPluginsInternal.appLayout.onDrawersRegistered(drawers =>\n setRuntimeDrawers(convertRuntimeDrawers(drawers))\n );\n return () => {\n unsubscribe();\n setRuntimeDrawers({ before: [], after: [] });\n };\n }, [disableRuntimeDrawers]);\n\n return (\n <div ref={__internalRootRef} {...baseProps}>\n {isRefresh ? (\n <RefreshedAppLayout {...props} {...{ drawers: finalDrawers }} ref={ref} />\n ) : (\n <OldAppLayout {...props} {...{ drawers: finalDrawers }} ref={ref} />\n )}\n </div>\n );\n }\n);\n\nconst OldAppLayout = React.forwardRef(\n (\n {\n navigation,\n navigationWidth = 280,\n navigationHide,\n navigationOpen: controlledNavigationOpen,\n tools,\n toolsWidth = 290,\n toolsHide,\n toolsOpen: controlledToolsOpen,\n breadcrumbs,\n notifications,\n stickyNotifications,\n contentHeader,\n disableContentHeaderOverlap,\n content,\n contentType = 'default',\n disableContentPaddings,\n disableBodyScroll,\n maxContentWidth,\n minContentWidth,\n headerSelector = '#b #h',\n footerSelector = '#b #f',\n ariaLabels,\n splitPanel,\n splitPanelSize: controlledSplitPanelSize,\n splitPanelOpen: controlledSplitPanelOpen,\n splitPanelPreferences: controlledSplitPanelPreferences,\n onSplitPanelPreferencesChange,\n onSplitPanelResize,\n onSplitPanelToggle,\n onNavigationChange,\n onToolsChange,\n ...props\n }: AppLayoutProps,\n ref: React.Ref<AppLayoutProps.Ref>\n ) => {\n if (isDevelopment) {\n if (controlledToolsOpen && toolsHide) {\n warnOnce(\n 'AppLayout',\n `You have enabled both the \\`toolsOpen\\` prop and the \\`toolsHide\\` prop. This is not supported. Set \\`toolsOpen\\` to \\`false\\` when you set \\`toolsHide\\` to \\`true\\`.`\n );\n }\n }\n\n const drawers = (props as InternalDrawerProps).drawers;\n const hasDrawers = drawers && drawers.items.length > 0;\n\n const rootRef = useRef<HTMLDivElement>(null);\n const isMobile = useMobile();\n\n const defaults = applyDefaults(contentType, { maxContentWidth, minContentWidth }, false);\n const [navigationOpen = false, setNavigationOpen] = useControllable(\n controlledNavigationOpen,\n onNavigationChange,\n isMobile ? false : defaults.navigationOpen,\n { componentName: 'AppLayout', controlledProp: 'navigationOpen', changeHandler: 'onNavigationChange' }\n );\n\n const [toolsOpen = false, setToolsOpen] = useControllable(\n controlledToolsOpen,\n onToolsChange,\n isMobile ? false : defaults.toolsOpen,\n { componentName: 'AppLayout', controlledProp: 'toolsOpen', changeHandler: 'onToolsChange' }\n );\n\n const [activeDrawerId, setActiveDrawerId] = useControllable(\n drawers?.activeDrawerId,\n drawers?.onChange,\n isMobile ? false : tools ? defaults.toolsOpen : '',\n {\n componentName: 'AppLayout',\n controlledProp: 'activeDrawerId',\n changeHandler: 'onChange',\n }\n );\n\n const { iconName, getLabels } = togglesConfig.tools;\n const { mainLabel, closeLabel, openLabel } = getLabels(ariaLabels);\n\n const toolsItem = {\n id: 'tools',\n content: tools,\n resizable: false,\n ariaLabels: {\n triggerButton: openLabel,\n closeButton: closeLabel,\n content: mainLabel,\n },\n trigger: {\n iconName: iconName,\n },\n };\n\n const getAllDrawerItems = () => {\n if (!hasDrawers) {\n return;\n }\n return tools ? [toolsItem, ...drawers.items] : drawers.items;\n };\n\n const selectedDrawer =\n tools && toolsOpen\n ? toolsItem\n : hasDrawers\n ? getAllDrawerItems()?.filter((drawerItem: DrawerItem) => drawerItem.id === activeDrawerId)[0]\n : undefined;\n\n const { refs: navigationRefs, setFocus: focusNavButtons } = useFocusControl(navigationOpen);\n const {\n refs: toolsRefs,\n setFocus: focusToolsButtons,\n loseFocus: loseToolsFocus,\n } = useFocusControl(toolsOpen || selectedDrawer !== undefined, true);\n const {\n refs: drawerRefs,\n setFocus: focusDrawersButtons,\n loseFocus: loseDrawersFocus,\n setLastInteraction: setDrawerLastInteraction,\n } = useDrawerFocusControl([selectedDrawer?.resizable], toolsOpen || selectedDrawer !== undefined, true);\n\n const onNavigationToggle = useCallback(\n (open: boolean) => {\n setNavigationOpen(open);\n focusNavButtons();\n fireNonCancelableEvent(onNavigationChange, { open });\n },\n [setNavigationOpen, onNavigationChange, focusNavButtons]\n );\n const onToolsToggle = useCallback(\n (open: boolean) => {\n setToolsOpen(open);\n focusToolsButtons();\n fireNonCancelableEvent(onToolsChange, { open });\n },\n [setToolsOpen, onToolsChange, focusToolsButtons]\n );\n\n const onNavigationClick = (event: React.MouseEvent) => {\n const hasLink = findUpUntil(\n event.target as HTMLElement,\n node => node.tagName === 'A' && !!(node as HTMLAnchorElement).href\n );\n if (hasLink) {\n onNavigationToggle(false);\n }\n };\n\n const navigationVisible = !navigationHide && navigationOpen;\n const toolsVisible = !toolsHide && toolsOpen;\n\n const { contentHeightStyle, headerHeight, footerHeight } = useContentHeight(\n headerSelector,\n footerSelector,\n disableBodyScroll\n );\n const [isSplitpanelForcedPosition, setIsSplitpanelForcedPosition] = useState(false);\n const [isResizeInvalid, setIsResizeInvalid] = useState(false);\n\n const [notificationsHeight, notificationsRef] = useContainerQuery(rect => rect.contentBoxHeight);\n const anyPanelOpen = navigationVisible || toolsVisible;\n const hasRenderedNotifications = notificationsHeight ? notificationsHeight > 0 : false;\n const stickyNotificationsHeight = stickyNotifications ? notificationsHeight : null;\n\n const [splitPanelPreferences, setSplitPanelPreferences] = useControllable(\n controlledSplitPanelPreferences,\n onSplitPanelPreferencesChange,\n undefined,\n {\n componentName: 'AppLayout',\n controlledProp: 'splitPanelPreferences',\n changeHandler: 'onSplitPanelPreferencesChange',\n }\n );\n const [splitPanelOpen = false, setSplitPanelOpen] = useControllable(\n controlledSplitPanelOpen,\n onSplitPanelToggle,\n false,\n {\n componentName: 'AppLayout',\n controlledProp: 'splitPanelOpen',\n changeHandler: 'onSplitPanelToggle',\n }\n );\n\n const drawerItems = useMemo(() => drawers?.items || [], [drawers?.items]);\n\n const getDrawerItemSizes = useCallback(() => {\n const sizes: { [id: string]: number } = {};\n if (!drawerItems) {\n return {};\n }\n\n for (const item of drawerItems) {\n if (item.defaultSize) {\n sizes[item.id] = item.defaultSize || toolsWidth;\n }\n }\n return sizes;\n }, [drawerItems, toolsWidth]);\n\n const [drawerSizes, setDrawerSizes] = useState(() => getDrawerItemSizes());\n\n useEffect(() => {\n // Ensure we only set new drawer items by performing a shallow merge\n // of the latest drawer item sizes, and previous drawer item sizes.\n setDrawerSizes(prev => ({ ...getDrawerItemSizes(), ...prev }));\n }, [getDrawerItemSizes]);\n\n const drawerSize =\n selectedDrawer?.id && drawerSizes[selectedDrawer?.id] ? drawerSizes[selectedDrawer?.id] : toolsWidth;\n\n const splitPanelPosition = splitPanelPreferences?.position || 'bottom';\n const [splitPanelReportedToggle, setSplitPanelReportedToggle] = useState<SplitPanelSideToggleProps>({\n displayed: false,\n ariaLabel: undefined,\n });\n const splitPanelDisplayed = !!(splitPanel && (splitPanelReportedToggle.displayed || splitPanelOpen));\n\n const closedDrawerWidth = 40;\n const effectiveNavigationWidth = navigationHide ? 0 : navigationOpen ? navigationWidth : closedDrawerWidth;\n\n const getEffectiveToolsWidth = () => {\n if (toolsHide && (!splitPanelDisplayed || splitPanelPreferences?.position !== 'side') && !drawers) {\n return 0;\n }\n\n if (selectedDrawer?.resizable) {\n return drawerSize;\n }\n\n if (toolsOpen || activeDrawerId) {\n return toolsWidth;\n }\n\n return closedDrawerWidth;\n };\n\n const effectiveToolsWidth = getEffectiveToolsWidth();\n\n const defaultSplitPanelSize = getSplitPanelDefaultSize(splitPanelPosition);\n const [splitPanelSize = defaultSplitPanelSize, setSplitPanelSize] = useControllable(\n controlledSplitPanelSize,\n onSplitPanelResize,\n defaultSplitPanelSize,\n {\n componentName: 'AppLayout',\n controlledProp: 'splitPanelSize',\n changeHandler: 'onSplitPanelResize',\n }\n );\n\n const mainContentRef = useRef<HTMLDivElement>(null);\n const legacyScrollRootRef = useRef<HTMLElement>(null);\n\n const { refs: splitPanelRefs, setLastInteraction: setSplitPanelLastInteraction } = useSplitPanelFocusControl([\n splitPanelPreferences,\n splitPanelOpen,\n ]);\n\n const onSplitPanelPreferencesSet = useCallback(\n (detail: { position: 'side' | 'bottom' }) => {\n setSplitPanelPreferences(detail);\n setSplitPanelLastInteraction({ type: 'position' });\n fireNonCancelableEvent(onSplitPanelPreferencesChange, detail);\n },\n [setSplitPanelPreferences, onSplitPanelPreferencesChange, setSplitPanelLastInteraction]\n );\n const onSplitPanelSizeSet = useCallback(\n (detail: { size: number }) => {\n setSplitPanelSize(detail.size);\n fireNonCancelableEvent(onSplitPanelResize, detail);\n },\n [setSplitPanelSize, onSplitPanelResize]\n );\n\n const onSplitPanelToggleHandler = useCallback(() => {\n setSplitPanelOpen(!splitPanelOpen);\n setSplitPanelLastInteraction({ type: splitPanelOpen ? 'close' : 'open' });\n fireNonCancelableEvent(onSplitPanelToggle, { open: !splitPanelOpen });\n }, [setSplitPanelOpen, splitPanelOpen, onSplitPanelToggle, setSplitPanelLastInteraction]);\n\n const getSplitPanelMaxWidth = useStableEventHandler(() => {\n if (!mainContentRef.current || !defaults.minContentWidth) {\n return NaN;\n }\n\n const width = parseInt(getComputedStyle(mainContentRef.current).width);\n // when disableContentPaddings is true there is less available space,\n // so we subtract space-scaled-2x-xxxl * 2 for left and right padding\n const contentPadding = disableContentPaddings ? 80 : 0;\n const spaceAvailable = width - defaults.minContentWidth - contentPadding;\n\n const spaceTaken = finalSplitPanePosition === 'side' ? splitPanelSize : 0;\n return Math.max(0, spaceTaken + spaceAvailable);\n });\n\n const getDrawerMaxWidth = useStableEventHandler(() => {\n if (!mainContentRef.current || !defaults.minContentWidth) {\n return NaN;\n }\n\n // Either use the computed width of the drawer or the drawerSize as defined.\n const width = parseInt(getComputedStyle(mainContentRef.current).width || `${drawerSize}`);\n\n // when disableContentPaddings is true there is less available space,\n // so we subtract space-scaled-2x-xxxl * 2 for left and right padding\n const contentPadding = disableContentPaddings ? 80 : 0;\n const spaceAvailable = width - defaults.minContentWidth - contentPadding;\n const spaceTaken = drawerSize;\n\n return Math.max(0, spaceTaken + spaceAvailable);\n });\n\n const getSplitPanelMaxHeight = useStableEventHandler(() => {\n if (typeof document === 'undefined') {\n return 0; // render the split panel in its minimum possible size\n } else if (disableBodyScroll && legacyScrollRootRef.current) {\n const availableHeight = legacyScrollRootRef.current.clientHeight;\n return availableHeight < CONSTRAINED_PAGE_HEIGHT ? availableHeight : availableHeight - MAIN_PANEL_MIN_HEIGHT;\n } else {\n const availableHeight = document.documentElement.clientHeight - headerHeight - footerHeight;\n return availableHeight < CONSTRAINED_PAGE_HEIGHT\n ? availableHeight - CONSTRAINED_MAIN_PANEL_MIN_HEIGHT\n : availableHeight - MAIN_PANEL_MIN_HEIGHT;\n }\n });\n\n const finalSplitPanePosition = isSplitpanelForcedPosition ? 'bottom' : splitPanelPosition;\n\n const splitPaneAvailableOnTheSide = splitPanelDisplayed && finalSplitPanePosition === 'side';\n const splitPanelOpenOnTheSide = splitPaneAvailableOnTheSide && splitPanelOpen;\n\n const toggleButtonsBarWidth = 0;\n\n const windowWidth = useWindowWidth();\n const { left: leftOffset, right: rightOffset } = useAppLayoutOffsets(rootRef.current);\n const contentWidthWithSplitPanel =\n windowWidth -\n leftOffset -\n rightOffset -\n effectiveToolsWidth -\n effectiveNavigationWidth -\n (disableContentPaddings ? 0 : toggleButtonsBarWidth);\n\n useEffect(() => {\n const contentWidth = contentWidthWithSplitPanel - splitPanelSize;\n\n setIsSplitpanelForcedPosition(isMobile || (defaults.minContentWidth || 0) > contentWidth);\n setIsResizeInvalid(isMobile || (defaults.minContentWidth || 0) > contentWidthWithSplitPanel);\n // This is a workaround to avoid a forced position due to splitPanelSize, which is\n // user controlled variable.\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [contentWidthWithSplitPanel, drawerSize, defaults.minContentWidth, isMobile]);\n\n const navigationClosedWidth = navigationHide || isMobile ? 0 : closedDrawerWidth;\n const toolsClosedWidth = toolsHide || isMobile || (!hasDrawers && toolsHide) ? 0 : closedDrawerWidth;\n\n const contentMaxWidthStyle = !isMobile ? { maxWidth: defaults.maxContentWidth } : undefined;\n\n const [splitPanelReportedSize, setSplitPanelReportedSize] = useState(0);\n const [splitPanelReportedHeaderHeight, setSplitPanelReportedHeaderHeight] = useState(0);\n\n const getSplitPanelRightOffset = () => {\n if (isMobile) {\n return 0;\n }\n\n if (hasDrawers) {\n if (activeDrawerId) {\n if (!isResizeInvalid && drawerSize) {\n return drawerSize + closedDrawerWidth;\n }\n\n return toolsWidth + closedDrawerWidth;\n }\n return closedDrawerWidth;\n }\n\n if (!toolsHide && toolsOpen) {\n return toolsWidth;\n }\n return toolsClosedWidth;\n };\n\n const splitPanelContext: SplitPanelContextProps = {\n topOffset: headerHeight + (finalSplitPanePosition === 'bottom' ? stickyNotificationsHeight || 0 : 0),\n bottomOffset: footerHeight,\n leftOffset:\n leftOffset + (isMobile ? 0 : !navigationHide && navigationOpen ? navigationWidth : navigationClosedWidth),\n rightOffset: rightOffset + getSplitPanelRightOffset(),\n position: finalSplitPanePosition,\n size: splitPanelSize,\n getMaxWidth: getSplitPanelMaxWidth,\n getMaxHeight: getSplitPanelMaxHeight,\n disableContentPaddings,\n contentWidthStyles: contentMaxWidthStyle,\n isOpen: splitPanelOpen,\n isMobile,\n isForcedPosition: isSplitpanelForcedPosition,\n onResize: onSplitPanelSizeSet,\n onToggle: onSplitPanelToggleHandler,\n onPreferencesChange: onSplitPanelPreferencesSet,\n setSplitPanelToggle: setSplitPanelReportedToggle,\n reportSize: setSplitPanelReportedSize,\n reportHeaderHeight: setSplitPanelReportedHeaderHeight,\n refs: splitPanelRefs,\n };\n const splitPanelWrapped = splitPanel && (\n <SplitPanelContextProvider value={splitPanelContext}>{splitPanel}</SplitPanelContextProvider>\n );\n\n const contentWrapperProps: ContentWrapperProps = {\n contentType,\n navigationPadding: navigationHide || !!navigationOpen,\n contentWidthStyles: !isMobile\n ? { minWidth: defaults.minContentWidth, maxWidth: defaults.maxContentWidth }\n : undefined,\n toolsPadding:\n // tools padding is displayed in one of the three cases\n // 1. Nothing on the that screen edge (no tools panel and no split panel)\n toolsHide ||\n (hasDrawers && !activeDrawerId && (!splitPanelDisplayed || finalSplitPanePosition !== 'side')) ||\n // 2. Tools panel is present and open\n toolsVisible ||\n // 3. Split panel is open in side position\n splitPanelOpenOnTheSide,\n isMobile,\n };\n\n useImperativeHandle(\n ref,\n () => ({\n openTools: () => onToolsToggle(true),\n closeNavigationIfNecessary: () => {\n if (isMobile) {\n onNavigationToggle(false);\n }\n },\n focusToolsClose: () => focusToolsButtons(true),\n }),\n [isMobile, onNavigationToggle, onToolsToggle, focusToolsButtons]\n );\n\n const splitPanelBottomOffset =\n (!splitPanelDisplayed || finalSplitPanePosition !== 'bottom'\n ? undefined\n : splitPanelOpen\n ? splitPanelReportedSize\n : splitPanelReportedHeaderHeight) ?? undefined;\n\n const [mobileBarHeight, mobileBarRef] = useContainerQuery(rect => rect.contentBoxHeight);\n\n return (\n <div\n className={clsx(styles.root, testutilStyles.root, disableBodyScroll && styles['root-no-scroll'])}\n ref={rootRef}\n >\n <div className={styles['layout-wrapper']} style={contentHeightStyle}>\n {isMobile && (!toolsHide || !navigationHide || breadcrumbs) && (\n <MobileToolbar\n anyPanelOpen={anyPanelOpen}\n toggleRefs={{ navigation: navigationRefs.toggle, tools: toolsRefs.toggle }}\n topOffset={headerHeight}\n ariaLabels={ariaLabels}\n navigationHide={navigationHide}\n toolsHide={toolsHide}\n onNavigationOpen={() => onNavigationToggle(true)}\n onToolsOpen={() => onToolsToggle(true)}\n unfocusable={anyPanelOpen}\n mobileBarRef={mobileBarRef}\n drawers={\n drawers\n ? {\n items: tools && !toolsHide ? [toolsItem, ...drawers.items] : drawers.items,\n activeDrawerId: selectedDrawer?.id,\n onChange: changeDetail => {\n if (selectedDrawer?.id !== changeDetail.activeDrawerId) {\n onToolsToggle(changeDetail.activeDrawerId === 'tools');\n focusDrawersButtons();\n setActiveDrawerId(changeDetail.activeDrawerId);\n setDrawerLastInteraction({ type: 'open' });\n fireNonCancelableEvent(drawers.onChange, changeDetail.activeDrawerId);\n }\n },\n ariaLabel: drawers.ariaLabel,\n }\n : undefined\n }\n >\n {breadcrumbs}\n </MobileToolbar>\n )}\n <div className={clsx(styles.layout, disableBodyScroll && styles['layout-no-scroll'])}>\n {!navigationHide && (\n <Drawer\n contentClassName={testutilStyles.navigation}\n toggleClassName={testutilStyles['navigation-toggle']}\n closeClassName={testutilStyles['navigation-close']}\n ariaLabels={ariaLabels}\n bottomOffset={footerHeight}\n topOffset={headerHeight}\n isMobile={isMobile}\n isOpen={navigationOpen}\n onClick={isMobile ? onNavigationClick : undefined}\n onToggle={onNavigationToggle}\n toggleRefs={navigationRefs}\n type=\"navigation\"\n width={navigationWidth}\n >\n {navigation}\n </Drawer>\n )}\n <main\n ref={legacyScrollRootRef}\n className={clsx(styles['layout-main'], {\n [styles['layout-main-scrollable']]: disableBodyScroll,\n [testutilStyles['disable-body-scroll-root']]: disableBodyScroll,\n [styles.unfocusable]: isMobile && anyPanelOpen,\n })}\n >\n <div\n style={{\n marginBottom: splitPanelBottomOffset,\n }}\n >\n {notifications && (\n <Notifications\n disableContentPaddings={disableContentPaddings}\n testUtilsClassName={testutilStyles.notifications}\n labels={ariaLabels}\n topOffset={disableBodyScroll ? 0 : headerHeight}\n sticky={!isMobile && stickyNotifications}\n ref={notificationsRef}\n >\n {notifications}\n </Notifications>\n )}\n {((!isMobile && breadcrumbs) || contentHeader) && (\n <ContentWrapper {...contentWrapperProps}>\n {!isMobile && breadcrumbs && (\n <div className={clsx(testutilStyles.breadcrumbs, styles['breadcrumbs-desktop'])}>\n {breadcrumbs}\n </div>\n )}\n {contentHeader && (\n <div\n className={clsx(\n styles['content-header-wrapper'],\n !hasRenderedNotifications &&\n (isMobile || !breadcrumbs) &&\n styles['content-extra-top-padding'],\n !hasRenderedNotifications && !breadcrumbs && styles['content-header-wrapper-first-child'],\n !disableContentHeaderOverlap && styles['content-header-wrapper-overlapped']\n )}\n >\n {contentHeader}\n </div>\n )}\n </ContentWrapper>\n )}\n <ContentWrapper\n {...contentWrapperProps}\n ref={mainContentRef}\n disablePaddings={disableContentPaddings}\n // eslint-disable-next-line react/forbid-component-props\n className={clsx(\n !disableContentPaddings && styles['content-wrapper'],\n !disableContentPaddings &&\n (isMobile || !breadcrumbs) &&\n !contentHeader &&\n styles['content-extra-top-padding'],\n testutilStyles.content,\n !disableContentHeaderOverlap && contentHeader && styles['content-overlapped'],\n !hasRenderedNotifications &&\n !breadcrumbs &&\n !isMobile &&\n !contentHeader &&\n styles['content-wrapper-first-child']\n )}\n >\n <AppLayoutContext.Provider\n value={{\n stickyOffsetTop:\n // We don't support the table header being sticky in case the deprecated disableBodyScroll is enabled,\n // therefore we ensure the table header scrolls out of view by offseting a large enough value (9999px)\n (disableBodyScroll ? (isMobile ? -9999 : 0) : headerHeight) +\n (isMobile ? 0 : stickyNotificationsHeight !== null ? stickyNotificationsHeight : 0),\n stickyOffsetBottom: footerHeight + (splitPanelBottomOffset || 0),\n mobileBarHeight: mobileBarHeight ?? 0,\n }}\n >\n {content}\n </AppLayoutContext.Provider>\n </ContentWrapper>\n </div>\n {finalSplitPanePosition === 'bottom' && splitPanelWrapped}\n </main>\n\n {finalSplitPanePosition === 'side' && (\n <SideSplitPanelDrawer\n topOffset={headerHeight}\n bottomOffset={footerHeight}\n displayed={splitPanelDisplayed}\n width={splitPanelOpen && splitPanel ? splitPanelSize : undefined}\n >\n {splitPanelWrapped}\n </SideSplitPanelDrawer>\n )}\n\n {((hasDrawers && selectedDrawer?.id) || (!hasDrawers && !toolsHide)) &&\n (hasDrawers ? (\n <ResizableDrawer\n contentClassName={\n selectedDrawer?.id === 'tools' ? testutilStyles.tools : testutilStyles['active-drawer']\n }\n toggleClassName={testutilStyles['tools-toggle']}\n closeClassName={\n selectedDrawer?.id === 'tools'\n ? testutilStyles['tools-close']\n : testutilStyles['active-drawer-close-button']\n }\n ariaLabels={ariaLabels}\n drawersAriaLabels={selectedDrawer?.ariaLabels}\n width={!isResizeInvalid ? drawerSize : toolsWidth}\n bottomOffset={footerHeight}\n topOffset={headerHeight}\n isMobile={isMobile}\n onToggle={onToolsToggle}\n isOpen={toolsOpen || activeDrawerId !== undefined}\n toggleRefs={toolsRefs}\n type=\"tools\"\n onLoseFocus={hasDrawers ? loseDrawersFocus : loseToolsFocus}\n activeDrawer={selectedDrawer}\n drawers={{\n items: tools && !toolsHide ? [toolsItem, ...drawers.items] : drawers.items,\n activeDrawerId: selectedDrawer?.id,\n onChange: changeDetail => {\n onToolsToggle(false);\n setDrawerLastInteraction({ type: 'close' });\n setActiveDrawerId(changeDetail.activeDrawerId);\n fireNonCancelableEvent(drawers.onChange, changeDetail.activeDrawerId);\n },\n }}\n size={!isResizeInvalid ? drawerSize : toolsWidth}\n onResize={changeDetail => {\n fireNonCancelableEvent(drawers.onResize, changeDetail);\n const drawerItem = drawerItems.find(({ id }) => id === changeDetail.id);\n if (drawerItem?.onResize) {\n fireNonCancelableEvent(drawerItem.onResize, changeDetail);\n }\n setDrawerSizes({ ...drawerSizes, [changeDetail.id]: changeDetail.size });\n }}\n refs={drawerRefs}\n getMaxWidth={getDrawerMaxWidth}\n >\n {selectedDrawer?.content}\n </ResizableDrawer>\n ) : (\n <Drawer\n contentClassName={testutilStyles.tools}\n toggleClassName={testutilStyles['tools-toggle']}\n closeClassName={testutilStyles['tools-close']}\n ariaLabels={ariaLabels}\n width={effectiveToolsWidth}\n bottomOffset={footerHeight}\n topOffset={headerHeight}\n isMobile={isMobile}\n onToggle={onToolsToggle}\n isOpen={toolsOpen}\n toggleRefs={toolsRefs}\n type=\"tools\"\n onLoseFocus={loseToolsFocus}\n >\n {tools}\n </Drawer>\n ))}\n {hasDrawers && (\n <DrawerTriggersBar\n contentClassName={testutilStyles['drawers-desktop-triggers-container']}\n toggleClassName={testutilStyles['drawers-trigger']}\n bottomOffset={footerHeight}\n topOffset={headerHeight}\n isMobile={isMobile}\n drawers={{\n items: tools && !toolsHide ? [toolsItem, ...drawers.items] : drawers.items,\n activeDrawerId: selectedDrawer?.id,\n onChange: changeDetail => {\n if (selectedDrawer?.id !== changeDetail.activeDrawerId) {\n onToolsToggle(changeDetail.activeDrawerId === 'tools');\n focusDrawersButtons();\n setActiveDrawerId(changeDetail.activeDrawerId);\n setDrawerLastInteraction({ type: 'open' });\n fireNonCancelableEvent(drawers.onChange, changeDetail.activeDrawerId);\n }\n },\n ariaLabel: drawers.ariaLabel,\n }}\n />\n )}\n </div>\n </div>\n </div>\n );\n }\n);\n\napplyDisplayName(AppLayout, 'AppLayout');\nexport default AppLayout;\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"lib/default/","sources":["app-layout/index.tsx"],"names":[],"mappings":"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","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport clsx from 'clsx';\nimport React, { useCallback, useEffect, useImperativeHandle, useMemo, useRef, useState } from 'react';\nimport { getBaseProps } from '../internal/base-component';\nimport { useControllable } from '../internal/hooks/use-controllable';\nimport { useMobile } from '../internal/hooks/use-mobile';\nimport { fireNonCancelableEvent } from '../internal/events';\nimport { applyDefaults } from './defaults';\nimport { AppLayoutProps } from './interfaces';\nimport { Notifications } from './notifications';\nimport { MobileToolbar } from './mobile-toolbar';\nimport { useFocusControl } from './utils/use-focus-control';\nimport useWindowWidth from './utils/use-window-width';\nimport useContentHeight from './utils/use-content-height';\nimport styles from './styles.css.js';\nimport testutilStyles from './test-classes/styles.css.js';\nimport { findUpUntil } from '../internal/utils/dom';\nimport { AppLayoutContext } from '../internal/context/app-layout-context';\nimport { applyDisplayName } from '../internal/utils/apply-display-name';\nimport {\n SplitPanelContextProvider,\n SplitPanelContextProps,\n SplitPanelSideToggleProps,\n} from '../internal/context/split-panel-context';\nimport {\n CONSTRAINED_MAIN_PANEL_MIN_HEIGHT,\n CONSTRAINED_PAGE_HEIGHT,\n getSplitPanelDefaultSize,\n MAIN_PANEL_MIN_HEIGHT,\n} from '../split-panel/utils/size-utils';\nimport useBaseComponent from '../internal/hooks/use-base-component';\nimport { useVisualRefresh } from '../internal/hooks/use-visual-mode';\nimport ContentWrapper, { ContentWrapperProps } from './content-wrapper';\nimport { Drawer, DrawerTriggersBar } from './drawer';\nimport { ResizableDrawer } from './drawer/resizable-drawer';\nimport { DrawerItem, InternalDrawerProps } from './drawer/interfaces';\nimport { togglesConfig } from './toggles';\nimport { SideSplitPanelDrawer } from './split-panel-drawer';\nimport useAppLayoutOffsets from './utils/use-content-width';\nimport { isDevelopment } from '../internal/is-development';\nimport { useStableCallback, warnOnce } from '@cloudscape-design/component-toolkit/internal';\n\nimport RefreshedAppLayout from './visual-refresh';\nimport { useInternalI18n } from '../i18n/context';\nimport { useSplitPanelFocusControl } from './utils/use-split-panel-focus-control';\nimport { useDrawerFocusControl } from './utils/use-drawer-focus-control';\nimport { awsuiPluginsInternal } from '../internal/plugins/api';\nimport { DrawersLayout, convertRuntimeDrawers } from './runtime-api';\nimport { useContainerQuery } from '@cloudscape-design/component-toolkit';\n\nexport { AppLayoutProps };\n\nconst AppLayout = React.forwardRef(\n (\n { contentType = 'default', headerSelector = '#b #h', footerSelector = '#b #f', ...rest }: AppLayoutProps,\n ref: React.Ref<AppLayoutProps.Ref>\n ) => {\n const { __internalRootRef } = useBaseComponent<HTMLDivElement>('AppLayout');\n const [runtimeDrawers, setRuntimeDrawers] = useState<DrawersLayout>({ before: [], after: [] });\n const isRefresh = useVisualRefresh();\n\n const i18n = useInternalI18n('app-layout');\n const ariaLabels = {\n navigation: i18n('ariaLabels.navigation', rest.ariaLabels?.navigation),\n navigationClose: i18n('ariaLabels.navigationClose', rest.ariaLabels?.navigationClose),\n navigationToggle: i18n('ariaLabels.navigationToggle', rest.ariaLabels?.navigationToggle),\n notifications: i18n('ariaLabels.notifications', rest.ariaLabels?.notifications),\n tools: i18n('ariaLabels.tools', rest.ariaLabels?.tools),\n toolsClose: i18n('ariaLabels.toolsClose', rest.ariaLabels?.toolsClose),\n toolsToggle: i18n('ariaLabels.toolsToggle', rest.ariaLabels?.toolsToggle),\n };\n\n // This re-builds the props including the default values\n const props = { contentType, headerSelector, footerSelector, ...rest, ariaLabels };\n\n const baseProps = getBaseProps(rest);\n const ownDrawers = (props as any).drawers;\n const disableRuntimeDrawers = (props as any).__disableRuntimeDrawers;\n const combinedDrawers = [...runtimeDrawers.before, ...(ownDrawers?.items ?? []), ...runtimeDrawers.after];\n const finalDrawers = combinedDrawers.length > 0 ? { ...ownDrawers, items: combinedDrawers } : ownDrawers;\n\n useEffect(() => {\n if (disableRuntimeDrawers) {\n return;\n }\n const unsubscribe = awsuiPluginsInternal.appLayout.onDrawersRegistered(drawers =>\n setRuntimeDrawers(convertRuntimeDrawers(drawers))\n );\n return () => {\n unsubscribe();\n setRuntimeDrawers({ before: [], after: [] });\n };\n }, [disableRuntimeDrawers]);\n\n return (\n <div ref={__internalRootRef} {...baseProps}>\n {isRefresh ? (\n <RefreshedAppLayout {...props} {...{ drawers: finalDrawers }} ref={ref} />\n ) : (\n <OldAppLayout {...props} {...{ drawers: finalDrawers }} ref={ref} />\n )}\n </div>\n );\n }\n);\n\nconst OldAppLayout = React.forwardRef(\n (\n {\n navigation,\n navigationWidth = 280,\n navigationHide,\n navigationOpen: controlledNavigationOpen,\n tools,\n toolsWidth = 290,\n toolsHide,\n toolsOpen: controlledToolsOpen,\n breadcrumbs,\n notifications,\n stickyNotifications,\n contentHeader,\n disableContentHeaderOverlap,\n content,\n contentType = 'default',\n disableContentPaddings,\n disableBodyScroll,\n maxContentWidth,\n minContentWidth,\n headerSelector = '#b #h',\n footerSelector = '#b #f',\n ariaLabels,\n splitPanel,\n splitPanelSize: controlledSplitPanelSize,\n splitPanelOpen: controlledSplitPanelOpen,\n splitPanelPreferences: controlledSplitPanelPreferences,\n onSplitPanelPreferencesChange,\n onSplitPanelResize,\n onSplitPanelToggle,\n onNavigationChange,\n onToolsChange,\n ...props\n }: AppLayoutProps,\n ref: React.Ref<AppLayoutProps.Ref>\n ) => {\n if (isDevelopment) {\n if (controlledToolsOpen && toolsHide) {\n warnOnce(\n 'AppLayout',\n `You have enabled both the \\`toolsOpen\\` prop and the \\`toolsHide\\` prop. This is not supported. Set \\`toolsOpen\\` to \\`false\\` when you set \\`toolsHide\\` to \\`true\\`.`\n );\n }\n }\n\n const drawers = (props as InternalDrawerProps).drawers;\n const hasDrawers = drawers && drawers.items.length > 0;\n\n const rootRef = useRef<HTMLDivElement>(null);\n const isMobile = useMobile();\n\n const defaults = applyDefaults(contentType, { maxContentWidth, minContentWidth }, false);\n const [navigationOpen = false, setNavigationOpen] = useControllable(\n controlledNavigationOpen,\n onNavigationChange,\n isMobile ? false : defaults.navigationOpen,\n { componentName: 'AppLayout', controlledProp: 'navigationOpen', changeHandler: 'onNavigationChange' }\n );\n\n const [toolsOpen = false, setToolsOpen] = useControllable(\n controlledToolsOpen,\n onToolsChange,\n isMobile ? false : defaults.toolsOpen,\n { componentName: 'AppLayout', controlledProp: 'toolsOpen', changeHandler: 'onToolsChange' }\n );\n\n const [activeDrawerId, setActiveDrawerId] = useControllable(\n drawers?.activeDrawerId,\n drawers?.onChange,\n isMobile ? false : tools ? defaults.toolsOpen : '',\n {\n componentName: 'AppLayout',\n controlledProp: 'activeDrawerId',\n changeHandler: 'onChange',\n }\n );\n\n const { iconName, getLabels } = togglesConfig.tools;\n const { mainLabel, closeLabel, openLabel } = getLabels(ariaLabels);\n\n const toolsItem = {\n id: 'tools',\n content: tools,\n resizable: false,\n ariaLabels: {\n triggerButton: openLabel,\n closeButton: closeLabel,\n content: mainLabel,\n },\n trigger: {\n iconName: iconName,\n },\n };\n\n const getAllDrawerItems = () => {\n if (!hasDrawers) {\n return;\n }\n return tools ? [toolsItem, ...drawers.items] : drawers.items;\n };\n\n const selectedDrawer =\n tools && toolsOpen\n ? toolsItem\n : hasDrawers\n ? getAllDrawerItems()?.filter((drawerItem: DrawerItem) => drawerItem.id === activeDrawerId)[0]\n : undefined;\n\n const { refs: navigationRefs, setFocus: focusNavButtons } = useFocusControl(navigationOpen);\n const {\n refs: toolsRefs,\n setFocus: focusToolsButtons,\n loseFocus: loseToolsFocus,\n } = useFocusControl(toolsOpen || selectedDrawer !== undefined, true);\n const {\n refs: drawerRefs,\n setFocus: focusDrawersButtons,\n loseFocus: loseDrawersFocus,\n setLastInteraction: setDrawerLastInteraction,\n } = useDrawerFocusControl([selectedDrawer?.resizable], toolsOpen || selectedDrawer !== undefined, true);\n\n const onNavigationToggle = useCallback(\n (open: boolean) => {\n setNavigationOpen(open);\n focusNavButtons();\n fireNonCancelableEvent(onNavigationChange, { open });\n },\n [setNavigationOpen, onNavigationChange, focusNavButtons]\n );\n const onToolsToggle = useCallback(\n (open: boolean) => {\n setToolsOpen(open);\n focusToolsButtons();\n fireNonCancelableEvent(onToolsChange, { open });\n },\n [setToolsOpen, onToolsChange, focusToolsButtons]\n );\n\n const onNavigationClick = (event: React.MouseEvent) => {\n const hasLink = findUpUntil(\n event.target as HTMLElement,\n node => node.tagName === 'A' && !!(node as HTMLAnchorElement).href\n );\n if (hasLink) {\n onNavigationToggle(false);\n }\n };\n\n const navigationVisible = !navigationHide && navigationOpen;\n const toolsVisible = !toolsHide && toolsOpen;\n\n const { contentHeightStyle, headerHeight, footerHeight } = useContentHeight(\n headerSelector,\n footerSelector,\n disableBodyScroll\n );\n const [isSplitpanelForcedPosition, setIsSplitpanelForcedPosition] = useState(false);\n const [isResizeInvalid, setIsResizeInvalid] = useState(false);\n\n const [notificationsHeight, notificationsRef] = useContainerQuery(rect => rect.contentBoxHeight);\n const anyPanelOpen = navigationVisible || toolsVisible;\n const hasRenderedNotifications = notificationsHeight ? notificationsHeight > 0 : false;\n const stickyNotificationsHeight = stickyNotifications ? notificationsHeight : null;\n\n const [splitPanelPreferences, setSplitPanelPreferences] = useControllable(\n controlledSplitPanelPreferences,\n onSplitPanelPreferencesChange,\n undefined,\n {\n componentName: 'AppLayout',\n controlledProp: 'splitPanelPreferences',\n changeHandler: 'onSplitPanelPreferencesChange',\n }\n );\n const [splitPanelOpen = false, setSplitPanelOpen] = useControllable(\n controlledSplitPanelOpen,\n onSplitPanelToggle,\n false,\n {\n componentName: 'AppLayout',\n controlledProp: 'splitPanelOpen',\n changeHandler: 'onSplitPanelToggle',\n }\n );\n\n const drawerItems = useMemo(() => drawers?.items || [], [drawers?.items]);\n\n const getDrawerItemSizes = useCallback(() => {\n const sizes: { [id: string]: number } = {};\n if (!drawerItems) {\n return {};\n }\n\n for (const item of drawerItems) {\n if (item.defaultSize) {\n sizes[item.id] = item.defaultSize || toolsWidth;\n }\n }\n return sizes;\n }, [drawerItems, toolsWidth]);\n\n const [drawerSizes, setDrawerSizes] = useState(() => getDrawerItemSizes());\n\n useEffect(() => {\n // Ensure we only set new drawer items by performing a shallow merge\n // of the latest drawer item sizes, and previous drawer item sizes.\n setDrawerSizes(prev => ({ ...getDrawerItemSizes(), ...prev }));\n }, [getDrawerItemSizes]);\n\n const drawerSize =\n selectedDrawer?.id && drawerSizes[selectedDrawer?.id] ? drawerSizes[selectedDrawer?.id] : toolsWidth;\n\n const splitPanelPosition = splitPanelPreferences?.position || 'bottom';\n const [splitPanelReportedToggle, setSplitPanelReportedToggle] = useState<SplitPanelSideToggleProps>({\n displayed: false,\n ariaLabel: undefined,\n });\n const splitPanelDisplayed = !!(splitPanel && (splitPanelReportedToggle.displayed || splitPanelOpen));\n\n const closedDrawerWidth = 40;\n const effectiveNavigationWidth = navigationHide ? 0 : navigationOpen ? navigationWidth : closedDrawerWidth;\n\n const getEffectiveToolsWidth = () => {\n if (toolsHide && (!splitPanelDisplayed || splitPanelPreferences?.position !== 'side') && !drawers) {\n return 0;\n }\n\n if (selectedDrawer?.resizable) {\n return drawerSize;\n }\n\n if (toolsOpen || activeDrawerId) {\n return toolsWidth;\n }\n\n return closedDrawerWidth;\n };\n\n const effectiveToolsWidth = getEffectiveToolsWidth();\n\n const defaultSplitPanelSize = getSplitPanelDefaultSize(splitPanelPosition);\n const [splitPanelSize = defaultSplitPanelSize, setSplitPanelSize] = useControllable(\n controlledSplitPanelSize,\n onSplitPanelResize,\n defaultSplitPanelSize,\n {\n componentName: 'AppLayout',\n controlledProp: 'splitPanelSize',\n changeHandler: 'onSplitPanelResize',\n }\n );\n\n const mainContentRef = useRef<HTMLDivElement>(null);\n const legacyScrollRootRef = useRef<HTMLElement>(null);\n\n const { refs: splitPanelRefs, setLastInteraction: setSplitPanelLastInteraction } = useSplitPanelFocusControl([\n splitPanelPreferences,\n splitPanelOpen,\n ]);\n\n const onSplitPanelPreferencesSet = useCallback(\n (detail: { position: 'side' | 'bottom' }) => {\n setSplitPanelPreferences(detail);\n setSplitPanelLastInteraction({ type: 'position' });\n fireNonCancelableEvent(onSplitPanelPreferencesChange, detail);\n },\n [setSplitPanelPreferences, onSplitPanelPreferencesChange, setSplitPanelLastInteraction]\n );\n const onSplitPanelSizeSet = useCallback(\n (detail: { size: number }) => {\n setSplitPanelSize(detail.size);\n fireNonCancelableEvent(onSplitPanelResize, detail);\n },\n [setSplitPanelSize, onSplitPanelResize]\n );\n\n const onSplitPanelToggleHandler = useCallback(() => {\n setSplitPanelOpen(!splitPanelOpen);\n setSplitPanelLastInteraction({ type: splitPanelOpen ? 'close' : 'open' });\n fireNonCancelableEvent(onSplitPanelToggle, { open: !splitPanelOpen });\n }, [setSplitPanelOpen, splitPanelOpen, onSplitPanelToggle, setSplitPanelLastInteraction]);\n\n const getSplitPanelMaxWidth = useStableCallback(() => {\n if (!mainContentRef.current || !defaults.minContentWidth) {\n return NaN;\n }\n\n const width = parseInt(getComputedStyle(mainContentRef.current).width);\n // when disableContentPaddings is true there is less available space,\n // so we subtract space-scaled-2x-xxxl * 2 for left and right padding\n const contentPadding = disableContentPaddings ? 80 : 0;\n const spaceAvailable = width - defaults.minContentWidth - contentPadding;\n\n const spaceTaken = finalSplitPanePosition === 'side' ? splitPanelSize : 0;\n return Math.max(0, spaceTaken + spaceAvailable);\n });\n\n const getDrawerMaxWidth = useStableCallback(() => {\n if (!mainContentRef.current || !defaults.minContentWidth) {\n return NaN;\n }\n\n // Either use the computed width of the drawer or the drawerSize as defined.\n const width = parseInt(getComputedStyle(mainContentRef.current).width || `${drawerSize}`);\n\n // when disableContentPaddings is true there is less available space,\n // so we subtract space-scaled-2x-xxxl * 2 for left and right padding\n const contentPadding = disableContentPaddings ? 80 : 0;\n const spaceAvailable = width - defaults.minContentWidth - contentPadding;\n const spaceTaken = drawerSize;\n\n return Math.max(0, spaceTaken + spaceAvailable);\n });\n\n const getSplitPanelMaxHeight = useStableCallback(() => {\n if (typeof document === 'undefined') {\n return 0; // render the split panel in its minimum possible size\n } else if (disableBodyScroll && legacyScrollRootRef.current) {\n const availableHeight = legacyScrollRootRef.current.clientHeight;\n return availableHeight < CONSTRAINED_PAGE_HEIGHT ? availableHeight : availableHeight - MAIN_PANEL_MIN_HEIGHT;\n } else {\n const availableHeight = document.documentElement.clientHeight - headerHeight - footerHeight;\n return availableHeight < CONSTRAINED_PAGE_HEIGHT\n ? availableHeight - CONSTRAINED_MAIN_PANEL_MIN_HEIGHT\n : availableHeight - MAIN_PANEL_MIN_HEIGHT;\n }\n });\n\n const finalSplitPanePosition = isSplitpanelForcedPosition ? 'bottom' : splitPanelPosition;\n\n const splitPaneAvailableOnTheSide = splitPanelDisplayed && finalSplitPanePosition === 'side';\n const splitPanelOpenOnTheSide = splitPaneAvailableOnTheSide && splitPanelOpen;\n\n const toggleButtonsBarWidth = 0;\n\n const windowWidth = useWindowWidth();\n const { left: leftOffset, right: rightOffset } = useAppLayoutOffsets(rootRef.current);\n const contentWidthWithSplitPanel =\n windowWidth -\n leftOffset -\n rightOffset -\n effectiveToolsWidth -\n effectiveNavigationWidth -\n (disableContentPaddings ? 0 : toggleButtonsBarWidth);\n\n useEffect(() => {\n const contentWidth = contentWidthWithSplitPanel - splitPanelSize;\n\n setIsSplitpanelForcedPosition(isMobile || (defaults.minContentWidth || 0) > contentWidth);\n setIsResizeInvalid(isMobile || (defaults.minContentWidth || 0) > contentWidthWithSplitPanel);\n // This is a workaround to avoid a forced position due to splitPanelSize, which is\n // user controlled variable.\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [contentWidthWithSplitPanel, drawerSize, defaults.minContentWidth, isMobile]);\n\n const navigationClosedWidth = navigationHide || isMobile ? 0 : closedDrawerWidth;\n const toolsClosedWidth = toolsHide || isMobile || (!hasDrawers && toolsHide) ? 0 : closedDrawerWidth;\n\n const contentMaxWidthStyle = !isMobile ? { maxWidth: defaults.maxContentWidth } : undefined;\n\n const [splitPanelReportedSize, setSplitPanelReportedSize] = useState(0);\n const [splitPanelReportedHeaderHeight, setSplitPanelReportedHeaderHeight] = useState(0);\n\n const getSplitPanelRightOffset = () => {\n if (isMobile) {\n return 0;\n }\n\n if (hasDrawers) {\n if (activeDrawerId) {\n if (!isResizeInvalid && drawerSize) {\n return drawerSize + closedDrawerWidth;\n }\n\n return toolsWidth + closedDrawerWidth;\n }\n return closedDrawerWidth;\n }\n\n if (!toolsHide && toolsOpen) {\n return toolsWidth;\n }\n return toolsClosedWidth;\n };\n\n const splitPanelContext: SplitPanelContextProps = {\n topOffset: headerHeight + (finalSplitPanePosition === 'bottom' ? stickyNotificationsHeight || 0 : 0),\n bottomOffset: footerHeight,\n leftOffset:\n leftOffset + (isMobile ? 0 : !navigationHide && navigationOpen ? navigationWidth : navigationClosedWidth),\n rightOffset: rightOffset + getSplitPanelRightOffset(),\n position: finalSplitPanePosition,\n size: splitPanelSize,\n getMaxWidth: getSplitPanelMaxWidth,\n getMaxHeight: getSplitPanelMaxHeight,\n disableContentPaddings,\n contentWidthStyles: contentMaxWidthStyle,\n isOpen: splitPanelOpen,\n isMobile,\n isForcedPosition: isSplitpanelForcedPosition,\n onResize: onSplitPanelSizeSet,\n onToggle: onSplitPanelToggleHandler,\n onPreferencesChange: onSplitPanelPreferencesSet,\n setSplitPanelToggle: setSplitPanelReportedToggle,\n reportSize: setSplitPanelReportedSize,\n reportHeaderHeight: setSplitPanelReportedHeaderHeight,\n refs: splitPanelRefs,\n };\n const splitPanelWrapped = splitPanel && (\n <SplitPanelContextProvider value={splitPanelContext}>{splitPanel}</SplitPanelContextProvider>\n );\n\n const contentWrapperProps: ContentWrapperProps = {\n contentType,\n navigationPadding: navigationHide || !!navigationOpen,\n contentWidthStyles: !isMobile\n ? { minWidth: defaults.minContentWidth, maxWidth: defaults.maxContentWidth }\n : undefined,\n toolsPadding:\n // tools padding is displayed in one of the three cases\n // 1. Nothing on the that screen edge (no tools panel and no split panel)\n toolsHide ||\n (hasDrawers && !activeDrawerId && (!splitPanelDisplayed || finalSplitPanePosition !== 'side')) ||\n // 2. Tools panel is present and open\n toolsVisible ||\n // 3. Split panel is open in side position\n splitPanelOpenOnTheSide,\n isMobile,\n };\n\n useImperativeHandle(\n ref,\n () => ({\n openTools: () => onToolsToggle(true),\n closeNavigationIfNecessary: () => {\n if (isMobile) {\n onNavigationToggle(false);\n }\n },\n focusToolsClose: () => focusToolsButtons(true),\n }),\n [isMobile, onNavigationToggle, onToolsToggle, focusToolsButtons]\n );\n\n const splitPanelBottomOffset =\n (!splitPanelDisplayed || finalSplitPanePosition !== 'bottom'\n ? undefined\n : splitPanelOpen\n ? splitPanelReportedSize\n : splitPanelReportedHeaderHeight) ?? undefined;\n\n const [mobileBarHeight, mobileBarRef] = useContainerQuery(rect => rect.contentBoxHeight);\n\n return (\n <div\n className={clsx(styles.root, testutilStyles.root, disableBodyScroll && styles['root-no-scroll'])}\n ref={rootRef}\n >\n <div className={styles['layout-wrapper']} style={contentHeightStyle}>\n {isMobile && (!toolsHide || !navigationHide || breadcrumbs) && (\n <MobileToolbar\n anyPanelOpen={anyPanelOpen}\n toggleRefs={{ navigation: navigationRefs.toggle, tools: toolsRefs.toggle }}\n topOffset={headerHeight}\n ariaLabels={ariaLabels}\n navigationHide={navigationHide}\n toolsHide={toolsHide}\n onNavigationOpen={() => onNavigationToggle(true)}\n onToolsOpen={() => onToolsToggle(true)}\n unfocusable={anyPanelOpen}\n mobileBarRef={mobileBarRef}\n drawers={\n drawers\n ? {\n items: tools && !toolsHide ? [toolsItem, ...drawers.items] : drawers.items,\n activeDrawerId: selectedDrawer?.id,\n onChange: changeDetail => {\n if (selectedDrawer?.id !== changeDetail.activeDrawerId) {\n onToolsToggle(changeDetail.activeDrawerId === 'tools');\n focusDrawersButtons();\n setActiveDrawerId(changeDetail.activeDrawerId);\n setDrawerLastInteraction({ type: 'open' });\n fireNonCancelableEvent(drawers.onChange, changeDetail.activeDrawerId);\n }\n },\n ariaLabel: drawers.ariaLabel,\n }\n : undefined\n }\n >\n {breadcrumbs}\n </MobileToolbar>\n )}\n <div className={clsx(styles.layout, disableBodyScroll && styles['layout-no-scroll'])}>\n {!navigationHide && (\n <Drawer\n contentClassName={testutilStyles.navigation}\n toggleClassName={testutilStyles['navigation-toggle']}\n closeClassName={testutilStyles['navigation-close']}\n ariaLabels={ariaLabels}\n bottomOffset={footerHeight}\n topOffset={headerHeight}\n isMobile={isMobile}\n isOpen={navigationOpen}\n onClick={isMobile ? onNavigationClick : undefined}\n onToggle={onNavigationToggle}\n toggleRefs={navigationRefs}\n type=\"navigation\"\n width={navigationWidth}\n >\n {navigation}\n </Drawer>\n )}\n <main\n ref={legacyScrollRootRef}\n className={clsx(styles['layout-main'], {\n [styles['layout-main-scrollable']]: disableBodyScroll,\n [testutilStyles['disable-body-scroll-root']]: disableBodyScroll,\n [styles.unfocusable]: isMobile && anyPanelOpen,\n })}\n >\n <div\n style={{\n marginBottom: splitPanelBottomOffset,\n }}\n >\n {notifications && (\n <Notifications\n disableContentPaddings={disableContentPaddings}\n testUtilsClassName={testutilStyles.notifications}\n labels={ariaLabels}\n topOffset={disableBodyScroll ? 0 : headerHeight}\n sticky={!isMobile && stickyNotifications}\n ref={notificationsRef}\n >\n {notifications}\n </Notifications>\n )}\n {((!isMobile && breadcrumbs) || contentHeader) && (\n <ContentWrapper {...contentWrapperProps}>\n {!isMobile && breadcrumbs && (\n <div className={clsx(testutilStyles.breadcrumbs, styles['breadcrumbs-desktop'])}>\n {breadcrumbs}\n </div>\n )}\n {contentHeader && (\n <div\n className={clsx(\n styles['content-header-wrapper'],\n !hasRenderedNotifications &&\n (isMobile || !breadcrumbs) &&\n styles['content-extra-top-padding'],\n !hasRenderedNotifications && !breadcrumbs && styles['content-header-wrapper-first-child'],\n !disableContentHeaderOverlap && styles['content-header-wrapper-overlapped']\n )}\n >\n {contentHeader}\n </div>\n )}\n </ContentWrapper>\n )}\n <ContentWrapper\n {...contentWrapperProps}\n ref={mainContentRef}\n disablePaddings={disableContentPaddings}\n // eslint-disable-next-line react/forbid-component-props\n className={clsx(\n !disableContentPaddings && styles['content-wrapper'],\n !disableContentPaddings &&\n (isMobile || !breadcrumbs) &&\n !contentHeader &&\n styles['content-extra-top-padding'],\n testutilStyles.content,\n !disableContentHeaderOverlap && contentHeader && styles['content-overlapped'],\n !hasRenderedNotifications &&\n !breadcrumbs &&\n !isMobile &&\n !contentHeader &&\n styles['content-wrapper-first-child']\n )}\n >\n <AppLayoutContext.Provider\n value={{\n stickyOffsetTop:\n // We don't support the table header being sticky in case the deprecated disableBodyScroll is enabled,\n // therefore we ensure the table header scrolls out of view by offseting a large enough value (9999px)\n (disableBodyScroll ? (isMobile ? -9999 : 0) : headerHeight) +\n (isMobile ? 0 : stickyNotificationsHeight !== null ? stickyNotificationsHeight : 0),\n stickyOffsetBottom: footerHeight + (splitPanelBottomOffset || 0),\n mobileBarHeight: mobileBarHeight ?? 0,\n }}\n >\n {content}\n </AppLayoutContext.Provider>\n </ContentWrapper>\n </div>\n {finalSplitPanePosition === 'bottom' && splitPanelWrapped}\n </main>\n\n {finalSplitPanePosition === 'side' && (\n <SideSplitPanelDrawer\n topOffset={headerHeight}\n bottomOffset={footerHeight}\n displayed={splitPanelDisplayed}\n width={splitPanelOpen && splitPanel ? splitPanelSize : undefined}\n >\n {splitPanelWrapped}\n </SideSplitPanelDrawer>\n )}\n\n {((hasDrawers && selectedDrawer?.id) || (!hasDrawers && !toolsHide)) &&\n (hasDrawers ? (\n <ResizableDrawer\n contentClassName={\n selectedDrawer?.id === 'tools' ? testutilStyles.tools : testutilStyles['active-drawer']\n }\n toggleClassName={testutilStyles['tools-toggle']}\n closeClassName={\n selectedDrawer?.id === 'tools'\n ? testutilStyles['tools-close']\n : testutilStyles['active-drawer-close-button']\n }\n ariaLabels={ariaLabels}\n drawersAriaLabels={selectedDrawer?.ariaLabels}\n width={!isResizeInvalid ? drawerSize : toolsWidth}\n bottomOffset={footerHeight}\n topOffset={headerHeight}\n isMobile={isMobile}\n onToggle={onToolsToggle}\n isOpen={toolsOpen || activeDrawerId !== undefined}\n toggleRefs={toolsRefs}\n type=\"tools\"\n onLoseFocus={hasDrawers ? loseDrawersFocus : loseToolsFocus}\n activeDrawer={selectedDrawer}\n drawers={{\n items: tools && !toolsHide ? [toolsItem, ...drawers.items] : drawers.items,\n activeDrawerId: selectedDrawer?.id,\n onChange: changeDetail => {\n onToolsToggle(false);\n setDrawerLastInteraction({ type: 'close' });\n setActiveDrawerId(changeDetail.activeDrawerId);\n fireNonCancelableEvent(drawers.onChange, changeDetail.activeDrawerId);\n },\n }}\n size={!isResizeInvalid ? drawerSize : toolsWidth}\n onResize={changeDetail => {\n fireNonCancelableEvent(drawers.onResize, changeDetail);\n const drawerItem = drawerItems.find(({ id }) => id === changeDetail.id);\n if (drawerItem?.onResize) {\n fireNonCancelableEvent(drawerItem.onResize, changeDetail);\n }\n setDrawerSizes({ ...drawerSizes, [changeDetail.id]: changeDetail.size });\n }}\n refs={drawerRefs}\n getMaxWidth={getDrawerMaxWidth}\n >\n {selectedDrawer?.content}\n </ResizableDrawer>\n ) : (\n <Drawer\n contentClassName={testutilStyles.tools}\n toggleClassName={testutilStyles['tools-toggle']}\n closeClassName={testutilStyles['tools-close']}\n ariaLabels={ariaLabels}\n width={effectiveToolsWidth}\n bottomOffset={footerHeight}\n topOffset={headerHeight}\n isMobile={isMobile}\n onToggle={onToolsToggle}\n isOpen={toolsOpen}\n toggleRefs={toolsRefs}\n type=\"tools\"\n onLoseFocus={loseToolsFocus}\n >\n {tools}\n </Drawer>\n ))}\n {hasDrawers && (\n <DrawerTriggersBar\n contentClassName={testutilStyles['drawers-desktop-triggers-container']}\n toggleClassName={testutilStyles['drawers-trigger']}\n bottomOffset={footerHeight}\n topOffset={headerHeight}\n isMobile={isMobile}\n drawers={{\n items: tools && !toolsHide ? [toolsItem, ...drawers.items] : drawers.items,\n activeDrawerId: selectedDrawer?.id,\n onChange: changeDetail => {\n if (selectedDrawer?.id !== changeDetail.activeDrawerId) {\n onToolsToggle(changeDetail.activeDrawerId === 'tools');\n focusDrawersButtons();\n setActiveDrawerId(changeDetail.activeDrawerId);\n setDrawerLastInteraction({ type: 'open' });\n fireNonCancelableEvent(drawers.onChange, changeDetail.activeDrawerId);\n }\n },\n ariaLabel: drawers.ariaLabel,\n }}\n />\n )}\n </div>\n </div>\n </div>\n );\n }\n);\n\napplyDisplayName(AppLayout, 'AppLayout');\nexport default AppLayout;\n"]}
@@ -1,7 +1,7 @@
1
1
  // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
2
2
  // SPDX-License-Identifier: Apache-2.0
3
+ import { useResizeObserver } from '@cloudscape-design/component-toolkit/internal';
3
4
  import { useCallback, useEffect, useState } from 'react';
4
- import { useResizeObserver } from '../../internal/hooks/container-queries';
5
5
  export default function useAppLayoutOffsets(element) {
6
6
  const [offsets, setOffsets] = useState({ left: 0, right: 0 });
7
7
  const updatePosition = useCallback(() => {