@cloudscape-design/components-themeable 3.0.267 → 3.0.269

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 (88) hide show
  1. package/lib/internal/manifest.json +1 -1
  2. package/lib/internal/scss/table/body-cell/styles.scss +162 -0
  3. package/lib/internal/template/attribute-editor/row.d.ts.map +1 -1
  4. package/lib/internal/template/attribute-editor/row.js +3 -1
  5. package/lib/internal/template/attribute-editor/row.js.map +1 -1
  6. package/lib/internal/template/cards/styles.css.js +37 -37
  7. package/lib/internal/template/cards/styles.scoped.css +52 -52
  8. package/lib/internal/template/cards/styles.selectors.js +37 -37
  9. package/lib/internal/template/code-editor/index.d.ts.map +1 -1
  10. package/lib/internal/template/code-editor/index.js +1 -14
  11. package/lib/internal/template/code-editor/index.js.map +1 -1
  12. package/lib/internal/template/code-editor/pane.d.ts +1 -2
  13. package/lib/internal/template/code-editor/pane.d.ts.map +1 -1
  14. package/lib/internal/template/code-editor/pane.js +8 -3
  15. package/lib/internal/template/code-editor/pane.js.map +1 -1
  16. package/lib/internal/template/code-editor/status-bar.d.ts +3 -3
  17. package/lib/internal/template/code-editor/status-bar.d.ts.map +1 -1
  18. package/lib/internal/template/code-editor/status-bar.js +5 -3
  19. package/lib/internal/template/code-editor/status-bar.js.map +1 -1
  20. package/lib/internal/template/internal/base-component/styles.scoped.css +9 -7
  21. package/lib/internal/template/internal/components/button-trigger/styles.css.js +9 -9
  22. package/lib/internal/template/internal/components/button-trigger/styles.scoped.css +24 -24
  23. package/lib/internal/template/internal/components/button-trigger/styles.selectors.js +9 -9
  24. package/lib/internal/template/internal/components/filtering-token/styles.css.js +7 -7
  25. package/lib/internal/template/internal/components/filtering-token/styles.scoped.css +15 -15
  26. package/lib/internal/template/internal/components/filtering-token/styles.selectors.js +7 -7
  27. package/lib/internal/template/internal/environment.js +1 -1
  28. package/lib/internal/template/modal/internal.d.ts +1 -1
  29. package/lib/internal/template/modal/internal.d.ts.map +1 -1
  30. package/lib/internal/template/modal/internal.js +24 -15
  31. package/lib/internal/template/modal/internal.js.map +1 -1
  32. package/lib/internal/template/table/body-cell/index.d.ts +2 -1
  33. package/lib/internal/template/table/body-cell/index.d.ts.map +1 -1
  34. package/lib/internal/template/table/body-cell/index.js +9 -4
  35. package/lib/internal/template/table/body-cell/index.js.map +1 -1
  36. package/lib/internal/template/table/body-cell/inline-editor.d.ts +1 -1
  37. package/lib/internal/template/table/body-cell/inline-editor.d.ts.map +1 -1
  38. package/lib/internal/template/table/body-cell/inline-editor.js +5 -3
  39. package/lib/internal/template/table/body-cell/inline-editor.js.map +1 -1
  40. package/lib/internal/template/table/body-cell/styles.css.js +40 -18
  41. package/lib/internal/template/table/body-cell/styles.scoped.css +226 -56
  42. package/lib/internal/template/table/body-cell/styles.selectors.js +40 -18
  43. package/lib/internal/template/table/header-cell/index.js +1 -1
  44. package/lib/internal/template/table/header-cell/index.js.map +1 -1
  45. package/lib/internal/template/table/interfaces.d.ts +6 -0
  46. package/lib/internal/template/table/interfaces.d.ts.map +1 -1
  47. package/lib/internal/template/table/interfaces.js.map +1 -1
  48. package/lib/internal/template/table/internal.d.ts.map +1 -1
  49. package/lib/internal/template/table/internal.js +20 -18
  50. package/lib/internal/template/table/internal.js.map +1 -1
  51. package/lib/internal/template/table/selection-control/index.d.ts +2 -8
  52. package/lib/internal/template/table/selection-control/index.d.ts.map +1 -1
  53. package/lib/internal/template/table/selection-control/index.js.map +1 -1
  54. package/lib/internal/template/table/table-wrapper.d.ts +13 -0
  55. package/lib/internal/template/table/table-wrapper.d.ts.map +1 -0
  56. package/lib/internal/template/table/table-wrapper.js +15 -0
  57. package/lib/internal/template/table/table-wrapper.js.map +1 -0
  58. package/lib/internal/template/table/thead.d.ts +2 -2
  59. package/lib/internal/template/table/thead.d.ts.map +1 -1
  60. package/lib/internal/template/table/thead.js +3 -3
  61. package/lib/internal/template/table/thead.js.map +1 -1
  62. package/lib/internal/template/table/use-column-widths.js +1 -1
  63. package/lib/internal/template/table/use-column-widths.js.map +1 -1
  64. package/lib/internal/template/table/use-selection.d.ts +12 -18
  65. package/lib/internal/template/table/use-selection.d.ts.map +1 -1
  66. package/lib/internal/template/table/use-selection.js +20 -12
  67. package/lib/internal/template/table/use-selection.js.map +1 -1
  68. package/lib/internal/template/table/use-table-focus-navigation.d.ts.map +1 -1
  69. package/lib/internal/template/table/use-table-focus-navigation.js +9 -34
  70. package/lib/internal/template/table/use-table-focus-navigation.js.map +1 -1
  71. package/lib/internal/template/test-utils/dom/table/index.d.ts +3 -0
  72. package/lib/internal/template/test-utils/dom/table/index.js +16 -15
  73. package/lib/internal/template/test-utils/dom/table/index.js.map +1 -1
  74. package/lib/internal/template/test-utils/selectors/table/index.d.ts +3 -0
  75. package/lib/internal/template/test-utils/selectors/table/index.js +16 -15
  76. package/lib/internal/template/test-utils/selectors/table/index.js.map +1 -1
  77. package/lib/internal/template/test-utils/tsconfig.tsbuildinfo +1 -1
  78. package/lib/internal/template/tiles/styles.css.js +28 -28
  79. package/lib/internal/template/tiles/styles.scoped.css +69 -69
  80. package/lib/internal/template/tiles/styles.selectors.js +28 -28
  81. package/lib/internal/template/token-group/styles.css.js +7 -7
  82. package/lib/internal/template/token-group/styles.scoped.css +17 -17
  83. package/lib/internal/template/token-group/styles.selectors.js +7 -7
  84. package/package.json +1 -1
  85. package/lib/internal/scss/table/header-cell/styles.scss +0 -160
  86. package/lib/internal/template/table/header-cell/styles.css.js +0 -24
  87. package/lib/internal/template/table/header-cell/styles.scoped.css +0 -252
  88. package/lib/internal/template/table/header-cell/styles.selectors.js +0 -25
@@ -94,16 +94,16 @@ surrounding text. (WCAG F73) https://www.w3.org/WAI/WCAG21/Techniques/failures/F
94
94
  Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
95
95
  SPDX-License-Identifier: Apache-2.0
96
96
  */
