@cloudscape-design/components 3.0.341 → 3.0.343

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 (120) hide show
  1. package/area-chart/chart-container.d.ts +3 -1
  2. package/area-chart/chart-container.d.ts.map +1 -1
  3. package/area-chart/chart-container.js +3 -2
  4. package/area-chart/chart-container.js.map +1 -1
  5. package/area-chart/internal.d.ts +1 -1
  6. package/area-chart/internal.d.ts.map +1 -1
  7. package/area-chart/internal.js +3 -2
  8. package/area-chart/internal.js.map +1 -1
  9. package/area-chart/model/index.d.ts +1 -0
  10. package/area-chart/model/index.d.ts.map +1 -1
  11. package/area-chart/model/index.js.map +1 -1
  12. package/area-chart/model/use-chart-model.d.ts +2 -1
  13. package/area-chart/model/use-chart-model.d.ts.map +1 -1
  14. package/area-chart/model/use-chart-model.js +8 -2
  15. package/area-chart/model/use-chart-model.js.map +1 -1
  16. package/autosuggest/internal.js +4 -4
  17. package/autosuggest/internal.js.map +1 -1
  18. package/button-dropdown/tooltip.js +1 -1
  19. package/button-dropdown/tooltip.js.map +1 -1
  20. package/cards/index.d.ts.map +1 -1
  21. package/cards/index.js +8 -6
  22. package/cards/index.js.map +1 -1
  23. package/code-editor/index.js +1 -1
  24. package/code-editor/index.js.map +1 -1
  25. package/flashbar/common.js +2 -2
  26. package/flashbar/common.js.map +1 -1
  27. package/internal/analytics/components/analytics-funnel.d.ts +1 -1
  28. package/internal/analytics/components/analytics-funnel.d.ts.map +1 -1
  29. package/internal/analytics/components/analytics-funnel.js +24 -5
  30. package/internal/analytics/components/analytics-funnel.js.map +1 -1
  31. package/internal/analytics/context/analytics-context.d.ts +1 -0
  32. package/internal/analytics/context/analytics-context.d.ts.map +1 -1
  33. package/internal/analytics/context/analytics-context.js +1 -0
  34. package/internal/analytics/context/analytics-context.js.map +1 -1
  35. package/internal/analytics/index.d.ts.map +1 -1
  36. package/internal/analytics/index.js +1 -0
  37. package/internal/analytics/index.js.map +1 -1
  38. package/internal/analytics/interfaces.d.ts +13 -2
  39. package/internal/analytics/interfaces.d.ts.map +1 -1
  40. package/internal/analytics/interfaces.js.map +1 -1
  41. package/internal/components/autosuggest-input/index.d.ts.map +1 -1
  42. package/internal/components/autosuggest-input/index.js +10 -9
  43. package/internal/components/autosuggest-input/index.js.map +1 -1
  44. package/internal/components/cartesian-chart/chart-container.d.ts +2 -0
  45. package/internal/components/cartesian-chart/chart-container.d.ts.map +1 -1
  46. package/internal/components/cartesian-chart/chart-container.js +16 -3
  47. package/internal/components/cartesian-chart/chart-container.js.map +1 -1
  48. package/internal/components/cartesian-chart/interfaces.d.ts +5 -0
  49. package/internal/components/cartesian-chart/interfaces.d.ts.map +1 -1
  50. package/internal/components/cartesian-chart/interfaces.js.map +1 -1
  51. package/internal/components/cartesian-chart/styles.css.js +27 -23
  52. package/internal/components/cartesian-chart/styles.scoped.css +54 -27
  53. package/internal/components/cartesian-chart/styles.selectors.js +27 -23
  54. package/internal/components/chart-plot/index.d.ts +2 -2
  55. package/internal/components/chart-plot/index.d.ts.map +1 -1
  56. package/internal/components/chart-plot/index.js +3 -1
  57. package/internal/components/chart-plot/index.js.map +1 -1
  58. package/internal/components/chart-wrapper/index.d.ts +1 -0
  59. package/internal/components/chart-wrapper/index.d.ts.map +1 -1
  60. package/internal/components/chart-wrapper/index.js +21 -6
  61. package/internal/components/chart-wrapper/index.js.map +1 -1
  62. package/internal/components/chart-wrapper/styles.css.js +9 -6
  63. package/internal/components/chart-wrapper/styles.scoped.css +20 -6
  64. package/internal/components/chart-wrapper/styles.selectors.js +9 -6
  65. package/internal/components/transition/index.js +1 -1
  66. package/internal/components/transition/index.js.map +1 -1
  67. package/internal/environment.js +1 -1
  68. package/internal/environment.json +6 -0
  69. package/internal/hooks/use-portal-mode-classes/index.d.ts.map +1 -1
  70. package/internal/hooks/use-portal-mode-classes/index.js +2 -1
  71. package/internal/hooks/use-portal-mode-classes/index.js.map +1 -1
  72. package/internal/hooks/use-visual-mode/index.d.ts +0 -4
  73. package/internal/hooks/use-visual-mode/index.d.ts.map +1 -1
  74. package/internal/hooks/use-visual-mode/index.js +0 -30
  75. package/internal/hooks/use-visual-mode/index.js.map +1 -1
  76. package/internal/manifest.json +1 -1
  77. package/mixed-line-bar-chart/chart-container.d.ts +2 -1
  78. package/mixed-line-bar-chart/chart-container.d.ts.map +1 -1
  79. package/mixed-line-bar-chart/chart-container.js +8 -2
  80. package/mixed-line-bar-chart/chart-container.js.map +1 -1
  81. package/mixed-line-bar-chart/internal.d.ts +1 -1
  82. package/mixed-line-bar-chart/internal.d.ts.map +1 -1
  83. package/mixed-line-bar-chart/internal.js +3 -3
  84. package/mixed-line-bar-chart/internal.js.map +1 -1
  85. package/package.json +1 -1
  86. package/pie-chart/index.d.ts +1 -1
  87. package/pie-chart/index.d.ts.map +1 -1
  88. package/pie-chart/index.js +10 -3
  89. package/pie-chart/index.js.map +1 -1
  90. package/pie-chart/interfaces.d.ts +5 -0
  91. package/pie-chart/interfaces.d.ts.map +1 -1
  92. package/pie-chart/interfaces.js.map +1 -1
  93. package/pie-chart/labels.d.ts +3 -2
  94. package/pie-chart/labels.d.ts.map +1 -1
  95. package/pie-chart/labels.js +4 -4
  96. package/pie-chart/labels.js.map +1 -1
  97. package/pie-chart/pie-chart.d.ts +2 -1
  98. package/pie-chart/pie-chart.d.ts.map +1 -1
  99. package/pie-chart/pie-chart.js +18 -14
  100. package/pie-chart/pie-chart.js.map +1 -1
  101. package/pie-chart/segments.d.ts +3 -2
  102. package/pie-chart/segments.d.ts.map +1 -1
  103. package/pie-chart/segments.js +2 -6
  104. package/pie-chart/segments.js.map +1 -1
  105. package/pie-chart/styles.css.js +27 -23
  106. package/pie-chart/styles.scoped.css +58 -38
  107. package/pie-chart/styles.selectors.js +27 -23
  108. package/pie-chart/utils.d.ts +12 -2
  109. package/pie-chart/utils.d.ts.map +1 -1
  110. package/pie-chart/utils.js +37 -9
  111. package/pie-chart/utils.js.map +1 -1
  112. package/popover/internal.d.ts.map +1 -1
  113. package/popover/internal.js +9 -3
  114. package/popover/internal.js.map +1 -1
  115. package/tabs/smooth-scroll.js +1 -1
  116. package/tabs/smooth-scroll.js.map +1 -1
  117. package/internal/motion.d.ts +0 -2
  118. package/internal/motion.d.ts.map +0 -1
  119. package/internal/motion.js +0 -9
  120. package/internal/motion.js.map +0 -1
