@cloudscape-design/components 3.0.1078 → 3.0.1079

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 (161) hide show
  1. package/alert/styles.css.js +27 -27
  2. package/alert/styles.scoped.css +46 -46
  3. package/alert/styles.selectors.js +27 -27
  4. package/annotation-context/annotation/styles.css.js +24 -24
  5. package/annotation-context/annotation/styles.scoped.css +32 -32
  6. package/annotation-context/annotation/styles.selectors.js +24 -24
  7. package/app-layout/notifications/styles.css.js +3 -3
  8. package/app-layout/notifications/styles.scoped.css +7 -7
  9. package/app-layout/notifications/styles.selectors.js +3 -3
  10. package/app-layout/visual-refresh/styles.css.js +86 -86
  11. package/app-layout/visual-refresh/styles.scoped.css +258 -258
  12. package/app-layout/visual-refresh/styles.selectors.js +86 -86
  13. package/app-layout/visual-refresh-toolbar/drawer/global-ai-drawer.d.ts.map +1 -1
  14. package/app-layout/visual-refresh-toolbar/drawer/global-ai-drawer.js +1 -0
  15. package/app-layout/visual-refresh-toolbar/drawer/global-ai-drawer.js.map +1 -1
  16. package/app-layout/visual-refresh-toolbar/drawer/styles.css.js +24 -24
  17. package/app-layout/visual-refresh-toolbar/drawer/styles.scoped.css +74 -73
  18. package/app-layout/visual-refresh-toolbar/drawer/styles.selectors.js +24 -24
  19. package/app-layout/visual-refresh-toolbar/navigation/styles.css.js +4 -4
  20. package/app-layout/visual-refresh-toolbar/navigation/styles.scoped.css +7 -7
  21. package/app-layout/visual-refresh-toolbar/navigation/styles.selectors.js +4 -4
  22. package/app-layout/visual-refresh-toolbar/skeleton/styles.css.js +25 -25
  23. package/app-layout/visual-refresh-toolbar/skeleton/styles.scoped.css +50 -50
  24. package/app-layout/visual-refresh-toolbar/skeleton/styles.selectors.js +25 -25
  25. package/app-layout/visual-refresh-toolbar/toolbar/index.d.ts.map +1 -1
  26. package/app-layout/visual-refresh-toolbar/toolbar/index.js +1 -2
  27. package/app-layout/visual-refresh-toolbar/toolbar/index.js.map +1 -1
  28. package/app-layout/visual-refresh-toolbar/toolbar/styles.css.js +14 -15
  29. package/app-layout/visual-refresh-toolbar/toolbar/styles.scoped.css +31 -31
  30. package/app-layout/visual-refresh-toolbar/toolbar/styles.selectors.js +14 -15
  31. package/attribute-editor/styles.css.js +15 -15
  32. package/attribute-editor/styles.scoped.css +28 -28
  33. package/attribute-editor/styles.selectors.js +15 -15
  34. package/breadcrumb-group/item/styles.css.js +7 -7
  35. package/breadcrumb-group/item/styles.scoped.css +28 -28
  36. package/breadcrumb-group/item/styles.selectors.js +7 -7
  37. package/button/icon-helper.d.ts.map +1 -1
  38. package/button/icon-helper.js +2 -1
  39. package/button/icon-helper.js.map +1 -1
  40. package/button/internal.d.ts +2 -0
  41. package/button/internal.d.ts.map +1 -1
  42. package/button/internal.js +4 -3
  43. package/button/internal.js.map +1 -1
  44. package/button/styles.css.js +21 -22
  45. package/button/styles.scoped.css +255 -259
  46. package/button/styles.selectors.js +21 -22
  47. package/button/test-classes/styles.css.js +5 -2
  48. package/button/test-classes/styles.scoped.css +5 -5
  49. package/button/test-classes/styles.selectors.js +5 -2
  50. package/button-dropdown/item-element/styles.css.js +16 -16
  51. package/button-dropdown/item-element/styles.scoped.css +27 -27
  52. package/button-dropdown/item-element/styles.selectors.js +16 -16
  53. package/button-group/internal.js +1 -1
  54. package/button-group/internal.js.map +1 -1
  55. package/checkbox/internal.js +1 -1
  56. package/checkbox/internal.js.map +1 -1
  57. package/checkbox/styles.css.js +3 -3
  58. package/checkbox/styles.scoped.css +11 -11
  59. package/checkbox/styles.selectors.js +3 -3
  60. package/content-layout/styles.css.js +14 -14
  61. package/content-layout/styles.scoped.css +27 -27
  62. package/content-layout/styles.selectors.js +14 -14
  63. package/file-input/internal.js +1 -1
  64. package/file-input/internal.js.map +1 -1
  65. package/flashbar/styles.css.js +50 -50
  66. package/flashbar/styles.scoped.css +187 -187
  67. package/flashbar/styles.selectors.js +50 -50
  68. package/help-panel/styles.css.js +6 -6
  69. package/help-panel/styles.scoped.css +73 -73
  70. package/help-panel/styles.selectors.js +6 -6
  71. package/internal/base-component/styles.scoped.css +1 -1
  72. package/internal/components/drag-handle-wrapper/styles.css.js +21 -21
  73. package/internal/components/drag-handle-wrapper/styles.scoped.css +44 -44
  74. package/internal/components/drag-handle-wrapper/styles.selectors.js +21 -21
  75. package/internal/components/dropdown/styles.css.js +20 -20
  76. package/internal/components/dropdown/styles.scoped.css +38 -38
  77. package/internal/components/dropdown/styles.selectors.js +20 -20
  78. package/internal/components/expand-toggle-button/index.d.ts.map +1 -1
  79. package/internal/components/expand-toggle-button/index.js +1 -1
  80. package/internal/components/expand-toggle-button/index.js.map +1 -1
  81. package/internal/components/token-list/styles.css.js +10 -10
  82. package/internal/components/token-list/styles.scoped.css +25 -25
  83. package/internal/components/token-list/styles.selectors.js +10 -10
  84. package/internal/context/reset-contexts-for-modal.d.ts.map +1 -1
  85. package/internal/context/reset-contexts-for-modal.js +2 -2
  86. package/internal/context/reset-contexts-for-modal.js.map +1 -1
  87. package/internal/environment.js +2 -2
  88. package/internal/environment.json +2 -2
  89. package/internal/generated/custom-css-properties/index.d.ts +1 -0
  90. package/internal/generated/custom-css-properties/index.d.ts.map +1 -1
  91. package/internal/generated/custom-css-properties/index.js +84 -83
  92. package/internal/generated/custom-css-properties/index.js.map +1 -1
  93. package/internal/manifest.json +1 -1
  94. package/link/internal.js +1 -1
  95. package/link/internal.js.map +1 -1
  96. package/link/styles.css.js +20 -20
  97. package/link/styles.scoped.css +103 -103
  98. package/link/styles.selectors.js +20 -20
  99. package/package.json +1 -1
  100. package/popover/internal.js +1 -1
  101. package/popover/internal.js.map +1 -1
  102. package/radio-group/radio-button.js +1 -1
  103. package/radio-group/radio-button.js.map +1 -1
  104. package/radio-group/styles.css.js +10 -10
  105. package/radio-group/styles.scoped.css +22 -22
  106. package/radio-group/styles.selectors.js +10 -10
  107. package/slider/styles.css.js +26 -26
  108. package/slider/styles.scoped.css +86 -86
  109. package/slider/styles.selectors.js +26 -26
  110. package/spinner/styles.css.js +13 -13
  111. package/spinner/styles.scoped.css +39 -39
  112. package/spinner/styles.selectors.js +13 -13
  113. package/table/body-cell/disabled-inline-editor.js +1 -1
  114. package/table/body-cell/disabled-inline-editor.js.map +1 -1
  115. package/table/body-cell/index.d.ts.map +1 -1
  116. package/table/body-cell/index.js +1 -1
  117. package/table/body-cell/index.js.map +1 -1
  118. package/table/body-cell/td-element.js +1 -1
  119. package/table/body-cell/td-element.js.map +1 -1
  120. package/table/header-cell/index.js +1 -1
  121. package/table/header-cell/index.js.map +1 -1
  122. package/table/header-cell/th-element.js +1 -1
  123. package/table/header-cell/th-element.js.map +1 -1
  124. package/table/resizer/index.js +1 -1
  125. package/table/resizer/index.js.map +1 -1
  126. package/table/selection/selection-control.d.ts.map +1 -1
  127. package/table/selection/selection-control.js +3 -4
  128. package/table/selection/selection-control.js.map +1 -1
  129. package/table/table-role/grid-navigation.d.ts +1 -1
  130. package/table/table-role/grid-navigation.d.ts.map +1 -1
  131. package/table/table-role/grid-navigation.js +1 -1
  132. package/table/table-role/grid-navigation.js.map +1 -1
  133. package/tabs/tab-header-bar.js +1 -2
  134. package/tabs/tab-header-bar.js.map +1 -1
  135. package/tag-editor/styles.css.js +3 -3
  136. package/tag-editor/styles.scoped.css +13 -13
  137. package/tag-editor/styles.selectors.js +3 -3
  138. package/test-utils/dom/button/index.js +4 -5
  139. package/test-utils/dom/button/index.js.map +1 -1
  140. package/test-utils/dom/toggle-button/index.js +3 -4
  141. package/test-utils/dom/toggle-button/index.js.map +1 -1
  142. package/test-utils/selectors/button/index.js +4 -5
  143. package/test-utils/selectors/button/index.js.map +1 -1
  144. package/test-utils/selectors/toggle-button/index.js +2 -2
  145. package/test-utils/selectors/toggle-button/index.js.map +1 -1
  146. package/text-content/styles.css.js +1 -1
  147. package/text-content/styles.scoped.css +66 -66
  148. package/text-content/styles.selectors.js +1 -1
  149. package/toggle/styles.css.js +10 -10
  150. package/toggle/styles.scoped.css +23 -23
  151. package/toggle/styles.selectors.js +10 -10
  152. package/toggle-button/internal.d.ts.map +1 -1
  153. package/toggle-button/internal.js +3 -2
  154. package/toggle-button/internal.js.map +1 -1
  155. package/toggle-button/test-classes/styles.css.js +7 -0
  156. package/toggle-button/test-classes/styles.scoped.css +8 -0
  157. package/toggle-button/test-classes/styles.selectors.js +8 -0
  158. package/internal/context/single-tab-stop-navigation-context.d.ts +0 -35
  159. package/internal/context/single-tab-stop-navigation-context.d.ts.map +0 -1
  160. package/internal/context/single-tab-stop-navigation-context.js +0 -89
  161. package/internal/context/single-tab-stop-navigation-context.js.map +0 -1
