@cloudscape-design/components-themeable 3.0.1084 → 3.0.1085

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 (118) hide show
  1. package/lib/internal/manifest.json +1 -1
  2. package/lib/internal/scss/app-layout/constants.scss +2 -0
  3. package/lib/internal/scss/app-layout/runtime-drawer/styles.scss +4 -0
  4. package/lib/internal/scss/app-layout/test-classes/styles.scss +3 -1
  5. package/lib/internal/scss/app-layout/visual-refresh-toolbar/drawer/styles.scss +155 -1
  6. package/lib/internal/scss/app-layout/visual-refresh-toolbar/skeleton/styles.scss +27 -4
  7. package/lib/internal/scss/app-layout/visual-refresh-toolbar/toolbar/styles.scss +107 -12
  8. package/lib/internal/scss/app-layout/visual-refresh-toolbar/toolbar/trigger-button/styles.scss +31 -21
  9. package/lib/internal/scss/internal/components/panel-resize-handle/styles.scss +2 -1
  10. package/lib/internal/scss/internal/generated/custom-css-properties/index.scss +1 -1
  11. package/lib/internal/template/app-layout/interfaces.d.ts +1 -0
  12. package/lib/internal/template/app-layout/interfaces.d.ts.map +1 -1
  13. package/lib/internal/template/app-layout/interfaces.js.map +1 -1
  14. package/lib/internal/template/app-layout/runtime-drawer/index.d.ts +9 -0
  15. package/lib/internal/template/app-layout/runtime-drawer/index.d.ts.map +1 -1
  16. package/lib/internal/template/app-layout/runtime-drawer/index.js +32 -3
  17. package/lib/internal/template/app-layout/runtime-drawer/index.js.map +1 -1
  18. package/lib/internal/template/app-layout/runtime-drawer/styles.css.js +2 -1
  19. package/lib/internal/template/app-layout/runtime-drawer/styles.scoped.css +5 -1
  20. package/lib/internal/template/app-layout/runtime-drawer/styles.selectors.js +2 -1
  21. package/lib/internal/template/app-layout/test-classes/styles.css.js +26 -24
  22. package/lib/internal/template/app-layout/test-classes/styles.scoped.css +26 -24
  23. package/lib/internal/template/app-layout/test-classes/styles.selectors.js +26 -24
  24. package/lib/internal/template/app-layout/utils/interfaces.d.ts +1 -1
  25. package/lib/internal/template/app-layout/utils/interfaces.d.ts.map +1 -1
  26. package/lib/internal/template/app-layout/utils/interfaces.js.map +1 -1
  27. package/lib/internal/template/app-layout/utils/use-ai-drawer.d.ts +27 -0
  28. package/lib/internal/template/app-layout/utils/use-ai-drawer.d.ts.map +1 -0
  29. package/lib/internal/template/app-layout/utils/use-ai-drawer.js +104 -0
  30. package/lib/internal/template/app-layout/utils/use-ai-drawer.js.map +1 -0
  31. package/lib/internal/template/app-layout/utils/use-keyboard-events.js +8 -8
  32. package/lib/internal/template/app-layout/utils/use-keyboard-events.js.map +1 -1
  33. package/lib/internal/template/app-layout/utils/use-pointer-events.d.ts.map +1 -1
  34. package/lib/internal/template/app-layout/utils/use-pointer-events.js +8 -0
  35. package/lib/internal/template/app-layout/utils/use-pointer-events.js.map +1 -1
  36. package/lib/internal/template/app-layout/visual-refresh-toolbar/compute-layout.d.ts +3 -1
  37. package/lib/internal/template/app-layout/visual-refresh-toolbar/compute-layout.d.ts.map +1 -1
  38. package/lib/internal/template/app-layout/visual-refresh-toolbar/compute-layout.js +6 -2
  39. package/lib/internal/template/app-layout/visual-refresh-toolbar/compute-layout.js.map +1 -1
  40. package/lib/internal/template/app-layout/visual-refresh-toolbar/drawer/global-ai-drawer.d.ts +31 -0
  41. package/lib/internal/template/app-layout/visual-refresh-toolbar/drawer/global-ai-drawer.d.ts.map +1 -0
  42. package/lib/internal/template/app-layout/visual-refresh-toolbar/drawer/global-ai-drawer.js +81 -0
  43. package/lib/internal/template/app-layout/visual-refresh-toolbar/drawer/global-ai-drawer.js.map +1 -0
  44. package/lib/internal/template/app-layout/visual-refresh-toolbar/drawer/global-drawer.d.ts.map +1 -1
  45. package/lib/internal/template/app-layout/visual-refresh-toolbar/drawer/global-drawer.js +2 -2
  46. package/lib/internal/template/app-layout/visual-refresh-toolbar/drawer/global-drawer.js.map +1 -1
  47. package/lib/internal/template/app-layout/visual-refresh-toolbar/drawer/styles.css.js +24 -17
  48. package/lib/internal/template/app-layout/visual-refresh-toolbar/drawer/styles.scoped.css +228 -35
  49. package/lib/internal/template/app-layout/visual-refresh-toolbar/drawer/styles.selectors.js +24 -17
  50. package/lib/internal/template/app-layout/visual-refresh-toolbar/drawer/use-resize.d.ts +2 -1
  51. package/lib/internal/template/app-layout/visual-refresh-toolbar/drawer/use-resize.d.ts.map +1 -1
  52. package/lib/internal/template/app-layout/visual-refresh-toolbar/drawer/use-resize.js +2 -2
  53. package/lib/internal/template/app-layout/visual-refresh-toolbar/drawer/use-resize.js.map +1 -1
  54. package/lib/internal/template/app-layout/visual-refresh-toolbar/interfaces.d.ts +12 -0
  55. package/lib/internal/template/app-layout/visual-refresh-toolbar/interfaces.d.ts.map +1 -1
  56. package/lib/internal/template/app-layout/visual-refresh-toolbar/interfaces.js.map +1 -1
  57. package/lib/internal/template/app-layout/visual-refresh-toolbar/skeleton/styles.css.js +25 -23
  58. package/lib/internal/template/app-layout/visual-refresh-toolbar/skeleton/styles.scoped.css +56 -44
  59. package/lib/internal/template/app-layout/visual-refresh-toolbar/skeleton/styles.selectors.js +25 -23
  60. package/lib/internal/template/app-layout/visual-refresh-toolbar/state/interfaces.d.ts +2 -0
  61. package/lib/internal/template/app-layout/visual-refresh-toolbar/state/interfaces.d.ts.map +1 -1
  62. package/lib/internal/template/app-layout/visual-refresh-toolbar/state/interfaces.js.map +1 -1
  63. package/lib/internal/template/app-layout/visual-refresh-toolbar/state/props-merger.d.ts.map +1 -1
  64. package/lib/internal/template/app-layout/visual-refresh-toolbar/state/props-merger.js +8 -1
  65. package/lib/internal/template/app-layout/visual-refresh-toolbar/state/props-merger.js.map +1 -1
  66. package/lib/internal/template/app-layout/visual-refresh-toolbar/state/use-app-layout.d.ts.map +1 -1
  67. package/lib/internal/template/app-layout/visual-refresh-toolbar/state/use-app-layout.js +24 -3
  68. package/lib/internal/template/app-layout/visual-refresh-toolbar/state/use-app-layout.js.map +1 -1
  69. package/lib/internal/template/app-layout/visual-refresh-toolbar/state/use-skeleton-slots-attributes.d.ts.map +1 -1
  70. package/lib/internal/template/app-layout/visual-refresh-toolbar/state/use-skeleton-slots-attributes.js +3 -1
  71. package/lib/internal/template/app-layout/visual-refresh-toolbar/state/use-skeleton-slots-attributes.js.map +1 -1
  72. package/lib/internal/template/app-layout/visual-refresh-toolbar/toolbar/index.d.ts +4 -0
  73. package/lib/internal/template/app-layout/visual-refresh-toolbar/toolbar/index.d.ts.map +1 -1
  74. package/lib/internal/template/app-layout/visual-refresh-toolbar/toolbar/index.js +28 -4
  75. package/lib/internal/template/app-layout/visual-refresh-toolbar/toolbar/index.js.map +1 -1
  76. package/lib/internal/template/app-layout/visual-refresh-toolbar/toolbar/styles.css.js +15 -12
  77. package/lib/internal/template/app-layout/visual-refresh-toolbar/toolbar/styles.scoped.css +126 -24
  78. package/lib/internal/template/app-layout/visual-refresh-toolbar/toolbar/styles.selectors.js +15 -12
  79. package/lib/internal/template/app-layout/visual-refresh-toolbar/toolbar/trigger-button/index.d.ts +2 -0
  80. package/lib/internal/template/app-layout/visual-refresh-toolbar/toolbar/trigger-button/index.d.ts.map +1 -1
  81. package/lib/internal/template/app-layout/visual-refresh-toolbar/toolbar/trigger-button/index.js +3 -3
  82. package/lib/internal/template/app-layout/visual-refresh-toolbar/toolbar/trigger-button/index.js.map +1 -1
  83. package/lib/internal/template/app-layout/visual-refresh-toolbar/toolbar/trigger-button/styles.css.js +7 -5
  84. package/lib/internal/template/app-layout/visual-refresh-toolbar/toolbar/trigger-button/styles.scoped.css +30 -22
  85. package/lib/internal/template/app-layout/visual-refresh-toolbar/toolbar/trigger-button/styles.selectors.js +7 -5
  86. package/lib/internal/template/app-layout/visual-refresh-toolbar/widget-areas/before-main-slot.d.ts.map +1 -1
  87. package/lib/internal/template/app-layout/visual-refresh-toolbar/widget-areas/before-main-slot.js +23 -3
  88. package/lib/internal/template/app-layout/visual-refresh-toolbar/widget-areas/before-main-slot.js.map +1 -1
  89. package/lib/internal/template/internal/base-component/styles.scoped.css +1 -1
  90. package/lib/internal/template/internal/components/panel-resize-handle/index.d.ts +2 -1
  91. package/lib/internal/template/internal/components/panel-resize-handle/index.d.ts.map +1 -1
  92. package/lib/internal/template/internal/components/panel-resize-handle/index.js +18 -8
  93. package/lib/internal/template/internal/components/panel-resize-handle/index.js.map +1 -1
  94. package/lib/internal/template/internal/components/panel-resize-handle/styles.css.js +3 -2
  95. package/lib/internal/template/internal/components/panel-resize-handle/styles.scoped.css +7 -6
  96. package/lib/internal/template/internal/components/panel-resize-handle/styles.selectors.js +3 -2
  97. package/lib/internal/template/internal/environment.js +2 -2
  98. package/lib/internal/template/internal/environment.json +2 -2
  99. package/lib/internal/template/internal/plugins/widget/interfaces.d.ts +59 -0
  100. package/lib/internal/template/internal/plugins/widget/interfaces.d.ts.map +1 -0
  101. package/lib/internal/template/internal/plugins/widget/interfaces.js +2 -0
  102. package/lib/internal/template/internal/plugins/widget/interfaces.js.map +1 -0
  103. package/lib/internal/template/internal/plugins/widget/internal.d.ts +21 -0
  104. package/lib/internal/template/internal/plugins/widget/internal.d.ts.map +1 -0
  105. package/lib/internal/template/internal/plugins/widget/internal.js +55 -0
  106. package/lib/internal/template/internal/plugins/widget/internal.js.map +1 -0
  107. package/lib/internal/template/internal/plugins/widget.d.ts +3 -0
  108. package/lib/internal/template/internal/plugins/widget.d.ts.map +1 -0
  109. package/lib/internal/template/internal/plugins/widget.js +5 -0
  110. package/lib/internal/template/internal/plugins/widget.js.map +1 -0
  111. package/lib/internal/template/internal/types.d.ts +4 -0
  112. package/lib/internal/template/internal/types.d.ts.map +1 -1
  113. package/lib/internal/template/internal/types.js +8 -1
  114. package/lib/internal/template/internal/types.js.map +1 -1
  115. package/lib/internal/template/s3-resource-selector/s3-modal/index.d.ts.map +1 -1
  116. package/lib/internal/template/s3-resource-selector/s3-modal/index.js +1 -4
  117. package/lib/internal/template/s3-resource-selector/s3-modal/index.js.map +1 -1
  118. package/package.json +1 -1