@@ -94,57 +94,57 @@ 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_segment__path_1edmh_1r7fz_97:not(#\9) {
97
+ .awsui_segment__path_1edmh_1ng0v_97:not(#\9) {
98
98
  transition: opacity var(--motion-duration-transition-quick-0viajb, 90ms) var(--motion-easing-transition-quick-191occ, linear);
99
99
  }
100
100
  @media (prefers-reduced-motion: reduce) {
101
- .awsui_segment__path_1edmh_1r7fz_97:not(#\9) {
101
+ .awsui_segment__path_1edmh_1ng0v_97:not(#\9) {
102
102
  animation: none;
103
103
  transition: none;
104
104
  }
105
105
  }
106
- .awsui-motion-disabled .awsui_segment__path_1edmh_1r7fz_97:not(#\9), .awsui-mode-entering .awsui_segment__path_1edmh_1r7fz_97:not(#\9) {
106
+ .awsui-motion-disabled .awsui_segment__path_1edmh_1ng0v_97:not(#\9), .awsui-mode-entering .awsui_segment__path_1edmh_1ng0v_97:not(#\9) {
107
107
  animation: none;
108
108
  transition: none;
109
109
  }
110
110
 
111
- .awsui_segment_1edmh_1r7fz_97:not(#\9) {
111
+ .awsui_segment_1edmh_1ng0v_97:not(#\9) {
112
112
  transition: opacity var(--motion-duration-transition-quick-0viajb, 90ms) var(--motion-easing-transition-quick-191occ, linear);
113
113
  }
114
114
  @media (prefers-reduced-motion: reduce) {
115
- .awsui_segment_1edmh_1r7fz_97:not(#\9) {
115
+ .awsui_segment_1edmh_1ng0v_97:not(#\9) {
116
116
  animation: none;
117
117
  transition: none;
118
118
  }
119
119
  }
120
- .awsui-motion-disabled .awsui_segment_1edmh_1r7fz_97:not(#\9), .awsui-mode-entering .awsui_segment_1edmh_1r7fz_97:not(#\9) {
120
+ .awsui-motion-disabled .awsui_segment_1edmh_1ng0v_97:not(#\9), .awsui-mode-entering .awsui_segment_1edmh_1ng0v_97:not(#\9) {
121
121
  animation: none;
122
122
  transition: none;
123
123
  }
124
- .awsui_segment_1edmh_1r7fz_97 > .awsui_segment__hover_1edmh_1r7fz_124:not(#\9) {
124
+ .awsui_segment_1edmh_1ng0v_97 > .awsui_segment__hover_1edmh_1ng0v_124:not(#\9) {
125
125
  transition: opacity var(--motion-duration-transition-quick-0viajb, 90ms) var(--motion-easing-transition-quick-191occ, linear);
126
126
  }
127
127
  @media (prefers-reduced-motion: reduce) {
128
- .awsui_segment_1edmh_1r7fz_97 > .awsui_segment__hover_1edmh_1r7fz_124:not(#\9) {
128
+ .awsui_segment_1edmh_1ng0v_97 > .awsui_segment__hover_1edmh_1ng0v_124:not(#\9) {
129
129
  animation: none;
130
130
  transition: none;
131
131
  }
132
132
  }
133
- .awsui-motion-disabled .awsui_segment_1edmh_1r7fz_97 > .awsui_segment__hover_1edmh_1r7fz_124:not(#\9), .awsui-mode-entering .awsui_segment_1edmh_1r7fz_97 > .awsui_segment__hover_1edmh_1r7fz_124:not(#\9) {
133
+ .awsui-motion-disabled .awsui_segment_1edmh_1ng0v_97 > .awsui_segment__hover_1edmh_1ng0v_124:not(#\9), .awsui-mode-entering .awsui_segment_1edmh_1ng0v_97 > .awsui_segment__hover_1edmh_1ng0v_124:not(#\9) {
134
134
  animation: none;
135
135
  transition: none;
136
136
  }
137
137
 
138
- .awsui_label_1edmh_1r7fz_138:not(#\9) {
138
+ .awsui_label_1edmh_1ng0v_138:not(#\9) {
139
139
  transition: opacity var(--motion-duration-transition-quick-0viajb, 90ms) var(--motion-easing-transition-quick-191occ, linear);
140
140
  }
141
141
  @media (prefers-reduced-motion: reduce) {
142
- .awsui_label_1edmh_1r7fz_138:not(#\9) {
142
+ .awsui_label_1edmh_1ng0v_138:not(#\9) {
143
143
  animation: none;
144
144
  transition: none;
145
145
  }
146
146
  }
147
- .awsui-motion-disabled .awsui_label_1edmh_1r7fz_138:not(#\9), .awsui-mode-entering .awsui_label_1edmh_1r7fz_138:not(#\9) {
147
+ .awsui-motion-disabled .awsui_label_1edmh_1ng0v_138:not(#\9), .awsui-mode-entering .awsui_label_1edmh_1ng0v_138:not(#\9) {
148
148
  animation: none;
149
149
  transition: none;
150
150
  }
@@ -153,39 +153,59 @@ surrounding text. (WCAG F73) https://www.w3.org/WAI/WCAG21/Techniques/failures/F
153
153
  Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
154
154
  SPDX-License-Identifier: Apache-2.0
155
155
  */
156
- .awsui_root_1edmh_1r7fz_156:not(#\9) {
156
+ .awsui_root_1edmh_1ng0v_156:not(#\9) {
157
157
  /* used in test-utils */
158
158
  }
159
159
 
160
- .awsui_content_1edmh_1r7fz_160.awsui_content--small_1edmh_1r7fz_160:not(#\9) {
160
+ .awsui_content_1edmh_1ng0v_160.awsui_content--small_1edmh_1ng0v_160:not(#\9) {
161
161
  min-height: calc(2 * (50px + var(--space-xs-edba2s, 8px) + calc(2 * var(--font-body-m-line-height-ghizru, 20px))));
162
162
  }
163
- .awsui_content_1edmh_1r7fz_160.awsui_content--small_1edmh_1r7fz_160.awsui_content--without-labels_1edmh_1r7fz_163:not(#\9) {
163
+ .awsui_content_1edmh_1ng0v_160.awsui_content--small_1edmh_1ng0v_160.awsui_content--without-labels_1edmh_1ng0v_163:not(#\9) {
164
164
  min-height: calc(2 * (50px + var(--space-xs-edba2s, 8px)));
165
165
  }
166
- .awsui_content_1edmh_1r7fz_160.awsui_content--medium_1edmh_1r7fz_166:not(#\9) {
166
+ .awsui_content_1edmh_1ng0v_160.awsui_content--medium_1edmh_1ng0v_166:not(#\9) {
167
167
  min-height: calc(2 * (100px + var(--space-s-hdd878, 12px) + calc(2 * var(--font-body-m-line-height-ghizru, 20px))));
168
168
  }
169
- .awsui_content_1edmh_1r7fz_160.awsui_content--medium_1edmh_1r7fz_166.awsui_content--without-labels_1edmh_1r7fz_163:not(#\9) {
169
+ .awsui_content_1edmh_1ng0v_160.awsui_content--medium_1edmh_1ng0v_166.awsui_content--without-labels_1edmh_1ng0v_163:not(#\9) {
170
170
  min-height: calc(2 * (100px + var(--space-s-hdd878, 12px)));
171
171
  }
172
- .awsui_content_1edmh_1r7fz_160.awsui_content--large_1edmh_1r7fz_172:not(#\9) {
172
+ .awsui_content_1edmh_1ng0v_160.awsui_content--large_1edmh_1ng0v_172:not(#\9) {
173
173
  min-height: calc(2 * (140px + var(--space-s-hdd878, 12px) + calc(2 * var(--font-body-m-line-height-ghizru, 20px))));
174
174
  }
175
- .awsui_content_1edmh_1r7fz_160.awsui_content--large_1edmh_1r7fz_172.awsui_content--without-labels_1edmh_1r7fz_163:not(#\9) {
175
+ .awsui_content_1edmh_1ng0v_160.awsui_content--large_1edmh_1ng0v_172.awsui_content--without-labels_1edmh_1ng0v_163:not(#\9) {
176
176
  min-height: calc(2 * (140px + var(--space-s-hdd878, 12px)));
177
177
  }
178
178
 
179
- .awsui_status-container_1edmh_1r7fz_179:not(#\9) {
179
+ .awsui_content--fit-height_1edmh_1ng0v_179:not(#\9) {
180
+ flex: 1;
181
+ }
182
+
183
+ .awsui_status-container_1edmh_1ng0v_183:not(#\9) {
180
184
  /* used in test utils */
181
185
  }
182
186
 
183
- .awsui_chart-container_1edmh_1r7fz_183:not(#\9) {
187
+ .awsui_chart-container_1edmh_1ng0v_187:not(#\9) {
184
188
  display: flex;
185
189
  flex: 1;
186
190
  }
191
+ .awsui_chart-container--fit-height_1edmh_1ng0v_191:not(#\9) {
192
+ height: 100%;
193
+ min-height: inherit;
194
+ }
195
+
196
+ .awsui_chart-container-chart-plot_1edmh_1ng0v_196:not(#\9) {
197
+ display: contents;
198
+ }
199
+ .awsui_chart-container-chart-plot--fit-height_1edmh_1ng0v_199:not(#\9) {
200
+ display: block;
201
+ position: absolute;
202
+ top: 0;
203
+ right: 0;
204
+ bottom: 0;
205
+ left: 0;
206
+ }
187
207
 
188
- .awsui_inner-content_1edmh_1r7fz_188:not(#\9) {
208
+ .awsui_inner-content_1edmh_1ng0v_208:not(#\9) {
189
209
  display: flex;
190
210
  position: absolute;
191
211
  flex-direction: column;
@@ -199,53 +219,53 @@ surrounding text. (WCAG F73) https://www.w3.org/WAI/WCAG21/Techniques/failures/F
199
219
  pointer-events: none;
200
220
  }
201
221
 
202
- .awsui_segment__highlight_1edmh_1r7fz_202:not(#\9) {
222
+ .awsui_segment__highlight_1edmh_1ng0v_222:not(#\9) {
203
223
  stroke: none;
204
224
  opacity: 0;
205
225
  }
206
226
 
207
- .awsui_segment_1edmh_1r7fz_97:not(#\9) {
227
+ .awsui_segment_1edmh_1ng0v_97:not(#\9) {
208
228
  stroke: var(--color-background-container-content-og3y0v, #ffffff);
209
229
  stroke-width: 2px;
210
230
  stroke-linejoin: round;
211
231
  opacity: 1;
212
232
  cursor: pointer;
213
233
  }
214
- .awsui_segment_1edmh_1r7fz_97:not(#\9):focus {
234
+ .awsui_segment_1edmh_1ng0v_97:not(#\9):focus {
215
235
  outline: none;
216
236
  }
217
- .awsui_segment_1edmh_1r7fz_97.awsui_segment--dimmed_1edmh_1r7fz_217:not(#\9) {
237
+ .awsui_segment_1edmh_1ng0v_97.awsui_segment--dimmed_1edmh_1ng0v_237:not(#\9) {
218
238
  opacity: 0.35;
219
239
  }
220
- .awsui_segment_1edmh_1r7fz_97.awsui_segment--highlighted_1edmh_1r7fz_220 > .awsui_segment__highlight_1edmh_1r7fz_202:not(#\9), .awsui_segment_1edmh_1r7fz_97:not(#\9):hover:not(.awsui_segment--dimmed_1edmh_1r7fz_217) > .awsui_segment__highlight_1edmh_1r7fz_202 {
240
+ .awsui_segment_1edmh_1ng0v_97.awsui_segment--highlighted_1edmh_1ng0v_240 > .awsui_segment__highlight_1edmh_1ng0v_222:not(#\9), .awsui_segment_1edmh_1ng0v_97:not(#\9):hover:not(.awsui_segment--dimmed_1edmh_1ng0v_237) > .awsui_segment__highlight_1edmh_1ng0v_222 {
221
241
  opacity: 1;
222
242
  }
223
243
 
224
- .awsui_label_1edmh_1r7fz_138:not(#\9) {
244
+ .awsui_label_1edmh_1ng0v_138:not(#\9) {
225
245
  color: var(--color-text-heading-default-18iw0k, #000716);
226
246
  opacity: 1;
227
247
  /* stylelint-disable-next-line selector-max-type */
228
248
  /* stylelint-disable-next-line selector-max-type */
229
249
  }
230
- .awsui_label_1edmh_1r7fz_138 > line:not(#\9) {
250
+ .awsui_label_1edmh_1ng0v_138 > line:not(#\9) {
231
251
  stroke: var(--color-stroke-chart-line-7sdstd, #7d8998);
232
252
  stroke-width: var(--border-divider-section-width-orq175, 2px);
233
253
  }
234
- .awsui_label_1edmh_1r7fz_138 > div:not(#\9) {
254
+ .awsui_label_1edmh_1ng0v_138 > div:not(#\9) {
235
255
  margin-top: -0.75em;
236
256
  }
237
- .awsui_label_1edmh_1r7fz_138.awsui_label--dimmed_1edmh_1r7fz_237:not(#\9) {
257
+ .awsui_label_1edmh_1ng0v_138.awsui_label--dimmed_1edmh_1ng0v_257:not(#\9) {
238
258
  opacity: 0.35;
239
259
  }
240
- .awsui_label_1edmh_1r7fz_138.awsui_label--align-right_1edmh_1r7fz_240:not(#\9) {
260
+ .awsui_label_1edmh_1ng0v_138.awsui_label--align-right_1edmh_1ng0v_260:not(#\9) {
241
261
  /* stylelint-disable-next-line selector-max-type */
242
262
  }
243
- .awsui_label_1edmh_1r7fz_138.awsui_label--align-right_1edmh_1r7fz_240 > div:not(#\9) {
263
+ .awsui_label_1edmh_1ng0v_138.awsui_label--align-right_1edmh_1ng0v_260 > div:not(#\9) {
244
264
  text-align: right;
245
265
  }
246
266
 
247
267
  /* stylelint-disable-next-line selector-max-type */
248
- .awsui_label-text_1edmh_1r7fz_248 > text:not(#\9) {
268
+ .awsui_label-text_1edmh_1ng0v_268 > text:not(#\9) {
249
269
  font-size: var(--font-body-m-size-7dign1, 14px);
250
270
  line-height: var(--font-body-m-line-height-ghizru, 20px);
251
271
  font-weight: var(--font-display-label-weight-io22e5, 700);
@@ -253,22 +273,22 @@ surrounding text. (WCAG F73) https://www.w3.org/WAI/WCAG21/Techniques/failures/F
253
273
  dominant-baseline: middle;
254
274
  }
255
275
 
256
- text.awsui_label__description_1edmh_1r7fz_256:not(#\9) {
276
+ text.awsui_label__description_1edmh_1ng0v_276:not(#\9) {
257
277
  font-size: var(--font-chart-detail-size-gtiv3j, 12px);
258
278
  font-weight: 400;
259
279
  color: var(--color-text-group-label-qtmgp9, #414d5c);
260
280
  fill: var(--color-text-group-label-qtmgp9, #414d5c);
261
281
  }
262
282
 
263
- .awsui_label-line_1edmh_1r7fz_263:not(#\9) {
283
+ .awsui_label-line_1edmh_1ng0v_283:not(#\9) {
264
284
  /* used in component code */
265
285
  }
266
286
 
267
- .awsui_label--highlighted_1edmh_1r7fz_267:not(#\9) {
287
+ .awsui_label--highlighted_1edmh_1ng0v_287:not(#\9) {
268
288
  /* used in test-utils */
269
289
  }
270
290
 
271
- .awsui_popover-header_1edmh_1r7fz_271:not(#\9) {
291
+ .awsui_popover-header_1edmh_1ng0v_291:not(#\9) {
272
292
  display: inline-flex;
273
293
  align-items: flex-start;
274
294
  }
@@ -2,28 +2,32 @@
2
2
  // es-module interop with Babel and Typescript
3
3
  Object.defineProperty(exports, "__esModule", { value: true });
4
4
  module.exports.default = {
5
- "segment__path": "awsui_segment__path_1edmh_1r7fz_97",
6
- "segment": "awsui_segment_1edmh_1r7fz_97",
7
- "segment__hover": "awsui_segment__hover_1edmh_1r7fz_124",
8
- "label": "awsui_label_1edmh_1r7fz_138",
9
- "root": "awsui_root_1edmh_1r7fz_156",
10
- "content": "awsui_content_1edmh_1r7fz_160",
11
- "content--small": "awsui_content--small_1edmh_1r7fz_160",
12
- "content--without-labels": "awsui_content--without-labels_1edmh_1r7fz_163",
13
- "content--medium": "awsui_content--medium_1edmh_1r7fz_166",
14
- "content--large": "awsui_content--large_1edmh_1r7fz_172",
15
- "status-container": "awsui_status-container_1edmh_1r7fz_179",
16
- "chart-container": "awsui_chart-container_1edmh_1r7fz_183",
17
- "inner-content": "awsui_inner-content_1edmh_1r7fz_188",
18
- "segment__highlight": "awsui_segment__highlight_1edmh_1r7fz_202",
19
- "segment--dimmed": "awsui_segment--dimmed_1edmh_1r7fz_217",
20
- "segment--highlighted": "awsui_segment--highlighted_1edmh_1r7fz_220",
21
- "label--dimmed": "awsui_label--dimmed_1edmh_1r7fz_237",
22
- "label--align-right": "awsui_label--align-right_1edmh_1r7fz_240",
23
- "label-text": "awsui_label-text_1edmh_1r7fz_248",
24
- "label__description": "awsui_label__description_1edmh_1r7fz_256",
25
- "label-line": "awsui_label-line_1edmh_1r7fz_263",
26
- "label--highlighted": "awsui_label--highlighted_1edmh_1r7fz_267",
27
- "popover-header": "awsui_popover-header_1edmh_1r7fz_271"
5
+ "segment__path": "awsui_segment__path_1edmh_1ng0v_97",
6
+ "segment": "awsui_segment_1edmh_1ng0v_97",
7
+ "segment__hover": "awsui_segment__hover_1edmh_1ng0v_124",
8
+ "label": "awsui_label_1edmh_1ng0v_138",
9
+ "root": "awsui_root_1edmh_1ng0v_156",
10
+ "content": "awsui_content_1edmh_1ng0v_160",
11
+ "content--small": "awsui_content--small_1edmh_1ng0v_160",
12
+ "content--without-labels": "awsui_content--without-labels_1edmh_1ng0v_163",
13
+ "content--medium": "awsui_content--medium_1edmh_1ng0v_166",
14
+ "content--large": "awsui_content--large_1edmh_1ng0v_172",
15
+ "content--fit-height": "awsui_content--fit-height_1edmh_1ng0v_179",
16
+ "status-container": "awsui_status-container_1edmh_1ng0v_183",
17
+ "chart-container": "awsui_chart-container_1edmh_1ng0v_187",
18
+ "chart-container--fit-height": "awsui_chart-container--fit-height_1edmh_1ng0v_191",
19
+ "chart-container-chart-plot": "awsui_chart-container-chart-plot_1edmh_1ng0v_196",
20
+ "chart-container-chart-plot--fit-height": "awsui_chart-container-chart-plot--fit-height_1edmh_1ng0v_199",
21
+ "inner-content": "awsui_inner-content_1edmh_1ng0v_208",
22
+ "segment__highlight": "awsui_segment__highlight_1edmh_1ng0v_222",
23
+ "segment--dimmed": "awsui_segment--dimmed_1edmh_1ng0v_237",
24
+ "segment--highlighted": "awsui_segment--highlighted_1edmh_1ng0v_240",
25
+ "label--dimmed": "awsui_label--dimmed_1edmh_1ng0v_257",
26
+ "label--align-right": "awsui_label--align-right_1edmh_1ng0v_260",
27
+ "label-text": "awsui_label-text_1edmh_1ng0v_268",
28
+ "label__description": "awsui_label__description_1edmh_1ng0v_276",
29
+ "label-line": "awsui_label-line_1edmh_1ng0v_283",
30
+ "label--highlighted": "awsui_label--highlighted_1edmh_1ng0v_287",
31
+ "popover-header": "awsui_popover-header_1edmh_1ng0v_291"
28
32
  };
29
33
 
@@ -1,6 +1,6 @@
1
1
  import { ComponentFormatFunction } from '../internal/i18n/context';
2
2
  import { PieChartProps } from './interfaces';
3
- interface Dimension {
3
+ export interface Dimension {
4
4
  innerRadius: number;
5
5
  outerRadius: number;
6
6
  padding: number;
@@ -10,6 +10,17 @@ interface Dimension {
10
10
  }
11
11
  export declare const dimensionsBySize: Record<NonNullable<PieChartProps['size']>, Dimension>;
12
12
  export declare const refreshDimensionsBySize: Record<NonNullable<PieChartProps['size']>, Dimension>;
13
+ /**
14
+ * When `size` is a string ("small", "medium" or "large") the predefined pie chart element dimensions for classic and visual refresh are used.
15
+ * When `size` is a number the outer and inner radii are computed and the rest of the dimensions are taken from the closest predefined size.
16
+ */
17
+ export declare function getDimensionsBySize({ size, hasLabels, visualRefresh, }: {
18
+ size: NonNullable<PieChartProps['size']> | number;
19
+ hasLabels: boolean;
20
+ visualRefresh?: boolean;
21
+ }): Dimension & {
22
+ size: NonNullable<PieChartProps['size']>;
23
+ };
13
24
  export declare const defaultDetails: (i18n: ComponentFormatFunction<'pie-chart'>, i18nStrings: PieChartProps.I18nStrings) => (datum: PieChartProps.Datum, dataSum: number) => ({
14
25
  key: string;
15
26
  value: number;
@@ -26,5 +37,4 @@ export declare const defaultDetails: (i18n: ComponentFormatFunction<'pie-chart'>
26
37
  export declare const balanceLabelNodes: (nodes: NodeListOf<SVGGElement>, markers: Array<{
27
38
  endY: number;
28
39
  }>, leftSide: boolean) => void;
29
- export {};
30
40
  //# sourceMappingURL=utils.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"lib/default/","sources":["pie-chart/utils.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,uBAAuB,EAAE,MAAM,0BAA0B,CAAC;AACnE,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAG7C,UAAU,SAAS;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,MAAM,CAAC;IACtB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,eAAO,MAAM,gBAAgB,EAAE,MAAM,CAAC,WAAW,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,EAAE,SAAS,CAsBlF,CAAC;AAEF,eAAO,MAAM,uBAAuB,EAAE,MAAM,CAAC,WAAW,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,EAAE,SAAS,CAgBzF,CAAC;AAEF,eAAO,MAAM,cAAc,SAClB,wBAAwB,WAAW,CAAC,eAAe,cAAc,WAAW,aAC3E,cAAc,KAAK,WAAW,MAAM;;;;;;IAOzC,CAAC;AAEN;;;;;GAKG;AACH,eAAO,MAAM,iBAAiB,UACrB,WAAW,WAAW,CAAC,WACrB,MAAM;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC,YACtB,OAAO,SAkElB,CAAC"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"lib/default/","sources":["pie-chart/utils.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,uBAAuB,EAAE,MAAM,0BAA0B,CAAC;AACnE,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAG7C,MAAM,WAAW,SAAS;IACxB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,MAAM,CAAC;IACtB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAMD,eAAO,MAAM,gBAAgB,EAAE,MAAM,CAAC,WAAW,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,EAAE,SAAS,CAsBlF,CAAC;AAEF,eAAO,MAAM,uBAAuB,EAAE,MAAM,CAAC,WAAW,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,EAAE,SAAS,CAgBzF,CAAC;AAEF;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,EAClC,IAAI,EACJ,SAAS,EACT,aAAa,GACd,EAAE;IACD,IAAI,EAAE,WAAW,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,GAAG,MAAM,CAAC;IAClD,SAAS,EAAE,OAAO,CAAC;IACnB,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB,GAAG,SAAS,GAAG;IAAE,IAAI,EAAE,WAAW,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAA;CAAE,CAuB3D;AAED,eAAO,MAAM,cAAc,SAClB,wBAAwB,WAAW,CAAC,eAAe,cAAc,WAAW,aAC3E,cAAc,KAAK,WAAW,MAAM;;;;;;IAOzC,CAAC;AAEN;;;;;GAKG;AACH,eAAO,MAAM,iBAAiB,UACrB,WAAW,WAAW,CAAC,WACrB,MAAM;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC,YACtB,OAAO,SAkElB,CAAC"}
@@ -1,25 +1,28 @@
1
1
  import styles from './styles.css.js';
2
+ const paddingLabels = 44; // = 2 * (size-lineHeight-body-100)
3
+ const defaultPadding = 12; // = space-s
4
+ const smallPadding = 8; // = space-xs
2
5
  export const dimensionsBySize = {
3
6
  small: {
4
7
  innerRadius: 33,
5
8
  outerRadius: 50,
6
- innerLabelPadding: 8,
7
- padding: 8,
8
- paddingLabels: 44, // = 2 * (size-lineHeight-body-100)
9
+ innerLabelPadding: smallPadding,
10
+ padding: smallPadding,
11
+ paddingLabels,
9
12
  },
10
13
  medium: {
11
14
  innerRadius: 66,
12
15
  outerRadius: 100,
13
- innerLabelPadding: 12,
14
- padding: 12,
15
- paddingLabels: 44, // = 2 * (size-lineHeight-body-100)
16
+ innerLabelPadding: defaultPadding,
17
+ padding: defaultPadding,
18
+ paddingLabels,
16
19
  },
17
20
  large: {
18
21
  innerRadius: 93,
19
22
  outerRadius: 140,
20
- innerLabelPadding: 12,
21
- padding: 12,
22
- paddingLabels: 44, // = 2 * (size-lineHeight-body-100)
23
+ innerLabelPadding: defaultPadding,
24
+ padding: defaultPadding,
25
+ paddingLabels,
23
26
  },
24
27
  };
25
28
  export const refreshDimensionsBySize = {
@@ -27,6 +30,31 @@ export const refreshDimensionsBySize = {
27
30
  medium: Object.assign(Object.assign({}, dimensionsBySize.medium), { innerRadius: 75, cornerRadius: 4 }),
28
31
  large: Object.assign(Object.assign({}, dimensionsBySize.large), { innerRadius: 105, cornerRadius: 5 }),
29
32
  };
33
+ /**
34
+ * When `size` is a string ("small", "medium" or "large") the predefined pie chart element dimensions for classic and visual refresh are used.
35
+ * When `size` is a number the outer and inner radii are computed and the rest of the dimensions are taken from the closest predefined size.
36
+ */
37
+ export function getDimensionsBySize({ size, hasLabels, visualRefresh, }) {
38
+ if (typeof size === 'string') {
39
+ const dimensions = visualRefresh ? refreshDimensionsBySize[size] : dimensionsBySize[size];
40
+ return Object.assign(Object.assign({}, dimensions), { size });
41
+ }
42
+ const sizeSpec = visualRefresh ? refreshDimensionsBySize : dimensionsBySize;
43
+ const getPixelSize = (d) => d.outerRadius * 2 + d.padding * 2 + (hasLabels ? d.paddingLabels : 0) * 2;
44
+ let matchedSize = 'small';
45
+ if (size > getPixelSize(sizeSpec.medium)) {
46
+ matchedSize = 'medium';
47
+ }
48
+ if (size > getPixelSize(sizeSpec.large)) {
49
+ matchedSize = 'large';
50
+ }
51
+ const padding = sizeSpec[matchedSize].padding;
52
+ const paddingLabels = hasLabels ? sizeSpec[matchedSize].paddingLabels : 0;
53
+ const radiiRatio = sizeSpec[matchedSize].outerRadius / sizeSpec[matchedSize].innerRadius;
54
+ const outerRadius = (size - 2 * paddingLabels - 2 * padding) / 2;
55
+ const innerRadius = outerRadius / radiiRatio;
56
+ return Object.assign(Object.assign({}, sizeSpec[matchedSize]), { outerRadius, innerRadius, size: matchedSize });
57
+ }
30
58
  export const defaultDetails = (i18n, i18nStrings) => (datum, dataSum) => [
31
59
  { key: i18n('i18nStrings.detailsValue', i18nStrings.detailsValue) || '', value: datum.value },
32
60
  {
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"lib/default/","sources":["pie-chart/utils.ts"],"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 { ComponentFormatFunction } from '../internal/i18n/context';\nimport { PieChartProps } from './interfaces';\nimport styles from './styles.css.js';\n\ninterface Dimension {\n innerRadius: number;\n outerRadius: number;\n padding: number;\n paddingLabels: number;\n innerLabelPadding: number;\n cornerRadius?: number;\n}\n\nexport const dimensionsBySize: Record<NonNullable<PieChartProps['size']>, Dimension> = {\n small: {\n innerRadius: 33,\n outerRadius: 50,\n innerLabelPadding: 8,\n padding: 8, // = space-xs\n paddingLabels: 44, // = 2 * (size-lineHeight-body-100)\n },\n medium: {\n innerRadius: 66,\n outerRadius: 100,\n innerLabelPadding: 12,\n padding: 12, // = space-s\n paddingLabels: 44, // = 2 * (size-lineHeight-body-100)\n },\n large: {\n innerRadius: 93,\n outerRadius: 140,\n innerLabelPadding: 12,\n padding: 12, // = space-s\n paddingLabels: 44, // = 2 * (size-lineHeight-body-100)\n },\n};\n\nexport const refreshDimensionsBySize: Record<NonNullable<PieChartProps['size']>, Dimension> = {\n small: {\n ...dimensionsBySize.small,\n innerRadius: 38,\n cornerRadius: 3,\n },\n medium: {\n ...dimensionsBySize.medium,\n innerRadius: 75,\n cornerRadius: 4,\n },\n large: {\n ...dimensionsBySize.large,\n innerRadius: 105,\n cornerRadius: 5,\n },\n};\n\nexport const defaultDetails =\n (i18n: ComponentFormatFunction<'pie-chart'>, i18nStrings: PieChartProps.I18nStrings) =>\n (datum: PieChartProps.Datum, dataSum: number) =>\n [\n { key: i18n('i18nStrings.detailsValue', i18nStrings.detailsValue) || '', value: datum.value },\n {\n key: i18n('i18nStrings.detailsPercentage', i18nStrings.detailsPercentage) || '',\n value: `${((datum.value * 100) / dataSum).toFixed(0)}%`,\n },\n ];\n\n/**\n * Adjusts the position of the given label nodes to avoid visual overlapping.\n * @param nodes List of label nodes of the entire chart (both left and right side)\n * @param markers Markers array that was calculated in <Labels>, but we just need the `endY` values\n * @param leftSide Boolean flag whether we are processing the left or right side of the chart labels\n */\nexport const balanceLabelNodes = (\n nodes: NodeListOf<SVGGElement>,\n markers: Array<{ endY: number }>,\n leftSide: boolean\n) => {\n const MARGIN = 10;\n\n let previousBBox: { x: number; y: number; height: number } | null = null;\n\n // When traversing the right side of labels, we start at the beginning of the array and go forwards.\n // For the left side, we need to traverse backwards from the end, so that overlapping nodes are pushed down in the right order.\n let i = leftSide ? nodes.length - 1 : 0;\n\n while ((leftSide && i >= 0) || (!leftSide && i < nodes.length)) {\n const node = nodes[i];\n\n // Currently using dataset attributes to determine the base position.\n // This implementation can be changed back to using `getBBox` when we drop IE11 support.\n // Unfortunately, there is no good alternative for `getBBox` that is supported by IE11.\n // `getBoundingClientRect` works for width and height calculations in SVG, but the x/y positions are inaccurate.\n const x = parseFloat(node.getAttribute('data-x') || '0');\n const y = parseFloat(node.getAttribute('data-y') || '0');\n const box = {\n x,\n y,\n height: node.getBoundingClientRect().height,\n };\n\n const marker = markers[i];\n\n if (leftSide) {\n i--;\n } else {\n i++;\n }\n\n if (!previousBBox) {\n previousBBox = box;\n node.setAttribute('transform', '');\n continue;\n }\n\n if ((!leftSide && box.x < 0) || (leftSide && box.x >= 0)) {\n // We have reached a label that is on the other side of the chart, so we're done.\n break;\n }\n\n node.setAttribute('transform', '');\n\n // Calculate how much the current node is overlapping with the previous one.\n const offset = previousBBox.y + previousBBox.height + MARGIN - box.y;\n\n if (offset > 0) {\n // Move the label down.\n node.setAttribute('transform', `translate(0 ${offset})`);\n\n // Adjust the attached line accordingly.\n const lineNode = node.parentNode?.querySelector(`.${styles['label-line']}`);\n if (lineNode) {\n const { endY } = marker;\n lineNode.setAttribute('y2', '' + (endY + offset));\n }\n\n // Update the position accordingly to inform the next label\n box.y += offset;\n }\n\n previousBBox = box;\n }\n};\n"]}
1
+ {"version":3,"file":"utils.js","sourceRoot":"lib/default/","sources":["pie-chart/utils.ts"],"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 { ComponentFormatFunction } from '../internal/i18n/context';\nimport { PieChartProps } from './interfaces';\nimport styles from './styles.css.js';\n\nexport interface Dimension {\n innerRadius: number;\n outerRadius: number;\n padding: number;\n paddingLabels: number;\n innerLabelPadding: number;\n cornerRadius?: number;\n}\n\nconst paddingLabels = 44; // = 2 * (size-lineHeight-body-100)\nconst defaultPadding = 12; // = space-s\nconst smallPadding = 8; // = space-xs\n\nexport const dimensionsBySize: Record<NonNullable<PieChartProps['size']>, Dimension> = {\n small: {\n innerRadius: 33,\n outerRadius: 50,\n innerLabelPadding: smallPadding,\n padding: smallPadding,\n paddingLabels,\n },\n medium: {\n innerRadius: 66,\n outerRadius: 100,\n innerLabelPadding: defaultPadding,\n padding: defaultPadding,\n paddingLabels,\n },\n large: {\n innerRadius: 93,\n outerRadius: 140,\n innerLabelPadding: defaultPadding,\n padding: defaultPadding,\n paddingLabels,\n },\n};\n\nexport const refreshDimensionsBySize: Record<NonNullable<PieChartProps['size']>, Dimension> = {\n small: {\n ...dimensionsBySize.small,\n innerRadius: 38,\n cornerRadius: 3,\n },\n medium: {\n ...dimensionsBySize.medium,\n innerRadius: 75,\n cornerRadius: 4,\n },\n large: {\n ...dimensionsBySize.large,\n innerRadius: 105,\n cornerRadius: 5,\n },\n};\n\n/**\n * When `size` is a string (\"small\", \"medium\" or \"large\") the predefined pie chart element dimensions for classic and visual refresh are used.\n * When `size` is a number the outer and inner radii are computed and the rest of the dimensions are taken from the closest predefined size.\n */\nexport function getDimensionsBySize({\n size,\n hasLabels,\n visualRefresh,\n}: {\n size: NonNullable<PieChartProps['size']> | number;\n hasLabels: boolean;\n visualRefresh?: boolean;\n}): Dimension & { size: NonNullable<PieChartProps['size']> } {\n if (typeof size === 'string') {\n const dimensions = visualRefresh ? refreshDimensionsBySize[size] : dimensionsBySize[size];\n return { ...dimensions, size };\n }\n const sizeSpec = visualRefresh ? refreshDimensionsBySize : dimensionsBySize;\n const getPixelSize = (d: Dimension) => d.outerRadius * 2 + d.padding * 2 + (hasLabels ? d.paddingLabels : 0) * 2;\n\n let matchedSize: NonNullable<PieChartProps['size']> = 'small';\n if (size > getPixelSize(sizeSpec.medium)) {\n matchedSize = 'medium';\n }\n if (size > getPixelSize(sizeSpec.large)) {\n matchedSize = 'large';\n }\n\n const padding = sizeSpec[matchedSize].padding;\n const paddingLabels = hasLabels ? sizeSpec[matchedSize].paddingLabels : 0;\n const radiiRatio = sizeSpec[matchedSize].outerRadius / sizeSpec[matchedSize].innerRadius;\n const outerRadius = (size - 2 * paddingLabels - 2 * padding) / 2;\n const innerRadius = outerRadius / radiiRatio;\n\n return { ...sizeSpec[matchedSize], outerRadius, innerRadius, size: matchedSize };\n}\n\nexport const defaultDetails =\n (i18n: ComponentFormatFunction<'pie-chart'>, i18nStrings: PieChartProps.I18nStrings) =>\n (datum: PieChartProps.Datum, dataSum: number) =>\n [\n { key: i18n('i18nStrings.detailsValue', i18nStrings.detailsValue) || '', value: datum.value },\n {\n key: i18n('i18nStrings.detailsPercentage', i18nStrings.detailsPercentage) || '',\n value: `${((datum.value * 100) / dataSum).toFixed(0)}%`,\n },\n ];\n\n/**\n * Adjusts the position of the given label nodes to avoid visual overlapping.\n * @param nodes List of label nodes of the entire chart (both left and right side)\n * @param markers Markers array that was calculated in <Labels>, but we just need the `endY` values\n * @param leftSide Boolean flag whether we are processing the left or right side of the chart labels\n */\nexport const balanceLabelNodes = (\n nodes: NodeListOf<SVGGElement>,\n markers: Array<{ endY: number }>,\n leftSide: boolean\n) => {\n const MARGIN = 10;\n\n let previousBBox: { x: number; y: number; height: number } | null = null;\n\n // When traversing the right side of labels, we start at the beginning of the array and go forwards.\n // For the left side, we need to traverse backwards from the end, so that overlapping nodes are pushed down in the right order.\n let i = leftSide ? nodes.length - 1 : 0;\n\n while ((leftSide && i >= 0) || (!leftSide && i < nodes.length)) {\n const node = nodes[i];\n\n // Currently using dataset attributes to determine the base position.\n // This implementation can be changed back to using `getBBox` when we drop IE11 support.\n // Unfortunately, there is no good alternative for `getBBox` that is supported by IE11.\n // `getBoundingClientRect` works for width and height calculations in SVG, but the x/y positions are inaccurate.\n const x = parseFloat(node.getAttribute('data-x') || '0');\n const y = parseFloat(node.getAttribute('data-y') || '0');\n const box = {\n x,\n y,\n height: node.getBoundingClientRect().height,\n };\n\n const marker = markers[i];\n\n if (leftSide) {\n i--;\n } else {\n i++;\n }\n\n if (!previousBBox) {\n previousBBox = box;\n node.setAttribute('transform', '');\n continue;\n }\n\n if ((!leftSide && box.x < 0) || (leftSide && box.x >= 0)) {\n // We have reached a label that is on the other side of the chart, so we're done.\n break;\n }\n\n node.setAttribute('transform', '');\n\n // Calculate how much the current node is overlapping with the previous one.\n const offset = previousBBox.y + previousBBox.height + MARGIN - box.y;\n\n if (offset > 0) {\n // Move the label down.\n node.setAttribute('transform', `translate(0 ${offset})`);\n\n // Adjust the attached line accordingly.\n const lineNode = node.parentNode?.querySelector(`.${styles['label-line']}`);\n if (lineNode) {\n const { endY } = marker;\n lineNode.setAttribute('y2', '' + (endY + offset));\n }\n\n // Update the position accordingly to inform the next label\n box.y += offset;\n }\n\n previousBBox = box;\n }\n};\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"internal.d.ts","sourceRoot":"lib/default/","sources":["popover/internal.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAwE,MAAM,OAAO,CAAC;AAS7F,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAK5C,OAAO,EAAE,yBAAyB,EAA0B,MAAM,0BAA0B,CAAC;AAC7F,OAAO,EAAE,0BAA0B,EAAE,MAAM,sCAAsC,CAAC;AAMlF,MAAM,WAAW,oBAAqB,SAAQ,YAAY,EAAE,0BAA0B;IACpF,QAAQ,CAAC,EAAE,yBAAyB,CAAC,IAAI,CAAC,CAAC;CAC5C;AAED,MAAM,WAAW,kBAAkB;IACjC,cAAc,EAAE,MAAM,IAAI,CAAC;CAC5B;;AAED,wBAAiD"}
1
+ {"version":3,"file":"internal.d.ts","sourceRoot":"lib/default/","sources":["popover/internal.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAwE,MAAM,OAAO,CAAC;AAS7F,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAK5C,OAAO,EAAE,yBAAyB,EAA0B,MAAM,0BAA0B,CAAC;AAC7F,OAAO,EAAE,0BAA0B,EAAE,MAAM,sCAAsC,CAAC;AAOlF,MAAM,WAAW,oBAAqB,SAAQ,YAAY,EAAE,0BAA0B;IACpF,QAAQ,CAAC,EAAE,yBAAyB,CAAC,IAAI,CAAC,CAAC;CAC5C;AAED,MAAM,WAAW,kBAAkB;IACjC,cAAc,EAAE,MAAM,IAAI,CAAC;CAC5B;;AAED,wBAAiD"}
@@ -16,6 +16,7 @@ import { useMergeRefs } from '../internal/hooks/use-merge-refs';
16
16
  import { usePortalModeClasses } from '../internal/hooks/use-portal-mode-classes';
17
17
  import { useInternalI18n } from '../internal/i18n/context';
18
18
  import { useUniqueId } from '../internal/hooks/use-unique-id';
19
+ import { getFirstFocusable } from '../internal/components/focus-lock/utils';
19
20
  export default React.forwardRef(InternalPopover);
20
21
  function InternalPopover(_a, ref) {
21
22
  var { position = 'right', size = 'medium', fixedWidth = false, triggerType = 'text', dismissButton = true, children, header, content, renderWithPortal = false, __onOpen, __internalRootRef = null } = _a, restProps = __rest(_a, ["position", "size", "fixedWidth", "triggerType", "dismissButton", "children", "header", "content", "renderWithPortal", "__onOpen", "__internalRootRef"]);
@@ -27,9 +28,14 @@ function InternalPopover(_a, ref) {
27
28
  const dismissAriaLabel = i18n('dismissAriaLabel', restProps.dismissAriaLabel);
28
29
  const [visible, setVisible] = useState(false);
29
30
  const focusTrigger = useCallback(() => {
30
- var _a;
31
- (_a = triggerRef.current) === null || _a === void 0 ? void 0 : _a.focus();
32
- }, []);
31
+ var _a, _b;
32
+ if (triggerType === 'text') {
33
+ (_a = triggerRef.current) === null || _a === void 0 ? void 0 : _a.focus();
34
+ }
35
+ else {
36
+ triggerRef.current && ((_b = getFirstFocusable(triggerRef.current)) === null || _b === void 0 ? void 0 : _b.focus());
37
+ }
38
+ }, [triggerType]);
33
39
  const onTriggerClick = useCallback(() => {
34
40
  fireNonCancelableEvent(__onOpen);
35
41
  setVisible(true);
@@ -1 +1 @@
1
- {"version":3,"file":"internal.js","sourceRoot":"lib/default/","sources":["popover/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, { useCallback, useEffect, useRef, useState, useImperativeHandle } from 'react';\nimport clsx from 'clsx';\n\nimport { KeyCode } from '../internal/keycode';\nimport { getBaseProps } from '../internal/base-component';\nimport { FormFieldContext } from '../internal/context/form-field-context';\n\nimport Arrow from './arrow';\nimport Portal from '../internal/components/portal';\nimport { PopoverProps } from './interfaces';\nimport PopoverContainer from './container';\nimport PopoverBody from './body';\n\nimport styles from './styles.css.js';\nimport { NonCancelableEventHandler, fireNonCancelableEvent } from '../internal/events/index';\nimport { InternalBaseComponentProps } from '../internal/hooks/use-base-component';\nimport { useMergeRefs } from '../internal/hooks/use-merge-refs';\nimport { usePortalModeClasses } from '../internal/hooks/use-portal-mode-classes';\nimport { useInternalI18n } from '../internal/i18n/context';\nimport { useUniqueId } from '../internal/hooks/use-unique-id';\n\nexport interface InternalPopoverProps extends PopoverProps, InternalBaseComponentProps {\n __onOpen?: NonCancelableEventHandler<null>;\n}\n\nexport interface InternalPopoverRef {\n dismissPopover: () => void;\n}\n\nexport default React.forwardRef(InternalPopover);\n\nfunction InternalPopover(\n {\n position = 'right',\n size = 'medium',\n fixedWidth = false,\n triggerType = 'text',\n dismissButton = true,\n\n children,\n header,\n content,\n\n renderWithPortal = false,\n\n __onOpen,\n __internalRootRef = null,\n ...restProps\n }: InternalPopoverProps,\n ref: React.Ref<InternalPopoverRef>\n) {\n const baseProps = getBaseProps(restProps);\n const triggerRef = useRef<HTMLElement | null>(null);\n const popoverRef = useRef<HTMLDivElement | null>(null);\n const clickFrameId = useRef<number | null>(null);\n\n const i18n = useInternalI18n('popover');\n const dismissAriaLabel = i18n('dismissAriaLabel', restProps.dismissAriaLabel);\n\n const [visible, setVisible] = useState(false);\n\n const focusTrigger = useCallback(() => {\n triggerRef.current?.focus();\n }, []);\n\n const onTriggerClick = useCallback(() => {\n fireNonCancelableEvent(__onOpen);\n setVisible(true);\n }, [__onOpen]);\n\n const onDismiss = useCallback(() => {\n setVisible(false);\n focusTrigger();\n }, [focusTrigger]);\n\n const onTriggerKeyDown = useCallback((event: React.KeyboardEvent) => {\n if (event.keyCode === KeyCode.tab || event.keyCode === KeyCode.escape) {\n setVisible(false);\n }\n }, []);\n\n useImperativeHandle(ref, () => ({\n dismissPopover: onDismiss,\n }));\n\n useEffect(() => {\n if (!triggerRef.current) {\n return;\n }\n const document = triggerRef.current.ownerDocument;\n\n const onDocumentClick = () => {\n // Dismiss popover unless there was a click inside within the last animation frame.\n if (clickFrameId.current === null) {\n setVisible(false);\n }\n };\n\n // useCapture=false makes sure this listener is called after the one attached to the element.\n // the options.capture notation is unsupported by IE.\n document.addEventListener('mousedown', onDocumentClick, false);\n\n return () => {\n document.removeEventListener('mousedown', onDocumentClick, false);\n };\n }, []);\n\n const popoverClasses = usePortalModeClasses(triggerRef);\n\n const triggerProps = {\n // https://github.com/microsoft/TypeScript/issues/36659\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n ref: triggerRef as any,\n onClick: onTriggerClick,\n onKeyDown: onTriggerKeyDown,\n className: clsx(styles.trigger, styles[`trigger-type-${triggerType}`]),\n };\n\n const referrerId = useUniqueId();\n const popoverContent = (\n <div\n aria-live={dismissButton ? undefined : 'polite'}\n aria-atomic={dismissButton ? undefined : true}\n className={clsx(popoverClasses, styles['popover-content'])}\n data-awsui-referrer-id={referrerId}\n >\n {visible && (\n <PopoverContainer\n size={size}\n fixedWidth={fixedWidth}\n position={position}\n trackRef={triggerRef}\n arrow={position => <Arrow position={position} />}\n renderWithPortal={renderWithPortal}\n zIndex={renderWithPortal ? 7000 : undefined}\n >\n <PopoverBody\n dismissButton={dismissButton}\n dismissAriaLabel={dismissAriaLabel}\n header={header}\n onDismiss={onDismiss}\n overflowVisible=\"both\"\n >\n {content}\n </PopoverBody>\n </PopoverContainer>\n )}\n </div>\n );\n\n const mergedRef = useMergeRefs(popoverRef, __internalRootRef);\n\n return (\n <span\n {...baseProps}\n className={clsx(styles.root, baseProps.className)}\n ref={mergedRef}\n onMouseDown={() => {\n // Indicate there was a click inside popover recently, including nested portals.\n clickFrameId.current = requestAnimationFrame(() => {\n clickFrameId.current = null;\n });\n }}\n >\n {triggerType === 'text' ? (\n <button {...triggerProps} type=\"button\" aria-haspopup=\"dialog\" id={referrerId}>\n <span className={styles['trigger-inner-text']}>{children}</span>\n </button>\n ) : (\n <span {...triggerProps} id={referrerId}>\n {children}\n </span>\n )}\n <FormFieldContext.Provider value={{}}>\n {renderWithPortal ? <Portal>{popoverContent}</Portal> : popoverContent}\n </FormFieldContext.Provider>\n </span>\n );\n}\n"]}
1
+ {"version":3,"file":"internal.js","sourceRoot":"lib/default/","sources":["popover/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, { useCallback, useEffect, useRef, useState, useImperativeHandle } from 'react';\nimport clsx from 'clsx';\n\nimport { KeyCode } from '../internal/keycode';\nimport { getBaseProps } from '../internal/base-component';\nimport { FormFieldContext } from '../internal/context/form-field-context';\n\nimport Arrow from './arrow';\nimport Portal from '../internal/components/portal';\nimport { PopoverProps } from './interfaces';\nimport PopoverContainer from './container';\nimport PopoverBody from './body';\n\nimport styles from './styles.css.js';\nimport { NonCancelableEventHandler, fireNonCancelableEvent } from '../internal/events/index';\nimport { InternalBaseComponentProps } from '../internal/hooks/use-base-component';\nimport { useMergeRefs } from '../internal/hooks/use-merge-refs';\nimport { usePortalModeClasses } from '../internal/hooks/use-portal-mode-classes';\nimport { useInternalI18n } from '../internal/i18n/context';\nimport { useUniqueId } from '../internal/hooks/use-unique-id';\nimport { getFirstFocusable } from '../internal/components/focus-lock/utils';\n\nexport interface InternalPopoverProps extends PopoverProps, InternalBaseComponentProps {\n __onOpen?: NonCancelableEventHandler<null>;\n}\n\nexport interface InternalPopoverRef {\n dismissPopover: () => void;\n}\n\nexport default React.forwardRef(InternalPopover);\n\nfunction InternalPopover(\n {\n position = 'right',\n size = 'medium',\n fixedWidth = false,\n triggerType = 'text',\n dismissButton = true,\n\n children,\n header,\n content,\n\n renderWithPortal = false,\n\n __onOpen,\n __internalRootRef = null,\n ...restProps\n }: InternalPopoverProps,\n ref: React.Ref<InternalPopoverRef>\n) {\n const baseProps = getBaseProps(restProps);\n const triggerRef = useRef<HTMLElement | null>(null);\n const popoverRef = useRef<HTMLDivElement | null>(null);\n const clickFrameId = useRef<number | null>(null);\n\n const i18n = useInternalI18n('popover');\n const dismissAriaLabel = i18n('dismissAriaLabel', restProps.dismissAriaLabel);\n\n const [visible, setVisible] = useState(false);\n\n const focusTrigger = useCallback(() => {\n if (triggerType === 'text') {\n triggerRef.current?.focus();\n } else {\n triggerRef.current && getFirstFocusable(triggerRef.current)?.focus();\n }\n }, [triggerType]);\n\n const onTriggerClick = useCallback(() => {\n fireNonCancelableEvent(__onOpen);\n setVisible(true);\n }, [__onOpen]);\n\n const onDismiss = useCallback(() => {\n setVisible(false);\n focusTrigger();\n }, [focusTrigger]);\n\n const onTriggerKeyDown = useCallback((event: React.KeyboardEvent) => {\n if (event.keyCode === KeyCode.tab || event.keyCode === KeyCode.escape) {\n setVisible(false);\n }\n }, []);\n\n useImperativeHandle(ref, () => ({\n dismissPopover: onDismiss,\n }));\n\n useEffect(() => {\n if (!triggerRef.current) {\n return;\n }\n const document = triggerRef.current.ownerDocument;\n\n const onDocumentClick = () => {\n // Dismiss popover unless there was a click inside within the last animation frame.\n if (clickFrameId.current === null) {\n setVisible(false);\n }\n };\n\n // useCapture=false makes sure this listener is called after the one attached to the element.\n // the options.capture notation is unsupported by IE.\n document.addEventListener('mousedown', onDocumentClick, false);\n\n return () => {\n document.removeEventListener('mousedown', onDocumentClick, false);\n };\n }, []);\n\n const popoverClasses = usePortalModeClasses(triggerRef);\n\n const triggerProps = {\n // https://github.com/microsoft/TypeScript/issues/36659\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n ref: triggerRef as any,\n onClick: onTriggerClick,\n onKeyDown: onTriggerKeyDown,\n className: clsx(styles.trigger, styles[`trigger-type-${triggerType}`]),\n };\n\n const referrerId = useUniqueId();\n const popoverContent = (\n <div\n aria-live={dismissButton ? undefined : 'polite'}\n aria-atomic={dismissButton ? undefined : true}\n className={clsx(popoverClasses, styles['popover-content'])}\n data-awsui-referrer-id={referrerId}\n >\n {visible && (\n <PopoverContainer\n size={size}\n fixedWidth={fixedWidth}\n position={position}\n trackRef={triggerRef}\n arrow={position => <Arrow position={position} />}\n renderWithPortal={renderWithPortal}\n zIndex={renderWithPortal ? 7000 : undefined}\n >\n <PopoverBody\n dismissButton={dismissButton}\n dismissAriaLabel={dismissAriaLabel}\n header={header}\n onDismiss={onDismiss}\n overflowVisible=\"both\"\n >\n {content}\n </PopoverBody>\n </PopoverContainer>\n )}\n </div>\n );\n\n const mergedRef = useMergeRefs(popoverRef, __internalRootRef);\n\n return (\n <span\n {...baseProps}\n className={clsx(styles.root, baseProps.className)}\n ref={mergedRef}\n onMouseDown={() => {\n // Indicate there was a click inside popover recently, including nested portals.\n clickFrameId.current = requestAnimationFrame(() => {\n clickFrameId.current = null;\n });\n }}\n >\n {triggerType === 'text' ? (\n <button {...triggerProps} type=\"button\" aria-haspopup=\"dialog\" id={referrerId}>\n <span className={styles['trigger-inner-text']}>{children}</span>\n </button>\n ) : (\n <span {...triggerProps} id={referrerId}>\n {children}\n </span>\n )}\n <FormFieldContext.Provider value={{}}>\n {renderWithPortal ? <Portal>{popoverContent}</Portal> : popoverContent}\n </FormFieldContext.Provider>\n </span>\n );\n}\n"]}
@@ -1,6 +1,6 @@
1
1
  // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
2
2
  // SPDX-License-Identifier: Apache-2.0
3
- import { isMotionDisabled } from '../internal/motion';
3
+ import { isMotionDisabled } from '@cloudscape-design/component-toolkit/internal';
4
4
  import isNativeSmoothScrollingSupported from './native-smooth-scroll-supported';
5
5
  // The scroll speed depends on the scrolling distance. The equation below is an interpolation of measurements in Chrome.
6
6
  const getScrollSpeed = (pixels) => 0.0015 * Math.abs(pixels) + 0.558;
@@ -1 +1 @@
1
- {"version":3,"file":"smooth-scroll.js","sourceRoot":"lib/default/","sources":["tabs/smooth-scroll.ts"],"names":[],"mappings":"AAAA,qEAAqE;AACrE,sCAAsC;AACtC,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,gCAAgC,MAAM,kCAAkC,CAAC;AAUhF,wHAAwH;AACxH,MAAM,cAAc,GAAG,CAAC,MAAc,EAAE,EAAE,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,KAAK,CAAC;AAC7E,MAAM,aAAa,GAAG,CAAC,MAAc,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC;AAEhG,MAAM,GAAG,GAAG,GAAG,EAAE,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;AAE/E,MAAM,IAAI,GAAG,CAAC,CAAS,EAAU,EAAE;IACjC,OAAO,GAAG,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;AAC3C,CAAC,CAAC;AAEF,MAAM,IAAI,GAAG,CAAC,OAAsB,EAAQ,EAAE;IAC5C,MAAM,IAAI,GAAG,GAAG,EAAE,CAAC;IACnB,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,GAAG,OAAO,CAAC,SAAS,CAAC,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;IAC7E,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC;IAC5B,MAAM,QAAQ,GAAG,OAAO,CAAC,MAAM,GAAG,CAAC,OAAO,CAAC,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,GAAG,KAAK,CAAC;IAC1E,OAAO,CAAC,UAAU,CAAC,UAAU,GAAG,QAAQ,CAAC;IACzC,qDAAqD;IACrD,IAAI,QAAQ,KAAK,OAAO,CAAC,IAAI,EAAE;QAC7B,qBAAqB,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;KAC5C;AACH,CAAC,CAAC;AAEF,MAAM,oBAAoB,GAAG,CAAC,OAAoB,EAAE,IAAY,EAAQ,EAAE;IACxE,MAAM,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IAClC,IAAI,CAAC;QACH,UAAU,EAAE,OAAO;QACnB,MAAM;QACN,IAAI;QACJ,SAAS,EAAE,GAAG,EAAE;QAChB,UAAU,EAAE,aAAa,CAAC,IAAI,GAAG,MAAM,CAAC;KACzC,CAAC,CAAC;AACL,CAAC,CAAC;AAEF,MAAM,YAAY,GAAG,CAAC,OAAoB,EAAE,EAAU,EAAE,EAAE;IACxD,IAAI,gBAAgB,CAAC,OAAO,CAAC,EAAE;QAC7B,OAAO,CAAC,UAAU,GAAG,EAAE,CAAC;QACxB,OAAO;KACR;IACD,IAAI,gCAAgC,EAAE,IAAI,OAAO,CAAC,QAAQ,EAAE;QAC1D,OAAO,CAAC,QAAQ,CAAC;YACf,IAAI,EAAE,EAAE;YACR,QAAQ,EAAE,QAAQ;SACnB,CAAC,CAAC;QACH,OAAO;KACR;IACD,oBAAoB,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;AACpC,CAAC,CAAC;AAEF,eAAe,YAAY,CAAC","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { isMotionDisabled } from '../internal/motion';\nimport isNativeSmoothScrollingSupported from './native-smooth-scroll-supported';\n\ninterface ScrollContext {\n scrollable: HTMLElement;\n startX: number;\n endX: number;\n startTime: number;\n scrollTime: number;\n}\n\n// The scroll speed depends on the scrolling distance. The equation below is an interpolation of measurements in Chrome.\nconst getScrollSpeed = (pixels: number) => 0.0015 * Math.abs(pixels) + 0.558;\nconst getScrollTime = (pixels: number) => Math.round(Math.abs(pixels) / getScrollSpeed(pixels));\n\nconst now = () => (window.performance ? window.performance.now() : Date.now());\n\nconst ease = (k: number): number => {\n return 0.5 * (1 - Math.cos(Math.PI * k));\n};\n\nconst step = (context: ScrollContext): void => {\n const time = now();\n const elapsed = Math.min((time - context.startTime) / context.scrollTime, 1);\n const value = ease(elapsed);\n const currentX = context.startX + (context.endX - context.startX) * value;\n context.scrollable.scrollLeft = currentX;\n // scroll more if we have not reached our destination\n if (currentX !== context.endX) {\n requestAnimationFrame(() => step(context));\n }\n};\n\nconst simulateSmoothScroll = (element: HTMLElement, endX: number): void => {\n const startX = element.scrollLeft;\n step({\n scrollable: element,\n startX,\n endX,\n startTime: now(),\n scrollTime: getScrollTime(endX - startX),\n });\n};\n\nconst smoothScroll = (element: HTMLElement, to: number) => {\n if (isMotionDisabled(element)) {\n element.scrollLeft = to;\n return;\n }\n if (isNativeSmoothScrollingSupported() && element.scrollTo) {\n element.scrollTo({\n left: to,\n behavior: 'smooth',\n });\n return;\n }\n simulateSmoothScroll(element, to);\n};\n\nexport default smoothScroll;\n"]}
1
+ {"version":3,"file":"smooth-scroll.js","sourceRoot":"lib/default/","sources":["tabs/smooth-scroll.ts"],"names":[],"mappings":"AAAA,qEAAqE;AACrE,sCAAsC;AACtC,OAAO,EAAE,gBAAgB,EAAE,MAAM,+CAA+C,CAAC;AACjF,OAAO,gCAAgC,MAAM,kCAAkC,CAAC;AAUhF,wHAAwH;AACxH,MAAM,cAAc,GAAG,CAAC,MAAc,EAAE,EAAE,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,KAAK,CAAC;AAC7E,MAAM,aAAa,GAAG,CAAC,MAAc,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC;AAEhG,MAAM,GAAG,GAAG,GAAG,EAAE,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;AAE/E,MAAM,IAAI,GAAG,CAAC,CAAS,EAAU,EAAE;IACjC,OAAO,GAAG,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;AAC3C,CAAC,CAAC;AAEF,MAAM,IAAI,GAAG,CAAC,OAAsB,EAAQ,EAAE;IAC5C,MAAM,IAAI,GAAG,GAAG,EAAE,CAAC;IACnB,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,GAAG,OAAO,CAAC,SAAS,CAAC,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;IAC7E,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC;IAC5B,MAAM,QAAQ,GAAG,OAAO,CAAC,MAAM,GAAG,CAAC,OAAO,CAAC,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,GAAG,KAAK,CAAC;IAC1E,OAAO,CAAC,UAAU,CAAC,UAAU,GAAG,QAAQ,CAAC;IACzC,qDAAqD;IACrD,IAAI,QAAQ,KAAK,OAAO,CAAC,IAAI,EAAE;QAC7B,qBAAqB,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;KAC5C;AACH,CAAC,CAAC;AAEF,MAAM,oBAAoB,GAAG,CAAC,OAAoB,EAAE,IAAY,EAAQ,EAAE;IACxE,MAAM,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IAClC,IAAI,CAAC;QACH,UAAU,EAAE,OAAO;QACnB,MAAM;QACN,IAAI;QACJ,SAAS,EAAE,GAAG,EAAE;QAChB,UAAU,EAAE,aAAa,CAAC,IAAI,GAAG,MAAM,CAAC;KACzC,CAAC,CAAC;AACL,CAAC,CAAC;AAEF,MAAM,YAAY,GAAG,CAAC,OAAoB,EAAE,EAAU,EAAE,EAAE;IACxD,IAAI,gBAAgB,CAAC,OAAO,CAAC,EAAE;QAC7B,OAAO,CAAC,UAAU,GAAG,EAAE,CAAC;QACxB,OAAO;KACR;IACD,IAAI,gCAAgC,EAAE,IAAI,OAAO,CAAC,QAAQ,EAAE;QAC1D,OAAO,CAAC,QAAQ,CAAC;YACf,IAAI,EAAE,EAAE;YACR,QAAQ,EAAE,QAAQ;SACnB,CAAC,CAAC;QACH,OAAO;KACR;IACD,oBAAoB,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;AACpC,CAAC,CAAC;AAEF,eAAe,YAAY,CAAC","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { isMotionDisabled } from '@cloudscape-design/component-toolkit/internal';\nimport isNativeSmoothScrollingSupported from './native-smooth-scroll-supported';\n\ninterface ScrollContext {\n scrollable: HTMLElement;\n startX: number;\n endX: number;\n startTime: number;\n scrollTime: number;\n}\n\n// The scroll speed depends on the scrolling distance. The equation below is an interpolation of measurements in Chrome.\nconst getScrollSpeed = (pixels: number) => 0.0015 * Math.abs(pixels) + 0.558;\nconst getScrollTime = (pixels: number) => Math.round(Math.abs(pixels) / getScrollSpeed(pixels));\n\nconst now = () => (window.performance ? window.performance.now() : Date.now());\n\nconst ease = (k: number): number => {\n return 0.5 * (1 - Math.cos(Math.PI * k));\n};\n\nconst step = (context: ScrollContext): void => {\n const time = now();\n const elapsed = Math.min((time - context.startTime) / context.scrollTime, 1);\n const value = ease(elapsed);\n const currentX = context.startX + (context.endX - context.startX) * value;\n context.scrollable.scrollLeft = currentX;\n // scroll more if we have not reached our destination\n if (currentX !== context.endX) {\n requestAnimationFrame(() => step(context));\n }\n};\n\nconst simulateSmoothScroll = (element: HTMLElement, endX: number): void => {\n const startX = element.scrollLeft;\n step({\n scrollable: element,\n startX,\n endX,\n startTime: now(),\n scrollTime: getScrollTime(endX - startX),\n });\n};\n\nconst smoothScroll = (element: HTMLElement, to: number) => {\n if (isMotionDisabled(element)) {\n element.scrollLeft = to;\n return;\n }\n if (isNativeSmoothScrollingSupported() && element.scrollTo) {\n element.scrollTo({\n left: to,\n behavior: 'smooth',\n });\n return;\n }\n simulateSmoothScroll(element, to);\n};\n\nexport default smoothScroll;\n"]}
@@ -1,2 +0,0 @@
1
- export declare const isMotionDisabled: (element: HTMLElement) => boolean;
2
- //# sourceMappingURL=motion.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"motion.d.ts","sourceRoot":"lib/default/","sources":["internal/motion.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,gBAAgB,YAAa,WAAW,KAAG,OAEoB,CAAC"}
@@ -1,9 +0,0 @@
1
- // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
2
- // SPDX-License-Identifier: Apache-2.0
3
- import { findUpUntil } from './utils/dom';
4
- export const isMotionDisabled = (element) => {
5
- var _a, _b;
6
- return !!findUpUntil(element, node => node.classList.contains('awsui-motion-disabled')) ||
7
- ((_b = (_a = window.matchMedia) === null || _a === void 0 ? void 0 : _a.call(window, '(prefers-reduced-motion: reduce)').matches) !== null && _b !== void 0 ? _b : false);
8
- };
9
- //# sourceMappingURL=motion.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"motion.js","sourceRoot":"lib/default/","sources":["internal/motion.ts"],"names":[],"mappings":"AAAA,qEAAqE;AACrE,sCAAsC;AACtC,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE1C,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,OAAoB,EAAW,EAAE;;IAChE,OAAA,CAAC,CAAC,WAAW,CAAC,OAAO,EAAE,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,uBAAuB,CAAC,CAAC;QAChF,CAAC,MAAA,MAAA,MAAM,CAAC,UAAU,uDAAG,kCAAkC,EAAE,OAAO,mCAAI,KAAK,CAAC,CAAA;CAAA,CAAC","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { findUpUntil } from './utils/dom';\n\nexport const isMotionDisabled = (element: HTMLElement): boolean =>\n !!findUpUntil(element, node => node.classList.contains('awsui-motion-disabled')) ||\n (window.matchMedia?.('(prefers-reduced-motion: reduce)').matches ?? false);\n"]}