@cloudscape-design/components 3.0.621 → 3.0.623

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 (192) hide show
  1. package/annotation-context/annotation/styles.css.js +24 -24
  2. package/annotation-context/annotation/styles.scoped.css +31 -31
  3. package/annotation-context/annotation/styles.selectors.js +24 -24
  4. package/app-layout/classic.js.map +1 -1
  5. package/app-layout/notifications/styles.css.js +3 -3
  6. package/app-layout/notifications/styles.scoped.css +7 -7
  7. package/app-layout/notifications/styles.selectors.js +3 -3
  8. package/app-layout/visual-refresh/styles.css.js +81 -81
  9. package/app-layout/visual-refresh/styles.scoped.css +258 -258
  10. package/app-layout/visual-refresh/styles.selectors.js +81 -81
  11. package/area-chart/chart-container.js +11 -11
  12. package/area-chart/chart-container.js.map +1 -1
  13. package/area-chart/elements/use-highlight-details.js.map +1 -1
  14. package/area-chart/internal.d.ts.map +1 -1
  15. package/area-chart/internal.js +3 -0
  16. package/area-chart/internal.js.map +1 -1
  17. package/area-chart/model/compute-chart-props.d.ts +4 -3
  18. package/area-chart/model/compute-chart-props.d.ts.map +1 -1
  19. package/area-chart/model/compute-chart-props.js +5 -2
  20. package/area-chart/model/compute-chart-props.js.map +1 -1
  21. package/area-chart/model/index.d.ts +1 -1
  22. package/area-chart/model/index.d.ts.map +1 -1
  23. package/area-chart/model/index.js.map +1 -1
  24. package/area-chart/model/use-chart-model.d.ts +2 -1
  25. package/area-chart/model/use-chart-model.d.ts.map +1 -1
  26. package/area-chart/model/use-chart-model.js +23 -14
  27. package/area-chart/model/use-chart-model.js.map +1 -1
  28. package/code-editor/interfaces.d.ts +2 -2
  29. package/code-editor/interfaces.d.ts.map +1 -1
  30. package/code-editor/interfaces.js.map +1 -1
  31. package/code-editor/util.js.map +1 -1
  32. package/column-layout/internal.d.ts +1 -1
  33. package/column-layout/internal.d.ts.map +1 -1
  34. package/column-layout/internal.js.map +1 -1
  35. package/container/use-sticky-header.js +1 -1
  36. package/container/use-sticky-header.js.map +1 -1
  37. package/flashbar/styles.css.js +47 -47
  38. package/flashbar/styles.scoped.css +171 -171
  39. package/flashbar/styles.selectors.js +47 -47
  40. package/i18n/dynamic.js +30 -30
  41. package/i18n/messages/all.all.d.ts +1 -1
  42. package/i18n/messages/all.all.js +1 -14558
  43. package/i18n/messages/all.all.json +1 -14615
  44. package/i18n/messages/all.de.d.ts +1 -1
  45. package/i18n/messages/all.de.js +1 -1086
  46. package/i18n/messages/all.de.json +1 -1096
  47. package/i18n/messages/all.en-GB.d.ts +1 -1
  48. package/i18n/messages/all.en-GB.js +1 -1064
  49. package/i18n/messages/all.en-GB.json +1 -1067
  50. package/i18n/messages/all.en.d.ts +1 -1
  51. package/i18n/messages/all.en.js +1 -1064
  52. package/i18n/messages/all.en.json +1 -1063
  53. package/i18n/messages/all.es.d.ts +1 -1
  54. package/i18n/messages/all.es.js +1 -1080
  55. package/i18n/messages/all.es.json +1 -1083
  56. package/i18n/messages/all.fr.d.ts +1 -1
  57. package/i18n/messages/all.fr.js +1 -1104
  58. package/i18n/messages/all.fr.json +1 -1110
  59. package/i18n/messages/all.id.d.ts +1 -1
  60. package/i18n/messages/all.id.js +1 -1049
  61. package/i18n/messages/all.id.json +1 -1054
  62. package/i18n/messages/all.it.d.ts +1 -1
  63. package/i18n/messages/all.it.js +1 -1042
  64. package/i18n/messages/all.it.json +1 -1046
  65. package/i18n/messages/all.ja.d.ts +1 -1
  66. package/i18n/messages/all.ja.js +1 -1081
  67. package/i18n/messages/all.ja.json +1 -1083
  68. package/i18n/messages/all.ko.d.ts +1 -1
  69. package/i18n/messages/all.ko.js +1 -1054
  70. package/i18n/messages/all.ko.json +1 -1065
  71. package/i18n/messages/all.pt-BR.d.ts +1 -1
  72. package/i18n/messages/all.pt-BR.js +1 -1074
  73. package/i18n/messages/all.pt-BR.json +1 -1082
  74. package/i18n/messages/all.th.d.ts +1 -1
  75. package/i18n/messages/all.th.js +1 -733
  76. package/i18n/messages/all.th.json +1 -734
  77. package/i18n/messages/all.tr.d.ts +1 -1
  78. package/i18n/messages/all.tr.js +1 -1072
  79. package/i18n/messages/all.tr.json +1 -1079
  80. package/i18n/messages/all.zh-CN.d.ts +1 -1
  81. package/i18n/messages/all.zh-CN.js +1 -1054
  82. package/i18n/messages/all.zh-CN.json +1 -1053
  83. package/i18n/messages/all.zh-TW.d.ts +1 -1
  84. package/i18n/messages/all.zh-TW.js +1 -1053
  85. package/i18n/messages/all.zh-TW.json +1 -1052
  86. package/i18n/messages-types.d.ts +7 -0
  87. package/i18n/messages-types.d.ts.map +1 -1
  88. package/i18n/messages-types.js.map +1 -1
  89. package/index.d.ts +1 -0
  90. package/index.d.ts.map +1 -1
  91. package/index.js +1 -0
  92. package/index.js.map +1 -1
  93. package/internal/animate.js.map +1 -1
  94. package/internal/base-component/styles.scoped.css +25 -0
  95. package/internal/components/cartesian-chart/{bottom-labels.d.ts → block-end-labels.d.ts} +5 -5
  96. package/internal/components/cartesian-chart/block-end-labels.d.ts.map +1 -0
  97. package/internal/components/cartesian-chart/{bottom-labels.js → block-end-labels.js} +5 -5
  98. package/internal/components/cartesian-chart/block-end-labels.js.map +1 -0
  99. package/internal/components/cartesian-chart/{left-labels.d.ts → inline-start-labels.d.ts} +4 -4
  100. package/internal/components/cartesian-chart/inline-start-labels.d.ts.map +1 -0
  101. package/internal/components/cartesian-chart/{left-labels.js → inline-start-labels.js} +9 -6
  102. package/internal/components/cartesian-chart/inline-start-labels.js.map +1 -0
  103. package/internal/components/cartesian-chart/labels-measure.js +2 -2
  104. package/internal/components/cartesian-chart/labels-measure.js.map +1 -1
  105. package/internal/components/cartesian-chart/styles.css.js +27 -27
  106. package/internal/components/cartesian-chart/styles.scoped.css +31 -31
  107. package/internal/components/cartesian-chart/styles.selectors.js +27 -27
  108. package/internal/components/chart-legend/index.d.ts.map +1 -1
  109. package/internal/components/chart-legend/index.js +7 -10
  110. package/internal/components/chart-legend/index.js.map +1 -1
  111. package/internal/components/dropdown/dropdown-fit-handler.js.map +1 -1
  112. package/internal/components/dropdown/styles.css.js +20 -20
  113. package/internal/components/dropdown/styles.scoped.css +41 -41
  114. package/internal/components/dropdown/styles.selectors.js +20 -20
  115. package/internal/components/options-list/utils/use-highlight-option.d.ts.map +1 -1
  116. package/internal/components/options-list/utils/use-highlight-option.js.map +1 -1
  117. package/internal/environment.d.ts +1 -1
  118. package/internal/environment.js +1 -1
  119. package/internal/environment.json +2 -2
  120. package/internal/events/index.d.ts.map +1 -1
  121. package/internal/events/index.js.map +1 -1
  122. package/internal/focus-tracker.d.ts.map +1 -1
  123. package/internal/focus-tracker.js.map +1 -1
  124. package/internal/generated/custom-css-properties/index.d.ts.map +1 -1
  125. package/internal/generated/custom-css-properties/index.js +51 -43
  126. package/internal/generated/custom-css-properties/index.js.map +1 -1
  127. package/internal/generated/styles/tokens.d.ts +5 -0
  128. package/internal/generated/styles/tokens.js +5 -0
  129. package/internal/generated/theming/index.cjs +159 -0
  130. package/internal/generated/theming/index.cjs.d.ts +16 -0
  131. package/internal/generated/theming/index.d.ts +16 -0
  132. package/internal/generated/theming/index.js +159 -0
  133. package/internal/hooks/container-queries/use-container-breakpoints.js.map +1 -1
  134. package/internal/manifest.json +1 -1
  135. package/internal/utils/handle-key.d.ts +1 -1
  136. package/internal/utils/handle-key.d.ts.map +1 -1
  137. package/internal/utils/handle-key.js +1 -1
  138. package/internal/utils/handle-key.js.map +1 -1
  139. package/mixed-line-bar-chart/chart-container.d.ts.map +1 -1
  140. package/mixed-line-bar-chart/chart-container.js +12 -12
  141. package/mixed-line-bar-chart/chart-container.js.map +1 -1
  142. package/package.json +2 -1
  143. package/pie-chart/utils.d.ts.map +1 -1
  144. package/pie-chart/utils.js.map +1 -1
  145. package/slider/index.d.ts +5 -0
  146. package/slider/index.d.ts.map +1 -0
  147. package/slider/index.js +14 -0
  148. package/slider/index.js.map +1 -0
  149. package/slider/interfaces.d.ts +75 -0
  150. package/slider/interfaces.d.ts.map +1 -0
  151. package/slider/interfaces.js +2 -0
  152. package/slider/interfaces.js.map +1 -0
  153. package/slider/internal.d.ts +7 -0
  154. package/slider/internal.d.ts.map +1 -0
  155. package/slider/internal.js +119 -0
  156. package/slider/internal.js.map +1 -0
  157. package/slider/slider-labels.d.ts +11 -0
  158. package/slider/slider-labels.d.ts.map +1 -0
  159. package/slider/slider-labels.js +76 -0
  160. package/slider/slider-labels.js.map +1 -0
  161. package/slider/styles.css.js +28 -0
  162. package/slider/styles.scoped.css +411 -0
  163. package/slider/styles.selectors.js +29 -0
  164. package/slider/tick-marks.d.ts +16 -0
  165. package/slider/tick-marks.d.ts.map +1 -0
  166. package/slider/tick-marks.js +37 -0
  167. package/slider/tick-marks.js.map +1 -0
  168. package/slider/utils.d.ts +9 -0
  169. package/slider/utils.d.ts.map +1 -0
  170. package/slider/utils.js +26 -0
  171. package/slider/utils.js.map +1 -0
  172. package/spinner/styles.css.js +13 -13
  173. package/spinner/styles.scoped.css +39 -39
  174. package/spinner/styles.selectors.js +13 -13
  175. package/table/internal.js.map +1 -1
  176. package/test-utils/dom/index.d.ts +3 -0
  177. package/test-utils/dom/index.js +12 -7
  178. package/test-utils/dom/index.js.map +1 -1
  179. package/test-utils/dom/slider/index.d.ts +6 -0
  180. package/test-utils/dom/slider/index.js +12 -0
  181. package/test-utils/dom/slider/index.js.map +1 -0
  182. package/test-utils/selectors/index.d.ts +3 -0
  183. package/test-utils/selectors/index.js +10 -4
  184. package/test-utils/selectors/index.js.map +1 -1
  185. package/test-utils/selectors/slider/index.d.ts +6 -0
  186. package/test-utils/selectors/slider/index.js +12 -0
  187. package/test-utils/selectors/slider/index.js.map +1 -0
  188. package/test-utils/tsconfig.tsbuildinfo +1 -1
  189. package/internal/components/cartesian-chart/bottom-labels.d.ts.map +0 -1
  190. package/internal/components/cartesian-chart/bottom-labels.js.map +0 -1
  191. package/internal/components/cartesian-chart/left-labels.d.ts.map +0 -1
  192. package/internal/components/cartesian-chart/left-labels.js.map +0 -1