@@ -142,72 +142,72 @@
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_layout_5gtk3_7q3ar_145:not(#\9) {
146
- --awsui-content-layout-default-horizontal-padding-kiajpc: var(--space-layout-content-horizontal-buc0zz, 24px);
147
- --awsui-content-layout-max-content-width-kiajpc: 0px;
148
- --awsui-content-layout-main-gap-kiajpc: 0px;
145
+ .awsui_layout_5gtk3_1mzpq_145:not(#\9) {
146
+ --awsui-content-layout-default-horizontal-padding-y15yd5: var(--space-layout-content-horizontal-buc0zz, 24px);
147
+ --awsui-content-layout-max-content-width-y15yd5: 0px;
148
+ --awsui-content-layout-main-gap-y15yd5: 0px;
149
149
  display: grid;
150
- grid-template-columns: 0 0 1fr minmax(0, var(--awsui-content-layout-max-content-width-kiajpc)) 1fr 0 0;
151
- grid-template-rows: var(--awsui-content-layout-main-gap-kiajpc) min-content min-content auto var(--space-dark-header-overlap-distance-ld45ap, 36px) 1fr;
150
+ grid-template-columns: 0 0 1fr minmax(0, var(--awsui-content-layout-max-content-width-y15yd5)) 1fr 0 0;
151
+ grid-template-rows: var(--awsui-content-layout-main-gap-y15yd5) min-content min-content auto var(--space-dark-header-overlap-distance-ld45ap, 36px) 1fr;
152
152
  min-block-size: 100%;
153
153
  }
154
154
  @media (max-width: 688px) {
155
- .awsui_layout_5gtk3_7q3ar_145:not(#\9) {
156
- --awsui-content-layout-default-horizontal-padding-kiajpc: var(--space-l-2ud1p3, 20px);
155
+ .awsui_layout_5gtk3_1mzpq_145:not(#\9) {
156
+ --awsui-content-layout-default-horizontal-padding-y15yd5: var(--space-l-2ud1p3, 20px);
157
157
  }
158
158
  }
159
- .awsui_layout_5gtk3_7q3ar_145 > .awsui_background_5gtk3_7q3ar_159:not(#\9) {
159
+ .awsui_layout_5gtk3_1mzpq_145 > .awsui_background_5gtk3_1mzpq_159:not(#\9) {
160
160
  grid-column: 1/8;
161
161
  grid-row: 1/6;
162
162
  color: var(--color-text-body-default-vvtq8u, #0f141a);
163
163
  }
164
- .awsui_layout_5gtk3_7q3ar_145 > .awsui_background_5gtk3_7q3ar_159.awsui_is-overlap-disabled_5gtk3_7q3ar_164:not(#\9) {
164
+ .awsui_layout_5gtk3_1mzpq_145 > .awsui_background_5gtk3_1mzpq_159.awsui_is-overlap-disabled_5gtk3_1mzpq_164:not(#\9) {
165
165
  grid-row: 1/5;
166
166
  }
167
- .awsui_layout_5gtk3_7q3ar_145 > .awsui_background_5gtk3_7q3ar_159 > .awsui_header-background_5gtk3_7q3ar_167:not(#\9) {
167
+ .awsui_layout_5gtk3_1mzpq_145 > .awsui_background_5gtk3_1mzpq_159 > .awsui_header-background_5gtk3_1mzpq_167:not(#\9) {
168
168
  inline-size: 100%;
169
169
  block-size: 100%;
170
170
  }
171
- .awsui_layout_5gtk3_7q3ar_145 > .awsui_notifications_5gtk3_7q3ar_171:not(#\9) {
171
+ .awsui_layout_5gtk3_1mzpq_145 > .awsui_notifications_5gtk3_1mzpq_171:not(#\9) {
172
172
  grid-column: 4;
173
173
  grid-row: 2;
174
174
  padding-block-end: var(--space-xs-ymlm0b, 8px);
175
175
  }
176
- .awsui_layout_5gtk3_7q3ar_145 > .awsui_breadcrumbs_5gtk3_7q3ar_176:not(#\9) {
176
+ .awsui_layout_5gtk3_1mzpq_145 > .awsui_breadcrumbs_5gtk3_1mzpq_176:not(#\9) {
177
177
  grid-column: 4;
178
178
  grid-row: 3;
179
179
  padding-block-end: var(--space-xs-ymlm0b, 8px);
180
180
  }
181
- .awsui_layout_5gtk3_7q3ar_145.awsui_default-padding_5gtk3_7q3ar_181:not(#\9) {
182
- --awsui-content-layout-main-gap-kiajpc: var(--space-scaled-m-m892r9, 16px);
183
- grid-template-columns: var(--awsui-toggles-left-width-kiajpc, 0) var(--awsui-content-layout-default-horizontal-padding-kiajpc, 0) 1fr minmax(0, var(--awsui-content-layout-max-content-width-kiajpc)) 1fr var(--awsui-content-layout-default-horizontal-padding-kiajpc, 0) var(--awsui-toggles-right-width-kiajpc, 0);
181
+ .awsui_layout_5gtk3_1mzpq_145.awsui_default-padding_5gtk3_1mzpq_181:not(#\9) {
182
+ --awsui-content-layout-main-gap-y15yd5: var(--space-scaled-m-m892r9, 16px);
183
+ grid-template-columns: var(--awsui-toggles-left-width-y15yd5, 0) var(--awsui-content-layout-default-horizontal-padding-y15yd5, 0) 1fr minmax(0, var(--awsui-content-layout-max-content-width-y15yd5)) 1fr var(--awsui-content-layout-default-horizontal-padding-y15yd5, 0) var(--awsui-toggles-right-width-y15yd5, 0);
184
184
  }
185
- .awsui_layout_5gtk3_7q3ar_145 > .awsui_header-wrapper_5gtk3_7q3ar_185:not(#\9) {
185
+ .awsui_layout_5gtk3_1mzpq_145 > .awsui_header-wrapper_5gtk3_1mzpq_185:not(#\9) {
186
186
  grid-column: 4;
187
187
  grid-row: 4;
188
188
  padding-block-end: var(--space-content-header-padding-bottom-rvy5xz, 16px);
189
189
  }
190
- .awsui_layout_5gtk3_7q3ar_145 > .awsui_header-wrapper_5gtk3_7q3ar_185.awsui_with-divider_5gtk3_7q3ar_190:not(#\9) {
190
+ .awsui_layout_5gtk3_1mzpq_145 > .awsui_header-wrapper_5gtk3_1mzpq_185.awsui_with-divider_5gtk3_1mzpq_190:not(#\9) {
191
191
  border-block-end: 1px solid var(--color-border-divider-default-nr68jt, #c6c6cd);
192
192
  }
193
- .awsui_layout_5gtk3_7q3ar_145 > .awsui_content_5gtk3_7q3ar_193:not(#\9) {
193
+ .awsui_layout_5gtk3_1mzpq_145 > .awsui_content_5gtk3_1mzpq_193:not(#\9) {
194
194
  grid-column: 4;
195
195
  grid-row: 5/8;
196
196
  }
197
- .awsui_layout_5gtk3_7q3ar_145:not(#\9):not(.awsui_has-header_5gtk3_7q3ar_197) {
198
- grid-template-rows: var(--awsui-content-layout-main-gap-kiajpc) min-content min-content 0 calc(var(--space-dark-header-overlap-distance-ld45ap, 36px)) 1fr;
197
+ .awsui_layout_5gtk3_1mzpq_145:not(#\9):not(.awsui_has-header_5gtk3_1mzpq_197) {
198
+ grid-template-rows: var(--awsui-content-layout-main-gap-y15yd5) min-content min-content 0 calc(var(--space-dark-header-overlap-distance-ld45ap, 36px)) 1fr;
199
199
  }
200
- .awsui_layout_5gtk3_7q3ar_145.awsui_is-overlap-disabled_5gtk3_7q3ar_164:not(#\9) {
201
- grid-template-rows: var(--awsui-content-layout-main-gap-kiajpc) min-content min-content auto 0 1fr;
200
+ .awsui_layout_5gtk3_1mzpq_145.awsui_is-overlap-disabled_5gtk3_1mzpq_164:not(#\9) {
201
+ grid-template-rows: var(--awsui-content-layout-main-gap-y15yd5) min-content min-content auto 0 1fr;
202
202
  }
203
203
 
204
- .awsui_layout_5gtk3_7q3ar_145.awsui_is-visual-refresh_5gtk3_7q3ar_204 > .awsui_background_5gtk3_7q3ar_159.awsui_has-default-background_5gtk3_7q3ar_204:not(#\9) {
204
+ .awsui_layout_5gtk3_1mzpq_145.awsui_is-visual-refresh_5gtk3_1mzpq_204 > .awsui_background_5gtk3_1mzpq_159.awsui_has-default-background_5gtk3_1mzpq_204:not(#\9) {
205
205
  background-color: var(--color-background-layout-main-5ilwcb, #ffffff);
206
206
  }
207
207
 
208
- .awsui_layout_5gtk3_7q3ar_145:not(#\9):not(.awsui_is-visual-refresh_5gtk3_7q3ar_204).awsui_has-notifications_5gtk3_7q3ar_208 {
209
- --awsui-content-layout-main-gap-kiajpc: 0px;
208
+ .awsui_layout_5gtk3_1mzpq_145:not(#\9):not(.awsui_is-visual-refresh_5gtk3_1mzpq_204).awsui_has-notifications_5gtk3_1mzpq_208 {
209
+ --awsui-content-layout-main-gap-y15yd5: 0px;
210
210
  }
211
- .awsui_layout_5gtk3_7q3ar_145:not(#\9):not(.awsui_is-visual-refresh_5gtk3_7q3ar_204) > .awsui_notifications_5gtk3_7q3ar_171 {
211
+ .awsui_layout_5gtk3_1mzpq_145:not(#\9):not(.awsui_is-visual-refresh_5gtk3_1mzpq_204) > .awsui_notifications_5gtk3_1mzpq_171 {
212
212
  grid-column: 1/8;
213
213
  }
@@ -2,19 +2,19 @@
2
2
  // es-module interop with Babel and Typescript
3
3
  Object.defineProperty(exports, "__esModule", { value: true });
4
4
  module.exports.default = {
5
- "layout": "awsui_layout_5gtk3_7q3ar_145",
6
- "background": "awsui_background_5gtk3_7q3ar_159",
7
- "is-overlap-disabled": "awsui_is-overlap-disabled_5gtk3_7q3ar_164",
8
- "header-background": "awsui_header-background_5gtk3_7q3ar_167",
9
- "notifications": "awsui_notifications_5gtk3_7q3ar_171",
10
- "breadcrumbs": "awsui_breadcrumbs_5gtk3_7q3ar_176",
11
- "default-padding": "awsui_default-padding_5gtk3_7q3ar_181",
12
- "header-wrapper": "awsui_header-wrapper_5gtk3_7q3ar_185",
13
- "with-divider": "awsui_with-divider_5gtk3_7q3ar_190",
14
- "content": "awsui_content_5gtk3_7q3ar_193",
15
- "has-header": "awsui_has-header_5gtk3_7q3ar_197",
16
- "is-visual-refresh": "awsui_is-visual-refresh_5gtk3_7q3ar_204",
17
- "has-default-background": "awsui_has-default-background_5gtk3_7q3ar_204",
18
- "has-notifications": "awsui_has-notifications_5gtk3_7q3ar_208"
5
+ "layout": "awsui_layout_5gtk3_1mzpq_145",
6
+ "background": "awsui_background_5gtk3_1mzpq_159",
7
+ "is-overlap-disabled": "awsui_is-overlap-disabled_5gtk3_1mzpq_164",
8
+ "header-background": "awsui_header-background_5gtk3_1mzpq_167",
9
+ "notifications": "awsui_notifications_5gtk3_1mzpq_171",
10
+ "breadcrumbs": "awsui_breadcrumbs_5gtk3_1mzpq_176",
11
+ "default-padding": "awsui_default-padding_5gtk3_1mzpq_181",
12
+ "header-wrapper": "awsui_header-wrapper_5gtk3_1mzpq_185",
13
+ "with-divider": "awsui_with-divider_5gtk3_1mzpq_190",
14
+ "content": "awsui_content_5gtk3_1mzpq_193",
15
+ "has-header": "awsui_has-header_5gtk3_1mzpq_197",
16
+ "is-visual-refresh": "awsui_is-visual-refresh_5gtk3_1mzpq_204",
17
+ "has-default-background": "awsui_has-default-background_5gtk3_1mzpq_204",
18
+ "has-notifications": "awsui_has-notifications_5gtk3_1mzpq_208"
19
19
  };
20
20
 
@@ -4,12 +4,12 @@ import { __rest } from "tslib";
4
4
  import React, { useEffect, useRef, useState } from 'react';
5
5
  import clsx from 'clsx';
6
6
  import { useMergeRefs, useUniqueId, warnOnce } from '@cloudscape-design/component-toolkit/internal';
7
+ import { useSingleTabStopNavigation } from '@cloudscape-design/component-toolkit/internal';
7
8
  import { getAnalyticsMetadataAttribute, } from '@cloudscape-design/component-toolkit/internal/analytics-metadata';
8
9
  import InternalButton from '../button/internal';
9
10
  import { useFormFieldContext } from '../contexts/form-field';
10
11
  import { getBaseProps } from '../internal/base-component/index.js';
11
12
  import ScreenreaderOnly from '../internal/components/screenreader-only';
12
- import { useSingleTabStopNavigation } from '../internal/context/single-tab-stop-navigation-context';
13
13
  import { fireNonCancelableEvent } from '../internal/events';
14
14
  import checkControlled from '../internal/hooks/check-controlled';
15
15
  import useForwardFocus from '../internal/hooks/forward-focus';
@@ -1 +1 @@
1
- {"version":3,"file":"internal.js","sourceRoot":"","sources":["../../../src/file-input/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\n\nimport React, { ChangeEvent, Ref, useEffect, useRef, useState } from 'react';\nimport clsx from 'clsx';\n\nimport { useMergeRefs, useUniqueId, warnOnce } from '@cloudscape-design/component-toolkit/internal';\nimport {\n GeneratedAnalyticsMetadataFragment,\n getAnalyticsMetadataAttribute,\n} from '@cloudscape-design/component-toolkit/internal/analytics-metadata';\n\nimport InternalButton from '../button/internal';\nimport { useFormFieldContext } from '../contexts/form-field';\nimport { getBaseProps } from '../internal/base-component/index.js';\nimport ScreenreaderOnly from '../internal/components/screenreader-only';\nimport { useSingleTabStopNavigation } from '../internal/context/single-tab-stop-navigation-context';\nimport { fireNonCancelableEvent } from '../internal/events';\nimport checkControlled from '../internal/hooks/check-controlled';\nimport useForwardFocus from '../internal/hooks/forward-focus';\nimport { InternalBaseComponentProps } from '../internal/hooks/use-base-component/index.js';\nimport { joinStrings } from '../internal/utils/strings';\nimport { GeneratedAnalyticsMetadataFileInputComponent } from './analytics-metadata/interfaces';\nimport { FileInputProps } from './interfaces';\n\nimport styles from './styles.css.js';\n\ninterface InternalFileInputProps {\n __inputClassName?: string;\n __inputNativeAttributes?: React.InputHTMLAttributes<HTMLInputElement> | Record<`data-${string}`, string>;\n __injectAnalyticsComponentMetadata?: boolean;\n}\n\nconst InternalFileInput = React.forwardRef(\n (\n {\n accept,\n ariaRequired,\n ariaLabel,\n multiple = false,\n value,\n onChange,\n variant = 'button',\n children,\n __internalRootRef,\n __inputClassName,\n __inputNativeAttributes,\n __injectAnalyticsComponentMetadata,\n ...restProps\n }: FileInputProps & InternalBaseComponentProps & InternalFileInputProps,\n ref: Ref<FileInputProps.Ref>\n ) => {\n const baseProps = getBaseProps(restProps);\n const uploadInputRef = useRef<HTMLInputElement>(null);\n const containerRef = useRef<HTMLButtonElement>(null);\n const mergedRef = useMergeRefs(__internalRootRef, containerRef);\n\n const uploadButtonLabelId = useUniqueId('upload-button-label');\n const formFieldContext = useFormFieldContext(restProps);\n const selfControlId = useUniqueId('upload-input');\n const controlId = formFieldContext.controlId ?? selfControlId;\n\n useForwardFocus(ref, uploadInputRef);\n\n const [isFocused, setIsFocused] = useState(false);\n const onUploadButtonClick = () => uploadInputRef.current?.click();\n const onUploadInputFocus = () => {\n setIsFocused(true);\n containerRef.current?.scrollIntoView?.();\n };\n const onUploadInputBlur = () => setIsFocused(false);\n\n const onUploadInputChange = ({ target }: ChangeEvent<HTMLInputElement>) => {\n fireNonCancelableEvent(onChange, { value: target.files ? Array.from(target.files) : [] });\n };\n\n checkControlled('FileInput', 'value', value, 'onChange', onChange);\n\n const nativeAttributes: React.HTMLAttributes<HTMLInputElement> = {\n 'aria-label': ariaLabel || children,\n 'aria-labelledby': joinStrings(formFieldContext.ariaLabelledby, uploadButtonLabelId),\n 'aria-describedby': formFieldContext.ariaDescribedby,\n ...__inputNativeAttributes,\n };\n if (formFieldContext.invalid) {\n nativeAttributes['aria-invalid'] = true;\n }\n if (ariaRequired) {\n nativeAttributes['aria-required'] = true;\n }\n\n if (variant === 'icon' && !ariaLabel) {\n warnOnce('FileInput', 'Aria label is required with icon variant.');\n }\n\n // Synchronizing component's value with the native file input state.\n useEffect(() => {\n /* istanbul ignore next: The DataTransfer is not available in jsdom. */\n if (window.DataTransfer) {\n const dataTransfer = new DataTransfer();\n for (const file of value) {\n dataTransfer.items.add(file);\n }\n uploadInputRef.current!.files = dataTransfer.files;\n }\n if (uploadInputRef.current) {\n uploadInputRef.current.value = ''; // reset value to allow calling onChange when the same file is uploaded again\n }\n }, [value]);\n\n const { tabIndex } = useSingleTabStopNavigation(uploadInputRef);\n\n const analyticsLabel = variant === 'button' && children ? 'button' : 'input';\n const componentAnalyticsMetadata: GeneratedAnalyticsMetadataFileInputComponent = {\n name: 'awsui.FileInput',\n label: analyticsLabel,\n };\n\n const analyticsMetadata: GeneratedAnalyticsMetadataFragment = { detail: { label: analyticsLabel } };\n if (__injectAnalyticsComponentMetadata) {\n analyticsMetadata.component = componentAnalyticsMetadata;\n }\n\n return (\n <div\n {...baseProps}\n ref={mergedRef}\n className={clsx(baseProps.className, styles.root)}\n {...getAnalyticsMetadataAttribute(analyticsMetadata)}\n >\n {/* This is the actual interactive and accessible file-upload element. */}\n {/* It is visually hidden to achieve the desired UX design. */}\n <input\n id={controlId}\n ref={uploadInputRef}\n type=\"file\"\n hidden={false}\n multiple={multiple}\n accept={accept}\n onChange={onUploadInputChange}\n onFocus={onUploadInputFocus}\n onBlur={onUploadInputBlur}\n className={clsx(styles['file-input'], styles.hidden, __inputClassName)}\n tabIndex={tabIndex}\n {...nativeAttributes}\n />\n\n {/* The button is decorative. It dispatches clicks to the file input and is ARIA-hidden. */}\n {/* When the input is focused the focus outline is forced on the button. */}\n <InternalButton\n iconName=\"upload\"\n variant={variant === 'icon' ? 'icon' : undefined}\n formAction=\"none\"\n onClick={onUploadButtonClick}\n className={clsx(styles['file-input-button'], {\n [styles['force-focus-outline-button']]: isFocused && variant === 'button',\n [styles['force-focus-outline-icon']]: isFocused && variant === 'icon',\n })}\n nativeButtonAttributes={{ tabIndex: -1, 'aria-hidden': true }}\n __skipNativeAttributesWarnings={true}\n >\n {variant === 'button' && children}\n </InternalButton>\n\n {/* The file input needs to be labelled with provided content. Can't use the button because it is ARIA-hidden. */}\n <ScreenreaderOnly id={uploadButtonLabelId}>{ariaLabel || children}</ScreenreaderOnly>\n </div>\n );\n }\n);\n\nexport default InternalFileInput;\n"]}
1
+ {"version":3,"file":"internal.js","sourceRoot":"","sources":["../../../src/file-input/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\n\nimport React, { ChangeEvent, Ref, useEffect, useRef, useState } from 'react';\nimport clsx from 'clsx';\n\nimport { useMergeRefs, useUniqueId, warnOnce } from '@cloudscape-design/component-toolkit/internal';\nimport { useSingleTabStopNavigation } from '@cloudscape-design/component-toolkit/internal';\nimport {\n GeneratedAnalyticsMetadataFragment,\n getAnalyticsMetadataAttribute,\n} from '@cloudscape-design/component-toolkit/internal/analytics-metadata';\n\nimport InternalButton from '../button/internal';\nimport { useFormFieldContext } from '../contexts/form-field';\nimport { getBaseProps } from '../internal/base-component/index.js';\nimport ScreenreaderOnly from '../internal/components/screenreader-only';\nimport { fireNonCancelableEvent } from '../internal/events';\nimport checkControlled from '../internal/hooks/check-controlled';\nimport useForwardFocus from '../internal/hooks/forward-focus';\nimport { InternalBaseComponentProps } from '../internal/hooks/use-base-component/index.js';\nimport { joinStrings } from '../internal/utils/strings';\nimport { GeneratedAnalyticsMetadataFileInputComponent } from './analytics-metadata/interfaces';\nimport { FileInputProps } from './interfaces';\n\nimport styles from './styles.css.js';\n\ninterface InternalFileInputProps {\n __inputClassName?: string;\n __inputNativeAttributes?: React.InputHTMLAttributes<HTMLInputElement> | Record<`data-${string}`, string>;\n __injectAnalyticsComponentMetadata?: boolean;\n}\n\nconst InternalFileInput = React.forwardRef(\n (\n {\n accept,\n ariaRequired,\n ariaLabel,\n multiple = false,\n value,\n onChange,\n variant = 'button',\n children,\n __internalRootRef,\n __inputClassName,\n __inputNativeAttributes,\n __injectAnalyticsComponentMetadata,\n ...restProps\n }: FileInputProps & InternalBaseComponentProps & InternalFileInputProps,\n ref: Ref<FileInputProps.Ref>\n ) => {\n const baseProps = getBaseProps(restProps);\n const uploadInputRef = useRef<HTMLInputElement>(null);\n const containerRef = useRef<HTMLButtonElement>(null);\n const mergedRef = useMergeRefs(__internalRootRef, containerRef);\n\n const uploadButtonLabelId = useUniqueId('upload-button-label');\n const formFieldContext = useFormFieldContext(restProps);\n const selfControlId = useUniqueId('upload-input');\n const controlId = formFieldContext.controlId ?? selfControlId;\n\n useForwardFocus(ref, uploadInputRef);\n\n const [isFocused, setIsFocused] = useState(false);\n const onUploadButtonClick = () => uploadInputRef.current?.click();\n const onUploadInputFocus = () => {\n setIsFocused(true);\n containerRef.current?.scrollIntoView?.();\n };\n const onUploadInputBlur = () => setIsFocused(false);\n\n const onUploadInputChange = ({ target }: ChangeEvent<HTMLInputElement>) => {\n fireNonCancelableEvent(onChange, { value: target.files ? Array.from(target.files) : [] });\n };\n\n checkControlled('FileInput', 'value', value, 'onChange', onChange);\n\n const nativeAttributes: React.HTMLAttributes<HTMLInputElement> = {\n 'aria-label': ariaLabel || children,\n 'aria-labelledby': joinStrings(formFieldContext.ariaLabelledby, uploadButtonLabelId),\n 'aria-describedby': formFieldContext.ariaDescribedby,\n ...__inputNativeAttributes,\n };\n if (formFieldContext.invalid) {\n nativeAttributes['aria-invalid'] = true;\n }\n if (ariaRequired) {\n nativeAttributes['aria-required'] = true;\n }\n\n if (variant === 'icon' && !ariaLabel) {\n warnOnce('FileInput', 'Aria label is required with icon variant.');\n }\n\n // Synchronizing component's value with the native file input state.\n useEffect(() => {\n /* istanbul ignore next: The DataTransfer is not available in jsdom. */\n if (window.DataTransfer) {\n const dataTransfer = new DataTransfer();\n for (const file of value) {\n dataTransfer.items.add(file);\n }\n uploadInputRef.current!.files = dataTransfer.files;\n }\n if (uploadInputRef.current) {\n uploadInputRef.current.value = ''; // reset value to allow calling onChange when the same file is uploaded again\n }\n }, [value]);\n\n const { tabIndex } = useSingleTabStopNavigation(uploadInputRef);\n\n const analyticsLabel = variant === 'button' && children ? 'button' : 'input';\n const componentAnalyticsMetadata: GeneratedAnalyticsMetadataFileInputComponent = {\n name: 'awsui.FileInput',\n label: analyticsLabel,\n };\n\n const analyticsMetadata: GeneratedAnalyticsMetadataFragment = { detail: { label: analyticsLabel } };\n if (__injectAnalyticsComponentMetadata) {\n analyticsMetadata.component = componentAnalyticsMetadata;\n }\n\n return (\n <div\n {...baseProps}\n ref={mergedRef}\n className={clsx(baseProps.className, styles.root)}\n {...getAnalyticsMetadataAttribute(analyticsMetadata)}\n >\n {/* This is the actual interactive and accessible file-upload element. */}\n {/* It is visually hidden to achieve the desired UX design. */}\n <input\n id={controlId}\n ref={uploadInputRef}\n type=\"file\"\n hidden={false}\n multiple={multiple}\n accept={accept}\n onChange={onUploadInputChange}\n onFocus={onUploadInputFocus}\n onBlur={onUploadInputBlur}\n className={clsx(styles['file-input'], styles.hidden, __inputClassName)}\n tabIndex={tabIndex}\n {...nativeAttributes}\n />\n\n {/* The button is decorative. It dispatches clicks to the file input and is ARIA-hidden. */}\n {/* When the input is focused the focus outline is forced on the button. */}\n <InternalButton\n iconName=\"upload\"\n variant={variant === 'icon' ? 'icon' : undefined}\n formAction=\"none\"\n onClick={onUploadButtonClick}\n className={clsx(styles['file-input-button'], {\n [styles['force-focus-outline-button']]: isFocused && variant === 'button',\n [styles['force-focus-outline-icon']]: isFocused && variant === 'icon',\n })}\n nativeButtonAttributes={{ tabIndex: -1, 'aria-hidden': true }}\n __skipNativeAttributesWarnings={true}\n >\n {variant === 'button' && children}\n </InternalButton>\n\n {/* The file input needs to be labelled with provided content. Can't use the button because it is ARIA-hidden. */}\n <ScreenreaderOnly id={uploadButtonLabelId}>{ariaLabel || children}</ScreenreaderOnly>\n </div>\n );\n }\n);\n\nexport default InternalFileInput;\n"]}
@@ -1,55 +1,55 @@
1
1
 
2
2
  import './styles.scoped.css';
3
3
  export default {
4
- "flash-with-motion": "awsui_flash-with-motion_1q84n_10wk9_157",
5
- "enter": "awsui_enter_1q84n_10wk9_157",
6
- "flash-body": "awsui_flash-body_1q84n_10wk9_171",
7
- "flash-message": "awsui_flash-message_1q84n_10wk9_171",
8
- "flash-header": "awsui_flash-header_1q84n_10wk9_171",
9
- "flash-content": "awsui_flash-content_1q84n_10wk9_172",
10
- "action-button-wrapper": "awsui_action-button-wrapper_1q84n_10wk9_173",
11
- "dismiss-button-wrapper": "awsui_dismiss-button-wrapper_1q84n_10wk9_174",
12
- "flash-icon": "awsui_flash-icon_1q84n_10wk9_197",
13
- "entering": "awsui_entering_1q84n_10wk9_210",
14
- "entered": "awsui_entered_1q84n_10wk9_231",
15
- "exiting": "awsui_exiting_1q84n_10wk9_336",
16
- "stack": "awsui_stack_1q84n_10wk9_370",
17
- "animation-running": "awsui_animation-running_1q84n_10wk9_370",
18
- "item": "awsui_item_1q84n_10wk9_370",
19
- "flash-list-item": "awsui_flash-list-item_1q84n_10wk9_371",
20
- "notification-bar": "awsui_notification-bar_1q84n_10wk9_372",
21
- "collapsed": "awsui_collapsed_1q84n_10wk9_392",
22
- "animation-ready": "awsui_animation-ready_1q84n_10wk9_392",
23
- "expanded-only": "awsui_expanded-only_1q84n_10wk9_392",
24
- "expanded": "awsui_expanded_1q84n_10wk9_392",
25
- "flash": "awsui_flash_1q84n_10wk9_157",
26
- "collapsible": "awsui_collapsible_1q84n_10wk9_448",
27
- "short-list": "awsui_short-list_1q84n_10wk9_454",
28
- "visual-refresh": "awsui_visual-refresh_1q84n_10wk9_454",
29
- "status": "awsui_status_1q84n_10wk9_601",
30
- "header": "awsui_header_1q84n_10wk9_601",
31
- "item-count": "awsui_item-count_1q84n_10wk9_602",
32
- "button": "awsui_button_1q84n_10wk9_603",
33
- "type-count": "awsui_type-count_1q84n_10wk9_636",
34
- "count-number": "awsui_count-number_1q84n_10wk9_636",
35
- "icon": "awsui_icon_1q84n_10wk9_674",
36
- "floating": "awsui_floating_1q84n_10wk9_715",
37
- "flashbar": "awsui_flashbar_1q84n_10wk9_719",
38
- "initial-hidden": "awsui_initial-hidden_1q84n_10wk9_778",
39
- "flash-list": "awsui_flash-list_1q84n_10wk9_371",
40
- "flash-focus-container": "awsui_flash-focus-container_1q84n_10wk9_802",
41
- "flash-text": "awsui_flash-text_1q84n_10wk9_832",
42
- "hidden": "awsui_hidden_1q84n_10wk9_851",
43
- "header-replacement": "awsui_header-replacement_1q84n_10wk9_856",
44
- "content-replacement": "awsui_content-replacement_1q84n_10wk9_861",
45
- "dismiss-button": "awsui_dismiss-button_1q84n_10wk9_174",
46
- "action-wrapped": "awsui_action-wrapped_1q84n_10wk9_879",
47
- "action-button": "awsui_action-button_1q84n_10wk9_173",
48
- "action-slot": "awsui_action-slot_1q84n_10wk9_886",
49
- "flash-type-success": "awsui_flash-type-success_1q84n_10wk9_890",
50
- "flash-type-error": "awsui_flash-type-error_1q84n_10wk9_894",
51
- "flash-type-info": "awsui_flash-type-info_1q84n_10wk9_898",
52
- "flash-type-in-progress": "awsui_flash-type-in-progress_1q84n_10wk9_899",
53
- "flash-type-warning": "awsui_flash-type-warning_1q84n_10wk9_903"
4
+ "flash-with-motion": "awsui_flash-with-motion_1q84n_6t366_157",
5
+ "enter": "awsui_enter_1q84n_6t366_157",
6
+ "flash-body": "awsui_flash-body_1q84n_6t366_171",
7
+ "flash-message": "awsui_flash-message_1q84n_6t366_171",
8
+ "flash-header": "awsui_flash-header_1q84n_6t366_171",
9
+ "flash-content": "awsui_flash-content_1q84n_6t366_172",
10
+ "action-button-wrapper": "awsui_action-button-wrapper_1q84n_6t366_173",
11
+ "dismiss-button-wrapper": "awsui_dismiss-button-wrapper_1q84n_6t366_174",
12
+ "flash-icon": "awsui_flash-icon_1q84n_6t366_197",
13
+ "entering": "awsui_entering_1q84n_6t366_210",
14
+ "entered": "awsui_entered_1q84n_6t366_231",
15
+ "exiting": "awsui_exiting_1q84n_6t366_336",
16
+ "stack": "awsui_stack_1q84n_6t366_370",
17
+ "animation-running": "awsui_animation-running_1q84n_6t366_370",
18
+ "item": "awsui_item_1q84n_6t366_370",
19
+ "flash-list-item": "awsui_flash-list-item_1q84n_6t366_371",
20
+ "notification-bar": "awsui_notification-bar_1q84n_6t366_372",
21
+ "collapsed": "awsui_collapsed_1q84n_6t366_392",
22
+ "animation-ready": "awsui_animation-ready_1q84n_6t366_392",
23
+ "expanded-only": "awsui_expanded-only_1q84n_6t366_392",
24
+ "expanded": "awsui_expanded_1q84n_6t366_392",
25
+ "flash": "awsui_flash_1q84n_6t366_157",
26
+ "collapsible": "awsui_collapsible_1q84n_6t366_448",
27
+ "short-list": "awsui_short-list_1q84n_6t366_454",
28
+ "visual-refresh": "awsui_visual-refresh_1q84n_6t366_454",
29
+ "status": "awsui_status_1q84n_6t366_601",
30
+ "header": "awsui_header_1q84n_6t366_601",
31
+ "item-count": "awsui_item-count_1q84n_6t366_602",
32
+ "button": "awsui_button_1q84n_6t366_603",
33
+ "type-count": "awsui_type-count_1q84n_6t366_636",
34
+ "count-number": "awsui_count-number_1q84n_6t366_636",
35
+ "icon": "awsui_icon_1q84n_6t366_674",
36
+ "floating": "awsui_floating_1q84n_6t366_715",
37
+ "flashbar": "awsui_flashbar_1q84n_6t366_719",
38
+ "initial-hidden": "awsui_initial-hidden_1q84n_6t366_778",
39
+ "flash-list": "awsui_flash-list_1q84n_6t366_371",
40
+ "flash-focus-container": "awsui_flash-focus-container_1q84n_6t366_802",
41
+ "flash-text": "awsui_flash-text_1q84n_6t366_832",
42
+ "hidden": "awsui_hidden_1q84n_6t366_851",
43
+ "header-replacement": "awsui_header-replacement_1q84n_6t366_856",
44
+ "content-replacement": "awsui_content-replacement_1q84n_6t366_861",
45
+ "dismiss-button": "awsui_dismiss-button_1q84n_6t366_174",
46
+ "action-wrapped": "awsui_action-wrapped_1q84n_6t366_879",
47
+ "action-button": "awsui_action-button_1q84n_6t366_173",
48
+ "action-slot": "awsui_action-slot_1q84n_6t366_886",
49
+ "flash-type-success": "awsui_flash-type-success_1q84n_6t366_890",
50
+ "flash-type-error": "awsui_flash-type-error_1q84n_6t366_894",
51
+ "flash-type-info": "awsui_flash-type-info_1q84n_6t366_898",
52
+ "flash-type-in-progress": "awsui_flash-type-in-progress_1q84n_6t366_899",
53
+ "flash-type-warning": "awsui_flash-type-warning_1q84n_6t366_903"
54
54
  };
55
55