@@ -150,58 +150,161 @@ surrounding text. (WCAG F73) https://www.w3.org/WAI/WCAG21/Techniques/failures/F
150
150
  Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
151
151
  SPDX-License-Identifier: Apache-2.0
152
152
  */
153
- .awsui_universal-toolbar_1kzri_ge5s9_153:not(#\9) {
153
+ .awsui_universal-toolbar_1kzri_1cw33_153:not(#\9) {
154
154
  background-color: var(--color-background-layout-panel-content-9tbx75, #ffffff);
155
155
  box-sizing: border-box;
156
- padding-block: 0;
157
- padding-inline: var(--space-m-n2lypl, 16px);
158
- padding-inline-end: 0;
159
156
  position: sticky;
160
157
  z-index: 1000;
158
+ display: flex;
161
159
  transition: ease var(--motion-duration-refresh-only-slow-zil3nj, 0ms);
162
160
  transition-property: inset-block-start, opacity;
163
161
  }
164
162
  @media (prefers-reduced-motion: reduce) {
165
- .awsui_universal-toolbar_1kzri_ge5s9_153:not(#\9) {
163
+ .awsui_universal-toolbar_1kzri_1cw33_153:not(#\9) {
166
164
  animation: none;
167
165
  transition: none;
168
166
  }
169
167
  }
170
- .awsui-motion-disabled .awsui_universal-toolbar_1kzri_ge5s9_153:not(#\9), .awsui-mode-entering .awsui_universal-toolbar_1kzri_ge5s9_153:not(#\9) {
168
+ .awsui-motion-disabled .awsui_universal-toolbar_1kzri_1cw33_153:not(#\9), .awsui-mode-entering .awsui_universal-toolbar_1kzri_1cw33_153:not(#\9) {
171
169
  animation: none;
172
170
  transition: none;
173
171
  }
174
- .awsui_universal-toolbar_1kzri_ge5s9_153.awsui_disable-body-scroll_1kzri_ge5s9_174:not(#\9) {
172
+ .awsui_universal-toolbar_1kzri_1cw33_153.awsui_with-open-ai-drawer_1kzri_1cw33_172:not(#\9):before, .awsui_universal-toolbar_1kzri_1cw33_153.awsui_with-open-ai-drawer_1kzri_1cw33_172:not(#\9):after {
173
+ content: "";
174
+ position: absolute;
175
+ inset-block-start: 0;
176
+ inset-inline-start: 0;
177
+ inline-size: 5px;
178
+ block-size: 5px;
179
+ background: #161d26;
180
+ /**
181
+ * Adds a border to visually separate the main content area from the left global drawer.
182
+ *
183
+ * Note: Direct border application is not possible for either target element:
184
+ * - Main content area: Uses `display: contents`, preventing border application
185
+ * - Nav panel: May be hidden, causing the border to disappear when separation is still needed
186
+ */
187
+ }
188
+ @media not print {
189
+ .awsui_universal-toolbar_1kzri_1cw33_153.awsui_with-open-ai-drawer_1kzri_1cw33_172:not(#\9):before, .awsui_universal-toolbar_1kzri_1cw33_153.awsui_with-open-ai-drawer_1kzri_1cw33_172:not(#\9):after {
190
+ /* stylelint-disable selector-combinator-disallowed-list, selector-class-pattern */
191
+ }
192
+ .awsui-polaris-dark-mode .awsui_universal-toolbar_1kzri_1cw33_153.awsui_with-open-ai-drawer_1kzri_1cw33_172:not(#\9):before, .awsui-dark-mode .awsui_universal-toolbar_1kzri_1cw33_153.awsui_with-open-ai-drawer_1kzri_1cw33_172:not(#\9):before, .awsui-polaris-dark-mode .awsui_universal-toolbar_1kzri_1cw33_153.awsui_with-open-ai-drawer_1kzri_1cw33_172:not(#\9):after, .awsui-dark-mode .awsui_universal-toolbar_1kzri_1cw33_153.awsui_with-open-ai-drawer_1kzri_1cw33_172:not(#\9):after {
193
+ content: "";
194
+ position: absolute;
195
+ inset-block-start: 42px;
196
+ inset-inline-start: 0;
197
+ inline-size: var(--border-divider-section-width-sznrdy, 1px);
198
+ block-size: calc(100vh - 42px);
199
+ background: var(--color-border-layout-ovzonx, #d5dbdb);
200
+ }
201
+ }
202
+ .awsui_universal-toolbar_1kzri_1cw33_153.awsui_with-open-ai-drawer_1kzri_1cw33_172:not(#\9):after {
203
+ background-color: var(--color-background-layout-panel-content-9tbx75, #ffffff);
204
+ border-start-start-radius: var(--space-xxs-jnczic, 4px);
205
+ }
206
+ @media not print {
207
+ .awsui_universal-toolbar_1kzri_1cw33_153.awsui_with-open-ai-drawer_1kzri_1cw33_172:not(#\9):after {
208
+ /* stylelint-disable selector-combinator-disallowed-list, selector-class-pattern */
209
+ }
210
+ .awsui-polaris-dark-mode .awsui_universal-toolbar_1kzri_1cw33_153.awsui_with-open-ai-drawer_1kzri_1cw33_172:not(#\9):after, .awsui-dark-mode .awsui_universal-toolbar_1kzri_1cw33_153.awsui_with-open-ai-drawer_1kzri_1cw33_172:not(#\9):after {
211
+ display: none;
212
+ }
213
+ }
214
+ .awsui_universal-toolbar_1kzri_1cw33_153.awsui_disable-body-scroll_1kzri_1cw33_214:not(#\9) {
175
215
  inset-block-start: 0px;
176
216
  }
177
- .awsui_universal-toolbar_1kzri_ge5s9_153 > .awsui_toolbar-container_1kzri_ge5s9_177:not(#\9) {
217
+ .awsui_universal-toolbar_1kzri_1cw33_153 > .awsui_universal-toolbar-ai-custom_1kzri_1cw33_217:not(#\9) {
218
+ grid-column: 1;
219
+ position: relative;
220
+ display: flex;
221
+ justify-content: center;
222
+ align-items: center;
223
+ align-self: flex-start;
224
+ padding-inline: var(--space-static-s-8me5rn, 12px);
225
+ box-sizing: border-box;
226
+ /**
227
+ * Button sizing adjustments for theme-specific design requirements
228
+ *
229
+ * Light mode: Button width is set to 100% + border width to intentionally overlap
230
+ * with the bottom border, as specified in the UI design.
231
+ *
232
+ * Dark mode: Resets the overlap styling due to different design requirements
233
+ * where overlap should not occur.
234
+ */
235
+ block-size: calc(100% + var(--border-divider-section-width-sznrdy, 1px));
236
+ background: #161d26;
237
+ }
238
+ @media not print {
239
+ .awsui_universal-toolbar_1kzri_1cw33_153 > .awsui_universal-toolbar-ai-custom_1kzri_1cw33_217:not(#\9) {
240
+ /* stylelint-disable selector-combinator-disallowed-list, selector-class-pattern */
241
+ }
242
+ .awsui-polaris-dark-mode .awsui_universal-toolbar_1kzri_1cw33_153 > .awsui_universal-toolbar-ai-custom_1kzri_1cw33_217:not(#\9), .awsui-dark-mode .awsui_universal-toolbar_1kzri_1cw33_153 > .awsui_universal-toolbar-ai-custom_1kzri_1cw33_217:not(#\9) {
243
+ block-size: 100%;
244
+ }
245
+ }
246
+ .awsui_universal-toolbar_1kzri_1cw33_153 > .awsui_universal-toolbar-ai-custom_1kzri_1cw33_217:not(#\9):before, .awsui_universal-toolbar_1kzri_1cw33_153 > .awsui_universal-toolbar-ai-custom_1kzri_1cw33_217:not(#\9):after {
247
+ content: "";
248
+ position: absolute;
249
+ inset-block-start: 0;
250
+ inset-inline-end: -5px;
251
+ inline-size: 5px;
252
+ block-size: 5px;
253
+ background: #161d26;
254
+ }
255
+ @media not print {
256
+ .awsui_universal-toolbar_1kzri_1cw33_153 > .awsui_universal-toolbar-ai-custom_1kzri_1cw33_217:not(#\9):before, .awsui_universal-toolbar_1kzri_1cw33_153 > .awsui_universal-toolbar-ai-custom_1kzri_1cw33_217:not(#\9):after {
257
+ /* stylelint-disable selector-combinator-disallowed-list, selector-class-pattern */
258
+ }
259
+ .awsui-polaris-dark-mode .awsui_universal-toolbar_1kzri_1cw33_153 > .awsui_universal-toolbar-ai-custom_1kzri_1cw33_217:not(#\9):before, .awsui-dark-mode .awsui_universal-toolbar_1kzri_1cw33_153 > .awsui_universal-toolbar-ai-custom_1kzri_1cw33_217:not(#\9):before, .awsui-polaris-dark-mode .awsui_universal-toolbar_1kzri_1cw33_153 > .awsui_universal-toolbar-ai-custom_1kzri_1cw33_217:not(#\9):after, .awsui-dark-mode .awsui_universal-toolbar_1kzri_1cw33_153 > .awsui_universal-toolbar-ai-custom_1kzri_1cw33_217:not(#\9):after {
260
+ display: none;
261
+ }
262
+ }
263
+ .awsui_universal-toolbar_1kzri_1cw33_153 > .awsui_universal-toolbar-ai-custom_1kzri_1cw33_217:not(#\9):after {
264
+ background-color: var(--color-background-layout-panel-content-9tbx75, #ffffff);
265
+ border-start-start-radius: var(--space-xxs-jnczic, 4px);
266
+ }
267
+ .awsui_universal-toolbar_1kzri_1cw33_153 > .awsui_toolbar-container_1kzri_1cw33_267:not(#\9) {
178
268
  block-size: 100%;
179
269
  align-items: center;
180
270
  display: grid;
181
- column-gap: var(--space-static-xs-4gq40t, 8px);
182
271
  inline-size: 100%;
183
- grid-template-columns: min-content minmax(0, 3fr) minmax(auto, 1fr);
272
+ grid-template-columns: min-content min-content minmax(0, 3fr) minmax(auto, 1fr);
184
273
  grid-template-rows: 1fr;
185
274
  }
186
- .awsui_universal-toolbar_1kzri_ge5s9_153 > .awsui_toolbar-container_1kzri_ge5s9_177 > .awsui_universal-toolbar-nav_1kzri_ge5s9_186:not(#\9) {
187
- grid-column: 1;
188
- padding-inline-end: var(--space-static-xxs-0cgyf1, 4px);
275
+ @media not print {
276
+ .awsui_universal-toolbar_1kzri_1cw33_153 > .awsui_toolbar-container_1kzri_1cw33_267.awsui_with-ai-drawer_1kzri_1cw33_276:not(#\9) {
277
+ /* stylelint-disable selector-combinator-disallowed-list, selector-class-pattern */
278
+ }
279
+ .awsui-polaris-dark-mode .awsui_universal-toolbar_1kzri_1cw33_153 > .awsui_toolbar-container_1kzri_1cw33_267.awsui_with-ai-drawer_1kzri_1cw33_276:not(#\9), .awsui-dark-mode .awsui_universal-toolbar_1kzri_1cw33_153 > .awsui_toolbar-container_1kzri_1cw33_267.awsui_with-ai-drawer_1kzri_1cw33_276:not(#\9) {
280
+ border-start-start-radius: var(--space-xxs-jnczic, 4px);
281
+ border-inline-start: var(--border-divider-section-width-sznrdy, 1px) solid var(--color-border-layout-ovzonx, #d5dbdb);
282
+ }
189
283
  }
190
- .awsui_universal-toolbar_1kzri_ge5s9_153 > .awsui_toolbar-container_1kzri_ge5s9_177 > .awsui_universal-toolbar-breadcrumbs_1kzri_ge5s9_190:not(#\9) {
284
+ .awsui_universal-toolbar_1kzri_1cw33_153 > .awsui_toolbar-container_1kzri_1cw33_267 > .awsui_universal-toolbar-nav_1kzri_1cw33_284:not(#\9) {
191
285
  grid-column: 2;
286
+ padding-inline-start: var(--space-m-n2lypl, 16px);
287
+ padding-inline-end: var(--space-static-xxs-0cgyf1, 4px);
288
+ }
289
+ .awsui_universal-toolbar_1kzri_1cw33_153 > .awsui_toolbar-container_1kzri_1cw33_267 > .awsui_universal-toolbar-breadcrumbs_1kzri_1cw33_289:not(#\9) {
290
+ grid-column: 3;
291
+ padding-inline: var(--space-static-xs-4gq40t, 8px);
192
292
  background-color: transparent;
193
293
  flex: 1 0;
194
294
  }
195
- .awsui_universal-toolbar_1kzri_ge5s9_153 > .awsui_toolbar-container_1kzri_ge5s9_177 > .awsui_universal-toolbar-drawers_1kzri_ge5s9_195:not(#\9) {
196
- grid-column: 3;
295
+ .awsui_universal-toolbar_1kzri_1cw33_153 > .awsui_toolbar-container_1kzri_1cw33_267 > .awsui_universal-toolbar-breadcrumbs_1kzri_1cw33_289:not(#\9):first-child {
296
+ padding-inline: calc(var(--space-static-xs-4gq40t, 8px) + var(--space-static-m-1cd7a5, 16px));
297
+ }
298
+ .awsui_universal-toolbar_1kzri_1cw33_153 > .awsui_toolbar-container_1kzri_1cw33_267 > .awsui_universal-toolbar-drawers_1kzri_1cw33_298:not(#\9) {
299
+ grid-column: 4;
197
300
  column-gap: var(--space-static-xs-4gq40t, 8px);
198
301
  display: flex;
199
302
  justify-content: flex-end;
200
303
  block-size: 100%;
201
304
  }
202
305
 
203
- .awsui_drawers-desktop-triggers-container_1kzri_ge5s9_203:not(#\9),
204
- .awsui_drawers-mobile-triggers-container_1kzri_ge5s9_204:not(#\9) {
306
+ .awsui_drawers-desktop-triggers-container_1kzri_1cw33_306:not(#\9),
307
+ .awsui_drawers-mobile-triggers-container_1kzri_1cw33_307:not(#\9) {
205
308
  border-collapse: separate;
206
309
  border-spacing: 0;
207
310
  box-sizing: border-box;
@@ -232,8 +335,7 @@ surrounding text. (WCAG F73) https://www.w3.org/WAI/WCAG21/Techniques/failures/F
232
335
  -webkit-font-smoothing: auto;
233
336
  -moz-osx-font-smoothing: auto;
234
337
  background-color: transparent;
235
- padding-inline: 0;
236
- padding-inline-end: var(--space-m-n2lypl, 16px);
338
+ padding-inline: var(--space-m-n2lypl, 16px);
237
339
  box-sizing: border-box;
238
340
  overflow-y: hidden;
239
341
  overflow-x: hidden;
@@ -244,7 +346,7 @@ surrounding text. (WCAG F73) https://www.w3.org/WAI/WCAG21/Techniques/failures/F
244
346
  inline-size: 100%;
245
347
  }
246
348
 
247
- .awsui_drawers-trigger-content_1kzri_ge5s9_247:not(#\9) {
349
+ .awsui_drawers-trigger-content_1kzri_1cw33_349:not(#\9) {
248
350
  block-size: 100%;
249
351
  align-items: center;
250
352
  display: flex;
@@ -254,19 +356,19 @@ surrounding text. (WCAG F73) https://www.w3.org/WAI/WCAG21/Techniques/failures/F
254
356
  padding-inline-start: var(--space-xs-kw7k3v, 8px);
255
357
  }
256
358
 
257
- .awsui_group-divider_1kzri_ge5s9_257:not(#\9) {
359
+ .awsui_group-divider_1kzri_1cw33_359:not(#\9) {
258
360
  border-inline-end: var(--border-divider-section-width-sznrdy, 1px) solid var(--color-border-divider-default-ipvpev, #eaeded);
259
361
  block-size: 60%;
260
362
  }
261
363
 
262
364
  @media (max-width: 688px) {
263
- .awsui_drawers-trigger_1kzri_ge5s9_247:not(#\9) {
365
+ .awsui_drawers-trigger_1kzri_1cw33_349:not(#\9) {
264
366
  display: flex;
265
367
  justify-content: center;
266
368
  align-items: center;
267
369
  }
268
370
  }
269
371
 
270
- .awsui_block-body-scroll_1kzri_ge5s9_270:not(#\9) {
372
+ .awsui_block-body-scroll_1kzri_1cw33_372:not(#\9) {
271
373
  overflow: hidden;
272
374
  }
@@ -2,17 +2,20 @@
2
2
  // es-module interop with Babel and Typescript
3
3
  Object.defineProperty(exports, "__esModule", { value: true });
4
4
  module.exports.default = {
5
- "universal-toolbar": "awsui_universal-toolbar_1kzri_ge5s9_153",
6
- "disable-body-scroll": "awsui_disable-body-scroll_1kzri_ge5s9_174",
7
- "toolbar-container": "awsui_toolbar-container_1kzri_ge5s9_177",
8
- "universal-toolbar-nav": "awsui_universal-toolbar-nav_1kzri_ge5s9_186",
9
- "universal-toolbar-breadcrumbs": "awsui_universal-toolbar-breadcrumbs_1kzri_ge5s9_190",
10
- "universal-toolbar-drawers": "awsui_universal-toolbar-drawers_1kzri_ge5s9_195",
11
- "drawers-desktop-triggers-container": "awsui_drawers-desktop-triggers-container_1kzri_ge5s9_203",
12
- "drawers-mobile-triggers-container": "awsui_drawers-mobile-triggers-container_1kzri_ge5s9_204",
13
- "drawers-trigger-content": "awsui_drawers-trigger-content_1kzri_ge5s9_247",
14
- "group-divider": "awsui_group-divider_1kzri_ge5s9_257",
15
- "drawers-trigger": "awsui_drawers-trigger_1kzri_ge5s9_247",
16
- "block-body-scroll": "awsui_block-body-scroll_1kzri_ge5s9_270"
5
+ "universal-toolbar": "awsui_universal-toolbar_1kzri_1cw33_153",
6
+ "with-open-ai-drawer": "awsui_with-open-ai-drawer_1kzri_1cw33_172",
7
+ "disable-body-scroll": "awsui_disable-body-scroll_1kzri_1cw33_214",
8
+ "universal-toolbar-ai-custom": "awsui_universal-toolbar-ai-custom_1kzri_1cw33_217",
9
+ "toolbar-container": "awsui_toolbar-container_1kzri_1cw33_267",
10
+ "with-ai-drawer": "awsui_with-ai-drawer_1kzri_1cw33_276",
11
+ "universal-toolbar-nav": "awsui_universal-toolbar-nav_1kzri_1cw33_284",
12
+ "universal-toolbar-breadcrumbs": "awsui_universal-toolbar-breadcrumbs_1kzri_1cw33_289",
13
+ "universal-toolbar-drawers": "awsui_universal-toolbar-drawers_1kzri_1cw33_298",
14
+ "drawers-desktop-triggers-container": "awsui_drawers-desktop-triggers-container_1kzri_1cw33_306",
15
+ "drawers-mobile-triggers-container": "awsui_drawers-mobile-triggers-container_1kzri_1cw33_307",
16
+ "drawers-trigger-content": "awsui_drawers-trigger-content_1kzri_1cw33_349",
17
+ "group-divider": "awsui_group-divider_1kzri_1cw33_359",
18
+ "drawers-trigger": "awsui_drawers-trigger_1kzri_1cw33_349",
19
+ "block-body-scroll": "awsui_block-body-scroll_1kzri_1cw33_372"
17
20
  };
18
21
 
@@ -6,6 +6,7 @@ export interface TriggerButtonProps {
6
6
  className?: string;
7
7
  iconName?: IconProps.Name;
8
8
  iconSvg?: React.ReactNode;
9
+ customSvg?: React.ReactNode;
9
10
  ariaExpanded: boolean | undefined;
10
11
  ariaControls?: string;
11
12
  disabled?: boolean;
@@ -48,6 +49,7 @@ export interface TriggerButtonProps {
48
49
  */
49
50
  isForSplitPanel?: boolean;
50
51
  tabIndex?: number | undefined;
52
+ variant?: 'circle' | 'custom';
51
53
  }
52
54
  declare const _default: React.ForwardRefExoticComponent<TriggerButtonProps & React.RefAttributes<ButtonProps.Ref>>;
53
55
  export default _default;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/app-layout/visual-refresh-toolbar/toolbar/trigger-button/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAiE,MAAM,OAAO,CAAC;AAStF,OAAO,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAC5D,OAAO,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC;AAOxD,MAAM,WAAW,kBAAkB;IACjC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,SAAS,CAAC,IAAI,CAAC;IAC1B,OAAO,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,YAAY,EAAE,OAAO,GAAG,SAAS,CAAC;IAClC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;OAEG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,EAAE,KAAK,CAAC,iBAAiB,CAAC,iBAAiB,CAAC,CAAC;IAEpD,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB;;;;OAIG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;;;OAIG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB;;;OAGG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;;;OAIG;IACH,yBAAyB,CAAC,EAAE,OAAO,CAAC;IACpC;;OAEG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC/B;;AAwLD,wBAA+C"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/app-layout/visual-refresh-toolbar/toolbar/trigger-button/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAiE,MAAM,OAAO,CAAC;AAStF,OAAO,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAC5D,OAAO,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC;AAOxD,MAAM,WAAW,kBAAkB;IACjC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,SAAS,CAAC,IAAI,CAAC;IAC1B,OAAO,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,SAAS,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC5B,YAAY,EAAE,OAAO,GAAG,SAAS,CAAC;IAClC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;OAEG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,EAAE,KAAK,CAAC,iBAAiB,CAAC,iBAAiB,CAAC,CAAC;IAEpD,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB;;;;OAIG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;;;OAIG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB;;;OAGG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;;;OAIG;IACH,yBAAyB,CAAC,EAAE,OAAO,CAAC;IACpC;;OAEG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B,OAAO,CAAC,EAAE,QAAQ,GAAG,QAAQ,CAAC;CAC/B;;AA2LD,wBAA+C"}
@@ -7,7 +7,7 @@ import Icon from '../../../../icon/internal';
7
7
  import Tooltip from '../../../../internal/components/tooltip';
8
8
  import testutilStyles from '../../../test-classes/styles.css.js';
9
9
  import styles from './styles.css.js';
10
- function TriggerButton({ ariaLabel, className, iconName, iconSvg, ariaExpanded, ariaControls, onClick, testId, disabled = false, badge, selected = false, hasTooltip = false, tooltipText, hasOpenDrawer = false, isMobile = false, isForPreviousActiveDrawer = false, isForSplitPanel = false, }, ref) {
10
+ function TriggerButton({ ariaLabel, className, iconName, iconSvg, customSvg, ariaExpanded, ariaControls, onClick, testId, disabled = false, badge, selected = false, hasTooltip = false, tooltipText, hasOpenDrawer = false, isMobile = false, isForPreviousActiveDrawer = false, isForSplitPanel = false, variant = 'circle', }, ref) {
11
11
  const containerRef = useRef(null);
12
12
  const tooltipValue = tooltipText ? tooltipText : ariaLabel ? ariaLabel : '';
13
13
  const [showTooltip, setShowTooltip] = useState(false);
@@ -103,11 +103,11 @@ function TriggerButton({ ariaLabel, className, iconName, iconSvg, ariaExpanded,
103
103
  onFocus: e => handleOnFocus(e),
104
104
  onBlur: () => handleBlur(true),
105
105
  }), { className: styles['trigger-wrapper'] }),
106
- React.createElement("button", Object.assign({ "aria-expanded": ariaExpanded, "aria-controls": ariaControls, "aria-haspopup": true, "aria-label": ariaLabel, "aria-disabled": disabled, disabled: disabled, className: clsx(styles.trigger, {
106
+ React.createElement("button", Object.assign({ "aria-expanded": ariaExpanded, "aria-controls": ariaControls, "aria-haspopup": true, "aria-label": ariaLabel, "aria-disabled": disabled, disabled: disabled, className: clsx(styles.trigger, styles[variant], {
107
107
  [styles.selected]: selected,
108
108
  [styles['trigger-with-badge']]: badge,
109
109
  [testutilStyles['drawers-trigger-with-badge']]: badge,
110
- }, className), onClick: handleTriggerClick, ref: ref, type: "button", "data-testid": testId, "data-shift-focus": "awsui-layout-drawer-trigger" }, getAnalyticsMetadataAttribute(triggerEventMetadata)), (iconName || iconSvg) && React.createElement(Icon, { name: iconName, svg: iconSvg })),
110
+ }, className), onClick: handleTriggerClick, ref: ref, type: "button", "data-testid": testId, "data-shift-focus": "awsui-layout-drawer-trigger" }, getAnalyticsMetadataAttribute(triggerEventMetadata)), customSvg !== null && customSvg !== void 0 ? customSvg : ((iconName || iconSvg) && React.createElement(Icon, { name: iconName, svg: iconSvg }))),
111
111
  badge && React.createElement("div", { className: styles.dot }),
112
112
  tooltipVisible && (React.createElement(Tooltip, { trackRef: containerRef, value: tooltipValue, className: testutilStyles['trigger-tooltip'], onDismiss: () => {
113
113
  setShowTooltip(false);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../src/app-layout/visual-refresh-toolbar/toolbar/trigger-button/index.tsx"],"names":[],"mappings":"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","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport React, { Ref, useCallback, useEffect, useMemo, useRef, useState } from 'react';\nimport clsx from 'clsx';\n\nimport { getAnalyticsMetadataAttribute } from '@cloudscape-design/component-toolkit/internal/analytics-metadata';\n\nimport {\n GeneratedAnalyticsMetadataAppLayoutToolbarClose,\n GeneratedAnalyticsMetadataAppLayoutToolbarOpen,\n} from '../../../../app-layout-toolbar/analytics-metadata/interfaces';\nimport { ButtonProps } from '../../../../button/interfaces';\nimport { IconProps } from '../../../../icon/interfaces';\nimport Icon from '../../../../icon/internal';\nimport Tooltip from '../../../../internal/components/tooltip';\n\nimport testutilStyles from '../../../test-classes/styles.css.js';\nimport styles from './styles.css.js';\n\nexport interface TriggerButtonProps {\n ariaLabel?: string;\n className?: string;\n iconName?: IconProps.Name;\n iconSvg?: React.ReactNode;\n ariaExpanded: boolean | undefined;\n ariaControls?: string;\n disabled?: boolean;\n /**\n * Ovewrwrites any internal testIds when provided\n */\n testId?: string;\n /**\n * If button is selected. Used only for desktop and applies a selected class\n */\n selected?: boolean;\n onClick: React.MouseEventHandler<HTMLButtonElement>;\n\n badge?: boolean;\n /**\n * If the button is expected to have a tooltip. When false it will not set the event listeners\n *\n * defaults to false\n */\n hasTooltip?: boolean;\n /**\n * This text allows for a customized tooltip.\n *\n * When falsy, the tooltip will parse the tooltip form the aria-lable\n */\n tooltipText?: string;\n hasOpenDrawer?: boolean;\n /**\n * If the AppLayout is in mobile mode\n * Used to determine if and where to render tooltips\n */\n isMobile?: boolean;\n /**\n * set to true if the trigger button was used to open the last active drawer\n * this is also used to hide the tooltip should the focus be set programmatically\n * on focus from a drawer close using this\n */\n isForPreviousActiveDrawer?: boolean;\n /**\n * if the trigger button is for the split panel\n */\n isForSplitPanel?: boolean;\n tabIndex?: number | undefined;\n}\n\nfunction TriggerButton(\n {\n ariaLabel,\n className,\n iconName,\n iconSvg,\n ariaExpanded,\n ariaControls,\n onClick,\n testId,\n disabled = false,\n badge,\n selected = false,\n hasTooltip = false,\n tooltipText,\n hasOpenDrawer = false,\n isMobile = false,\n isForPreviousActiveDrawer = false,\n isForSplitPanel = false,\n }: TriggerButtonProps,\n ref: React.Ref<ButtonProps.Ref>\n) {\n const containerRef = useRef<HTMLDivElement | null>(null);\n const tooltipValue = tooltipText ? tooltipText : ariaLabel ? ariaLabel : '';\n const [showTooltip, setShowTooltip] = useState<boolean>(false);\n const [suppressTooltip, setSupressTooltip] = useState<boolean>(false);\n\n const handleTriggerClick = (event: React.MouseEvent<HTMLButtonElement>) => {\n event.stopPropagation(); // Stop the event from propagating to the badge icon\n setShowTooltip(false);\n setSupressTooltip(true);\n onClick(event);\n };\n\n const handleBlur = (keepSupressed = false) => {\n setSupressTooltip(keepSupressed);\n setShowTooltip(false);\n };\n\n const handlePointerEnter = () => {\n setSupressTooltip(false);\n setShowTooltip(true);\n };\n\n /**\n * Takes the drawer being closed and the data-shift-focus value from a close button on that drawer that persists\n * on the event relatedTarget to determine not to show the tooltip\n * @param event\n */\n const handleOnFocus = useCallback(\n (event: FocusEvent) => {\n let shouldShowTooltip = false;\n const eventWithRelatedTarget = event as any;\n const relatedTarget = eventWithRelatedTarget?.relatedTarget;\n const isFromAnotherTrigger = relatedTarget?.dataset?.shiftFocus === 'awsui-layout-drawer-trigger';\n if (\n (isForSplitPanel && !!relatedTarget) || // relatedTarget is null when split panel is closed\n (!isForSplitPanel &&\n (isFromAnotherTrigger || // for key navigation from another trigger button\n !isForPreviousActiveDrawer)) // for when the drawer was not opened recently\n ) {\n shouldShowTooltip = true;\n }\n setSupressTooltip(!shouldShowTooltip);\n setShowTooltip(true);\n },\n [\n // To assert reference equality check\n isForPreviousActiveDrawer,\n isForSplitPanel,\n ]\n );\n\n const tooltipVisible = useMemo(() => {\n return (\n hasTooltip &&\n showTooltip &&\n !suppressTooltip &&\n !!containerRef?.current &&\n tooltipValue &&\n !(isMobile && hasOpenDrawer)\n );\n }, [hasTooltip, showTooltip, containerRef, tooltipValue, isMobile, hasOpenDrawer, suppressTooltip]);\n\n useEffect(() => {\n if (hasTooltip && tooltipValue) {\n const close = () => {\n setShowTooltip(false);\n setSupressTooltip(false);\n };\n\n const shouldCloseTooltip = (event: PointerEvent) => {\n if (event.target && containerRef && (containerRef.current as any)?.contains(event.target as HTMLElement)) {\n return false;\n }\n return true;\n };\n\n const handlePointerDownEvent = (event: PointerEvent) => {\n if (shouldCloseTooltip(event)) {\n close();\n }\n };\n\n const handleKeyDownEvent = (event: KeyboardEvent) => {\n if (event.key === 'Escape') {\n close();\n }\n };\n\n const wrapperDiv = containerRef.current;\n if (wrapperDiv) {\n const controller = new AbortController();\n wrapperDiv.addEventListener('pointerdown', handlePointerDownEvent, { signal: controller.signal });\n wrapperDiv.addEventListener('keydown', handleKeyDownEvent, { signal: controller.signal });\n\n return () => {\n controller.abort();\n };\n }\n }\n }, [containerRef, hasTooltip, tooltipValue]);\n\n const triggerEventMetadata:\n | GeneratedAnalyticsMetadataAppLayoutToolbarClose\n | GeneratedAnalyticsMetadataAppLayoutToolbarOpen = {\n action: selected ? 'close' : 'open',\n detail: { label: { root: 'self' } },\n };\n\n return (\n <div\n ref={containerRef}\n {...(hasTooltip && {\n onPointerEnter: () => handlePointerEnter(),\n onPointerLeave: () => handleBlur(true),\n onFocus: e => handleOnFocus(e as any),\n onBlur: () => handleBlur(true),\n })}\n className={styles['trigger-wrapper']}\n >\n <button\n aria-expanded={ariaExpanded}\n aria-controls={ariaControls}\n aria-haspopup={true}\n aria-label={ariaLabel}\n aria-disabled={disabled}\n disabled={disabled}\n className={clsx(\n styles.trigger,\n {\n [styles.selected]: selected,\n [styles['trigger-with-badge']]: badge,\n [testutilStyles['drawers-trigger-with-badge']]: badge,\n },\n className\n )}\n onClick={handleTriggerClick}\n ref={ref as Ref<HTMLButtonElement>}\n type=\"button\"\n data-testid={testId}\n data-shift-focus=\"awsui-layout-drawer-trigger\"\n {...getAnalyticsMetadataAttribute(triggerEventMetadata)}\n >\n {(iconName || iconSvg) && <Icon name={iconName} svg={iconSvg} />}\n </button>\n {badge && <div className={styles.dot} />}\n {tooltipVisible && (\n <Tooltip\n trackRef={containerRef}\n value={tooltipValue}\n className={testutilStyles['trigger-tooltip']}\n onDismiss={() => {\n setShowTooltip(false);\n setSupressTooltip(false);\n }}\n />\n )}\n </div>\n );\n}\n\nexport default React.forwardRef(TriggerButton);\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../src/app-layout/visual-refresh-toolbar/toolbar/trigger-button/index.tsx"],"names":[],"mappings":"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","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport React, { Ref, useCallback, useEffect, useMemo, useRef, useState } from 'react';\nimport clsx from 'clsx';\n\nimport { getAnalyticsMetadataAttribute } from '@cloudscape-design/component-toolkit/internal/analytics-metadata';\n\nimport {\n GeneratedAnalyticsMetadataAppLayoutToolbarClose,\n GeneratedAnalyticsMetadataAppLayoutToolbarOpen,\n} from '../../../../app-layout-toolbar/analytics-metadata/interfaces';\nimport { ButtonProps } from '../../../../button/interfaces';\nimport { IconProps } from '../../../../icon/interfaces';\nimport Icon from '../../../../icon/internal';\nimport Tooltip from '../../../../internal/components/tooltip';\n\nimport testutilStyles from '../../../test-classes/styles.css.js';\nimport styles from './styles.css.js';\n\nexport interface TriggerButtonProps {\n ariaLabel?: string;\n className?: string;\n iconName?: IconProps.Name;\n iconSvg?: React.ReactNode;\n customSvg?: React.ReactNode;\n ariaExpanded: boolean | undefined;\n ariaControls?: string;\n disabled?: boolean;\n /**\n * Ovewrwrites any internal testIds when provided\n */\n testId?: string;\n /**\n * If button is selected. Used only for desktop and applies a selected class\n */\n selected?: boolean;\n onClick: React.MouseEventHandler<HTMLButtonElement>;\n\n badge?: boolean;\n /**\n * If the button is expected to have a tooltip. When false it will not set the event listeners\n *\n * defaults to false\n */\n hasTooltip?: boolean;\n /**\n * This text allows for a customized tooltip.\n *\n * When falsy, the tooltip will parse the tooltip form the aria-lable\n */\n tooltipText?: string;\n hasOpenDrawer?: boolean;\n /**\n * If the AppLayout is in mobile mode\n * Used to determine if and where to render tooltips\n */\n isMobile?: boolean;\n /**\n * set to true if the trigger button was used to open the last active drawer\n * this is also used to hide the tooltip should the focus be set programmatically\n * on focus from a drawer close using this\n */\n isForPreviousActiveDrawer?: boolean;\n /**\n * if the trigger button is for the split panel\n */\n isForSplitPanel?: boolean;\n tabIndex?: number | undefined;\n variant?: 'circle' | 'custom';\n}\n\nfunction TriggerButton(\n {\n ariaLabel,\n className,\n iconName,\n iconSvg,\n customSvg,\n ariaExpanded,\n ariaControls,\n onClick,\n testId,\n disabled = false,\n badge,\n selected = false,\n hasTooltip = false,\n tooltipText,\n hasOpenDrawer = false,\n isMobile = false,\n isForPreviousActiveDrawer = false,\n isForSplitPanel = false,\n variant = 'circle',\n }: TriggerButtonProps,\n ref: React.Ref<ButtonProps.Ref>\n) {\n const containerRef = useRef<HTMLDivElement | null>(null);\n const tooltipValue = tooltipText ? tooltipText : ariaLabel ? ariaLabel : '';\n const [showTooltip, setShowTooltip] = useState<boolean>(false);\n const [suppressTooltip, setSupressTooltip] = useState<boolean>(false);\n\n const handleTriggerClick = (event: React.MouseEvent<HTMLButtonElement>) => {\n event.stopPropagation(); // Stop the event from propagating to the badge icon\n setShowTooltip(false);\n setSupressTooltip(true);\n onClick(event);\n };\n\n const handleBlur = (keepSupressed = false) => {\n setSupressTooltip(keepSupressed);\n setShowTooltip(false);\n };\n\n const handlePointerEnter = () => {\n setSupressTooltip(false);\n setShowTooltip(true);\n };\n\n /**\n * Takes the drawer being closed and the data-shift-focus value from a close button on that drawer that persists\n * on the event relatedTarget to determine not to show the tooltip\n * @param event\n */\n const handleOnFocus = useCallback(\n (event: FocusEvent) => {\n let shouldShowTooltip = false;\n const eventWithRelatedTarget = event as any;\n const relatedTarget = eventWithRelatedTarget?.relatedTarget;\n const isFromAnotherTrigger = relatedTarget?.dataset?.shiftFocus === 'awsui-layout-drawer-trigger';\n if (\n (isForSplitPanel && !!relatedTarget) || // relatedTarget is null when split panel is closed\n (!isForSplitPanel &&\n (isFromAnotherTrigger || // for key navigation from another trigger button\n !isForPreviousActiveDrawer)) // for when the drawer was not opened recently\n ) {\n shouldShowTooltip = true;\n }\n setSupressTooltip(!shouldShowTooltip);\n setShowTooltip(true);\n },\n [\n // To assert reference equality check\n isForPreviousActiveDrawer,\n isForSplitPanel,\n ]\n );\n\n const tooltipVisible = useMemo(() => {\n return (\n hasTooltip &&\n showTooltip &&\n !suppressTooltip &&\n !!containerRef?.current &&\n tooltipValue &&\n !(isMobile && hasOpenDrawer)\n );\n }, [hasTooltip, showTooltip, containerRef, tooltipValue, isMobile, hasOpenDrawer, suppressTooltip]);\n\n useEffect(() => {\n if (hasTooltip && tooltipValue) {\n const close = () => {\n setShowTooltip(false);\n setSupressTooltip(false);\n };\n\n const shouldCloseTooltip = (event: PointerEvent) => {\n if (event.target && containerRef && (containerRef.current as any)?.contains(event.target as HTMLElement)) {\n return false;\n }\n return true;\n };\n\n const handlePointerDownEvent = (event: PointerEvent) => {\n if (shouldCloseTooltip(event)) {\n close();\n }\n };\n\n const handleKeyDownEvent = (event: KeyboardEvent) => {\n if (event.key === 'Escape') {\n close();\n }\n };\n\n const wrapperDiv = containerRef.current;\n if (wrapperDiv) {\n const controller = new AbortController();\n wrapperDiv.addEventListener('pointerdown', handlePointerDownEvent, { signal: controller.signal });\n wrapperDiv.addEventListener('keydown', handleKeyDownEvent, { signal: controller.signal });\n\n return () => {\n controller.abort();\n };\n }\n }\n }, [containerRef, hasTooltip, tooltipValue]);\n\n const triggerEventMetadata:\n | GeneratedAnalyticsMetadataAppLayoutToolbarClose\n | GeneratedAnalyticsMetadataAppLayoutToolbarOpen = {\n action: selected ? 'close' : 'open',\n detail: { label: { root: 'self' } },\n };\n\n return (\n <div\n ref={containerRef}\n {...(hasTooltip && {\n onPointerEnter: () => handlePointerEnter(),\n onPointerLeave: () => handleBlur(true),\n onFocus: e => handleOnFocus(e as any),\n onBlur: () => handleBlur(true),\n })}\n className={styles['trigger-wrapper']}\n >\n <button\n aria-expanded={ariaExpanded}\n aria-controls={ariaControls}\n aria-haspopup={true}\n aria-label={ariaLabel}\n aria-disabled={disabled}\n disabled={disabled}\n className={clsx(\n styles.trigger,\n styles[variant],\n {\n [styles.selected]: selected,\n [styles['trigger-with-badge']]: badge,\n [testutilStyles['drawers-trigger-with-badge']]: badge,\n },\n className\n )}\n onClick={handleTriggerClick}\n ref={ref as Ref<HTMLButtonElement>}\n type=\"button\"\n data-testid={testId}\n data-shift-focus=\"awsui-layout-drawer-trigger\"\n {...getAnalyticsMetadataAttribute(triggerEventMetadata)}\n >\n {customSvg ?? ((iconName || iconSvg) && <Icon name={iconName} svg={iconSvg} />)}\n </button>\n {badge && <div className={styles.dot} />}\n {tooltipVisible && (\n <Tooltip\n trackRef={containerRef}\n value={tooltipValue}\n className={testutilStyles['trigger-tooltip']}\n onDismiss={() => {\n setShowTooltip(false);\n setSupressTooltip(false);\n }}\n />\n )}\n </div>\n );\n}\n\nexport default React.forwardRef(TriggerButton);\n"]}
@@ -1,10 +1,12 @@
1
1
 
2
2
  import './styles.scoped.css';
3
3
  export default {
4
- "trigger": "awsui_trigger_lpshu_1ipnb_145",
5
- "trigger-with-badge": "awsui_trigger-with-badge_lpshu_1ipnb_157",
6
- "selected": "awsui_selected_lpshu_1ipnb_175",
7
- "trigger-wrapper": "awsui_trigger-wrapper_lpshu_1ipnb_186",
8
- "dot": "awsui_dot_lpshu_1ipnb_211"
4
+ "trigger": "awsui_trigger_lpshu_hah7l_145",
5
+ "custom": "awsui_custom_lpshu_hah7l_151",
6
+ "trigger-with-badge": "awsui_trigger-with-badge_lpshu_hah7l_157",
7
+ "circle": "awsui_circle_lpshu_hah7l_167",
8
+ "selected": "awsui_selected_lpshu_hah7l_183",
9
+ "trigger-wrapper": "awsui_trigger-wrapper_lpshu_hah7l_194",
10
+ "dot": "awsui_dot_lpshu_hah7l_219"
9
11
  };
10
12
 
@@ -142,58 +142,66 @@
142
142
  */
143
143
  /* Style used for links in slots/components that are text heavy, to help links stand out among
144
144
  surrounding text. (WCAG F73) https://www.w3.org/WAI/WCAG21/Techniques/failures/F73#description */
145
- .awsui_trigger_lpshu_1ipnb_145:not(#\9) {
145
+ .awsui_trigger_lpshu_hah7l_145:not(#\9) {
146
146
  all: initial;
147
147
  cursor: pointer;
148
148
  color: var(--color-text-interactive-default-qwoe3g, #545b64);
149
- border-start-start-radius: 50%;
150
- border-start-end-radius: 50%;
151
- border-end-start-radius: 50%;
152
- border-end-end-radius: 50%;
153
- block-size: 30px;
154
- inline-size: 30px;
155
149
  text-align: center;
156
150
  }
157
- .awsui_trigger-with-badge_lpshu_1ipnb_157:not(#\9) {
151
+ .awsui_trigger_lpshu_hah7l_145.awsui_custom_lpshu_hah7l_151:not(#\9) {
152
+ display: flex;
153
+ block-size: 100%;
154
+ inline-size: 100%;
155
+ box-sizing: border-box;
156
+ }
157
+ .awsui_trigger-with-badge_lpshu_hah7l_157:not(#\9) {
158
158
  clip-path: path("M29.2862 10.4145C28.7243 10.5998 28.1238 10.7 27.4999 10.7C24.3519 10.7 21.7999 8.14803 21.7999 5C21.7999 3.92883 22.0954 2.92667 22.6093 2.07057C20.3785 0.754846 17.7774 0 15 0C6.71573 0 0 6.71573 0 15C0 23.2843 6.71573 30 15 30C23.2843 30 30 23.2843 30 15C30 13.4007 29.7497 11.8599 29.2862 10.4145Z");
159
159
  /* stylelint-disable-next-line plugin/no-unsupported-browser-features */
160
160
  }
161
- .awsui_trigger-with-badge_lpshu_1ipnb_157:not(#\9):dir(rtl) {
161
+ .awsui_trigger-with-badge_lpshu_hah7l_157:not(#\9):dir(rtl) {
162
162
  clip-path: path("M2.21384 10.4145C2.77569 10.5998 3.37617 10.7 4.00007 10.7C7.1481 10.7 9.70007 8.14803 9.70007 5C9.70007 3.92883 9.4046 2.92667 8.89071 2.07057C11.1215 0.754846 13.7226 0 16.5 0C24.7843 0 31.5 6.71573 31.5 15C31.5 23.2843 24.7843 30 16.5 30C8.21573 30 1.5 23.2843 1.5 15C1.5 13.4007 1.75029 11.8599 2.21384 10.4145Z");
163
163
  }
164
- .awsui_trigger_lpshu_1ipnb_145:not(#\9):hover {
164
+ .awsui_trigger_lpshu_hah7l_145:not(#\9):focus {
165
+ outline: none;
166
+ }
167
+ .awsui_trigger_lpshu_hah7l_145.awsui_circle_lpshu_hah7l_167:not(#\9) {
168
+ border-start-start-radius: 50%;
169
+ border-start-end-radius: 50%;
170
+ border-end-start-radius: 50%;
171
+ border-end-end-radius: 50%;
172
+ block-size: 30px;
173
+ inline-size: 30px;
174
+ }
175
+ .awsui_trigger_lpshu_hah7l_145.awsui_circle_lpshu_hah7l_167:not(#\9):hover {
165
176
  background: var(--color-background-input-disabled-4vlau3, #eaeded);
166
177
  color: var(--color-text-interactive-hover-bu4gls, #16191f);
167
178
  }
168
- .awsui_trigger_lpshu_1ipnb_145:not(#\9):active {
179
+ .awsui_trigger_lpshu_hah7l_145.awsui_circle_lpshu_hah7l_167:not(#\9):active {
169
180
  background: var(--color-background-control-disabled-2ixett, #d5dbdb);
170
181
  color: var(--color-text-interactive-hover-bu4gls, #16191f);
171
182
  }
172
- .awsui_trigger_lpshu_1ipnb_145:not(#\9):focus {
173
- outline: none;
174
- }
175
- .awsui_trigger_lpshu_1ipnb_145.awsui_selected_lpshu_1ipnb_175:not(#\9) {
183
+ .awsui_trigger_lpshu_hah7l_145.awsui_circle_lpshu_hah7l_167.awsui_selected_lpshu_hah7l_183:not(#\9) {
176
184
  background: var(--color-background-layout-toggle-selected-default-o4my1h, #0073bb);
177
185
  color: var(--color-text-layout-toggle-selected-ofhd1q, #ffffff);
178
186
  }
179
- .awsui_trigger_lpshu_1ipnb_145.awsui_selected_lpshu_1ipnb_175:not(#\9):hover {
187
+ .awsui_trigger_lpshu_hah7l_145.awsui_circle_lpshu_hah7l_167.awsui_selected_lpshu_hah7l_183:not(#\9):hover {
180
188
  background: var(--color-background-layout-toggle-selected-hover-yuaxel, #0a4a74);
181
189
  }
182
- .awsui_trigger_lpshu_1ipnb_145.awsui_selected_lpshu_1ipnb_175:not(#\9):active {
190
+ .awsui_trigger_lpshu_hah7l_145.awsui_circle_lpshu_hah7l_167.awsui_selected_lpshu_hah7l_183:not(#\9):active {
183
191
  background: var(--color-background-layout-toggle-selected-active-wfv72o, #0073bb);
184
192
  }
185
193
 
186
- .awsui_trigger-wrapper_lpshu_1ipnb_186:not(#\9) {
194
+ .awsui_trigger-wrapper_lpshu_hah7l_194:not(#\9) {
187
195
  position: relative;
188
196
  }
189
- .awsui_trigger-wrapper_lpshu_1ipnb_186:not(#\9):has(:focus-visible) {
197
+ .awsui_trigger-wrapper_lpshu_hah7l_194:not(#\9):has(:focus-visible) {
190
198
  position: relative;
191
199
  }
192
- .awsui_trigger-wrapper_lpshu_1ipnb_186:not(#\9):has(:focus-visible) {
200
+ .awsui_trigger-wrapper_lpshu_hah7l_194:not(#\9):has(:focus-visible) {
193
201
  outline: 2px dotted transparent;
194
202
  outline-offset: calc(3px - 1px);
195
203
  }
196
- .awsui_trigger-wrapper_lpshu_1ipnb_186:not(#\9):has(:focus-visible)::before {
204
+ .awsui_trigger-wrapper_lpshu_hah7l_194:not(#\9):has(:focus-visible)::before {
197
205
  content: " ";
198
206
  display: block;
199
207
  position: absolute;
@@ -208,7 +216,7 @@ surrounding text. (WCAG F73) https://www.w3.org/WAI/WCAG21/Techniques/failures/F
208
216
  box-shadow: 0 0 0 2px var(--color-border-item-focused-r5f6xl, #0073bb);
209
217
  }
210
218
 
211
- .awsui_dot_lpshu_1ipnb_211:not(#\9) {
219
+ .awsui_dot_lpshu_hah7l_219:not(#\9) {
212
220
  position: absolute;
213
221
  inline-size: 8px;
214
222
  block-size: 8px;
@@ -2,10 +2,12 @@
2
2
  // es-module interop with Babel and Typescript
3
3
  Object.defineProperty(exports, "__esModule", { value: true });
4
4
  module.exports.default = {
5
- "trigger": "awsui_trigger_lpshu_1ipnb_145",
6
- "trigger-with-badge": "awsui_trigger-with-badge_lpshu_1ipnb_157",
7
- "selected": "awsui_selected_lpshu_1ipnb_175",
8
- "trigger-wrapper": "awsui_trigger-wrapper_lpshu_1ipnb_186",
9
- "dot": "awsui_dot_lpshu_1ipnb_211"
5
+ "trigger": "awsui_trigger_lpshu_hah7l_145",
6
+ "custom": "awsui_custom_lpshu_hah7l_151",
7
+ "trigger-with-badge": "awsui_trigger-with-badge_lpshu_hah7l_157",
8
+ "circle": "awsui_circle_lpshu_hah7l_167",
9
+ "selected": "awsui_selected_lpshu_hah7l_183",
10
+ "trigger-wrapper": "awsui_trigger-wrapper_lpshu_hah7l_194",
11
+ "dot": "awsui_dot_lpshu_hah7l_219"
10
12
  };
11
13
 
@@ -1 +1 @@
1
- {"version":3,"file":"before-main-slot.d.ts","sourceRoot":"","sources":["../../../../../src/app-layout/visual-refresh-toolbar/widget-areas/before-main-slot.tsx"],"names":[],"mappings":";AAOA,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAQ3D,eAAO,MAAM,4BAA4B,qDAAsD,iBAAiB,gBAqC/G,CAAC;AAEF,eAAO,MAAM,uCAAuC,gEAvC2C,iBAAiB,qFAAjB,iBAAiB,gBA0C/G,CAAC"}
1
+ {"version":3,"file":"before-main-slot.d.ts","sourceRoot":"","sources":["../../../../../src/app-layout/visual-refresh-toolbar/widget-areas/before-main-slot.tsx"],"names":[],"mappings":";AASA,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAQ3D,eAAO,MAAM,4BAA4B,qDAAsD,iBAAiB,gBA4F/G,CAAC;AAEF,eAAO,MAAM,uCAAuC,gEA9F2C,iBAAiB,qFAAjB,iBAAiB,gBAiG/G,CAAC"}
@@ -1,8 +1,10 @@
1
1
  // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
2
2
  // SPDX-License-Identifier: Apache-2.0
3
- import React from 'react';
3
+ import React, { useRef } from 'react';
4
4
  import clsx from 'clsx';
5
5
  import { createWidgetizedComponent } from '../../../internal/widgets';
6
+ import { ActiveDrawersContext } from '../../utils/visibility-context';
7
+ import { AppLayoutGlobalAiDrawerImplementation } from '../drawer/global-ai-drawer';
6
8
  import { AppLayoutNavigationImplementation as AppLayoutNavigation } from '../navigation';
7
9
  import { BeforeMainSlotSkeleton } from '../skeleton/skeleton-parts';
8
10
  import { isWidgetReady } from '../state/invariants';
@@ -10,17 +12,35 @@ import { AppLayoutToolbarImplementation as AppLayoutToolbar } from '../toolbar';
10
12
  import sharedStyles from '../../resize/styles.css.js';
11
13
  import styles from '../skeleton/styles.css.js';
12
14
  export const BeforeMainSlotImplementation = ({ toolbarProps, appLayoutState, appLayoutProps }) => {
15
+ const wasAiDrawerOpenRef = useRef(false);
13
16
  if (!isWidgetReady(appLayoutState)) {
14
17
  return (React.createElement(BeforeMainSlotSkeleton, { toolbarProps: toolbarProps, appLayoutProps: appLayoutProps, appLayoutState: appLayoutState }));
15
18
  }
16
- const { activeDrawer, navigationOpen, navigation, expandedDrawerId, navigationAnimationDisabled } = appLayoutState.widgetizedState;
19
+ const { activeDrawer, navigationOpen, navigation, expandedDrawerId, setExpandedDrawerId, navigationAnimationDisabled, activeAiDrawerId, aiDrawerExpandedMode, aiDrawer, activeAiDrawerSize, minAiDrawerSize, maxAiDrawerSize, onActiveAiDrawerResize, aiDrawerFocusControl, ariaLabels, isMobile, drawersOpenQueue, onActiveAiDrawerChange, activeAiDrawer, } = appLayoutState.widgetizedState;
17
20
  const drawerExpandedMode = !!expandedDrawerId;
18
21
  const toolsOpen = !!activeDrawer;
19
22
  // Must use `toolbarProps` because all layouts have to apply this mode, not just the one with toolbar
20
23
  const drawerExpandedModeInChildLayout = !!(toolbarProps === null || toolbarProps === void 0 ? void 0 : toolbarProps.expandedDrawerId);
21
24
  const { __embeddedViewMode: embeddedViewMode } = appLayoutProps;
22
25
  return (React.createElement(React.Fragment, null,
23
- !!toolbarProps && !embeddedViewMode && (React.createElement(AppLayoutToolbar, { appLayoutInternals: appLayoutState.appLayoutInternals, toolbarProps: toolbarProps })),
26
+ !!toolbarProps && !embeddedViewMode && !aiDrawerExpandedMode && (React.createElement(AppLayoutToolbar, { appLayoutInternals: appLayoutState.appLayoutInternals, toolbarProps: toolbarProps })),
27
+ aiDrawer && (React.createElement("div", { className: clsx(styles['ai-drawer'], (drawerExpandedMode || drawerExpandedModeInChildLayout) && !aiDrawerExpandedMode && styles.hidden) },
28
+ React.createElement(ActiveDrawersContext.Provider, { value: activeAiDrawer ? [activeAiDrawer.id] : [] }, (!!activeAiDrawerId || ((aiDrawer === null || aiDrawer === void 0 ? void 0 : aiDrawer.preserveInactiveContent) && wasAiDrawerOpenRef.current)) && (React.createElement(React.Fragment, null,
29
+ (wasAiDrawerOpenRef.current = true),
30
+ React.createElement(AppLayoutGlobalAiDrawerImplementation, { show: !!activeAiDrawerId, activeAiDrawer: aiDrawer !== null && aiDrawer !== void 0 ? aiDrawer : null, appLayoutInternals: appLayoutState.appLayoutInternals, aiDrawerProps: {
31
+ activeAiDrawerSize: activeAiDrawerSize,
32
+ minAiDrawerSize: minAiDrawerSize,
33
+ maxAiDrawerSize: maxAiDrawerSize,
34
+ aiDrawer: aiDrawer,
35
+ ariaLabels,
36
+ aiDrawerFocusControl,
37
+ isMobile,
38
+ drawersOpenQueue,
39
+ onActiveAiDrawerChange,
40
+ onActiveDrawerResize: ({ size }) => onActiveAiDrawerResize(size),
41
+ expandedDrawerId,
42
+ setExpandedDrawerId,
43
+ } })))))),
24
44
  navigation && (React.createElement("div", { className: clsx(styles.navigation, !navigationOpen && styles['panel-hidden'], toolsOpen && styles['unfocusable-mobile'], !navigationAnimationDisabled && sharedStyles['with-motion-horizontal'], (drawerExpandedMode || drawerExpandedModeInChildLayout) && styles.hidden) },
25
45
  React.createElement(AppLayoutNavigation, { appLayoutInternals: appLayoutState.appLayoutInternals })))));
26
46
  };
@@ -1 +1 @@
1
- {"version":3,"file":"before-main-slot.js","sourceRoot":"","sources":["../../../../../src/app-layout/visual-refresh-toolbar/widget-areas/before-main-slot.tsx"],"names":[],"mappings":"AAAA,qEAAqE;AACrE,sCAAsC;AACtC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB,OAAO,EAAE,yBAAyB,EAAE,MAAM,2BAA2B,CAAC;AACtE,OAAO,EAAE,iCAAiC,IAAI,mBAAmB,EAAE,MAAM,eAAe,CAAC;AAEzF,OAAO,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AACpE,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,8BAA8B,IAAI,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAEhF,OAAO,YAAY,MAAM,4BAA4B,CAAC;AACtD,OAAO,MAAM,MAAM,2BAA2B,CAAC;AAE/C,MAAM,CAAC,MAAM,4BAA4B,GAAG,CAAC,EAAE,YAAY,EAAE,cAAc,EAAE,cAAc,EAAqB,EAAE,EAAE;IAClH,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,EAAE;QAClC,OAAO,CACL,oBAAC,sBAAsB,IACrB,YAAY,EAAE,YAAY,EAC1B,cAAc,EAAE,cAAc,EAC9B,cAAc,EAAE,cAAc,GAC9B,CACH,CAAC;KACH;IACD,MAAM,EAAE,YAAY,EAAE,cAAc,EAAE,UAAU,EAAE,gBAAgB,EAAE,2BAA2B,EAAE,GAC/F,cAAc,CAAC,eAAe,CAAC;IACjC,MAAM,kBAAkB,GAAG,CAAC,CAAC,gBAAgB,CAAC;IAC9C,MAAM,SAAS,GAAG,CAAC,CAAC,YAAY,CAAC;IACjC,qGAAqG;IACrG,MAAM,+BAA+B,GAAG,CAAC,CAAC,CAAA,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,gBAAgB,CAAA,CAAC;IACzE,MAAM,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,GAAG,cAAqB,CAAC;IACvE,OAAO,CACL;QACG,CAAC,CAAC,YAAY,IAAI,CAAC,gBAAgB,IAAI,CACtC,oBAAC,gBAAgB,IAAC,kBAAkB,EAAE,cAAc,CAAC,kBAAkB,EAAE,YAAY,EAAE,YAAY,GAAI,CACxG;QACA,UAAU,IAAI,CACb,6BACE,SAAS,EAAE,IAAI,CACb,MAAM,CAAC,UAAU,EACjB,CAAC,cAAc,IAAI,MAAM,CAAC,cAAc,CAAC,EACzC,SAAS,IAAI,MAAM,CAAC,oBAAoB,CAAC,EACzC,CAAC,2BAA2B,IAAI,YAAY,CAAC,wBAAwB,CAAC,EACtE,CAAC,kBAAkB,IAAI,+BAA+B,CAAC,IAAI,MAAM,CAAC,MAAM,CACzE;YAED,oBAAC,mBAAmB,IAAC,kBAAkB,EAAE,cAAc,CAAC,kBAAkB,GAAI,CAC1E,CACP,CACA,CACJ,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,uCAAuC,GAAG,yBAAyB,CAC9E,4BAA4B,EAC5B,sBAAsB,CACvB,CAAC","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport React from 'react';\nimport clsx from 'clsx';\n\nimport { createWidgetizedComponent } from '../../../internal/widgets';\nimport { AppLayoutNavigationImplementation as AppLayoutNavigation } from '../navigation';\nimport { SkeletonPartProps } from '../skeleton/interfaces';\nimport { BeforeMainSlotSkeleton } from '../skeleton/skeleton-parts';\nimport { isWidgetReady } from '../state/invariants';\nimport { AppLayoutToolbarImplementation as AppLayoutToolbar } from '../toolbar';\n\nimport sharedStyles from '../../resize/styles.css.js';\nimport styles from '../skeleton/styles.css.js';\n\nexport const BeforeMainSlotImplementation = ({ toolbarProps, appLayoutState, appLayoutProps }: SkeletonPartProps) => {\n if (!isWidgetReady(appLayoutState)) {\n return (\n <BeforeMainSlotSkeleton\n toolbarProps={toolbarProps}\n appLayoutProps={appLayoutProps}\n appLayoutState={appLayoutState}\n />\n );\n }\n const { activeDrawer, navigationOpen, navigation, expandedDrawerId, navigationAnimationDisabled } =\n appLayoutState.widgetizedState;\n const drawerExpandedMode = !!expandedDrawerId;\n const toolsOpen = !!activeDrawer;\n // Must use `toolbarProps` because all layouts have to apply this mode, not just the one with toolbar\n const drawerExpandedModeInChildLayout = !!toolbarProps?.expandedDrawerId;\n const { __embeddedViewMode: embeddedViewMode } = appLayoutProps as any;\n return (\n <>\n {!!toolbarProps && !embeddedViewMode && (\n <AppLayoutToolbar appLayoutInternals={appLayoutState.appLayoutInternals} toolbarProps={toolbarProps} />\n )}\n {navigation && (\n <div\n className={clsx(\n styles.navigation,\n !navigationOpen && styles['panel-hidden'],\n toolsOpen && styles['unfocusable-mobile'],\n !navigationAnimationDisabled && sharedStyles['with-motion-horizontal'],\n (drawerExpandedMode || drawerExpandedModeInChildLayout) && styles.hidden\n )}\n >\n <AppLayoutNavigation appLayoutInternals={appLayoutState.appLayoutInternals} />\n </div>\n )}\n </>\n );\n};\n\nexport const createWidgetizedAppLayoutBeforeMainSlot = createWidgetizedComponent(\n BeforeMainSlotImplementation,\n BeforeMainSlotSkeleton\n);\n"]}
1
+ {"version":3,"file":"before-main-slot.js","sourceRoot":"","sources":["../../../../../src/app-layout/visual-refresh-toolbar/widget-areas/before-main-slot.tsx"],"names":[],"mappings":"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","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport React, { useRef } from 'react';\nimport clsx from 'clsx';\n\nimport { createWidgetizedComponent } from '../../../internal/widgets';\nimport { ActiveDrawersContext } from '../../utils/visibility-context';\nimport { AppLayoutGlobalAiDrawerImplementation } from '../drawer/global-ai-drawer';\nimport { AppLayoutNavigationImplementation as AppLayoutNavigation } from '../navigation';\nimport { SkeletonPartProps } from '../skeleton/interfaces';\nimport { BeforeMainSlotSkeleton } from '../skeleton/skeleton-parts';\nimport { isWidgetReady } from '../state/invariants';\nimport { AppLayoutToolbarImplementation as AppLayoutToolbar } from '../toolbar';\n\nimport sharedStyles from '../../resize/styles.css.js';\nimport styles from '../skeleton/styles.css.js';\n\nexport const BeforeMainSlotImplementation = ({ toolbarProps, appLayoutState, appLayoutProps }: SkeletonPartProps) => {\n const wasAiDrawerOpenRef = useRef(false);\n if (!isWidgetReady(appLayoutState)) {\n return (\n <BeforeMainSlotSkeleton\n toolbarProps={toolbarProps}\n appLayoutProps={appLayoutProps}\n appLayoutState={appLayoutState}\n />\n );\n }\n const {\n activeDrawer,\n navigationOpen,\n navigation,\n expandedDrawerId,\n setExpandedDrawerId,\n navigationAnimationDisabled,\n activeAiDrawerId,\n aiDrawerExpandedMode,\n aiDrawer,\n activeAiDrawerSize,\n minAiDrawerSize,\n maxAiDrawerSize,\n onActiveAiDrawerResize,\n aiDrawerFocusControl,\n ariaLabels,\n isMobile,\n drawersOpenQueue,\n onActiveAiDrawerChange,\n activeAiDrawer,\n } = appLayoutState.widgetizedState;\n const drawerExpandedMode = !!expandedDrawerId;\n const toolsOpen = !!activeDrawer;\n // Must use `toolbarProps` because all layouts have to apply this mode, not just the one with toolbar\n const drawerExpandedModeInChildLayout = !!toolbarProps?.expandedDrawerId;\n const { __embeddedViewMode: embeddedViewMode } = appLayoutProps as any;\n return (\n <>\n {!!toolbarProps && !embeddedViewMode && !aiDrawerExpandedMode && (\n <AppLayoutToolbar appLayoutInternals={appLayoutState.appLayoutInternals} toolbarProps={toolbarProps} />\n )}\n {aiDrawer && (\n <div\n className={clsx(\n styles['ai-drawer'],\n (drawerExpandedMode || drawerExpandedModeInChildLayout) && !aiDrawerExpandedMode && styles.hidden\n )}\n >\n <ActiveDrawersContext.Provider value={activeAiDrawer ? [activeAiDrawer.id] : []}>\n {(!!activeAiDrawerId || (aiDrawer?.preserveInactiveContent && wasAiDrawerOpenRef.current)) && (\n <>\n {(wasAiDrawerOpenRef.current = true)}\n <AppLayoutGlobalAiDrawerImplementation\n show={!!activeAiDrawerId}\n activeAiDrawer={aiDrawer ?? null}\n appLayoutInternals={appLayoutState.appLayoutInternals}\n aiDrawerProps={{\n activeAiDrawerSize: activeAiDrawerSize!,\n minAiDrawerSize: minAiDrawerSize!,\n maxAiDrawerSize: maxAiDrawerSize!,\n aiDrawer: aiDrawer!,\n ariaLabels,\n aiDrawerFocusControl,\n isMobile,\n drawersOpenQueue,\n onActiveAiDrawerChange,\n onActiveDrawerResize: ({ size }) => onActiveAiDrawerResize(size),\n expandedDrawerId,\n setExpandedDrawerId,\n }}\n />\n </>\n )}\n </ActiveDrawersContext.Provider>\n </div>\n )}\n {navigation && (\n <div\n className={clsx(\n styles.navigation,\n !navigationOpen && styles['panel-hidden'],\n toolsOpen && styles['unfocusable-mobile'],\n !navigationAnimationDisabled && sharedStyles['with-motion-horizontal'],\n (drawerExpandedMode || drawerExpandedModeInChildLayout) && styles.hidden\n )}\n >\n <AppLayoutNavigation appLayoutInternals={appLayoutState.appLayoutInternals} />\n </div>\n )}\n </>\n );\n};\n\nexport const createWidgetizedAppLayoutBeforeMainSlot = createWidgetizedComponent(\n BeforeMainSlotImplementation,\n BeforeMainSlotSkeleton\n);\n"]}
@@ -3892,5 +3892,5 @@
3892
3892
  }
3893
3893
  }
3894
3894
  :root {
3895
- --awsui-version-info-5b144292: true;
3895
+ --awsui-version-info-7d81355c: true;
3896
3896
  }
@@ -4,11 +4,12 @@ interface ResizeHandleProps {
4
4
  className?: string;
5
5
  ariaLabel: string | undefined;
6
6
  tooltipText?: string | undefined;
7
- position: 'side' | 'bottom';
7
+ position: 'side-start' | 'side' | 'bottom';
8
8
  ariaValuenow: number;
9
9
  onDirectionClick: DragHandleProps['onDirectionClick'];
10
10
  onKeyDown: (event: React.KeyboardEvent<HTMLElement>) => void;
11
11
  onPointerDown: (event: React.PointerEvent<HTMLElement>) => void;
12
+ disabled?: boolean;
12
13
  }
13
14
  declare const _default: React.ForwardRefExoticComponent<ResizeHandleProps & React.RefAttributes<HTMLDivElement>>;
14
15
  export default _default;