@@ -1,32 +1,32 @@
1
1
 
2
2
  import './styles.scoped.css';
3
3
  export default {
4
- "axis": "awsui_axis_f0fot_f6jsx_9",
5
- "vertical-marker": "awsui_vertical-marker_f0fot_f6jsx_10",
6
- "axis--emphasized": "awsui_axis--emphasized_f0fot_f6jsx_15",
7
- "axis-label": "awsui_axis-label_f0fot_f6jsx_19",
8
- "axis-label--x": "awsui_axis-label--x_f0fot_f6jsx_24",
9
- "axis-label--y": "awsui_axis-label--y_f0fot_f6jsx_25",
10
- "grid": "awsui_grid_f0fot_f6jsx_29",
11
- "ticks__line": "awsui_ticks__line_f0fot_f6jsx_34",
12
- "ticks__text": "awsui_ticks__text_f0fot_f6jsx_39",
13
- "ticks--y": "awsui_ticks--y_f0fot_f6jsx_44",
14
- "ticks--x": "awsui_ticks--x_f0fot_f6jsx_45",
15
- "ticks--bottom": "awsui_ticks--bottom_f0fot_f6jsx_49",
16
- "labels-left": "awsui_labels-left_f0fot_f6jsx_54",
17
- "ticks": "awsui_ticks_f0fot_f6jsx_34",
18
- "labels-left__label": "awsui_labels-left__label_f0fot_f6jsx_69",
19
- "labels-left--hidden": "awsui_labels-left--hidden_f0fot_f6jsx_73",
20
- "labels-bottom": "awsui_labels-bottom_f0fot_f6jsx_81",
21
- "vertical-marker-circle": "awsui_vertical-marker-circle_f0fot_f6jsx_92",
22
- "vertical-marker-circle-active": "awsui_vertical-marker-circle-active_f0fot_f6jsx_98",
23
- "focus-outline": "awsui_focus-outline_f0fot_f6jsx_103",
24
- "chart-container": "awsui_chart-container_f0fot_f6jsx_111",
25
- "fit-height": "awsui_fit-height_f0fot_f6jsx_116",
26
- "chart-container-outer": "awsui_chart-container-outer_f0fot_f6jsx_121",
27
- "chart-container-inner": "awsui_chart-container-inner_f0fot_f6jsx_128",
28
- "chart-container-plot-wrapper": "awsui_chart-container-plot-wrapper_f0fot_f6jsx_135",
29
- "chart-container-plot": "awsui_chart-container-plot_f0fot_f6jsx_135",
30
- "chart-container-bottom-labels": "awsui_chart-container-bottom-labels_f0fot_f6jsx_147"
4
+ "axis": "awsui_axis_f0fot_11j60_9",
5
+ "vertical-marker": "awsui_vertical-marker_f0fot_11j60_10",
6
+ "axis--emphasized": "awsui_axis--emphasized_f0fot_11j60_15",
7
+ "axis-label": "awsui_axis-label_f0fot_11j60_19",
8
+ "axis-label--x": "awsui_axis-label--x_f0fot_11j60_24",
9
+ "axis-label--y": "awsui_axis-label--y_f0fot_11j60_25",
10
+ "grid": "awsui_grid_f0fot_11j60_29",
11
+ "ticks__line": "awsui_ticks__line_f0fot_11j60_34",
12
+ "ticks__text": "awsui_ticks__text_f0fot_11j60_39",
13
+ "ticks--y": "awsui_ticks--y_f0fot_11j60_44",
14
+ "ticks--x": "awsui_ticks--x_f0fot_11j60_45",
15
+ "ticks--bottom": "awsui_ticks--bottom_f0fot_11j60_49",
16
+ "labels-inline-start": "awsui_labels-inline-start_f0fot_11j60_54",
17
+ "ticks": "awsui_ticks_f0fot_11j60_34",
18
+ "labels-inline-start__label": "awsui_labels-inline-start__label_f0fot_11j60_69",
19
+ "labels-inline-start--hidden": "awsui_labels-inline-start--hidden_f0fot_11j60_73",
20
+ "labels-block-end": "awsui_labels-block-end_f0fot_11j60_81",
21
+ "vertical-marker-circle": "awsui_vertical-marker-circle_f0fot_11j60_92",
22
+ "vertical-marker-circle-active": "awsui_vertical-marker-circle-active_f0fot_11j60_98",
23
+ "focus-outline": "awsui_focus-outline_f0fot_11j60_103",
24
+ "chart-container": "awsui_chart-container_f0fot_11j60_111",
25
+ "fit-height": "awsui_fit-height_f0fot_11j60_116",
26
+ "chart-container-outer": "awsui_chart-container-outer_f0fot_11j60_121",
27
+ "chart-container-inner": "awsui_chart-container-inner_f0fot_11j60_128",
28
+ "chart-container-plot-wrapper": "awsui_chart-container-plot-wrapper_f0fot_11j60_135",
29
+ "chart-container-plot": "awsui_chart-container-plot_f0fot_11j60_135",
30
+ "chart-container-bottom-labels": "awsui_chart-container-bottom-labels_f0fot_11j60_147"
31
31
  };
32
32
 
@@ -6,101 +6,101 @@
6
6
  Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
7
7
  SPDX-License-Identifier: Apache-2.0
8
8
  */