97
- .awsui_button-trigger_18eso_1gx6f_97 > .awsui_arrow_18eso_1gx6f_97:not(#\9) {
97
+ .awsui_button-trigger_18eso_170ad_97 > .awsui_arrow_18eso_170ad_97:not(#\9) {
98
98
  transition: transform var(--motion-duration-rotate-180-ofa1ir, 135ms) var(--motion-easing-rotate-180-3rbbga, cubic-bezier(0.165, 0.84, 0.44, 1));
99
99
  }
100
100
  @media (prefers-reduced-motion: reduce) {
101
- .awsui_button-trigger_18eso_1gx6f_97 > .awsui_arrow_18eso_1gx6f_97:not(#\9) {
101
+ .awsui_button-trigger_18eso_170ad_97 > .awsui_arrow_18eso_170ad_97:not(#\9) {
102
102
  animation: none;
103
103
  transition: none;
104
104
  }
105
105
  }
106
- .awsui-motion-disabled .awsui_button-trigger_18eso_1gx6f_97 > .awsui_arrow_18eso_1gx6f_97:not(#\9), .awsui-mode-entering .awsui_button-trigger_18eso_1gx6f_97 > .awsui_arrow_18eso_1gx6f_97:not(#\9) {
106
+ .awsui-motion-disabled .awsui_button-trigger_18eso_170ad_97 > .awsui_arrow_18eso_170ad_97:not(#\9), .awsui-mode-entering .awsui_button-trigger_18eso_170ad_97 > .awsui_arrow_18eso_170ad_97:not(#\9) {
107
107
  animation: none;
108
108
  transition: none;
109
109
  }
@@ -112,7 +112,7 @@ surrounding text. (WCAG F73) https://www.w3.org/WAI/WCAG21/Techniques/failures/F
112
112
  Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
113
113
  SPDX-License-Identifier: Apache-2.0
114
114
  */
115
- .awsui_button-trigger_18eso_1gx6f_97:not(#\9) {
115
+ .awsui_button-trigger_18eso_170ad_97:not(#\9) {
116
116
  /* stylelint-disable-next-line plugin/no-unsupported-browser-features */
117
117
  border-collapse: separate;
118
118
  border-spacing: 0;
@@ -160,58 +160,58 @@ surrounding text. (WCAG F73) https://www.w3.org/WAI/WCAG21/Techniques/failures/F
160
160
  border: var(--border-field-width-y6x4sn, 1px) solid var(--color-border-input-default-t7b5of, #879596);
161
161
  min-height: var(--size-vertical-input-ikahdk, 32px);
162
162
  }
163
- .awsui_button-trigger_18eso_1gx6f_97.awsui_has-caret_18eso_1gx6f_137:not(#\9) {
163
+ .awsui_button-trigger_18eso_170ad_97.awsui_has-caret_18eso_170ad_137:not(#\9) {
164
164
  padding-right: var(--space-field-icon-offset-alfd6o, 32px);
165
165
  }
166
- .awsui_button-trigger_18eso_1gx6f_97 > .awsui_placeholder_18eso_1gx6f_140:not(#\9) {
166
+ .awsui_button-trigger_18eso_170ad_97 > .awsui_placeholder_18eso_170ad_140:not(#\9) {
167
167
  color: var(--color-text-input-placeholder-rtvjp5, #687078);
168
168
  font-style: italic;
169
169
  }
170
- .awsui_button-trigger_18eso_1gx6f_97 > .awsui_arrow_18eso_1gx6f_97:not(#\9) {
170
+ .awsui_button-trigger_18eso_170ad_97 > .awsui_arrow_18eso_170ad_97:not(#\9) {
171
171
  position: absolute;
172
172
  right: var(--space-field-horizontal-z3i1c8, 8px);
173
173
  top: calc(50% - var(--font-body-m-line-height-i7xxvv, 22px) / 2);
174
174
  color: var(--color-text-button-inline-icon-default-qhj7jl, #545b64);
175
175
  }
176
- .awsui_button-trigger_18eso_1gx6f_97:not(#\9):hover > .awsui_arrow_18eso_1gx6f_97 {
176
+ .awsui_button-trigger_18eso_170ad_97:not(#\9):hover > .awsui_arrow_18eso_170ad_97 {
177
177
  color: var(--color-text-button-inline-icon-hover-84mkuo, #16191f);
178
178
  }
179
- .awsui_button-trigger_18eso_1gx6f_97.awsui_pressed_18eso_1gx6f_153 > .awsui_arrow_18eso_1gx6f_97:not(#\9) {
179
+ .awsui_button-trigger_18eso_170ad_97.awsui_pressed_18eso_170ad_153 > .awsui_arrow_18eso_170ad_97:not(#\9) {
180
180
  transform: rotate(-180deg);
181
181
  }
182
- .awsui_button-trigger_18eso_1gx6f_97.awsui_disabled_18eso_1gx6f_156:not(#\9) {
182
+ .awsui_button-trigger_18eso_170ad_97.awsui_disabled_18eso_170ad_156:not(#\9) {
183
183
  background-color: var(--color-background-input-disabled-5vlksk, #eaeded);
184
184
  border: var(--border-field-width-y6x4sn, 1px) solid var(--color-border-input-disabled-ek5o0x, #eaeded);
185
185
  color: var(--color-text-input-disabled-zfb02z, #879596);
186
186
  cursor: auto;
187
187
  }
188
- .awsui_button-trigger_18eso_1gx6f_97.awsui_disabled_18eso_1gx6f_156 > .awsui_arrow_18eso_1gx6f_97:not(#\9) {
188
+ .awsui_button-trigger_18eso_170ad_97.awsui_disabled_18eso_170ad_156 > .awsui_arrow_18eso_170ad_97:not(#\9) {
189
189
  color: var(--color-text-button-inline-icon-disabled-sesloi, #aab7b8);
190
190
  }
191
- .awsui_button-trigger_18eso_1gx6f_97.awsui_disabled_18eso_1gx6f_156.awsui_in-filtering-token_18eso_1gx6f_165:not(#\9) {
191
+ .awsui_button-trigger_18eso_170ad_97.awsui_disabled_18eso_170ad_156.awsui_in-filtering-token_18eso_170ad_165:not(#\9) {
192
192
  border-color: var(--color-border-control-disabled-zgidl5, #d5dbdb);
193
193
  }
194
- .awsui_button-trigger_18eso_1gx6f_97.awsui_disabled_18eso_1gx6f_156 > .awsui_placeholder_18eso_1gx6f_140:not(#\9) {
194
+ .awsui_button-trigger_18eso_170ad_97.awsui_disabled_18eso_170ad_156 > .awsui_placeholder_18eso_170ad_140:not(#\9) {
195
195
  color: var(--color-text-input-placeholder-disabled-60yf1a, #687078);
196
196
  }
197
- .awsui_button-trigger_18eso_1gx6f_97.awsui_read-only_18eso_1gx6f_171:not(#\9) {
197
+ .awsui_button-trigger_18eso_170ad_97.awsui_read-only_18eso_170ad_171:not(#\9) {
198
198
  background-color: var(--color-background-input-default-ewlytp, #ffffff);
199
199
  border: var(--border-field-width-y6x4sn, 1px) solid var(--color-border-input-disabled-ek5o0x, #eaeded);
200
200
  }
201
- .awsui_button-trigger_18eso_1gx6f_97:not(#\9):focus {
201
+ .awsui_button-trigger_18eso_170ad_97:not(#\9):focus {
202
202
  outline: none;
203
203
  text-decoration: none;
204
204
  }
205
- body[data-awsui-focus-visible=true] .awsui_button-trigger_18eso_1gx6f_97:not(#\9):not(.awsui_in-filtering-token_18eso_1gx6f_165):focus {
205
+ body[data-awsui-focus-visible=true] .awsui_button-trigger_18eso_170ad_97:not(#\9):not(.awsui_in-filtering-token_18eso_170ad_165):focus {
206
206
  outline: 2px dotted transparent;
207
207
  border: var(--border-field-width-y6x4sn, 1px) solid var(--color-border-item-focused-n5kd8g, #0073bb);
208
208
  border-radius: var(--border-radius-input-fterib, 2px);
209
209
  box-shadow: 0 0 0 var(--border-control-focus-ring-shadow-spread-glnuoy, 1px) var(--color-border-item-focused-n5kd8g, #0073bb);
210
210
  }
211
- .awsui_button-trigger_18eso_1gx6f_97:not(#\9):not(.awsui_in-filtering-token_18eso_1gx6f_165):invalid {
211
+ .awsui_button-trigger_18eso_170ad_97:not(#\9):not(.awsui_in-filtering-token_18eso_170ad_165):invalid {
212
212
  box-shadow: none;
213
213
  }
214
- .awsui_button-trigger_18eso_1gx6f_97:not(#\9):not(.awsui_in-filtering-token_18eso_1gx6f_165).awsui_invalid_18eso_1gx6f_188, .awsui_button-trigger_18eso_1gx6f_97:not(#\9):not(.awsui_in-filtering-token_18eso_1gx6f_165).awsui_invalid_18eso_1gx6f_188:focus {
214
+ .awsui_button-trigger_18eso_170ad_97:not(#\9):not(.awsui_in-filtering-token_18eso_170ad_165).awsui_invalid_18eso_170ad_188, .awsui_button-trigger_18eso_170ad_97:not(#\9):not(.awsui_in-filtering-token_18eso_170ad_165).awsui_invalid_18eso_170ad_188:focus {
215
215
  color: var(--color-text-status-error-jer77f, #d13212);
216
216
  border-color: var(--color-text-status-error-jer77f, #d13212);
217
217
  padding-left: calc(
@@ -219,23 +219,23 @@ body[data-awsui-focus-visible=true] .awsui_button-trigger_18eso_1gx6f_97:not(#\9
219
219
  );
220
220
  border-left-width: var(--border-invalid-width-glmng5, 4px);
221
221
  }
222
- .awsui_button-trigger_18eso_1gx6f_97:not(#\9):not(.awsui_in-filtering-token_18eso_1gx6f_165).awsui_invalid_18eso_1gx6f_188:focus, .awsui_button-trigger_18eso_1gx6f_97:not(#\9):not(.awsui_in-filtering-token_18eso_1gx6f_165).awsui_invalid_18eso_1gx6f_188:focus:focus {
222
+ .awsui_button-trigger_18eso_170ad_97:not(#\9):not(.awsui_in-filtering-token_18eso_170ad_165).awsui_invalid_18eso_170ad_188:focus, .awsui_button-trigger_18eso_170ad_97:not(#\9):not(.awsui_in-filtering-token_18eso_170ad_165).awsui_invalid_18eso_170ad_188:focus:focus {
223
223
  box-shadow: 0 0 0 var(--border-control-invalid-focus-ring-shadow-spread-6t5p47, 1px) var(--color-border-item-focused-n5kd8g, #0073bb);
224
224
  }
225
- .awsui_button-trigger_18eso_1gx6f_97.awsui_in-filtering-token_18eso_1gx6f_165:not(#\9) {
226
- border-color: var(--color-border-item-selected-pr9yuf, #00a1c9);
225
+ .awsui_button-trigger_18eso_170ad_97.awsui_in-filtering-token_18eso_170ad_165:not(#\9) {
226
+ border-color: var(--color-border-item-selected-592lau, #0073bb);
227
227
  border-top-right-radius: 0;
228
228
  border-bottom-right-radius: 0;
229
229
  height: 100%;
230
230
  }
231
- body[data-awsui-focus-visible=true] .awsui_button-trigger_18eso_1gx6f_97.awsui_in-filtering-token_18eso_1gx6f_165:not(#\9):focus {
231
+ body[data-awsui-focus-visible=true] .awsui_button-trigger_18eso_170ad_97.awsui_in-filtering-token_18eso_170ad_165:not(#\9):focus {
232
232
  position: relative;
233
233
  }
234
- body[data-awsui-focus-visible=true] .awsui_button-trigger_18eso_1gx6f_97.awsui_in-filtering-token_18eso_1gx6f_165:not(#\9):focus {
234
+ body[data-awsui-focus-visible=true] .awsui_button-trigger_18eso_170ad_97.awsui_in-filtering-token_18eso_170ad_165:not(#\9):focus {
235
235
  outline: 2px dotted transparent;
236
236
  outline-offset: calc(var(--space-filtering-token-operation-select-focus-outline-gutter-0nruvp, 0px) - 1px);
237
237
  }
238
- body[data-awsui-focus-visible=true] .awsui_button-trigger_18eso_1gx6f_97.awsui_in-filtering-token_18eso_1gx6f_165:not(#\9):focus::before {
238
+ body[data-awsui-focus-visible=true] .awsui_button-trigger_18eso_170ad_97.awsui_in-filtering-token_18eso_170ad_165:not(#\9):focus::before {
239
239
  content: " ";
240
240
  display: block;
241
241
  position: absolute;
@@ -2,14 +2,14 @@
2
2
  // es-module interop with Babel and Typescript
3
3
  Object.defineProperty(exports, "__esModule", { value: true });
4
4
  module.exports.default = {
5
- "button-trigger": "awsui_button-trigger_18eso_1gx6f_97",
6
- "arrow": "awsui_arrow_18eso_1gx6f_97",
7
- "has-caret": "awsui_has-caret_18eso_1gx6f_137",
8
- "placeholder": "awsui_placeholder_18eso_1gx6f_140",
9
- "pressed": "awsui_pressed_18eso_1gx6f_153",
10
- "disabled": "awsui_disabled_18eso_1gx6f_156",
11
- "in-filtering-token": "awsui_in-filtering-token_18eso_1gx6f_165",
12
- "read-only": "awsui_read-only_18eso_1gx6f_171",
13
- "invalid": "awsui_invalid_18eso_1gx6f_188"
5
+ "button-trigger": "awsui_button-trigger_18eso_170ad_97",
6
+ "arrow": "awsui_arrow_18eso_170ad_97",
7
+ "has-caret": "awsui_has-caret_18eso_170ad_137",
8
+ "placeholder": "awsui_placeholder_18eso_170ad_140",
9
+ "pressed": "awsui_pressed_18eso_170ad_153",
10
+ "disabled": "awsui_disabled_18eso_170ad_156",
11
+ "in-filtering-token": "awsui_in-filtering-token_18eso_170ad_165",
12
+ "read-only": "awsui_read-only_18eso_170ad_171",
13
+ "invalid": "awsui_invalid_18eso_170ad_188"
14
14
  };
15
15
 
@@ -1,12 +1,12 @@
1
1
 
2
2
  import './styles.scoped.css';
3
3
  export default {
4
- "root": "awsui_root_10m3l_ceye0_97",
5
- "token": "awsui_token_10m3l_ceye0_102",
6
- "show-operation": "awsui_show-operation_10m3l_ceye0_113",
7
- "select": "awsui_select_10m3l_ceye0_119",
8
- "token-content": "awsui_token-content_10m3l_ceye0_123",
9
- "dismiss-button": "awsui_dismiss-button_10m3l_ceye0_127",
10
- "token-disabled": "awsui_token-disabled_10m3l_ceye0_163"
4
+ "root": "awsui_root_10m3l_pt0za_97",
5
+ "token": "awsui_token_10m3l_pt0za_102",
6
+ "show-operation": "awsui_show-operation_10m3l_pt0za_113",
7
+ "select": "awsui_select_10m3l_pt0za_119",
8
+ "token-content": "awsui_token-content_10m3l_pt0za_123",
9
+ "dismiss-button": "awsui_dismiss-button_10m3l_pt0za_127",
10
+ "token-disabled": "awsui_token-disabled_10m3l_pt0za_163"
11
11
  };
12
12
 
@@ -94,13 +94,13 @@ surrounding text. (WCAG F73) https://www.w3.org/WAI/WCAG21/Techniques/failures/F
94
94
  Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
95
95
  SPDX-License-Identifier: Apache-2.0
96
96
  */
97
- .awsui_root_10m3l_ceye0_97:not(#\9) {
97
+ .awsui_root_10m3l_pt0za_97:not(#\9) {
98
98
  display: flex;
99
99
  align-content: stretch;
100
100
  }
101
101
 
102
- .awsui_token_10m3l_ceye0_102:not(#\9) {
103
- border: var(--border-field-width-y6x4sn, 1px) solid var(--color-border-item-selected-pr9yuf, #00a1c9);
102
+ .awsui_token_10m3l_pt0za_102:not(#\9) {
103
+ border: var(--border-field-width-y6x4sn, 1px) solid var(--color-border-item-selected-592lau, #0073bb);
104
104
  display: flex;
105
105
  align-items: stretch;
106
106
  background: var(--color-background-item-selected-fva7ca, #f1faff);
@@ -110,37 +110,37 @@ surrounding text. (WCAG F73) https://www.w3.org/WAI/WCAG21/Techniques/failures/F
110
110
  box-sizing: border-box;
111
111
  }
112
112
 
113
- .awsui_show-operation_10m3l_ceye0_113:not(#\9) {
113
+ .awsui_show-operation_10m3l_pt0za_113:not(#\9) {
114
114
  border-left: none;
115
115
  border-top-left-radius: 0;
116
116
  border-bottom-left-radius: 0;
117
117
  }
118
118
 
119
- .awsui_select_10m3l_ceye0_119:not(#\9) {
119
+ .awsui_select_10m3l_pt0za_119:not(#\9) {
120
120
  /* used in test-utils */
121
121
  }
122
122
 
123
- .awsui_token-content_10m3l_ceye0_123:not(#\9) {
123
+ .awsui_token-content_10m3l_pt0za_123:not(#\9) {
124
124
  padding: var(--space-scaled-xxs-95dhkm, 4px) var(--space-field-horizontal-z3i1c8, 8px);
125
125
  }
126
126
 
127
- .awsui_dismiss-button_10m3l_ceye0_127:not(#\9) {
127
+ .awsui_dismiss-button_10m3l_pt0za_127:not(#\9) {
128
128
  width: 30px;
129
129
  margin: 0;
130
130
  border: none;
131
131
  padding: 0 var(--space-xxs-ynfts5, 4px);
132
132
  color: var(--color-text-interactive-default-9me1cm, #545b64);
133
133
  background-color: transparent;
134
- border-left: var(--border-field-width-y6x4sn, 1px) solid var(--color-border-item-selected-pr9yuf, #00a1c9);
134
+ border-left: var(--border-field-width-y6x4sn, 1px) solid var(--color-border-item-selected-592lau, #0073bb);
135
135
  }
136
- body[data-awsui-focus-visible=true] .awsui_dismiss-button_10m3l_ceye0_127:not(#\9):focus {
136
+ body[data-awsui-focus-visible=true] .awsui_dismiss-button_10m3l_pt0za_127:not(#\9):focus {
137
137
  position: relative;
138
138
  }
139
- body[data-awsui-focus-visible=true] .awsui_dismiss-button_10m3l_ceye0_127:not(#\9):focus {
139
+ body[data-awsui-focus-visible=true] .awsui_dismiss-button_10m3l_pt0za_127:not(#\9):focus {
140
140
  outline: 2px dotted transparent;
141
141
  outline-offset: calc(var(--space-filtering-token-dismiss-button-focus-outline-gutter-25v038, 0px) - 1px);
142
142
  }
143
- body[data-awsui-focus-visible=true] .awsui_dismiss-button_10m3l_ceye0_127:not(#\9):focus::before {
143
+ body[data-awsui-focus-visible=true] .awsui_dismiss-button_10m3l_pt0za_127:not(#\9):focus::before {
144
144
  content: " ";
145
145
  display: block;
146
146
  position: absolute;
@@ -151,22 +151,22 @@ body[data-awsui-focus-visible=true] .awsui_dismiss-button_10m3l_ceye0_127:not(#\
151
151
  border-radius: var(--border-radius-control-default-focus-ring-hekmgc, 2px);
152
152
  box-shadow: 0 0 0 2px var(--color-border-item-focused-n5kd8g, #0073bb);
153
153
  }
154
- .awsui_dismiss-button_10m3l_ceye0_127:not(#\9):focus {
154
+ .awsui_dismiss-button_10m3l_pt0za_127:not(#\9):focus {
155
155
  outline: none;
156
156
  text-decoration: none;
157
157
  }
158
- .awsui_dismiss-button_10m3l_ceye0_127:not(#\9):hover {
158
+ .awsui_dismiss-button_10m3l_pt0za_127:not(#\9):hover {
159
159
  cursor: pointer;
160
160
  color: var(--color-text-interactive-hover-79wpl9, #16191f);
161
161
  }
162
162
 
163
- .awsui_token-disabled_10m3l_ceye0_163:not(#\9) {
163
+ .awsui_token-disabled_10m3l_pt0za_163:not(#\9) {
164
164
  border-color: var(--color-border-control-disabled-zgidl5, #d5dbdb);
165
165
  background-color: var(--color-background-container-content-o88wxm, #ffffff);
166
166
  color: var(--color-text-disabled-pjiy51, #aab7b8);
167
167
  pointer-events: none;
168
168
  }
169
- .awsui_token-disabled_10m3l_ceye0_163 > .awsui_dismiss-button_10m3l_ceye0_127:not(#\9) {
169
+ .awsui_token-disabled_10m3l_pt0za_163 > .awsui_dismiss-button_10m3l_pt0za_127:not(#\9) {
170
170
  color: var(--color-text-interactive-disabled-jcikk2, #aab7b8);
171
171
  border-color: var(--color-border-control-disabled-zgidl5, #d5dbdb);
172
172
  }
@@ -2,12 +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
- "root": "awsui_root_10m3l_ceye0_97",
6
- "token": "awsui_token_10m3l_ceye0_102",
7
- "show-operation": "awsui_show-operation_10m3l_ceye0_113",
8
- "select": "awsui_select_10m3l_ceye0_119",
9
- "token-content": "awsui_token-content_10m3l_ceye0_123",
10
- "dismiss-button": "awsui_dismiss-button_10m3l_ceye0_127",
11
- "token-disabled": "awsui_token-disabled_10m3l_ceye0_163"
5
+ "root": "awsui_root_10m3l_pt0za_97",
6
+ "token": "awsui_token_10m3l_pt0za_102",
7
+ "show-operation": "awsui_show-operation_10m3l_pt0za_113",
8
+ "select": "awsui_select_10m3l_pt0za_119",
9
+ "token-content": "awsui_token-content_10m3l_pt0za_123",
10
+ "dismiss-button": "awsui_dismiss-button_10m3l_pt0za_127",
11
+ "token-disabled": "awsui_token-disabled_10m3l_pt0za_163"
12
12
  };
13
13
 
@@ -1,6 +1,6 @@
1
1
 
2
2
  export var PACKAGE_SOURCE = 'components';
3
- export var PACKAGE_VERSION = '3.0.0 (7bf7790)';
3
+ export var PACKAGE_VERSION = '3.0.0 (6f85b64)';
4
4
  export var THEME = 'open-source-visual-refresh';
5
5
  export var ALWAYS_VISUAL_REFRESH = true;
6
6
 
@@ -3,6 +3,6 @@ import { InternalBaseComponentProps } from '../internal/hooks/use-base-component
3
3
  import { ModalProps } from './interfaces';
4
4
  import { SomeRequired } from '../internal/types';
5
5
  type InternalModalProps = SomeRequired<ModalProps, 'size' | 'closeAriaLabel'> & InternalBaseComponentProps;
6
- export default function InternalModal({ size, visible, header, children, footer, disableContentPaddings, onDismiss, modalRoot, __internalRootRef, ...rest }: InternalModalProps): JSX.Element;
6
+ export default function InternalModal({ modalRoot, ...rest }: InternalModalProps): JSX.Element;
7
7
  export {};
8
8
  //# sourceMappingURL=internal.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"internal.d.ts","sourceRoot":"lib/default/","sources":["modal/internal.tsx"],"names":[],"mappings":";AAOA,OAAO,EAAE,0BAA0B,EAAE,MAAM,sCAAsC,CAAC;AAYlF,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE1C,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAKjD,KAAK,kBAAkB,GAAG,YAAY,CAAC,UAAU,EAAE,MAAM,GAAG,gBAAgB,CAAC,GAAG,0BAA0B,CAAC;AAE3G,MAAM,CAAC,OAAO,UAAU,aAAa,CAAC,EACpC,IAAI,EACJ,OAAO,EACP,MAAM,EACN,QAAQ,EACR,MAAM,EACN,sBAAsB,EACtB,SAAS,EACT,SAAS,EACT,iBAAwB,EACxB,GAAG,IAAI,EACR,EAAE,kBAAkB,eAwHpB"}
1
+ {"version":3,"file":"internal.d.ts","sourceRoot":"lib/default/","sources":["modal/internal.tsx"],"names":[],"mappings":";AAOA,OAAO,EAAE,0BAA0B,EAAE,MAAM,sCAAsC,CAAC;AAYlF,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE1C,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAKjD,KAAK,kBAAkB,GAAG,YAAY,CAAC,UAAU,EAAE,MAAM,GAAG,gBAAgB,CAAC,GAAG,0BAA0B,CAAC;AAE3G,MAAM,CAAC,OAAO,UAAU,aAAa,CAAC,EAAE,SAAS,EAAE,GAAG,IAAI,EAAE,EAAE,kBAAkB,eAM/E"}
@@ -11,7 +11,7 @@ import { useUniqueId } from '../internal/hooks/use-unique-id';
11
11
  import { InternalButton } from '../button/internal';
12
12
  import InternalHeader from '../header/internal';
13
13
  import Portal from '../internal/components/portal';
14
- import { useContainerBreakpoints } from '../internal/hooks/container-queries';
14
+ import { useContainerBreakpoints, useContainerQuery } from '../internal/hooks/container-queries';
15
15
  import { useVisualRefresh } from '../internal/hooks/use-visual-mode';
16
16
  import { FormFieldContext } from '../internal/context/form-field-context';
17
17
  import { disableBodyScrolling, enableBodyScrolling } from './body-scroll';
@@ -20,7 +20,14 @@ import FocusLock from '../internal/components/focus-lock';
20
20
  import { useInternalI18n } from '../internal/i18n/context';
21
21
  import { useIntersectionObserver } from '../internal/hooks/use-intersection-observer';
22
22
  export default function InternalModal(_a) {
23
- var { size, visible, header, children, footer, disableContentPaddings, onDismiss, modalRoot, __internalRootRef = null } = _a, rest = __rest(_a, ["size", "visible", "header", "children", "footer", "disableContentPaddings", "onDismiss", "modalRoot", "__internalRootRef"]);
23
+ var { modalRoot } = _a, rest = __rest(_a, ["modalRoot"]);
24
+ return (React.createElement(Portal, { container: modalRoot },
25
+ React.createElement(InnerModal, Object.assign({}, rest))));
26
+ }
27
+ // Separate component to prevent the Portal from getting in the way of refs, as it needs extra cycles to render the inner components.
28
+ // useContainerQuery needs its targeted element to exist on the first render in order to work properly.
29
+ function InnerModal(_a) {
30
+ var { size, visible, header, children, footer, disableContentPaddings, onDismiss, __internalRootRef = null } = _a, rest = __rest(_a, ["size", "visible", "header", "children", "footer", "disableContentPaddings", "onDismiss", "__internalRootRef"]);
24
31
  const instanceUniqueId = useUniqueId();
25
32
  const headerId = `${rest.id || instanceUniqueId}-header`;
26
33
  const lastMouseDownElementRef = useRef(null);
@@ -72,18 +79,20 @@ export default function InternalModal(_a) {
72
79
  // We use an empty div element at the end of the content slot as a sentinel
73
80
  // to detect when the user has scrolled to the bottom.
74
81
  const { ref: stickySentinelRef, isIntersecting: footerStuck } = useIntersectionObserver();
75
- return (React.createElement(Portal, { container: modalRoot },
76
- React.createElement(FormFieldContext.Provider, { value: {} },
77
- React.createElement("div", Object.assign({}, baseProps, { className: clsx(styles.root, { [styles.hidden]: !visible }, baseProps.className, isRefresh && styles.refresh), role: "dialog", "aria-modal": true, "aria-labelledby": headerId, onMouseDown: onOverlayMouseDown, onClick: onOverlayClick, ref: mergedRef }),
78
- React.createElement(FocusLock, { disabled: !visible, autoFocus: true, restoreFocus: true, className: styles['focus-lock'] },
79
- React.createElement("div", { className: clsx(styles.dialog, styles[size], styles[`breakpoint-${breakpoint}`], isRefresh && styles.refresh), onKeyDown: escKeyHandler, tabIndex: -1 },
80
- React.createElement("div", { className: styles.container },
81
- React.createElement("div", { className: styles.header },
82
- React.createElement(InternalHeader, { variant: "h2", __disableActionsWrapping: true, actions: React.createElement(InternalButton, { ariaLabel: closeAriaLabel, className: styles['dismiss-control'], variant: "modal-dismiss", iconName: "close", formAction: "none", onClick: onCloseButtonClick }) },
83
- React.createElement("span", { id: headerId, className: styles['header--text'] }, header))),
84
- React.createElement("div", { className: clsx(styles.content, { [styles['no-paddings']]: disableContentPaddings }) },
85
- children,
86
- React.createElement("div", { ref: stickySentinelRef })),
87
- footer && React.createElement("div", { className: clsx(styles.footer, footerStuck && styles['footer--stuck']) }, footer))))))));
82
+ // Add extra scroll padding to account for the height of the sticky footer,
83
+ // to prevent it from covering focused elements.
84
+ const [footerHeight, footerRef] = useContainerQuery(rect => rect.borderBoxHeight);
85
+ return (React.createElement(FormFieldContext.Provider, { value: {} },
86
+ React.createElement("div", Object.assign({}, baseProps, { className: clsx(styles.root, { [styles.hidden]: !visible }, baseProps.className, isRefresh && styles.refresh), role: "dialog", "aria-modal": true, "aria-labelledby": headerId, onMouseDown: onOverlayMouseDown, onClick: onOverlayClick, ref: mergedRef, style: footerHeight ? { scrollPaddingBottom: footerHeight } : undefined }),
87
+ React.createElement(FocusLock, { disabled: !visible, autoFocus: true, restoreFocus: true, className: styles['focus-lock'] },
88
+ React.createElement("div", { className: clsx(styles.dialog, styles[size], styles[`breakpoint-${breakpoint}`], isRefresh && styles.refresh), onKeyDown: escKeyHandler, tabIndex: -1 },
89
+ React.createElement("div", { className: styles.container },
90
+ React.createElement("div", { className: styles.header },
91
+ React.createElement(InternalHeader, { variant: "h2", __disableActionsWrapping: true, actions: React.createElement(InternalButton, { ariaLabel: closeAriaLabel, className: styles['dismiss-control'], variant: "modal-dismiss", iconName: "close", formAction: "none", onClick: onCloseButtonClick }) },
92
+ React.createElement("span", { id: headerId, className: styles['header--text'] }, header))),
93
+ React.createElement("div", { className: clsx(styles.content, { [styles['no-paddings']]: disableContentPaddings }) },
94
+ children,
95
+ React.createElement("div", { ref: stickySentinelRef })),
96
+ footer && (React.createElement("div", { ref: footerRef, className: clsx(styles.footer, footerStuck && styles['footer--stuck']) }, footer))))))));
88
97
  }
89
98
  //# sourceMappingURL=internal.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"internal.js","sourceRoot":"lib/default/","sources":["modal/internal.tsx"],"names":[],"mappings":"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","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport React, { useEffect, useRef } from 'react';\nimport { useMergeRefs } from '../internal/hooks/use-merge-refs';\nimport clsx from 'clsx';\n\nimport { getBaseProps } from '../internal/base-component';\nimport { InternalBaseComponentProps } from '../internal/hooks/use-base-component';\nimport { fireNonCancelableEvent } from '../internal/events';\nimport { KeyCode } from '../internal/keycode';\nimport { useUniqueId } from '../internal/hooks/use-unique-id';\nimport { InternalButton } from '../button/internal';\nimport InternalHeader from '../header/internal';\nimport Portal from '../internal/components/portal';\nimport { useContainerBreakpoints } from '../internal/hooks/container-queries';\nimport { useVisualRefresh } from '../internal/hooks/use-visual-mode';\nimport { FormFieldContext } from '../internal/context/form-field-context';\n\nimport { disableBodyScrolling, enableBodyScrolling } from './body-scroll';\nimport { ModalProps } from './interfaces';\nimport styles from './styles.css.js';\nimport { SomeRequired } from '../internal/types';\nimport FocusLock from '../internal/components/focus-lock';\nimport { useInternalI18n } from '../internal/i18n/context';\nimport { useIntersectionObserver } from '../internal/hooks/use-intersection-observer';\n\ntype InternalModalProps = SomeRequired<ModalProps, 'size' | 'closeAriaLabel'> & InternalBaseComponentProps;\n\nexport default function InternalModal({\n size,\n visible,\n header,\n children,\n footer,\n disableContentPaddings,\n onDismiss,\n modalRoot,\n __internalRootRef = null,\n ...rest\n}: InternalModalProps) {\n const instanceUniqueId = useUniqueId();\n const headerId = `${rest.id || instanceUniqueId}-header`;\n const lastMouseDownElementRef = useRef<HTMLElement | null>(null);\n const [breakpoint, breakpointsRef] = useContainerBreakpoints(['xs']);\n\n const i18n = useInternalI18n('modal');\n const closeAriaLabel = i18n('closeAriaLabel', rest.closeAriaLabel);\n\n const refObject = useRef<HTMLDivElement>(null);\n const mergedRef = useMergeRefs(breakpointsRef, refObject, __internalRootRef);\n\n const isRefresh = useVisualRefresh();\n\n const baseProps = getBaseProps(rest);\n\n // enable body scroll and restore focus if unmounting while visible\n useEffect(() => {\n return () => {\n enableBodyScrolling();\n };\n }, []);\n\n // enable / disable body scroll\n useEffect(() => {\n if (visible) {\n disableBodyScrolling();\n } else {\n enableBodyScrolling();\n }\n }, [visible]);\n\n // Because we hide the element with styles (and not actually detach it from DOM), we need to scroll to top\n useEffect(() => {\n if (visible && refObject.current) {\n refObject.current.scrollTop = 0;\n }\n }, [visible]);\n\n const dismiss = (reason: string) => fireNonCancelableEvent(onDismiss, { reason });\n\n const onOverlayMouseDown = (event: React.MouseEvent) => {\n lastMouseDownElementRef.current = event.target as HTMLElement;\n };\n const onOverlayClick = (event: React.MouseEvent) => {\n const overlay = refObject.current;\n const lastClicked = lastMouseDownElementRef.current;\n\n if (event.target === overlay && lastClicked === overlay) {\n dismiss('overlay');\n }\n };\n const onCloseButtonClick = () => dismiss('closeButton');\n const escKeyHandler = (event: React.KeyboardEvent) => {\n if (event.keyCode === KeyCode.escape) {\n dismiss('keyboard');\n }\n };\n\n // We use an empty div element at the end of the content slot as a sentinel\n // to detect when the user has scrolled to the bottom.\n const { ref: stickySentinelRef, isIntersecting: footerStuck } = useIntersectionObserver();\n\n return (\n <Portal container={modalRoot}>\n <FormFieldContext.Provider value={{}}>\n <div\n {...baseProps}\n className={clsx(styles.root, { [styles.hidden]: !visible }, baseProps.className, isRefresh && styles.refresh)}\n role=\"dialog\"\n aria-modal={true}\n aria-labelledby={headerId}\n onMouseDown={onOverlayMouseDown}\n onClick={onOverlayClick}\n ref={mergedRef}\n >\n <FocusLock disabled={!visible} autoFocus={true} restoreFocus={true} className={styles['focus-lock']}>\n <div\n className={clsx(\n styles.dialog,\n styles[size],\n styles[`breakpoint-${breakpoint}`],\n isRefresh && styles.refresh\n )}\n onKeyDown={escKeyHandler}\n tabIndex={-1}\n >\n <div className={styles.container}>\n <div className={styles.header}>\n <InternalHeader\n variant=\"h2\"\n __disableActionsWrapping={true}\n actions={\n <InternalButton\n ariaLabel={closeAriaLabel}\n className={styles['dismiss-control']}\n variant=\"modal-dismiss\"\n iconName=\"close\"\n formAction=\"none\"\n onClick={onCloseButtonClick}\n />\n }\n >\n <span id={headerId} className={styles['header--text']}>\n {header}\n </span>\n </InternalHeader>\n </div>\n <div className={clsx(styles.content, { [styles['no-paddings']]: disableContentPaddings })}>\n {children}\n <div ref={stickySentinelRef} />\n </div>\n {footer && <div className={clsx(styles.footer, footerStuck && styles['footer--stuck'])}>{footer}</div>}\n </div>\n </div>\n </FocusLock>\n </div>\n </FormFieldContext.Provider>\n </Portal>\n );\n}\n"]}
1
+ {"version":3,"file":"internal.js","sourceRoot":"lib/default/","sources":["modal/internal.tsx"],"names":[],"mappings":"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","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport React, { useEffect, useRef } from 'react';\nimport { useMergeRefs } from '../internal/hooks/use-merge-refs';\nimport clsx from 'clsx';\n\nimport { getBaseProps } from '../internal/base-component';\nimport { InternalBaseComponentProps } from '../internal/hooks/use-base-component';\nimport { fireNonCancelableEvent } from '../internal/events';\nimport { KeyCode } from '../internal/keycode';\nimport { useUniqueId } from '../internal/hooks/use-unique-id';\nimport { InternalButton } from '../button/internal';\nimport InternalHeader from '../header/internal';\nimport Portal from '../internal/components/portal';\nimport { useContainerBreakpoints, useContainerQuery } from '../internal/hooks/container-queries';\nimport { useVisualRefresh } from '../internal/hooks/use-visual-mode';\nimport { FormFieldContext } from '../internal/context/form-field-context';\n\nimport { disableBodyScrolling, enableBodyScrolling } from './body-scroll';\nimport { ModalProps } from './interfaces';\nimport styles from './styles.css.js';\nimport { SomeRequired } from '../internal/types';\nimport FocusLock from '../internal/components/focus-lock';\nimport { useInternalI18n } from '../internal/i18n/context';\nimport { useIntersectionObserver } from '../internal/hooks/use-intersection-observer';\n\ntype InternalModalProps = SomeRequired<ModalProps, 'size' | 'closeAriaLabel'> & InternalBaseComponentProps;\n\nexport default function InternalModal({ modalRoot, ...rest }: InternalModalProps) {\n return (\n <Portal container={modalRoot}>\n <InnerModal {...rest} />\n </Portal>\n );\n}\n\n// Separate component to prevent the Portal from getting in the way of refs, as it needs extra cycles to render the inner components.\n// useContainerQuery needs its targeted element to exist on the first render in order to work properly.\nfunction InnerModal({\n size,\n visible,\n header,\n children,\n footer,\n disableContentPaddings,\n onDismiss,\n __internalRootRef = null,\n ...rest\n}: InternalModalProps) {\n const instanceUniqueId = useUniqueId();\n const headerId = `${rest.id || instanceUniqueId}-header`;\n const lastMouseDownElementRef = useRef<HTMLElement | null>(null);\n const [breakpoint, breakpointsRef] = useContainerBreakpoints(['xs']);\n\n const i18n = useInternalI18n('modal');\n const closeAriaLabel = i18n('closeAriaLabel', rest.closeAriaLabel);\n\n const refObject = useRef<HTMLDivElement>(null);\n const mergedRef = useMergeRefs(breakpointsRef, refObject, __internalRootRef);\n\n const isRefresh = useVisualRefresh();\n\n const baseProps = getBaseProps(rest);\n\n // enable body scroll and restore focus if unmounting while visible\n useEffect(() => {\n return () => {\n enableBodyScrolling();\n };\n }, []);\n\n // enable / disable body scroll\n useEffect(() => {\n if (visible) {\n disableBodyScrolling();\n } else {\n enableBodyScrolling();\n }\n }, [visible]);\n\n // Because we hide the element with styles (and not actually detach it from DOM), we need to scroll to top\n useEffect(() => {\n if (visible && refObject.current) {\n refObject.current.scrollTop = 0;\n }\n }, [visible]);\n\n const dismiss = (reason: string) => fireNonCancelableEvent(onDismiss, { reason });\n\n const onOverlayMouseDown = (event: React.MouseEvent) => {\n lastMouseDownElementRef.current = event.target as HTMLElement;\n };\n const onOverlayClick = (event: React.MouseEvent) => {\n const overlay = refObject.current;\n const lastClicked = lastMouseDownElementRef.current;\n\n if (event.target === overlay && lastClicked === overlay) {\n dismiss('overlay');\n }\n };\n const onCloseButtonClick = () => dismiss('closeButton');\n const escKeyHandler = (event: React.KeyboardEvent) => {\n if (event.keyCode === KeyCode.escape) {\n dismiss('keyboard');\n }\n };\n\n // We use an empty div element at the end of the content slot as a sentinel\n // to detect when the user has scrolled to the bottom.\n const { ref: stickySentinelRef, isIntersecting: footerStuck } = useIntersectionObserver();\n\n // Add extra scroll padding to account for the height of the sticky footer,\n // to prevent it from covering focused elements.\n const [footerHeight, footerRef] = useContainerQuery(rect => rect.borderBoxHeight);\n\n return (\n <FormFieldContext.Provider value={{}}>\n <div\n {...baseProps}\n className={clsx(styles.root, { [styles.hidden]: !visible }, baseProps.className, isRefresh && styles.refresh)}\n role=\"dialog\"\n aria-modal={true}\n aria-labelledby={headerId}\n onMouseDown={onOverlayMouseDown}\n onClick={onOverlayClick}\n ref={mergedRef}\n style={footerHeight ? { scrollPaddingBottom: footerHeight } : undefined}\n >\n <FocusLock disabled={!visible} autoFocus={true} restoreFocus={true} className={styles['focus-lock']}>\n <div\n className={clsx(\n styles.dialog,\n styles[size],\n styles[`breakpoint-${breakpoint}`],\n isRefresh && styles.refresh\n )}\n onKeyDown={escKeyHandler}\n tabIndex={-1}\n >\n <div className={styles.container}>\n <div className={styles.header}>\n <InternalHeader\n variant=\"h2\"\n __disableActionsWrapping={true}\n actions={\n <InternalButton\n ariaLabel={closeAriaLabel}\n className={styles['dismiss-control']}\n variant=\"modal-dismiss\"\n iconName=\"close\"\n formAction=\"none\"\n onClick={onCloseButtonClick}\n />\n }\n >\n <span id={headerId} className={styles['header--text']}>\n {header}\n </span>\n </InternalHeader>\n </div>\n <div className={clsx(styles.content, { [styles['no-paddings']]: disableContentPaddings })}>\n {children}\n <div ref={stickySentinelRef} />\n </div>\n {footer && (\n <div ref={footerRef} className={clsx(styles.footer, footerStuck && styles['footer--stuck'])}>\n {footer}\n </div>\n )}\n </div>\n </div>\n </FocusLock>\n </div>\n </FormFieldContext.Provider>\n );\n}\n"]}
@@ -5,8 +5,9 @@ interface TableBodyCellProps<ItemType> extends TableTdElementProps {
5
5
  column: TableProps.ColumnDefinition<ItemType>;
6
6
  item: ItemType;
7
7
  isEditing: boolean;
8
+ successfulEdit?: boolean;
8
9
  onEditStart: () => void;
9
- onEditEnd: () => void;
10
+ onEditEnd: (cancelled: boolean) => void;
10
11
  submitEdit?: TableProps.SubmitEditFunction<ItemType>;
11
12
  ariaLabels: TableProps['ariaLabels'];
12
13
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"lib/default/","sources":["table/body-cell/index.tsx"],"names":[],"mappings":";AAOA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAkB,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAOnE,UAAU,kBAAkB,CAAC,QAAQ,CAAE,SAAQ,mBAAmB;IAChE,MAAM,EAAE,UAAU,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;IAC9C,IAAI,EAAE,QAAQ,CAAC;IACf,SAAS,EAAE,OAAO,CAAC;IACnB,WAAW,EAAE,MAAM,IAAI,CAAC;IACxB,SAAS,EAAE,MAAM,IAAI,CAAC;IACtB,UAAU,CAAC,EAAE,UAAU,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC;IACrD,UAAU,EAAE,UAAU,CAAC,YAAY,CAAC,CAAC;CACtC;AAsED,wBAAgB,aAAa,CAAC,QAAQ,EAAE,EACtC,UAAU,EACV,GAAG,IAAI,EACR,EAAE,kBAAkB,CAAC,QAAQ,CAAC,GAAG;IAAE,UAAU,EAAE,OAAO,CAAA;CAAE,eAMxD"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"lib/default/","sources":["table/body-cell/index.tsx"],"names":[],"mappings":";AAOA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAkB,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAQnE,UAAU,kBAAkB,CAAC,QAAQ,CAAE,SAAQ,mBAAmB;IAChE,MAAM,EAAE,UAAU,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;IAC9C,IAAI,EAAE,QAAQ,CAAC;IACf,SAAS,EAAE,OAAO,CAAC;IACnB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,WAAW,EAAE,MAAM,IAAI,CAAC;IACxB,SAAS,EAAE,CAAC,SAAS,EAAE,OAAO,KAAK,IAAI,CAAC;IACxC,UAAU,CAAC,EAAE,UAAU,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC;IACrD,UAAU,EAAE,UAAU,CAAC,YAAY,CAAC,CAAC;CACtC;AAoFD,wBAAgB,aAAa,CAAC,QAAQ,EAAE,EACtC,UAAU,EACV,GAAG,IAAI,EACR,EAAE,kBAAkB,CAAC,QAAQ,CAAC,GAAG;IAAE,UAAU,EAAE,OAAO,CAAA;CAAE,eAMxD"}
@@ -8,12 +8,13 @@ import { useEffectOnUpdate } from '../../internal/hooks/use-effect-on-update';
8
8
  import Icon from '../../icon/internal';
9
9
  import { TableTdElement } from './td-element';
10
10
  import { InlineEditor } from './inline-editor';
11
+ import LiveRegion from '../../internal/components/live-region/index.js';
11
12
  const submitHandlerFallback = () => {
12
13
  throw new Error('The function `handleSubmit` is required for editable columns');
13
14
  };
14
15
  function TableCellEditable(_a) {
15
- var _b;
16
- var { className, item, column, isEditing, onEditStart, onEditEnd, submitEdit, ariaLabels, isVisualRefresh } = _a, rest = __rest(_a, ["className", "item", "column", "isEditing", "onEditStart", "onEditEnd", "submitEdit", "ariaLabels", "isVisualRefresh"]);
16
+ var _b, _c, _d;
17
+ var { className, item, column, isEditing, onEditStart, onEditEnd, submitEdit, ariaLabels, isVisualRefresh, successfulEdit = false } = _a, rest = __rest(_a, ["className", "item", "column", "isEditing", "onEditStart", "onEditEnd", "submitEdit", "ariaLabels", "isVisualRefresh", "successfulEdit"]);
17
18
  const editActivateRef = useRef(null);
18
19
  const tdNativeAttributes = {
19
20
  'data-inline-editing-active': isEditing.toString(),
@@ -27,9 +28,13 @@ function TableCellEditable(_a) {
27
28
  const [hasHover, setHasHover] = useState(false);
28
29
  const [hasFocus, setHasFocus] = useState(false);
29
30
  const showIcon = hasHover || hasFocus;
30
- return (React.createElement(TableTdElement, Object.assign({}, rest, { nativeAttributes: tdNativeAttributes, className: clsx(className, styles['body-cell-editable'], isEditing && styles['body-cell-edit-active'], isVisualRefresh && styles['is-visual-refresh']), onClick: !isEditing ? onEditStart : undefined, onMouseEnter: () => setHasHover(true), onMouseLeave: () => setHasHover(false) }), isEditing ? (React.createElement(InlineEditor, { ariaLabels: ariaLabels, column: column, item: item, onEditEnd: onEditEnd, submitEdit: submitEdit !== null && submitEdit !== void 0 ? submitEdit : submitHandlerFallback })) : (React.createElement(React.Fragment, null,
31
+ return (React.createElement(TableTdElement, Object.assign({}, rest, { nativeAttributes: tdNativeAttributes, className: clsx(className, styles['body-cell-editable'], isEditing && styles['body-cell-edit-active'], successfulEdit && styles['body-cell-has-success'], isVisualRefresh && styles['is-visual-refresh']), onClick: !isEditing ? onEditStart : undefined, onMouseEnter: () => setHasHover(true), onMouseLeave: () => setHasHover(false) }), isEditing ? (React.createElement(InlineEditor, { ariaLabels: ariaLabels, column: column, item: item, onEditEnd: onEditEnd, submitEdit: submitEdit !== null && submitEdit !== void 0 ? submitEdit : submitHandlerFallback })) : (React.createElement(React.Fragment, null,
31
32
  column.cell(item),
32
- React.createElement("button", { className: styles['body-cell-editor'], "aria-label": (_b = ariaLabels === null || ariaLabels === void 0 ? void 0 : ariaLabels.activateEditLabel) === null || _b === void 0 ? void 0 : _b.call(ariaLabels, column, item), ref: editActivateRef, onFocus: () => setHasFocus(true), onBlur: () => setHasFocus(false) }, showIcon && React.createElement(Icon, { name: "edit" }))))));
33
+ successfulEdit && (React.createElement(React.Fragment, null,
34
+ React.createElement("span", { className: styles['body-cell-success'], "aria-label": (_b = ariaLabels === null || ariaLabels === void 0 ? void 0 : ariaLabels.successfulEditLabel) === null || _b === void 0 ? void 0 : _b.call(ariaLabels, column), role: "img" },
35
+ React.createElement(Icon, { name: "status-positive", variant: "success" })),
36
+ React.createElement(LiveRegion, null, (_c = ariaLabels === null || ariaLabels === void 0 ? void 0 : ariaLabels.successfulEditLabel) === null || _c === void 0 ? void 0 : _c.call(ariaLabels, column)))),
37
+ React.createElement("button", { className: styles['body-cell-editor'], "aria-label": (_d = ariaLabels === null || ariaLabels === void 0 ? void 0 : ariaLabels.activateEditLabel) === null || _d === void 0 ? void 0 : _d.call(ariaLabels, column, item), ref: editActivateRef, onFocus: () => setHasFocus(true), onBlur: () => setHasFocus(false) }, showIcon && React.createElement(Icon, { name: "edit" }))))));
33
38
  }
34
39
  export function TableBodyCell(_a) {
35
40
  var { isEditable } = _a, rest = __rest(_a, ["isEditable"]);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"lib/default/","sources":["table/body-cell/index.tsx"],"names":[],"mappings":";AAAA,qEAAqE;AACrE,sCAAsC;AACtC,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,MAAM,MAAM,iBAAiB,CAAC;AACrC,OAAO,KAAK,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAChD,OAAO,EAAE,iBAAiB,EAAE,MAAM,2CAA2C,CAAC;AAC9E,OAAO,IAAI,MAAM,qBAAqB,CAAC;AAEvC,OAAO,EAAE,cAAc,EAAuB,MAAM,cAAc,CAAC;AACnE,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE/C,MAAM,qBAAqB,GAAG,GAAG,EAAE;IACjC,MAAM,IAAI,KAAK,CAAC,8DAA8D,CAAC,CAAC;AAClF,CAAC,CAAC;AAYF,SAAS,iBAAiB,CAAW,EAWN;;QAXM,EACnC,SAAS,EACT,IAAI,EACJ,MAAM,EACN,SAAS,EACT,WAAW,EACX,SAAS,EACT,UAAU,EACV,UAAU,EACV,eAAe,OAEc,EAD1B,IAAI,cAV4B,uHAWpC,CADQ;IAEP,MAAM,eAAe,GAAG,MAAM,CAAoB,IAAI,CAAC,CAAC;IACxD,MAAM,kBAAkB,GAAG;QACzB,4BAA4B,EAAE,SAAS,CAAC,QAAQ,EAAE;KACnD,CAAC;IAEF,iBAAiB,CAAC,GAAG,EAAE;QACrB,IAAI,CAAC,SAAS,IAAI,eAAe,CAAC,OAAO,EAAE;YACzC,eAAe,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;SACjC;IACH,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC;IAEhB,4FAA4F;IAC5F,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAChD,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAChD,MAAM,QAAQ,GAAG,QAAQ,IAAI,QAAQ,CAAC;IAEtC,OAAO,CACL,oBAAC,cAAc,oBACT,IAAI,IACR,gBAAgB,EAAE,kBAA6D,EAC/E,SAAS,EAAE,IAAI,CACb,SAAS,EACT,MAAM,CAAC,oBAAoB,CAAC,EAC5B,SAAS,IAAI,MAAM,CAAC,uBAAuB,CAAC,EAC5C,eAAe,IAAI,MAAM,CAAC,mBAAmB,CAAC,CAC/C,EACD,OAAO,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,EAC7C,YAAY,EAAE,GAAG,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,EACrC,YAAY,EAAE,GAAG,EAAE,CAAC,WAAW,CAAC,KAAK,CAAC,KAErC,SAAS,CAAC,CAAC,CAAC,CACX,oBAAC,YAAY,IACX,UAAU,EAAE,UAAU,EACtB,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,IAAI,EACV,SAAS,EAAE,SAAS,EACpB,UAAU,EAAE,UAAU,aAAV,UAAU,cAAV,UAAU,GAAI,qBAAqB,GAC/C,CACH,CAAC,CAAC,CAAC,CACF;QACG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC;QAClB,gCACE,SAAS,EAAE,MAAM,CAAC,kBAAkB,CAAC,gBACzB,MAAA,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,iBAAiB,2DAAG,MAAM,EAAE,IAAI,CAAC,EACzD,GAAG,EAAE,eAAe,EACpB,OAAO,EAAE,GAAG,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,EAChC,MAAM,EAAE,GAAG,EAAE,CAAC,WAAW,CAAC,KAAK,CAAC,IAE/B,QAAQ,IAAI,oBAAC,IAAI,IAAC,IAAI,EAAC,MAAM,GAAG,CAC1B,CACR,CACJ,CACc,CAClB,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,aAAa,CAAW,EAGiB;QAHjB,EACtC,UAAU,OAE6C,EADpD,IAAI,cAF+B,cAGvC,CADQ;IAEP,IAAI,UAAU,IAAI,IAAI,CAAC,SAAS,EAAE;QAChC,OAAO,oBAAC,iBAAiB,oBAAK,IAAI,EAAI,CAAC;KACxC;IACD,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC;IAC9B,OAAO,oBAAC,cAAc,oBAAK,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAkB,CAAC;AACxE,CAAC","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport clsx from 'clsx';\nimport styles from './styles.css.js';\nimport React, { useRef, useState } from 'react';\nimport { useEffectOnUpdate } from '../../internal/hooks/use-effect-on-update';\nimport Icon from '../../icon/internal';\nimport { TableProps } from '../interfaces';\nimport { TableTdElement, TableTdElementProps } from './td-element';\nimport { InlineEditor } from './inline-editor';\n\nconst submitHandlerFallback = () => {\n throw new Error('The function `handleSubmit` is required for editable columns');\n};\n\ninterface TableBodyCellProps<ItemType> extends TableTdElementProps {\n column: TableProps.ColumnDefinition<ItemType>;\n item: ItemType;\n isEditing: boolean;\n onEditStart: () => void;\n onEditEnd: () => void;\n submitEdit?: TableProps.SubmitEditFunction<ItemType>;\n ariaLabels: TableProps['ariaLabels'];\n}\n\nfunction TableCellEditable<ItemType>({\n className,\n item,\n column,\n isEditing,\n onEditStart,\n onEditEnd,\n submitEdit,\n ariaLabels,\n isVisualRefresh,\n ...rest\n}: TableBodyCellProps<ItemType>) {\n const editActivateRef = useRef<HTMLButtonElement>(null);\n const tdNativeAttributes = {\n 'data-inline-editing-active': isEditing.toString(),\n };\n\n useEffectOnUpdate(() => {\n if (!isEditing && editActivateRef.current) {\n editActivateRef.current.focus();\n }\n }, [isEditing]);\n\n // To improve the initial page render performance we only show the edit icon when necessary.\n const [hasHover, setHasHover] = useState(false);\n const [hasFocus, setHasFocus] = useState(false);\n const showIcon = hasHover || hasFocus;\n\n return (\n <TableTdElement\n {...rest}\n nativeAttributes={tdNativeAttributes as TableTdElementProps['nativeAttributes']}\n className={clsx(\n className,\n styles['body-cell-editable'],\n isEditing && styles['body-cell-edit-active'],\n isVisualRefresh && styles['is-visual-refresh']\n )}\n onClick={!isEditing ? onEditStart : undefined}\n onMouseEnter={() => setHasHover(true)}\n onMouseLeave={() => setHasHover(false)}\n >\n {isEditing ? (\n <InlineEditor\n ariaLabels={ariaLabels}\n column={column}\n item={item}\n onEditEnd={onEditEnd}\n submitEdit={submitEdit ?? submitHandlerFallback}\n />\n ) : (\n <>\n {column.cell(item)}\n <button\n className={styles['body-cell-editor']}\n aria-label={ariaLabels?.activateEditLabel?.(column, item)}\n ref={editActivateRef}\n onFocus={() => setHasFocus(true)}\n onBlur={() => setHasFocus(false)}\n >\n {showIcon && <Icon name=\"edit\" />}\n </button>\n </>\n )}\n </TableTdElement>\n );\n}\n\nexport function TableBodyCell<ItemType>({\n isEditable,\n ...rest\n}: TableBodyCellProps<ItemType> & { isEditable: boolean }) {\n if (isEditable || rest.isEditing) {\n return <TableCellEditable {...rest} />;\n }\n const { column, item } = rest;\n return <TableTdElement {...rest}>{column.cell(item)}</TableTdElement>;\n}\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"lib/default/","sources":["table/body-cell/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 styles from './styles.css.js';\nimport React, { useRef, useState } from 'react';\nimport { useEffectOnUpdate } from '../../internal/hooks/use-effect-on-update';\nimport Icon from '../../icon/internal';\nimport { TableProps } from '../interfaces';\nimport { TableTdElement, TableTdElementProps } from './td-element';\nimport { InlineEditor } from './inline-editor';\nimport LiveRegion from '../../internal/components/live-region/index.js';\n\nconst submitHandlerFallback = () => {\n throw new Error('The function `handleSubmit` is required for editable columns');\n};\n\ninterface TableBodyCellProps<ItemType> extends TableTdElementProps {\n column: TableProps.ColumnDefinition<ItemType>;\n item: ItemType;\n isEditing: boolean;\n successfulEdit?: boolean;\n onEditStart: () => void;\n onEditEnd: (cancelled: boolean) => void;\n submitEdit?: TableProps.SubmitEditFunction<ItemType>;\n ariaLabels: TableProps['ariaLabels'];\n}\n\nfunction TableCellEditable<ItemType>({\n className,\n item,\n column,\n isEditing,\n onEditStart,\n onEditEnd,\n submitEdit,\n ariaLabels,\n isVisualRefresh,\n successfulEdit = false,\n ...rest\n}: TableBodyCellProps<ItemType>) {\n const editActivateRef = useRef<HTMLButtonElement>(null);\n const tdNativeAttributes = {\n 'data-inline-editing-active': isEditing.toString(),\n };\n\n useEffectOnUpdate(() => {\n if (!isEditing && editActivateRef.current) {\n editActivateRef.current.focus();\n }\n }, [isEditing]);\n\n // To improve the initial page render performance we only show the edit icon when necessary.\n const [hasHover, setHasHover] = useState(false);\n const [hasFocus, setHasFocus] = useState(false);\n const showIcon = hasHover || hasFocus;\n\n return (\n <TableTdElement\n {...rest}\n nativeAttributes={tdNativeAttributes as TableTdElementProps['nativeAttributes']}\n className={clsx(\n className,\n styles['body-cell-editable'],\n isEditing && styles['body-cell-edit-active'],\n successfulEdit && styles['body-cell-has-success'],\n isVisualRefresh && styles['is-visual-refresh']\n )}\n onClick={!isEditing ? onEditStart : undefined}\n onMouseEnter={() => setHasHover(true)}\n onMouseLeave={() => setHasHover(false)}\n >\n {isEditing ? (\n <InlineEditor\n ariaLabels={ariaLabels}\n column={column}\n item={item}\n onEditEnd={onEditEnd}\n submitEdit={submitEdit ?? submitHandlerFallback}\n />\n ) : (\n <>\n {column.cell(item)}\n {successfulEdit && (\n <>\n <span\n className={styles['body-cell-success']}\n aria-label={ariaLabels?.successfulEditLabel?.(column)}\n role=\"img\"\n >\n <Icon name=\"status-positive\" variant=\"success\" />\n </span>\n <LiveRegion>{ariaLabels?.successfulEditLabel?.(column)}</LiveRegion>\n </>\n )}\n <button\n className={styles['body-cell-editor']}\n aria-label={ariaLabels?.activateEditLabel?.(column, item)}\n ref={editActivateRef}\n onFocus={() => setHasFocus(true)}\n onBlur={() => setHasFocus(false)}\n >\n {showIcon && <Icon name=\"edit\" />}\n </button>\n </>\n )}\n </TableTdElement>\n );\n}\n\nexport function TableBodyCell<ItemType>({\n isEditable,\n ...rest\n}: TableBodyCellProps<ItemType> & { isEditable: boolean }) {\n if (isEditable || rest.isEditing) {\n return <TableCellEditable {...rest} />;\n }\n const { column, item } = rest;\n return <TableTdElement {...rest}>{column.cell(item)}</TableTdElement>;\n}\n"]}
@@ -4,7 +4,7 @@ interface InlineEditorProps<ItemType> {
4
4
  ariaLabels: TableProps['ariaLabels'];
5
5
  column: TableProps.ColumnDefinition<ItemType>;
6
6
  item: ItemType;
7
- onEditEnd: () => void;
7
+ onEditEnd: (cancelled: boolean) => void;
8
8
  submitEdit: TableProps.SubmitEditFunction<ItemType>;
9
9
  __onRender?: () => void;
10
10
  }
@@ -1 +1 @@
1
- {"version":3,"file":"inline-editor.d.ts","sourceRoot":"lib/default/","sources":["table/body-cell/inline-editor.tsx"],"names":[],"mappings":";AAOA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAQ3C,UAAU,iBAAiB,CAAC,QAAQ;IAClC,UAAU,EAAE,UAAU,CAAC,YAAY,CAAC,CAAC;IACrC,MAAM,EAAE,UAAU,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;IAC9C,IAAI,EAAE,QAAQ,CAAC;IACf,SAAS,EAAE,MAAM,IAAI,CAAC;IACtB,UAAU,EAAE,UAAU,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC;IACpD,UAAU,CAAC,EAAE,MAAM,IAAI,CAAC;CACzB;AAED,wBAAgB,YAAY,CAAC,QAAQ,EAAE,EACrC,UAAU,EACV,IAAI,EACJ,MAAM,EACN,SAAS,EACT,UAAU,EACV,UAAU,GACX,EAAE,iBAAiB,CAAC,QAAQ,CAAC,eAiH7B"}
1
+ {"version":3,"file":"inline-editor.d.ts","sourceRoot":"lib/default/","sources":["table/body-cell/inline-editor.tsx"],"names":[],"mappings":";AAOA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAS3C,UAAU,iBAAiB,CAAC,QAAQ;IAClC,UAAU,EAAE,UAAU,CAAC,YAAY,CAAC,CAAC;IACrC,MAAM,EAAE,UAAU,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;IAC9C,IAAI,EAAE,QAAQ,CAAC;IACf,SAAS,EAAE,CAAC,SAAS,EAAE,OAAO,KAAK,IAAI,CAAC;IACxC,UAAU,EAAE,UAAU,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC;IACpD,UAAU,CAAC,EAAE,MAAM,IAAI,CAAC;CACzB;AAED,wBAAgB,YAAY,CAAC,QAAQ,EAAE,EACrC,UAAU,EACV,IAAI,EACJ,MAAM,EACN,SAAS,EACT,UAAU,EACV,UAAU,GACX,EAAE,iBAAiB,CAAC,QAAQ,CAAC,eAkH7B"}
@@ -8,10 +8,11 @@ import SpaceBetween from '../../space-between/internal';
8
8
  import { useClickAway } from './click-away';
9
9
  import styles from './styles.css.js';
10
10
  import FocusLock from '../../internal/components/focus-lock';
11
+ import LiveRegion from '../../internal/components/live-region';
11
12
  // A function that does nothing
12
13
  const noop = () => undefined;
13
14
  export function InlineEditor({ ariaLabels, item, column, onEditEnd, submitEdit, __onRender, }) {
14
- var _a, _b, _c;
15
+ var _a, _b, _c, _d;
15
16
  const [currentEditLoading, setCurrentEditLoading] = useState(false);
16
17
  const [currentEditValue, setCurrentEditValue] = useState();
17
18
  const focusLockRef = useRef(null);
@@ -23,7 +24,7 @@ export function InlineEditor({ ariaLabels, item, column, onEditEnd, submitEdit,
23
24
  if (!cancel) {
24
25
  setCurrentEditValue(undefined);
25
26
  }
26
- onEditEnd();
27
+ onEditEnd(cancel);
27
28
  }
28
29
  function onSubmitClick(evt) {
29
30
  var _a;
@@ -74,6 +75,7 @@ export function InlineEditor({ ariaLabels, item, column, onEditEnd, submitEdit,
74
75
  React.createElement("span", { className: styles['body-cell-editor-controls'] },
75
76
  React.createElement(SpaceBetween, { direction: "horizontal", size: "xxs" },
76
77
  !currentEditLoading ? (React.createElement(Button, { ariaLabel: (_b = ariaLabels === null || ariaLabels === void 0 ? void 0 : ariaLabels.cancelEditLabel) === null || _b === void 0 ? void 0 : _b.call(ariaLabels, column), formAction: "none", iconName: "close", variant: "inline-icon", onClick: onCancel })) : null,
77
- React.createElement(Button, { ariaLabel: (_c = ariaLabels === null || ariaLabels === void 0 ? void 0 : ariaLabels.submitEditLabel) === null || _c === void 0 ? void 0 : _c.call(ariaLabels, column), formAction: "submit", iconName: "check", variant: "inline-icon", loading: currentEditLoading })))))))));
78
+ React.createElement(Button, { ariaLabel: (_c = ariaLabels === null || ariaLabels === void 0 ? void 0 : ariaLabels.submitEditLabel) === null || _c === void 0 ? void 0 : _c.call(ariaLabels, column), formAction: "submit", iconName: "check", variant: "inline-icon", loading: currentEditLoading })),
79
+ React.createElement(LiveRegion, null, currentEditLoading ? (_d = ariaLabels === null || ariaLabels === void 0 ? void 0 : ariaLabels.submittingEditText) === null || _d === void 0 ? void 0 : _d.call(ariaLabels, column) : ''))))))));
78
80
  }
79
81
  //# sourceMappingURL=inline-editor.js.map