9
- .awsui_axis_f0fot_f6jsx_9:not(#\9),
10
- .awsui_vertical-marker_f0fot_f6jsx_10:not(#\9) {
9
+ .awsui_axis_f0fot_11j60_9:not(#\9),
10
+ .awsui_vertical-marker_f0fot_11j60_10:not(#\9) {
11
11
  stroke: var(--color-charts-line-axis-r7291n, #d1d5db);
12
12
  stroke-width: 1px;
13
13
  }
14
14
 
15
- .awsui_axis--emphasized_f0fot_f6jsx_15:not(#\9) {
15
+ .awsui_axis--emphasized_f0fot_11j60_15:not(#\9) {
16
16
  stroke-width: 2px;
17
17
  }
18
18
 
19
- .awsui_axis-label_f0fot_f6jsx_19:not(#\9) {
19
+ .awsui_axis-label_f0fot_11j60_19:not(#\9) {
20
20
  font-weight: bold;
21
21
  fill: var(--color-text-body-default-at06ol, #000716);
22
22
  }
23
23
 
24
- .awsui_axis-label--x_f0fot_f6jsx_24:not(#\9),
25
- .awsui_axis-label--y_f0fot_f6jsx_25:not(#\9) {
24
+ .awsui_axis-label--x_f0fot_11j60_24:not(#\9),
25
+ .awsui_axis-label--y_f0fot_11j60_25:not(#\9) {
26
26
  /* used in test-utils */
27
27
  }
28
28
 
29
- .awsui_grid_f0fot_f6jsx_29:not(#\9) {
29
+ .awsui_grid_f0fot_11j60_29:not(#\9) {
30
30
  stroke: var(--color-charts-line-grid-9oxvql, #d1d5db);
31
31
  stroke-width: 1px;
32
32
  }
33
33
 
34
- .awsui_ticks__line_f0fot_f6jsx_34:not(#\9) {
34
+ .awsui_ticks__line_f0fot_11j60_34:not(#\9) {
35
35
  stroke: var(--color-charts-line-tick-mf5hvw, #d1d5db);
36
36
  stroke-width: 1px;
37
37
  }
38
38
 
39
- .awsui_ticks__text_f0fot_f6jsx_39:not(#\9) {
39
+ .awsui_ticks__text_f0fot_11j60_39:not(#\9) {
40
40
  font-size: var(--font-chart-detail-size-1n389u, 12px);
41
41
  fill: var(--color-text-body-secondary-w9jvno, #414d5c);
42
42
  }
43
43
 
44
- .awsui_ticks--y_f0fot_f6jsx_44:not(#\9),
45
- .awsui_ticks--x_f0fot_f6jsx_45:not(#\9) {
44
+ .awsui_ticks--y_f0fot_11j60_44:not(#\9),
45
+ .awsui_ticks--x_f0fot_11j60_45:not(#\9) {
46
46
  /* used in test-utils */
47
47
  }
48
48
 
49
- .awsui_ticks--bottom_f0fot_f6jsx_49 > .awsui_ticks__text_f0fot_f6jsx_39:not(#\9) {
49
+ .awsui_ticks--bottom_f0fot_11j60_49 > .awsui_ticks__text_f0fot_11j60_39:not(#\9) {
50
50
  text-anchor: middle;
51
51
  dominant-baseline: hanging;
52
52
  }
53
53
 
54
- .awsui_labels-left_f0fot_f6jsx_54 > .awsui_ticks_f0fot_f6jsx_34 > .awsui_ticks__text_f0fot_f6jsx_39:not(#\9) {
54
+ .awsui_labels-inline-start_f0fot_11j60_54 > .awsui_ticks_f0fot_11j60_34 > .awsui_ticks__text_f0fot_11j60_39:not(#\9) {
55
55
  text-anchor: end;
56
56
  dominant-baseline: central;
57
57
  }
58
58
 
59
- .awsui_labels-left_f0fot_f6jsx_54:not(#\9) {
59
+ .awsui_labels-inline-start_f0fot_11j60_54:not(#\9) {
60
60
  position: relative;
61
61
  margin-inline-end: 12px;
62
62
  }
63
- .awsui_labels-left_f0fot_f6jsx_54 > .awsui_axis-label_f0fot_f6jsx_19:not(#\9) {
63
+ .awsui_labels-inline-start_f0fot_11j60_54 > .awsui_axis-label_f0fot_11j60_19:not(#\9) {
64
64
  position: absolute;
65
65
  visibility: visible;
66
66
  white-space: nowrap;
67
67
  }
68
68
 
69
- .awsui_labels-left__label_f0fot_f6jsx_69:not(#\9) {
69
+ .awsui_labels-inline-start__label_f0fot_11j60_69:not(#\9) {
70
70
  position: absolute;
71
71
  }
72
72
 
73
- .awsui_labels-left--hidden_f0fot_f6jsx_73:not(#\9) {
73
+ .awsui_labels-inline-start--hidden_f0fot_11j60_73:not(#\9) {
74
74
  visibility: hidden;
75
75
  }
76
- .awsui_labels-left--hidden_f0fot_f6jsx_73 > .awsui_labels-left__label_f0fot_f6jsx_69:not(#\9) {
76
+ .awsui_labels-inline-start--hidden_f0fot_11j60_73 > .awsui_labels-inline-start__label_f0fot_11j60_69:not(#\9) {
77
77
  position: relative;
78
78
  white-space: nowrap;
79
79
  }
80
80
 
81
- .awsui_labels-bottom_f0fot_f6jsx_81:not(#\9) {
81
+ .awsui_labels-block-end_f0fot_11j60_81:not(#\9) {
82
82
  position: relative;
83
83
  display: block;
84
84
  inline-size: 100%;
85
85
  overflow: visible;
86
86
  }
87
87
 
88
- .awsui_vertical-marker_f0fot_f6jsx_10:not(#\9) {
88
+ .awsui_vertical-marker_f0fot_11j60_10:not(#\9) {
89
89
  pointer-events: none;
90
90
  }
91
91
 
92
- .awsui_vertical-marker-circle_f0fot_f6jsx_92:not(#\9) {
92
+ .awsui_vertical-marker-circle_f0fot_11j60_92:not(#\9) {
93
93
  fill: var(--color-background-container-content-4un1ap, #ffffff);
94
94
  pointer-events: none;
95
95
  stroke-width: var(--border-line-chart-width-9mzos2, 2px);
96
96
  }
97
97
 
98
- .awsui_vertical-marker-circle-active_f0fot_f6jsx_98:not(#\9) {
98
+ .awsui_vertical-marker-circle-active_f0fot_11j60_98:not(#\9) {
99
99
  cursor: pointer;
100
100
  stroke-width: var(--border-line-chart-width-9mzos2, 2px);
101
101
  }
102
102
 
103
- .awsui_focus-outline_f0fot_f6jsx_103:not(#\9) {
103
+ .awsui_focus-outline_f0fot_11j60_103:not(#\9) {
104
104
  outline: none;
105
105
  pointer-events: none;
106
106
  fill: none;
@@ -108,42 +108,42 @@
108
108
  stroke-width: 2px;
109
109
  }
110
110
 
111
- .awsui_chart-container_f0fot_f6jsx_111:not(#\9) {
111
+ .awsui_chart-container_f0fot_11j60_111:not(#\9) {
112
112
  display: flex;
113
113
  inline-size: 100%;
114
114
  flex-direction: column;
115
115
  }
116
- .awsui_chart-container_f0fot_f6jsx_111.awsui_fit-height_f0fot_f6jsx_116:not(#\9) {
116
+ .awsui_chart-container_f0fot_11j60_111.awsui_fit-height_f0fot_11j60_116:not(#\9) {
117
117
  block-size: 100%;
118
118
  min-block-size: inherit;
119
119
  }
120
120
 
121
- .awsui_chart-container-outer_f0fot_f6jsx_121:not(#\9) {
121
+ .awsui_chart-container-outer_f0fot_11j60_121:not(#\9) {
122
122
  display: flex;
123
123
  }
124
- .awsui_chart-container-outer_f0fot_f6jsx_121.awsui_fit-height_f0fot_f6jsx_116:not(#\9) {
124
+ .awsui_chart-container-outer_f0fot_11j60_121.awsui_fit-height_f0fot_11j60_116:not(#\9) {
125
125
  flex: 1;
126
126
  }
127
127
 
128
- .awsui_chart-container-inner_f0fot_f6jsx_128:not(#\9) {
128
+ .awsui_chart-container-inner_f0fot_11j60_128:not(#\9) {
129
129
  position: relative;
130
130
  display: flex;
131
131
  flex-direction: column;
132
132
  inline-size: 100%;
133
133
  }
134
134
 
135
- .awsui_chart-container-plot-wrapper_f0fot_f6jsx_135.awsui_fit-height_f0fot_f6jsx_116:not(#\9) {
135
+ .awsui_chart-container-plot-wrapper_f0fot_11j60_135.awsui_fit-height_f0fot_11j60_116:not(#\9) {
136
136
  display: block;
137
137
  position: relative;
138
138
  flex: 1;
139
139
  }
140
140
 
141
- .awsui_chart-container-plot_f0fot_f6jsx_135.awsui_fit-height_f0fot_f6jsx_116:not(#\9) {
141
+ .awsui_chart-container-plot_f0fot_11j60_135.awsui_fit-height_f0fot_11j60_116:not(#\9) {
142
142
  display: block;
143
143
  position: absolute;
144
144
  inset: 0;
145
145
  }
146
146
 
147
- .awsui_chart-container-bottom-labels_f0fot_f6jsx_147.awsui_fit-height_f0fot_f6jsx_116:not(#\9) {
147
+ .awsui_chart-container-bottom-labels_f0fot_11j60_147.awsui_fit-height_f0fot_11j60_116:not(#\9) {
148
148
  display: block;
149
149
  }
@@ -2,32 +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
- "axis": "awsui_axis_f0fot_f6jsx_9",
6
- "vertical-marker": "awsui_vertical-marker_f0fot_f6jsx_10",
7
- "axis--emphasized": "awsui_axis--emphasized_f0fot_f6jsx_15",
8
- "axis-label": "awsui_axis-label_f0fot_f6jsx_19",
9
- "axis-label--x": "awsui_axis-label--x_f0fot_f6jsx_24",
10
- "axis-label--y": "awsui_axis-label--y_f0fot_f6jsx_25",
11
- "grid": "awsui_grid_f0fot_f6jsx_29",
12
- "ticks__line": "awsui_ticks__line_f0fot_f6jsx_34",
13
- "ticks__text": "awsui_ticks__text_f0fot_f6jsx_39",
14
- "ticks--y": "awsui_ticks--y_f0fot_f6jsx_44",
15
- "ticks--x": "awsui_ticks--x_f0fot_f6jsx_45",
16
- "ticks--bottom": "awsui_ticks--bottom_f0fot_f6jsx_49",
17
- "labels-left": "awsui_labels-left_f0fot_f6jsx_54",
18
- "ticks": "awsui_ticks_f0fot_f6jsx_34",
19
- "labels-left__label": "awsui_labels-left__label_f0fot_f6jsx_69",
20
- "labels-left--hidden": "awsui_labels-left--hidden_f0fot_f6jsx_73",
21
- "labels-bottom": "awsui_labels-bottom_f0fot_f6jsx_81",
22
- "vertical-marker-circle": "awsui_vertical-marker-circle_f0fot_f6jsx_92",
23
- "vertical-marker-circle-active": "awsui_vertical-marker-circle-active_f0fot_f6jsx_98",
24
- "focus-outline": "awsui_focus-outline_f0fot_f6jsx_103",
25
- "chart-container": "awsui_chart-container_f0fot_f6jsx_111",
26
- "fit-height": "awsui_fit-height_f0fot_f6jsx_116",
27
- "chart-container-outer": "awsui_chart-container-outer_f0fot_f6jsx_121",
28
- "chart-container-inner": "awsui_chart-container-inner_f0fot_f6jsx_128",
29
- "chart-container-plot-wrapper": "awsui_chart-container-plot-wrapper_f0fot_f6jsx_135",
30
- "chart-container-plot": "awsui_chart-container-plot_f0fot_f6jsx_135",
31
- "chart-container-bottom-labels": "awsui_chart-container-bottom-labels_f0fot_f6jsx_147"
5
+ "axis": "awsui_axis_f0fot_11j60_9",
6
+ "vertical-marker": "awsui_vertical-marker_f0fot_11j60_10",
7
+ "axis--emphasized": "awsui_axis--emphasized_f0fot_11j60_15",
8
+ "axis-label": "awsui_axis-label_f0fot_11j60_19",
9
+ "axis-label--x": "awsui_axis-label--x_f0fot_11j60_24",
10
+ "axis-label--y": "awsui_axis-label--y_f0fot_11j60_25",
11
+ "grid": "awsui_grid_f0fot_11j60_29",
12
+ "ticks__line": "awsui_ticks__line_f0fot_11j60_34",
13
+ "ticks__text": "awsui_ticks__text_f0fot_11j60_39",
14
+ "ticks--y": "awsui_ticks--y_f0fot_11j60_44",
15
+ "ticks--x": "awsui_ticks--x_f0fot_11j60_45",
16
+ "ticks--bottom": "awsui_ticks--bottom_f0fot_11j60_49",
17
+ "labels-inline-start": "awsui_labels-inline-start_f0fot_11j60_54",
18
+ "ticks": "awsui_ticks_f0fot_11j60_34",
19
+ "labels-inline-start__label": "awsui_labels-inline-start__label_f0fot_11j60_69",
20
+ "labels-inline-start--hidden": "awsui_labels-inline-start--hidden_f0fot_11j60_73",
21
+ "labels-block-end": "awsui_labels-block-end_f0fot_11j60_81",
22
+ "vertical-marker-circle": "awsui_vertical-marker-circle_f0fot_11j60_92",
23
+ "vertical-marker-circle-active": "awsui_vertical-marker-circle-active_f0fot_11j60_98",
24
+ "focus-outline": "awsui_focus-outline_f0fot_11j60_103",
25
+ "chart-container": "awsui_chart-container_f0fot_11j60_111",
26
+ "fit-height": "awsui_fit-height_f0fot_11j60_116",
27
+ "chart-container-outer": "awsui_chart-container-outer_f0fot_11j60_121",
28
+ "chart-container-inner": "awsui_chart-container-inner_f0fot_11j60_128",
29
+ "chart-container-plot-wrapper": "awsui_chart-container-plot-wrapper_f0fot_11j60_135",
30
+ "chart-container-plot": "awsui_chart-container-plot_f0fot_11j60_135",
31
+ "chart-container-bottom-labels": "awsui_chart-container-bottom-labels_f0fot_11j60_147"
32
32
  };
33
33
 
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/internal/components/chart-legend/index.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAuB,MAAM,OAAO,CAAC;AAI5C,OAAqB,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAI7E,MAAM,WAAW,eAAe,CAAC,CAAC;IAChC,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,qBAAqB,CAAC;IAC5B,KAAK,EAAE,CAAC,CAAC;CACV;AAED,MAAM,WAAW,gBAAgB,CAAC,CAAC;IACjC,MAAM,EAAE,aAAa,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC;IAC1C,iBAAiB,EAAE,CAAC,GAAG,IAAI,CAAC;IAC5B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,gBAAgB,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;IACnD,iBAAiB,EAAE,CAAC,MAAM,EAAE,CAAC,GAAG,IAAI,KAAK,IAAI,CAAC;CAC/C;;AAED,wBAAuD;AAEvD,iBAAS,WAAW,CAAC,CAAC,EAAE,EACtB,MAAM,EACN,iBAAiB,EACjB,iBAAiB,EACjB,WAAW,EACX,SAAS,EACT,gBAAgB,GACjB,EAAE,gBAAgB,CAAC,CAAC,CAAC,eAwHrB"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/internal/components/chart-legend/index.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAuB,MAAM,OAAO,CAAC;AAI5C,OAAqB,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAK7E,MAAM,WAAW,eAAe,CAAC,CAAC;IAChC,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,qBAAqB,CAAC;IAC5B,KAAK,EAAE,CAAC,CAAC;CACV;AAED,MAAM,WAAW,gBAAgB,CAAC,CAAC;IACjC,MAAM,EAAE,aAAa,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC;IAC1C,iBAAiB,EAAE,CAAC,GAAG,IAAI,CAAC;IAC5B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,gBAAgB,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;IACnD,iBAAiB,EAAE,CAAC,MAAM,EAAE,CAAC,GAAG,IAAI,KAAK,IAAI,CAAC;CAC/C;;AAED,wBAAuD;AAEvD,iBAAS,WAAW,CAAC,CAAC,EAAE,EACtB,MAAM,EACN,iBAAiB,EACjB,iBAAiB,EACjB,WAAW,EACX,SAAS,EACT,gBAAgB,GACjB,EAAE,gBAAgB,CAAC,CAAC,CAAC,eAkHrB"}
@@ -7,19 +7,20 @@ import { KeyCode } from '../../keycode';
7
7
  import SeriesMarker from '../chart-series-marker';
8
8
  import styles from './styles.css.js';
9
9
  import { useInternalI18n } from '../../../i18n/context';
10
+ import handleKey from '../../utils/handle-key';
10
11
  export default memo(ChartLegend);
11
12
  function ChartLegend({ series, onHighlightChange, highlightedSeries, legendTitle, ariaLabel, plotContainerRef, }) {
12
13
  const i18n = useInternalI18n('[charts]');
13
14
  const containerRef = useRef(null);
14
15
  const segmentsRef = useRef([]);
15
16
  const highlightedSeriesIndex = findSeriesIndex(series, highlightedSeries);
16
- const highlightLeft = () => {
17
+ const highlightInlineStart = () => {
17
18
  var _a;
18
19
  const currentIndex = highlightedSeriesIndex !== null && highlightedSeriesIndex !== void 0 ? highlightedSeriesIndex : 0;
19
20
  const nextIndex = currentIndex - 1 >= 0 ? currentIndex - 1 : series.length - 1;
20
21
  (_a = segmentsRef.current[nextIndex]) === null || _a === void 0 ? void 0 : _a.focus();
21
22
  };
22
- const highlightRight = () => {
23
+ const highlightInlineEnd = () => {
23
24
  var _a;
24
25
  const currentIndex = highlightedSeriesIndex !== null && highlightedSeriesIndex !== void 0 ? highlightedSeriesIndex : 0;
25
26
  const nextIndex = currentIndex + 1 < series.length ? currentIndex + 1 : 0;
@@ -29,14 +30,10 @@ function ChartLegend({ series, onHighlightChange, highlightedSeries, legendTitle
29
30
  if (event.keyCode === KeyCode.right || event.keyCode === KeyCode.left) {
30
31
  // Preventing default fixes an issue in Safari+VO when VO additionally interprets arrow keys as its commands.
31
32
  event.preventDefault();
32
- switch (event.keyCode) {
33
- case KeyCode.left:
34
- return highlightLeft();
35
- case KeyCode.right:
36
- return highlightRight();
37
- default:
38
- return;
39
- }
33
+ handleKey(event, {
34
+ onInlineStart: () => highlightInlineStart(),
35
+ onInlineEnd: () => highlightInlineEnd(),
36
+ });
40
37
  }
41
38
  };
42
39
  const handleSelection = (index) => {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/internal/components/chart-legend/index.tsx"],"names":[],"mappings":"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","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport clsx from 'clsx';\nimport React, { useRef, memo } from 'react';\n\nimport InternalBox from '../../../box/internal';\nimport { KeyCode } from '../../keycode';\nimport SeriesMarker, { ChartSeriesMarkerType } from '../chart-series-marker';\nimport styles from './styles.css.js';\nimport { useInternalI18n } from '../../../i18n/context';\n\nexport interface ChartLegendItem<T> {\n label: string;\n color: string;\n type: ChartSeriesMarkerType;\n datum: T;\n}\n\nexport interface ChartLegendProps<T> {\n series: ReadonlyArray<ChartLegendItem<T>>;\n highlightedSeries: T | null;\n legendTitle?: string;\n ariaLabel?: string;\n plotContainerRef?: React.RefObject<HTMLDivElement>;\n onHighlightChange: (series: T | null) => void;\n}\n\nexport default memo(ChartLegend) as typeof ChartLegend;\n\nfunction ChartLegend<T>({\n series,\n onHighlightChange,\n highlightedSeries,\n legendTitle,\n ariaLabel,\n plotContainerRef,\n}: ChartLegendProps<T>) {\n const i18n = useInternalI18n('[charts]');\n const containerRef = useRef<HTMLDivElement>(null);\n const segmentsRef = useRef<Record<number, HTMLElement>>([]);\n\n const highlightedSeriesIndex = findSeriesIndex(series, highlightedSeries);\n\n const highlightLeft = () => {\n const currentIndex = highlightedSeriesIndex ?? 0;\n const nextIndex = currentIndex - 1 >= 0 ? currentIndex - 1 : series.length - 1;\n segmentsRef.current[nextIndex]?.focus();\n };\n\n const highlightRight = () => {\n const currentIndex = highlightedSeriesIndex ?? 0;\n const nextIndex = currentIndex + 1 < series.length ? currentIndex + 1 : 0;\n segmentsRef.current[nextIndex]?.focus();\n };\n\n const handleKeyPress = (event: React.KeyboardEvent) => {\n if (event.keyCode === KeyCode.right || event.keyCode === KeyCode.left) {\n // Preventing default fixes an issue in Safari+VO when VO additionally interprets arrow keys as its commands.\n event.preventDefault();\n\n switch (event.keyCode) {\n case KeyCode.left:\n return highlightLeft();\n\n case KeyCode.right:\n return highlightRight();\n\n default:\n return;\n }\n }\n };\n\n const handleSelection = (index: number) => {\n if (series[index].datum !== highlightedSeries) {\n onHighlightChange(series[index].datum);\n }\n };\n\n const handleBlur = (event: React.FocusEvent<Element>) => {\n // We need to check if the next element to be focused inside the plot container or not\n // so we don't clear the selected legend in case we are still focusing elements ( legend elements )\n // inside the plot container\n if (\n event.relatedTarget === null ||\n (containerRef.current &&\n !containerRef.current.contains(event.relatedTarget) &&\n !plotContainerRef?.current?.contains(event.relatedTarget))\n ) {\n onHighlightChange(null);\n }\n };\n\n const handleMouseOver = (s: T) => {\n if (s !== highlightedSeries) {\n onHighlightChange(s);\n }\n };\n\n const handleMouseLeave = () => {\n onHighlightChange(null);\n };\n\n return (\n <>\n <div\n ref={containerRef}\n role=\"toolbar\"\n aria-label={legendTitle || i18n('i18nStrings.legendAriaLabel', ariaLabel)}\n className={styles.root}\n onKeyDown={handleKeyPress}\n onBlur={handleBlur}\n >\n {legendTitle && (\n <InternalBox fontWeight=\"bold\" className={styles.title}>\n {legendTitle}\n </InternalBox>\n )}\n\n <div className={styles.list}>\n {series.map((s, index) => {\n const someHighlighted = highlightedSeries !== null;\n const isHighlighted = highlightedSeries === s.datum;\n const isDimmed = someHighlighted && !isHighlighted;\n return (\n <div\n role=\"button\"\n key={index}\n aria-pressed={isHighlighted}\n className={clsx(styles.marker, {\n [styles['marker--dimmed']]: isDimmed,\n [styles['marker--highlighted']]: isHighlighted,\n })}\n ref={elem => {\n if (elem) {\n segmentsRef.current[index] = elem;\n } else {\n delete segmentsRef.current[index];\n }\n }}\n tabIndex={\n index === highlightedSeriesIndex || (highlightedSeriesIndex === undefined && index === 0) ? 0 : -1\n }\n onFocus={() => handleSelection(index)}\n onClick={() => handleSelection(index)}\n onMouseOver={() => handleMouseOver(s.datum)}\n onMouseLeave={handleMouseLeave}\n >\n <SeriesMarker color={s.color} type={s.type} /> {s.label}\n </div>\n );\n })}\n </div>\n </div>\n </>\n );\n}\n\nfunction findSeriesIndex<T>(series: ReadonlyArray<ChartLegendItem<T>>, targetSeries: null | T): undefined | number {\n for (let index = 0; index < series.length; index++) {\n if (series[index].datum === targetSeries) {\n return index;\n }\n }\n return undefined;\n}\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/internal/components/chart-legend/index.tsx"],"names":[],"mappings":"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","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport clsx from 'clsx';\nimport React, { useRef, memo } from 'react';\n\nimport InternalBox from '../../../box/internal';\nimport { KeyCode } from '../../keycode';\nimport SeriesMarker, { ChartSeriesMarkerType } from '../chart-series-marker';\nimport styles from './styles.css.js';\nimport { useInternalI18n } from '../../../i18n/context';\nimport handleKey from '../../utils/handle-key';\n\nexport interface ChartLegendItem<T> {\n label: string;\n color: string;\n type: ChartSeriesMarkerType;\n datum: T;\n}\n\nexport interface ChartLegendProps<T> {\n series: ReadonlyArray<ChartLegendItem<T>>;\n highlightedSeries: T | null;\n legendTitle?: string;\n ariaLabel?: string;\n plotContainerRef?: React.RefObject<HTMLDivElement>;\n onHighlightChange: (series: T | null) => void;\n}\n\nexport default memo(ChartLegend) as typeof ChartLegend;\n\nfunction ChartLegend<T>({\n series,\n onHighlightChange,\n highlightedSeries,\n legendTitle,\n ariaLabel,\n plotContainerRef,\n}: ChartLegendProps<T>) {\n const i18n = useInternalI18n('[charts]');\n const containerRef = useRef<HTMLDivElement>(null);\n const segmentsRef = useRef<Record<number, HTMLElement>>([]);\n\n const highlightedSeriesIndex = findSeriesIndex(series, highlightedSeries);\n\n const highlightInlineStart = () => {\n const currentIndex = highlightedSeriesIndex ?? 0;\n const nextIndex = currentIndex - 1 >= 0 ? currentIndex - 1 : series.length - 1;\n segmentsRef.current[nextIndex]?.focus();\n };\n\n const highlightInlineEnd = () => {\n const currentIndex = highlightedSeriesIndex ?? 0;\n const nextIndex = currentIndex + 1 < series.length ? currentIndex + 1 : 0;\n segmentsRef.current[nextIndex]?.focus();\n };\n\n const handleKeyPress = (event: React.KeyboardEvent<HTMLElement>) => {\n if (event.keyCode === KeyCode.right || event.keyCode === KeyCode.left) {\n // Preventing default fixes an issue in Safari+VO when VO additionally interprets arrow keys as its commands.\n event.preventDefault();\n\n handleKey(event, {\n onInlineStart: () => highlightInlineStart(),\n onInlineEnd: () => highlightInlineEnd(),\n });\n }\n };\n\n const handleSelection = (index: number) => {\n if (series[index].datum !== highlightedSeries) {\n onHighlightChange(series[index].datum);\n }\n };\n\n const handleBlur = (event: React.FocusEvent<Element>) => {\n // We need to check if the next element to be focused inside the plot container or not\n // so we don't clear the selected legend in case we are still focusing elements ( legend elements )\n // inside the plot container\n if (\n event.relatedTarget === null ||\n (containerRef.current &&\n !containerRef.current.contains(event.relatedTarget) &&\n !plotContainerRef?.current?.contains(event.relatedTarget))\n ) {\n onHighlightChange(null);\n }\n };\n\n const handleMouseOver = (s: T) => {\n if (s !== highlightedSeries) {\n onHighlightChange(s);\n }\n };\n\n const handleMouseLeave = () => {\n onHighlightChange(null);\n };\n\n return (\n <>\n <div\n ref={containerRef}\n role=\"toolbar\"\n aria-label={legendTitle || i18n('i18nStrings.legendAriaLabel', ariaLabel)}\n className={styles.root}\n onKeyDown={handleKeyPress}\n onBlur={handleBlur}\n >\n {legendTitle && (\n <InternalBox fontWeight=\"bold\" className={styles.title}>\n {legendTitle}\n </InternalBox>\n )}\n\n <div className={styles.list}>\n {series.map((s, index) => {\n const someHighlighted = highlightedSeries !== null;\n const isHighlighted = highlightedSeries === s.datum;\n const isDimmed = someHighlighted && !isHighlighted;\n return (\n <div\n role=\"button\"\n key={index}\n aria-pressed={isHighlighted}\n className={clsx(styles.marker, {\n [styles['marker--dimmed']]: isDimmed,\n [styles['marker--highlighted']]: isHighlighted,\n })}\n ref={elem => {\n if (elem) {\n segmentsRef.current[index] = elem;\n } else {\n delete segmentsRef.current[index];\n }\n }}\n tabIndex={\n index === highlightedSeriesIndex || (highlightedSeriesIndex === undefined && index === 0) ? 0 : -1\n }\n onFocus={() => handleSelection(index)}\n onClick={() => handleSelection(index)}\n onMouseOver={() => handleMouseOver(s.datum)}\n onMouseLeave={handleMouseLeave}\n >\n <SeriesMarker color={s.color} type={s.type} /> {s.label}\n </div>\n );\n })}\n </div>\n </div>\n </>\n );\n}\n\nfunction findSeriesIndex<T>(series: ReadonlyArray<ChartLegendItem<T>>, targetSeries: null | T): undefined | number {\n for (let index = 0; index < series.length; index++) {\n if (series[index].datum === targetSeries) {\n return index;\n }\n }\n return undefined;\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"dropdown-fit-handler.js","sourceRoot":"","sources":["../../../../../src/internal/components/dropdown/dropdown-fit-handler.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 { getBreakpointValue } from '../../breakpoints';\nimport { getLogicalBoundingClientRect } from '../../direction';\nimport { BoundingBox, getOverflowParents, getOverflowParentDimensions } from '../../utils/scrollable-containers';\nimport styles from './styles.css.js';\n\nconst AVAILABLE_SPACE_RESERVE_DEFAULT = 50;\nconst AVAILABLE_SPACE_RESERVE_MOBILE_VERTICAL = 19; // 50 - 31\nconst AVAILABLE_SPACE_RESERVE_MOBILE_HORIZONTAL = 20;\n\ninterface AvailableSpace {\n blockStart: number;\n blockEnd: number;\n inlineStart: number;\n inlineEnd: number;\n}\nexport interface DropdownPosition {\n blockSize: string;\n inlineSize: string;\n dropBlockStart: boolean;\n dropInlineStart: boolean;\n insetInlineStart: string;\n}\nexport interface InteriorDropdownPosition extends DropdownPosition {\n insetBlockEnd: string;\n insetBlockStart: string;\n}\n\nconst getClosestParentDimensions = (element: HTMLElement): any => {\n const parents = getOverflowParents(element).map(element => {\n const { blockSize, inlineSize, insetBlockStart, insetInlineStart } = getLogicalBoundingClientRect(element);\n return {\n blockSize,\n inlineSize,\n insetBlockStart,\n insetInlineStart,\n };\n });\n\n return parents.shift();\n};\n\n// By default, most dropdowns should expand their content as necessary, but to a maximum of 465px (the XXS breakpoint).\n// This value was determined by UX but may be subject to change in the future, depending on the feedback.\nexport const defaultMaxDropdownWidth = getBreakpointValue('xxs');\n\nexport const getAvailableSpace = ({\n trigger,\n overflowParents,\n stretchWidth = false,\n stretchHeight = false,\n isMobile,\n}: {\n trigger: HTMLElement;\n overflowParents: ReadonlyArray<BoundingBox>;\n stretchWidth?: boolean;\n stretchHeight?: boolean;\n isMobile?: boolean;\n}): AvailableSpace => {\n const availableSpaceReserveVertical = stretchHeight\n ? 0\n : isMobile\n ? AVAILABLE_SPACE_RESERVE_MOBILE_VERTICAL\n : AVAILABLE_SPACE_RESERVE_DEFAULT;\n const availableSpaceReserveHorizontal = stretchWidth\n ? 0\n : isMobile\n ? AVAILABLE_SPACE_RESERVE_MOBILE_HORIZONTAL\n : AVAILABLE_SPACE_RESERVE_DEFAULT;\n const {\n insetBlockEnd: triggerBlockEnd,\n insetInlineStart: triggerInlineStart,\n insetInlineEnd: triggerInlineEnd,\n } = getLogicalBoundingClientRect(trigger);\n\n return overflowParents.reduce(\n ({ blockStart, blockEnd, inlineStart, inlineEnd }, overflowParent) => {\n const offsetTop = triggerBlockEnd - overflowParent.insetBlockStart;\n const currentBlockStart = offsetTop - trigger.offsetHeight - availableSpaceReserveVertical;\n const currentBlockEnd = overflowParent.blockSize - offsetTop - availableSpaceReserveVertical;\n const currentInlineStart = triggerInlineEnd - overflowParent.insetInlineStart - availableSpaceReserveHorizontal;\n const currentInlineEnd =\n overflowParent.insetInlineStart +\n overflowParent.inlineSize -\n triggerInlineStart -\n availableSpaceReserveHorizontal;\n\n return {\n blockStart: Math.min(blockStart, currentBlockStart),\n blockEnd: Math.min(blockEnd, currentBlockEnd),\n inlineStart: Math.min(inlineStart, currentInlineStart),\n inlineEnd: Math.min(inlineEnd, currentInlineEnd),\n };\n },\n {\n blockStart: Number.MAX_VALUE,\n blockEnd: Number.MAX_VALUE,\n inlineStart: Number.MAX_VALUE,\n inlineEnd: Number.MAX_VALUE,\n }\n );\n};\n\nexport const getInteriorAvailableSpace = ({\n trigger,\n overflowParents,\n isMobile,\n}: {\n trigger: HTMLElement;\n overflowParents: ReadonlyArray<BoundingBox>;\n isMobile?: boolean;\n}): AvailableSpace => {\n const AVAILABLE_SPACE_RESERVE_VERTICAL = isMobile\n ? AVAILABLE_SPACE_RESERVE_MOBILE_VERTICAL\n : AVAILABLE_SPACE_RESERVE_DEFAULT;\n const AVAILABLE_SPACE_RESERVE_HORIZONTAL = isMobile\n ? AVAILABLE_SPACE_RESERVE_MOBILE_HORIZONTAL\n : AVAILABLE_SPACE_RESERVE_DEFAULT;\n const {\n insetBlockEnd: triggerBlockEnd,\n insetBlockStart: triggerBlockStart,\n insetInlineStart: triggerInlineStart,\n insetInlineEnd: triggerInlineEnd,\n } = getLogicalBoundingClientRect(trigger);\n\n return overflowParents.reduce(\n ({ blockStart, blockEnd, inlineStart, inlineEnd }, overflowParent) => {\n const currentBlockStart = triggerBlockEnd - overflowParent.insetBlockStart - AVAILABLE_SPACE_RESERVE_VERTICAL;\n const currentBlockEnd =\n overflowParent.blockSize -\n triggerBlockStart +\n overflowParent.insetBlockStart -\n AVAILABLE_SPACE_RESERVE_VERTICAL;\n const currentInlineStart =\n triggerInlineStart - overflowParent.insetInlineStart - AVAILABLE_SPACE_RESERVE_HORIZONTAL;\n const currentInlineEnd =\n overflowParent.insetInlineStart +\n overflowParent.inlineSize -\n triggerInlineEnd -\n AVAILABLE_SPACE_RESERVE_HORIZONTAL;\n\n return {\n blockStart: Math.min(blockStart, currentBlockStart),\n blockEnd: Math.min(blockEnd, currentBlockEnd),\n inlineStart: Math.min(inlineStart, currentInlineStart),\n inlineEnd: Math.min(inlineEnd, currentInlineEnd),\n };\n },\n {\n blockStart: Number.MAX_VALUE,\n blockEnd: Number.MAX_VALUE,\n inlineStart: Number.MAX_VALUE,\n inlineEnd: Number.MAX_VALUE,\n }\n );\n};\n\nexport const getWidths = ({\n triggerElement,\n dropdownElement,\n desiredMinWidth,\n stretchBeyondTriggerWidth = false,\n}: {\n triggerElement: HTMLElement;\n dropdownElement: HTMLElement;\n desiredMinWidth?: number;\n stretchBeyondTriggerWidth?: boolean;\n}) => {\n // Determine the width of the trigger\n const { inlineSize: triggerInlineSize } = getLogicalBoundingClientRect(triggerElement);\n // Minimum width is determined by either an explicit number (desiredMinWidth) or the trigger width\n const minWidth = desiredMinWidth ? Math.min(triggerInlineSize, desiredMinWidth) : triggerInlineSize;\n // If stretchBeyondTriggerWidth is true, the maximum width is the XS breakpoint (465px) or the trigger width (if bigger).\n const maxWidth = stretchBeyondTriggerWidth ? Math.max(defaultMaxDropdownWidth, triggerInlineSize) : Number.MAX_VALUE;\n // Determine the actual dropdown width, the size that it \"wants\" to be\n const { inlineSize: requiredWidth } = getLogicalBoundingClientRect(dropdownElement);\n // Try to achieve the required/desired width within the given parameters\n const idealWidth = Math.min(Math.max(requiredWidth, minWidth), maxWidth);\n return { idealWidth, minWidth, triggerInlineSize };\n};\n\nexport const hasEnoughSpaceToStretchBeyondTriggerWidth = ({\n triggerElement,\n dropdownElement,\n desiredMinWidth,\n expandToViewport,\n stretchWidth,\n stretchHeight,\n isMobile,\n}: {\n triggerElement: HTMLElement;\n dropdownElement: HTMLElement;\n desiredMinWidth?: number;\n expandToViewport: boolean;\n stretchWidth: boolean;\n stretchHeight: boolean;\n isMobile: boolean;\n}) => {\n const overflowParents = getOverflowParentDimensions({\n element: dropdownElement,\n excludeClosestParent: false,\n expandToViewport,\n canExpandOutsideViewport: stretchHeight,\n });\n const { idealWidth } = getWidths({\n triggerElement: triggerElement,\n dropdownElement,\n desiredMinWidth,\n stretchBeyondTriggerWidth: true,\n });\n const availableSpace = getAvailableSpace({\n trigger: triggerElement,\n overflowParents,\n stretchWidth,\n stretchHeight,\n isMobile,\n });\n return idealWidth <= availableSpace.inlineStart || idealWidth <= availableSpace.inlineEnd;\n};\n\nexport const getDropdownPosition = ({\n triggerElement,\n dropdownElement,\n overflowParents,\n minWidth: desiredMinWidth,\n preferCenter = false,\n stretchWidth = false,\n stretchHeight = false,\n isMobile = false,\n stretchBeyondTriggerWidth = false,\n}: {\n triggerElement: HTMLElement;\n dropdownElement: HTMLElement;\n overflowParents: ReadonlyArray<BoundingBox>;\n minWidth?: number;\n preferCenter?: boolean;\n stretchWidth?: boolean;\n stretchHeight?: boolean;\n isMobile?: boolean;\n stretchBeyondTriggerWidth?: boolean;\n}): DropdownPosition => {\n // Determine the space available around the dropdown that it can grow in\n const availableSpace = getAvailableSpace({\n trigger: triggerElement,\n overflowParents,\n stretchWidth,\n stretchHeight,\n isMobile,\n });\n const { idealWidth, minWidth, triggerInlineSize } = getWidths({\n triggerElement,\n dropdownElement,\n desiredMinWidth,\n stretchBeyondTriggerWidth,\n });\n\n let dropInlineStart: boolean;\n let insetInlineStart: number | null = null;\n let inlineSize = idealWidth;\n\n //1. Can it be positioned with ideal width to the right?\n if (idealWidth <= availableSpace.inlineEnd) {\n dropInlineStart = false;\n //2. Can it be positioned with ideal width to the left?\n } else if (idealWidth <= availableSpace.inlineStart) {\n dropInlineStart = true;\n //3. Fit into biggest available space either on left or right\n } else {\n dropInlineStart = availableSpace.inlineStart > availableSpace.inlineEnd;\n inlineSize = Math.max(availableSpace.inlineStart, availableSpace.inlineEnd, minWidth);\n }\n\n if (preferCenter) {\n const spillOver = (idealWidth - triggerInlineSize) / 2;\n\n // availableSpace always includes the trigger width, but we want to exclude that\n const availableOutsideLeft = availableSpace.inlineStart - triggerInlineSize;\n const availableOutsideRight = availableSpace.inlineEnd - triggerInlineSize;\n\n const fitsInCenter = availableOutsideLeft >= spillOver && availableOutsideRight >= spillOver;\n if (fitsInCenter) {\n insetInlineStart = -spillOver;\n }\n }\n\n const dropBlockStart =\n availableSpace.blockEnd < dropdownElement.offsetHeight && availableSpace.blockStart > availableSpace.blockEnd;\n const availableHeight = dropBlockStart ? availableSpace.blockStart : availableSpace.blockEnd;\n // Try and crop the bottom item when all options can't be displayed, affordance for \"there's more\"\n const croppedHeight = stretchHeight ? availableHeight : Math.floor(availableHeight / 31) * 31 + 16;\n\n return {\n dropBlockStart,\n dropInlineStart,\n insetInlineStart: insetInlineStart === null ? 'auto' : `${insetInlineStart}px`,\n blockSize: `${croppedHeight}px`,\n inlineSize: `${inlineSize}px`,\n };\n};\n\nexport const getInteriorDropdownPosition = (\n trigger: HTMLElement,\n dropdown: HTMLElement,\n overflowParents: ReadonlyArray<BoundingBox>,\n isMobile?: boolean\n): InteriorDropdownPosition => {\n const availableSpace = getInteriorAvailableSpace({ trigger, overflowParents, isMobile });\n const {\n insetBlockEnd: triggerBlockEnd,\n insetBlockStart: triggerBlockStart,\n inlineSize: triggerInlineSize,\n } = getLogicalBoundingClientRect(trigger);\n const { insetBlockStart: parentDropdownBlockStart, blockSize: parentDropdownHeight } =\n getClosestParentDimensions(trigger);\n\n let dropInlineStart;\n\n let { inlineSize } = getLogicalBoundingClientRect(dropdown);\n const insetBlockStart = triggerBlockStart - parentDropdownBlockStart;\n if (inlineSize <= availableSpace.inlineEnd) {\n dropInlineStart = false;\n } else if (inlineSize <= availableSpace.inlineStart) {\n dropInlineStart = true;\n } else {\n dropInlineStart = availableSpace.inlineStart > availableSpace.inlineEnd;\n inlineSize = Math.max(availableSpace.inlineStart, availableSpace.inlineEnd);\n }\n\n const insetInlineStart = dropInlineStart ? 0 - inlineSize : triggerInlineSize;\n\n const dropBlockStart =\n availableSpace.blockEnd < dropdown.offsetHeight && availableSpace.blockStart > availableSpace.blockEnd;\n const insetBlockEnd = dropBlockStart ? parentDropdownBlockStart + parentDropdownHeight - triggerBlockEnd : 0;\n const availableHeight = dropBlockStart ? availableSpace.blockStart : availableSpace.blockEnd;\n // Try and crop the bottom item when all options can't be displayed, affordance for \"there's more\"\n const croppedHeight = Math.floor(availableHeight / 31) * 31 + 16;\n\n return {\n dropBlockStart,\n dropInlineStart,\n blockSize: `${croppedHeight}px`,\n inlineSize: `${inlineSize}px`,\n insetBlockStart: `${insetBlockStart}px`,\n insetBlockEnd: `${insetBlockEnd}px`,\n insetInlineStart: `${insetInlineStart}px`,\n };\n};\n\nexport const calculatePosition = (\n dropdownElement: HTMLDivElement,\n triggerElement: HTMLDivElement,\n verticalContainerElement: HTMLDivElement,\n interior: boolean,\n expandToViewport: boolean,\n preferCenter: boolean,\n stretchWidth: boolean,\n stretchHeight: boolean,\n isMobile: boolean,\n minWidth?: number,\n stretchBeyondTriggerWidth?: boolean\n): [DropdownPosition, DOMRect] => {\n // cleaning previously assigned values,\n // so that they are not reused in case of screen resize and similar events\n verticalContainerElement.style.maxBlockSize = '';\n dropdownElement.style.inlineSize = '';\n dropdownElement.style.insetBlockStart = '';\n dropdownElement.style.insetBlockEnd = '';\n dropdownElement.style.insetInlineStart = '';\n\n dropdownElement.classList.remove(styles['dropdown-drop-left']);\n dropdownElement.classList.remove(styles['dropdown-drop-right']);\n dropdownElement.classList.remove(styles['dropdown-drop-up']);\n\n const overflowParents = getOverflowParentDimensions({\n element: dropdownElement,\n excludeClosestParent: interior,\n expandToViewport,\n canExpandOutsideViewport: stretchHeight,\n });\n const position = interior\n ? getInteriorDropdownPosition(triggerElement, dropdownElement, overflowParents, isMobile)\n : getDropdownPosition({\n triggerElement,\n dropdownElement,\n overflowParents,\n minWidth,\n preferCenter,\n stretchWidth,\n stretchHeight,\n isMobile,\n stretchBeyondTriggerWidth,\n });\n const triggerBox = triggerElement.getBoundingClientRect();\n return [position, triggerBox];\n};\n"]}
1
+ {"version":3,"file":"dropdown-fit-handler.js","sourceRoot":"","sources":["../../../../../src/internal/components/dropdown/dropdown-fit-handler.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 { getBreakpointValue } from '../../breakpoints';\nimport { getLogicalBoundingClientRect } from '../../direction';\nimport { BoundingBox, getOverflowParents, getOverflowParentDimensions } from '../../utils/scrollable-containers';\nimport styles from './styles.css.js';\n\nconst AVAILABLE_SPACE_RESERVE_DEFAULT = 50;\nconst AVAILABLE_SPACE_RESERVE_MOBILE_VERTICAL = 19; // 50 - 31\nconst AVAILABLE_SPACE_RESERVE_MOBILE_HORIZONTAL = 20;\n\ninterface AvailableSpace {\n blockStart: number;\n blockEnd: number;\n inlineStart: number;\n inlineEnd: number;\n}\nexport interface DropdownPosition {\n blockSize: string;\n inlineSize: string;\n dropBlockStart: boolean;\n dropInlineStart: boolean;\n insetInlineStart: string;\n}\nexport interface InteriorDropdownPosition extends DropdownPosition {\n insetBlockEnd: string;\n insetBlockStart: string;\n}\n\nconst getClosestParentDimensions = (element: HTMLElement): any => {\n const parents = getOverflowParents(element).map(element => {\n const { blockSize, inlineSize, insetBlockStart, insetInlineStart } = getLogicalBoundingClientRect(element);\n return {\n blockSize,\n inlineSize,\n insetBlockStart,\n insetInlineStart,\n };\n });\n\n return parents.shift();\n};\n\n// By default, most dropdowns should expand their content as necessary, but to a maximum of 465px (the XXS breakpoint).\n// This value was determined by UX but may be subject to change in the future, depending on the feedback.\nexport const defaultMaxDropdownWidth = getBreakpointValue('xxs');\n\nexport const getAvailableSpace = ({\n trigger,\n overflowParents,\n stretchWidth = false,\n stretchHeight = false,\n isMobile,\n}: {\n trigger: HTMLElement;\n overflowParents: ReadonlyArray<BoundingBox>;\n stretchWidth?: boolean;\n stretchHeight?: boolean;\n isMobile?: boolean;\n}): AvailableSpace => {\n const availableSpaceReserveVertical = stretchHeight\n ? 0\n : isMobile\n ? AVAILABLE_SPACE_RESERVE_MOBILE_VERTICAL\n : AVAILABLE_SPACE_RESERVE_DEFAULT;\n const availableSpaceReserveHorizontal = stretchWidth\n ? 0\n : isMobile\n ? AVAILABLE_SPACE_RESERVE_MOBILE_HORIZONTAL\n : AVAILABLE_SPACE_RESERVE_DEFAULT;\n const {\n insetBlockEnd: triggerBlockEnd,\n insetInlineStart: triggerInlineStart,\n insetInlineEnd: triggerInlineEnd,\n } = getLogicalBoundingClientRect(trigger);\n\n return overflowParents.reduce(\n ({ blockStart, blockEnd, inlineStart, inlineEnd }, overflowParent) => {\n const offsetTop = triggerBlockEnd - overflowParent.insetBlockStart;\n const currentBlockStart = offsetTop - trigger.offsetHeight - availableSpaceReserveVertical;\n const currentBlockEnd = overflowParent.blockSize - offsetTop - availableSpaceReserveVertical;\n const currentInlineStart = triggerInlineEnd - overflowParent.insetInlineStart - availableSpaceReserveHorizontal;\n const currentInlineEnd =\n overflowParent.insetInlineStart +\n overflowParent.inlineSize -\n triggerInlineStart -\n availableSpaceReserveHorizontal;\n\n return {\n blockStart: Math.min(blockStart, currentBlockStart),\n blockEnd: Math.min(blockEnd, currentBlockEnd),\n inlineStart: Math.min(inlineStart, currentInlineStart),\n inlineEnd: Math.min(inlineEnd, currentInlineEnd),\n };\n },\n {\n blockStart: Number.MAX_VALUE,\n blockEnd: Number.MAX_VALUE,\n inlineStart: Number.MAX_VALUE,\n inlineEnd: Number.MAX_VALUE,\n }\n );\n};\n\nexport const getInteriorAvailableSpace = ({\n trigger,\n overflowParents,\n isMobile,\n}: {\n trigger: HTMLElement;\n overflowParents: ReadonlyArray<BoundingBox>;\n isMobile?: boolean;\n}): AvailableSpace => {\n const AVAILABLE_SPACE_RESERVE_VERTICAL = isMobile\n ? AVAILABLE_SPACE_RESERVE_MOBILE_VERTICAL\n : AVAILABLE_SPACE_RESERVE_DEFAULT;\n const AVAILABLE_SPACE_RESERVE_HORIZONTAL = isMobile\n ? AVAILABLE_SPACE_RESERVE_MOBILE_HORIZONTAL\n : AVAILABLE_SPACE_RESERVE_DEFAULT;\n const {\n insetBlockEnd: triggerBlockEnd,\n insetBlockStart: triggerBlockStart,\n insetInlineStart: triggerInlineStart,\n insetInlineEnd: triggerInlineEnd,\n } = getLogicalBoundingClientRect(trigger);\n\n return overflowParents.reduce(\n ({ blockStart, blockEnd, inlineStart, inlineEnd }, overflowParent) => {\n const currentBlockStart = triggerBlockEnd - overflowParent.insetBlockStart - AVAILABLE_SPACE_RESERVE_VERTICAL;\n const currentBlockEnd =\n overflowParent.blockSize -\n triggerBlockStart +\n overflowParent.insetBlockStart -\n AVAILABLE_SPACE_RESERVE_VERTICAL;\n const currentInlineStart =\n triggerInlineStart - overflowParent.insetInlineStart - AVAILABLE_SPACE_RESERVE_HORIZONTAL;\n const currentInlineEnd =\n overflowParent.insetInlineStart +\n overflowParent.inlineSize -\n triggerInlineEnd -\n AVAILABLE_SPACE_RESERVE_HORIZONTAL;\n\n return {\n blockStart: Math.min(blockStart, currentBlockStart),\n blockEnd: Math.min(blockEnd, currentBlockEnd),\n inlineStart: Math.min(inlineStart, currentInlineStart),\n inlineEnd: Math.min(inlineEnd, currentInlineEnd),\n };\n },\n {\n blockStart: Number.MAX_VALUE,\n blockEnd: Number.MAX_VALUE,\n inlineStart: Number.MAX_VALUE,\n inlineEnd: Number.MAX_VALUE,\n }\n );\n};\n\nexport const getWidths = ({\n triggerElement,\n dropdownElement,\n desiredMinWidth,\n stretchBeyondTriggerWidth = false,\n}: {\n triggerElement: HTMLElement;\n dropdownElement: HTMLElement;\n desiredMinWidth?: number;\n stretchBeyondTriggerWidth?: boolean;\n}) => {\n // Determine the width of the trigger\n const { inlineSize: triggerInlineSize } = getLogicalBoundingClientRect(triggerElement);\n // Minimum width is determined by either an explicit number (desiredMinWidth) or the trigger width\n const minWidth = desiredMinWidth ? Math.min(triggerInlineSize, desiredMinWidth) : triggerInlineSize;\n // If stretchBeyondTriggerWidth is true, the maximum width is the XS breakpoint (465px) or the trigger width (if bigger).\n const maxWidth = stretchBeyondTriggerWidth ? Math.max(defaultMaxDropdownWidth, triggerInlineSize) : Number.MAX_VALUE;\n // Determine the actual dropdown width, the size that it \"wants\" to be\n const { inlineSize: requiredWidth } = getLogicalBoundingClientRect(dropdownElement);\n // Try to achieve the required/desired width within the given parameters\n const idealWidth = Math.min(Math.max(requiredWidth, minWidth), maxWidth);\n return { idealWidth, minWidth, triggerInlineSize };\n};\n\nexport const hasEnoughSpaceToStretchBeyondTriggerWidth = ({\n triggerElement,\n dropdownElement,\n desiredMinWidth,\n expandToViewport,\n stretchWidth,\n stretchHeight,\n isMobile,\n}: {\n triggerElement: HTMLElement;\n dropdownElement: HTMLElement;\n desiredMinWidth?: number;\n expandToViewport: boolean;\n stretchWidth: boolean;\n stretchHeight: boolean;\n isMobile: boolean;\n}) => {\n const overflowParents = getOverflowParentDimensions({\n element: dropdownElement,\n excludeClosestParent: false,\n expandToViewport,\n canExpandOutsideViewport: stretchHeight,\n });\n const { idealWidth } = getWidths({\n triggerElement: triggerElement,\n dropdownElement,\n desiredMinWidth,\n stretchBeyondTriggerWidth: true,\n });\n const availableSpace = getAvailableSpace({\n trigger: triggerElement,\n overflowParents,\n stretchWidth,\n stretchHeight,\n isMobile,\n });\n return idealWidth <= availableSpace.inlineStart || idealWidth <= availableSpace.inlineEnd;\n};\n\nexport const getDropdownPosition = ({\n triggerElement,\n dropdownElement,\n overflowParents,\n minWidth: desiredMinWidth,\n preferCenter = false,\n stretchWidth = false,\n stretchHeight = false,\n isMobile = false,\n stretchBeyondTriggerWidth = false,\n}: {\n triggerElement: HTMLElement;\n dropdownElement: HTMLElement;\n overflowParents: ReadonlyArray<BoundingBox>;\n minWidth?: number;\n preferCenter?: boolean;\n stretchWidth?: boolean;\n stretchHeight?: boolean;\n isMobile?: boolean;\n stretchBeyondTriggerWidth?: boolean;\n}): DropdownPosition => {\n // Determine the space available around the dropdown that it can grow in\n const availableSpace = getAvailableSpace({\n trigger: triggerElement,\n overflowParents,\n stretchWidth,\n stretchHeight,\n isMobile,\n });\n const { idealWidth, minWidth, triggerInlineSize } = getWidths({\n triggerElement,\n dropdownElement,\n desiredMinWidth,\n stretchBeyondTriggerWidth,\n });\n\n let dropInlineStart: boolean;\n let insetInlineStart: number | null = null;\n let inlineSize = idealWidth;\n\n //1. Can it be positioned with ideal width to the right?\n if (idealWidth <= availableSpace.inlineEnd) {\n dropInlineStart = false;\n //2. Can it be positioned with ideal width to the left?\n } else if (idealWidth <= availableSpace.inlineStart) {\n dropInlineStart = true;\n //3. Fit into biggest available space either on left or right\n } else {\n dropInlineStart = availableSpace.inlineStart > availableSpace.inlineEnd;\n inlineSize = Math.max(availableSpace.inlineStart, availableSpace.inlineEnd, minWidth);\n }\n\n if (preferCenter) {\n const spillOver = (idealWidth - triggerInlineSize) / 2;\n\n // availableSpace always includes the trigger width, but we want to exclude that\n const availableOutsideLeft = availableSpace.inlineStart - triggerInlineSize;\n const availableOutsideRight = availableSpace.inlineEnd - triggerInlineSize;\n\n const fitsInCenter = availableOutsideLeft >= spillOver && availableOutsideRight >= spillOver;\n if (fitsInCenter) {\n insetInlineStart = -spillOver;\n }\n }\n\n const dropBlockStart =\n availableSpace.blockEnd < dropdownElement.offsetHeight && availableSpace.blockStart > availableSpace.blockEnd;\n const availableHeight = dropBlockStart ? availableSpace.blockStart : availableSpace.blockEnd;\n // Try and crop the bottom item when all options can't be displayed, affordance for \"there's more\"\n const croppedHeight = stretchHeight ? availableHeight : Math.floor(availableHeight / 31) * 31 + 16;\n\n return {\n dropBlockStart,\n dropInlineStart,\n insetInlineStart: insetInlineStart === null ? 'auto' : `${insetInlineStart}px`,\n blockSize: `${croppedHeight}px`,\n inlineSize: `${inlineSize}px`,\n };\n};\n\nexport const getInteriorDropdownPosition = (\n trigger: HTMLElement,\n dropdown: HTMLElement,\n overflowParents: ReadonlyArray<BoundingBox>,\n isMobile?: boolean\n): InteriorDropdownPosition => {\n const availableSpace = getInteriorAvailableSpace({ trigger, overflowParents, isMobile });\n const {\n insetBlockEnd: triggerBlockEnd,\n insetBlockStart: triggerBlockStart,\n inlineSize: triggerInlineSize,\n } = getLogicalBoundingClientRect(trigger);\n const { insetBlockStart: parentDropdownBlockStart, blockSize: parentDropdownHeight } =\n getClosestParentDimensions(trigger);\n\n let dropInlineStart;\n\n let { inlineSize } = getLogicalBoundingClientRect(dropdown);\n const insetBlockStart = triggerBlockStart - parentDropdownBlockStart;\n if (inlineSize <= availableSpace.inlineEnd) {\n dropInlineStart = false;\n } else if (inlineSize <= availableSpace.inlineStart) {\n dropInlineStart = true;\n } else {\n dropInlineStart = availableSpace.inlineStart > availableSpace.inlineEnd;\n inlineSize = Math.max(availableSpace.inlineStart, availableSpace.inlineEnd);\n }\n\n const insetInlineStart = dropInlineStart ? 0 - inlineSize : triggerInlineSize;\n\n const dropBlockStart =\n availableSpace.blockEnd < dropdown.offsetHeight && availableSpace.blockStart > availableSpace.blockEnd;\n const insetBlockEnd = dropBlockStart ? parentDropdownBlockStart + parentDropdownHeight - triggerBlockEnd : 0;\n const availableHeight = dropBlockStart ? availableSpace.blockStart : availableSpace.blockEnd;\n // Try and crop the bottom item when all options can't be displayed, affordance for \"there's more\"\n const croppedHeight = Math.floor(availableHeight / 31) * 31 + 16;\n\n return {\n dropBlockStart,\n dropInlineStart,\n blockSize: `${croppedHeight}px`,\n inlineSize: `${inlineSize}px`,\n insetBlockStart: `${insetBlockStart}px`,\n insetBlockEnd: `${insetBlockEnd}px`,\n insetInlineStart: `${insetInlineStart}px`,\n };\n};\n\nexport const calculatePosition = (\n dropdownElement: HTMLDivElement,\n triggerElement: HTMLDivElement,\n verticalContainerElement: HTMLDivElement,\n interior: boolean,\n expandToViewport: boolean,\n preferCenter: boolean,\n stretchWidth: boolean,\n stretchHeight: boolean,\n isMobile: boolean,\n minWidth?: number,\n stretchBeyondTriggerWidth?: boolean\n): [DropdownPosition, DOMRect] => {\n // cleaning previously assigned values,\n // so that they are not reused in case of screen resize and similar events\n verticalContainerElement.style.maxBlockSize = '';\n dropdownElement.style.inlineSize = '';\n dropdownElement.style.insetBlockStart = '';\n dropdownElement.style.insetBlockEnd = '';\n dropdownElement.style.insetInlineStart = '';\n\n dropdownElement.classList.remove(styles['dropdown-drop-left']);\n dropdownElement.classList.remove(styles['dropdown-drop-right']);\n dropdownElement.classList.remove(styles['dropdown-drop-up']);\n\n const overflowParents = getOverflowParentDimensions({\n element: dropdownElement,\n excludeClosestParent: interior,\n expandToViewport,\n canExpandOutsideViewport: stretchHeight,\n });\n const position = interior\n ? getInteriorDropdownPosition(triggerElement, dropdownElement, overflowParents, isMobile)\n : getDropdownPosition({\n triggerElement,\n dropdownElement,\n overflowParents,\n minWidth,\n preferCenter,\n stretchWidth,\n stretchHeight,\n isMobile,\n stretchBeyondTriggerWidth,\n });\n const triggerBox = triggerElement.getBoundingClientRect();\n return [position, triggerBox];\n};\n"]}
@@ -1,25 +1,25 @@
1
1
 
2
2
  import './styles.scoped.css';
3
3
  export default {
4
- "dropdown-content-wrapper": "awsui_dropdown-content-wrapper_qwoo0_1wj13_99",
5
- "awsui-motion-fade-in-dropdown": "awsui_awsui-motion-fade-in-dropdown_qwoo0_1wj13_1",
6
- "refresh": "awsui_refresh_qwoo0_1wj13_120",
7
- "awsui-motion-fade-in-0": "awsui_awsui-motion-fade-in-0_qwoo0_1wj13_1",
8
- "root": "awsui_root_qwoo0_1wj13_149",
9
- "interior": "awsui_interior_qwoo0_1wj13_185",
10
- "dropdown": "awsui_dropdown_qwoo0_1wj13_99",
11
- "use-portal": "awsui_use-portal_qwoo0_1wj13_196",
12
- "is-empty": "awsui_is-empty_qwoo0_1wj13_248",
13
- "dropdown-drop-up": "awsui_dropdown-drop-up_qwoo0_1wj13_255",
14
- "with-limited-width": "awsui_with-limited-width_qwoo0_1wj13_259",
15
- "dropdown-drop-left": "awsui_dropdown-drop-left_qwoo0_1wj13_262",
16
- "dropdown-drop-right": "awsui_dropdown-drop-right_qwoo0_1wj13_268",
17
- "occupy-entire-width": "awsui_occupy-entire-width_qwoo0_1wj13_274",
18
- "stretch-beyond-trigger-width": "awsui_stretch-beyond-trigger-width_qwoo0_1wj13_277",
19
- "hide-block-border": "awsui_hide-block-border_qwoo0_1wj13_284",
20
- "open": "awsui_open_qwoo0_1wj13_293",
21
- "nowrap": "awsui_nowrap_qwoo0_1wj13_302",
22
- "dropdown-content": "awsui_dropdown-content_qwoo0_1wj13_99",
23
- "stretch-trigger-height": "awsui_stretch-trigger-height_qwoo0_1wj13_313"
4
+ "dropdown-content-wrapper": "awsui_dropdown-content-wrapper_qwoo0_kabis_99",
5
+ "awsui-motion-fade-in-dropdown": "awsui_awsui-motion-fade-in-dropdown_qwoo0_kabis_1",
6
+ "refresh": "awsui_refresh_qwoo0_kabis_120",
7
+ "awsui-motion-fade-in-0": "awsui_awsui-motion-fade-in-0_qwoo0_kabis_1",
8
+ "root": "awsui_root_qwoo0_kabis_149",
9
+ "interior": "awsui_interior_qwoo0_kabis_185",
10
+ "dropdown": "awsui_dropdown_qwoo0_kabis_99",
11
+ "use-portal": "awsui_use-portal_qwoo0_kabis_196",
12
+ "is-empty": "awsui_is-empty_qwoo0_kabis_248",
13
+ "dropdown-drop-up": "awsui_dropdown-drop-up_qwoo0_kabis_255",
14
+ "with-limited-width": "awsui_with-limited-width_qwoo0_kabis_259",
15
+ "dropdown-drop-left": "awsui_dropdown-drop-left_qwoo0_kabis_262",
16
+ "dropdown-drop-right": "awsui_dropdown-drop-right_qwoo0_kabis_268",
17
+ "occupy-entire-width": "awsui_occupy-entire-width_qwoo0_kabis_274",
18
+ "stretch-beyond-trigger-width": "awsui_stretch-beyond-trigger-width_qwoo0_kabis_277",
19
+ "hide-block-border": "awsui_hide-block-border_qwoo0_kabis_284",
20
+ "open": "awsui_open_qwoo0_kabis_293",
21
+ "nowrap": "awsui_nowrap_qwoo0_kabis_302",
22
+ "dropdown-content": "awsui_dropdown-content_qwoo0_kabis_99",
23
+ "stretch-trigger-height": "awsui_stretch-trigger-height_qwoo0_kabis_313"
24
24
  };
25
25