@cloudscape-design/components-themeable 3.0.1210 → 3.0.1212

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 (221) hide show
  1. package/lib/internal/manifest.json +1 -1
  2. package/lib/internal/scss/internal/components/dropdown/styles.scss +3 -2
  3. package/lib/internal/scss/internal/generated/custom-css-properties/index.scss +140 -139
  4. package/lib/internal/template/alert/interfaces.d.ts +2 -0
  5. package/lib/internal/template/alert/interfaces.d.ts.map +1 -1
  6. package/lib/internal/template/alert/interfaces.js.map +1 -1
  7. package/lib/internal/template/alert/styles.css.js +27 -27
  8. package/lib/internal/template/alert/styles.scoped.css +50 -50
  9. package/lib/internal/template/alert/styles.selectors.js +27 -27
  10. package/lib/internal/template/annotation-context/annotation/styles.css.js +13 -13
  11. package/lib/internal/template/annotation-context/annotation/styles.scoped.css +21 -21
  12. package/lib/internal/template/annotation-context/annotation/styles.selectors.js +13 -13
  13. package/lib/internal/template/app-layout/notifications/styles.css.js +3 -3
  14. package/lib/internal/template/app-layout/notifications/styles.scoped.css +7 -7
  15. package/lib/internal/template/app-layout/notifications/styles.selectors.js +3 -3
  16. package/lib/internal/template/app-layout/visual-refresh/styles.css.js +86 -86
  17. package/lib/internal/template/app-layout/visual-refresh/styles.scoped.css +258 -258
  18. package/lib/internal/template/app-layout/visual-refresh/styles.selectors.js +86 -86
  19. package/lib/internal/template/app-layout/visual-refresh-toolbar/drawer/styles.css.js +30 -30
  20. package/lib/internal/template/app-layout/visual-refresh-toolbar/drawer/styles.scoped.css +87 -87
  21. package/lib/internal/template/app-layout/visual-refresh-toolbar/drawer/styles.selectors.js +30 -30
  22. package/lib/internal/template/app-layout/visual-refresh-toolbar/navigation/styles.css.js +4 -4
  23. package/lib/internal/template/app-layout/visual-refresh-toolbar/navigation/styles.scoped.css +7 -7
  24. package/lib/internal/template/app-layout/visual-refresh-toolbar/navigation/styles.selectors.js +4 -4
  25. package/lib/internal/template/app-layout/visual-refresh-toolbar/skeleton/styles.css.js +27 -27
  26. package/lib/internal/template/app-layout/visual-refresh-toolbar/skeleton/styles.scoped.css +54 -54
  27. package/lib/internal/template/app-layout/visual-refresh-toolbar/skeleton/styles.selectors.js +27 -27
  28. package/lib/internal/template/attribute-editor/styles.css.js +15 -15
  29. package/lib/internal/template/attribute-editor/styles.scoped.css +28 -28
  30. package/lib/internal/template/attribute-editor/styles.selectors.js +15 -15
  31. package/lib/internal/template/autosuggest/interfaces.d.ts +2 -0
  32. package/lib/internal/template/autosuggest/interfaces.d.ts.map +1 -1
  33. package/lib/internal/template/autosuggest/interfaces.js.map +1 -1
  34. package/lib/internal/template/badge/interfaces.d.ts +2 -0
  35. package/lib/internal/template/badge/interfaces.d.ts.map +1 -1
  36. package/lib/internal/template/badge/interfaces.js.map +1 -1
  37. package/lib/internal/template/breadcrumb-group/item/styles.css.js +7 -7
  38. package/lib/internal/template/breadcrumb-group/item/styles.scoped.css +28 -28
  39. package/lib/internal/template/breadcrumb-group/item/styles.selectors.js +7 -7
  40. package/lib/internal/template/button/interfaces.d.ts +2 -0
  41. package/lib/internal/template/button/interfaces.d.ts.map +1 -1
  42. package/lib/internal/template/button/interfaces.js.map +1 -1
  43. package/lib/internal/template/button/styles.css.js +22 -22
  44. package/lib/internal/template/button/styles.scoped.css +256 -256
  45. package/lib/internal/template/button/styles.selectors.js +22 -22
  46. package/lib/internal/template/button-dropdown/category-elements/expandable-category-element.js +1 -1
  47. package/lib/internal/template/button-dropdown/category-elements/expandable-category-element.js.map +1 -1
  48. package/lib/internal/template/button-dropdown/internal.d.ts.map +1 -1
  49. package/lib/internal/template/button-dropdown/internal.js +1 -1
  50. package/lib/internal/template/button-dropdown/internal.js.map +1 -1
  51. package/lib/internal/template/button-dropdown/item-element/styles.css.js +21 -21
  52. package/lib/internal/template/button-dropdown/item-element/styles.scoped.css +37 -37
  53. package/lib/internal/template/button-dropdown/item-element/styles.selectors.js +21 -21
  54. package/lib/internal/template/button-group/interfaces.d.ts +2 -0
  55. package/lib/internal/template/button-group/interfaces.d.ts.map +1 -1
  56. package/lib/internal/template/button-group/interfaces.js.map +1 -1
  57. package/lib/internal/template/checkbox/interfaces.d.ts +2 -0
  58. package/lib/internal/template/checkbox/interfaces.d.ts.map +1 -1
  59. package/lib/internal/template/checkbox/interfaces.js.map +1 -1
  60. package/lib/internal/template/checkbox/styles.css.js +3 -3
  61. package/lib/internal/template/checkbox/styles.scoped.css +11 -11
  62. package/lib/internal/template/checkbox/styles.selectors.js +3 -3
  63. package/lib/internal/template/column-layout/flexible-column-layout/index.js +2 -2
  64. package/lib/internal/template/column-layout/flexible-column-layout/index.js.map +1 -1
  65. package/lib/internal/template/column-layout/grid-column-layout.js +1 -1
  66. package/lib/internal/template/column-layout/grid-column-layout.js.map +1 -1
  67. package/lib/internal/template/container/interfaces.d.ts +2 -0
  68. package/lib/internal/template/container/interfaces.d.ts.map +1 -1
  69. package/lib/internal/template/container/interfaces.js.map +1 -1
  70. package/lib/internal/template/content-layout/styles.css.js +14 -14
  71. package/lib/internal/template/content-layout/styles.scoped.css +27 -27
  72. package/lib/internal/template/content-layout/styles.selectors.js +14 -14
  73. package/lib/internal/template/date-picker/index.d.ts.map +1 -1
  74. package/lib/internal/template/date-picker/index.js +1 -1
  75. package/lib/internal/template/date-picker/index.js.map +1 -1
  76. package/lib/internal/template/date-range-picker/index.d.ts.map +1 -1
  77. package/lib/internal/template/date-range-picker/index.js +1 -1
  78. package/lib/internal/template/date-range-picker/index.js.map +1 -1
  79. package/lib/internal/template/flashbar/interfaces.d.ts +2 -0
  80. package/lib/internal/template/flashbar/interfaces.d.ts.map +1 -1
  81. package/lib/internal/template/flashbar/interfaces.js.map +1 -1
  82. package/lib/internal/template/flashbar/styles.css.js +50 -50
  83. package/lib/internal/template/flashbar/styles.scoped.css +187 -187
  84. package/lib/internal/template/flashbar/styles.selectors.js +50 -50
  85. package/lib/internal/template/grid/internal.d.ts.map +1 -1
  86. package/lib/internal/template/grid/internal.js +2 -2
  87. package/lib/internal/template/grid/internal.js.map +1 -1
  88. package/lib/internal/template/help-panel/styles.css.js +6 -6
  89. package/lib/internal/template/help-panel/styles.scoped.css +73 -73
  90. package/lib/internal/template/help-panel/styles.selectors.js +6 -6
  91. package/lib/internal/template/input/interfaces.d.ts +2 -0
  92. package/lib/internal/template/input/interfaces.d.ts.map +1 -1
  93. package/lib/internal/template/input/interfaces.js.map +1 -1
  94. package/lib/internal/template/input/styles.css.js +13 -13
  95. package/lib/internal/template/input/styles.scoped.css +74 -74
  96. package/lib/internal/template/input/styles.selectors.js +13 -13
  97. package/lib/internal/template/internal/base-component/styles.scoped.css +1 -1
  98. package/lib/internal/template/internal/components/autosuggest-input/index.d.ts.map +1 -1
  99. package/lib/internal/template/internal/components/autosuggest-input/index.js +2 -1
  100. package/lib/internal/template/internal/components/autosuggest-input/index.js.map +1 -1
  101. package/lib/internal/template/internal/components/drag-handle-wrapper/styles.css.js +30 -30
  102. package/lib/internal/template/internal/components/drag-handle-wrapper/styles.scoped.css +58 -58
  103. package/lib/internal/template/internal/components/drag-handle-wrapper/styles.selectors.js +30 -30
  104. package/lib/internal/template/internal/components/dropdown/dropdown-fit-handler.d.ts +9 -9
  105. package/lib/internal/template/internal/components/dropdown/dropdown-fit-handler.d.ts.map +1 -1
  106. package/lib/internal/template/internal/components/dropdown/dropdown-fit-handler.js +22 -23
  107. package/lib/internal/template/internal/components/dropdown/dropdown-fit-handler.js.map +1 -1
  108. package/lib/internal/template/internal/components/dropdown/dropdown-position.d.ts.map +1 -1
  109. package/lib/internal/template/internal/components/dropdown/dropdown-position.js +4 -1
  110. package/lib/internal/template/internal/components/dropdown/dropdown-position.js.map +1 -1
  111. package/lib/internal/template/internal/components/dropdown/index.d.ts +1 -1
  112. package/lib/internal/template/internal/components/dropdown/index.d.ts.map +1 -1
  113. package/lib/internal/template/internal/components/dropdown/index.js +54 -30
  114. package/lib/internal/template/internal/components/dropdown/index.js.map +1 -1
  115. package/lib/internal/template/internal/components/dropdown/interfaces.d.ts +33 -18
  116. package/lib/internal/template/internal/components/dropdown/interfaces.d.ts.map +1 -1
  117. package/lib/internal/template/internal/components/dropdown/interfaces.js.map +1 -1
  118. package/lib/internal/template/internal/components/dropdown/styles.css.js +20 -20
  119. package/lib/internal/template/internal/components/dropdown/styles.scoped.css +39 -38
  120. package/lib/internal/template/internal/components/dropdown/styles.selectors.js +20 -20
  121. package/lib/internal/template/internal/components/radio-button/interfaces.d.ts +2 -0
  122. package/lib/internal/template/internal/components/radio-button/interfaces.d.ts.map +1 -1
  123. package/lib/internal/template/internal/components/radio-button/interfaces.js.map +1 -1
  124. package/lib/internal/template/internal/components/radio-button/styles.css.js +7 -7
  125. package/lib/internal/template/internal/components/radio-button/styles.scoped.css +18 -18
  126. package/lib/internal/template/internal/components/radio-button/styles.selectors.js +7 -7
  127. package/lib/internal/template/internal/components/token-list/styles.css.js +10 -10
  128. package/lib/internal/template/internal/components/token-list/styles.scoped.css +25 -25
  129. package/lib/internal/template/internal/components/token-list/styles.selectors.js +10 -10
  130. package/lib/internal/template/internal/environment.js +2 -2
  131. package/lib/internal/template/internal/environment.json +2 -2
  132. package/lib/internal/template/internal/generated/custom-css-properties/index.d.ts +1 -0
  133. package/lib/internal/template/internal/generated/custom-css-properties/index.d.ts.map +1 -1
  134. package/lib/internal/template/internal/generated/custom-css-properties/index.js +139 -138
  135. package/lib/internal/template/internal/generated/custom-css-properties/index.js.map +1 -1
  136. package/lib/internal/template/internal/hooks/use-base-component/styles-check.d.ts +1 -2
  137. package/lib/internal/template/internal/hooks/use-base-component/styles-check.d.ts.map +1 -1
  138. package/lib/internal/template/internal/hooks/use-base-component/styles-check.js +27 -7
  139. package/lib/internal/template/internal/hooks/use-base-component/styles-check.js.map +1 -1
  140. package/lib/internal/template/internal/utils/flatten-children.d.ts +3 -0
  141. package/lib/internal/template/internal/utils/flatten-children.d.ts.map +1 -0
  142. package/lib/internal/template/internal/utils/flatten-children.js +17 -0
  143. package/lib/internal/template/internal/utils/flatten-children.js.map +1 -0
  144. package/lib/internal/template/link/interfaces.d.ts +2 -0
  145. package/lib/internal/template/link/interfaces.d.ts.map +1 -1
  146. package/lib/internal/template/link/interfaces.js.map +1 -1
  147. package/lib/internal/template/link/styles.css.js +20 -20
  148. package/lib/internal/template/link/styles.scoped.css +103 -103
  149. package/lib/internal/template/link/styles.selectors.js +20 -20
  150. package/lib/internal/template/multiselect/internal.d.ts.map +1 -1
  151. package/lib/internal/template/multiselect/internal.js +2 -1
  152. package/lib/internal/template/multiselect/internal.js.map +1 -1
  153. package/lib/internal/template/multiselect/use-multiselect.d.ts +1 -1
  154. package/lib/internal/template/progress-bar/interfaces.d.ts +2 -0
  155. package/lib/internal/template/progress-bar/interfaces.d.ts.map +1 -1
  156. package/lib/internal/template/progress-bar/interfaces.js.map +1 -1
  157. package/lib/internal/template/progress-bar/styles.css.js +18 -18
  158. package/lib/internal/template/progress-bar/styles.scoped.css +48 -48
  159. package/lib/internal/template/progress-bar/styles.selectors.js +18 -18
  160. package/lib/internal/template/prompt-input/interfaces.d.ts +2 -0
  161. package/lib/internal/template/prompt-input/interfaces.d.ts.map +1 -1
  162. package/lib/internal/template/prompt-input/interfaces.js.map +1 -1
  163. package/lib/internal/template/prompt-input/styles.css.js +17 -17
  164. package/lib/internal/template/prompt-input/styles.scoped.css +79 -79
  165. package/lib/internal/template/prompt-input/styles.selectors.js +17 -17
  166. package/lib/internal/template/radio-group/interfaces.d.ts +2 -0
  167. package/lib/internal/template/radio-group/interfaces.d.ts.map +1 -1
  168. package/lib/internal/template/radio-group/interfaces.js.map +1 -1
  169. package/lib/internal/template/segmented-control/interfaces.d.ts +2 -0
  170. package/lib/internal/template/segmented-control/interfaces.d.ts.map +1 -1
  171. package/lib/internal/template/segmented-control/interfaces.js.map +1 -1
  172. package/lib/internal/template/segmented-control/styles.css.js +16 -16
  173. package/lib/internal/template/segmented-control/styles.scoped.css +46 -46
  174. package/lib/internal/template/segmented-control/styles.selectors.js +16 -16
  175. package/lib/internal/template/select/internal.d.ts.map +1 -1
  176. package/lib/internal/template/select/internal.js +2 -1
  177. package/lib/internal/template/select/internal.js.map +1 -1
  178. package/lib/internal/template/select/utils/use-select.d.ts +1 -1
  179. package/lib/internal/template/select/utils/use-select.d.ts.map +1 -1
  180. package/lib/internal/template/select/utils/use-select.js +1 -1
  181. package/lib/internal/template/select/utils/use-select.js.map +1 -1
  182. package/lib/internal/template/slider/interfaces.d.ts +2 -0
  183. package/lib/internal/template/slider/interfaces.d.ts.map +1 -1
  184. package/lib/internal/template/slider/interfaces.js.map +1 -1
  185. package/lib/internal/template/slider/styles.css.js +26 -26
  186. package/lib/internal/template/slider/styles.scoped.css +165 -165
  187. package/lib/internal/template/slider/styles.selectors.js +26 -26
  188. package/lib/internal/template/space-between/internal.d.ts.map +1 -1
  189. package/lib/internal/template/space-between/internal.js +4 -3
  190. package/lib/internal/template/space-between/internal.js.map +1 -1
  191. package/lib/internal/template/spinner/styles.css.js +13 -13
  192. package/lib/internal/template/spinner/styles.scoped.css +39 -39
  193. package/lib/internal/template/spinner/styles.selectors.js +13 -13
  194. package/lib/internal/template/tabs/interfaces.d.ts +2 -0
  195. package/lib/internal/template/tabs/interfaces.d.ts.map +1 -1
  196. package/lib/internal/template/tabs/interfaces.js.map +1 -1
  197. package/lib/internal/template/tabs/styles.css.js +30 -30
  198. package/lib/internal/template/tabs/styles.scoped.css +76 -76
  199. package/lib/internal/template/tabs/styles.selectors.js +30 -30
  200. package/lib/internal/template/tag-editor/styles.css.js +3 -3
  201. package/lib/internal/template/tag-editor/styles.scoped.css +13 -13
  202. package/lib/internal/template/tag-editor/styles.selectors.js +3 -3
  203. package/lib/internal/template/text-content/styles.css.js +1 -1
  204. package/lib/internal/template/text-content/styles.scoped.css +66 -66
  205. package/lib/internal/template/text-content/styles.selectors.js +1 -1
  206. package/lib/internal/template/text-filter/interfaces.d.ts +2 -0
  207. package/lib/internal/template/text-filter/interfaces.d.ts.map +1 -1
  208. package/lib/internal/template/text-filter/interfaces.js.map +1 -1
  209. package/lib/internal/template/textarea/interfaces.d.ts +2 -0
  210. package/lib/internal/template/textarea/interfaces.d.ts.map +1 -1
  211. package/lib/internal/template/textarea/interfaces.js.map +1 -1
  212. package/lib/internal/template/textarea/styles.css.js +5 -5
  213. package/lib/internal/template/textarea/styles.scoped.css +45 -45
  214. package/lib/internal/template/textarea/styles.selectors.js +5 -5
  215. package/lib/internal/template/toggle/interfaces.d.ts +2 -0
  216. package/lib/internal/template/toggle/interfaces.d.ts.map +1 -1
  217. package/lib/internal/template/toggle/interfaces.js.map +1 -1
  218. package/lib/internal/template/toggle/styles.css.js +10 -10
  219. package/lib/internal/template/toggle/styles.scoped.css +23 -23
  220. package/lib/internal/template/toggle/styles.selectors.js +10 -10
  221. package/package.json +1 -1
@@ -158,7 +158,7 @@ surrounding text. (WCAG F73) https://www.w3.org/WAI/WCAG21/Techniques/failures/F
158
158
  Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
159
159
  SPDX-License-Identifier: Apache-2.0
160
160
  */
161
- .awsui_segment_8cbea_1av64_161:not(#\9) {
161
+ .awsui_segment_8cbea_bo5ti_161:not(#\9) {
162
162
  font-size: var(--font-size-body-m-vv54cm, 14px);
163
163
  line-height: var(--line-height-body-m-bedeoh, 22px);
164
164
  word-wrap: break-word;
@@ -170,8 +170,8 @@ surrounding text. (WCAG F73) https://www.w3.org/WAI/WCAG21/Techniques/failures/F
170
170
  letter-spacing: 0.25px;
171
171
  padding-block: var(--space-scaled-xxs-jatbiv, 4px);
172
172
  padding-inline: calc(var(--space-button-horizontal-v8ywmo, 20px) - var(--space-static-xxs-0cgyf1, 4px));
173
- background: var(--awsui-style-background-default-4hh3rt, var(--color-background-segment-default-zwi7m6, #ffffff));
174
- color: var(--awsui-style-color-default-4hh3rt, var(--color-text-segment-default-a74tco, #545b64));
173
+ background: var(--awsui-style-background-default-c5ek4l, var(--color-background-segment-default-zwi7m6, #ffffff));
174
+ color: var(--awsui-style-color-default-c5ek4l, var(--color-text-segment-default-a74tco, #545b64));
175
175
  overflow: visible;
176
176
  border-start-start-radius: var(--border-radius-button-vm1lh4, 2px);
177
177
  border-start-end-radius: var(--border-radius-button-vm1lh4, 2px);
@@ -183,26 +183,26 @@ surrounding text. (WCAG F73) https://www.w3.org/WAI/WCAG21/Techniques/failures/F
183
183
  align-items: center;
184
184
  border-inline: none;
185
185
  border-block: none;
186
- --awsui-style-focus-ring-box-shadow-4hh3rt: 0 0 0 var(--awsui-style-focus-ring-border-width-4hh3rt, 2px) var(--awsui-style-focus-ring-border-color-4hh3rt, var(--color-border-item-focused-r5f6xl, #0073bb));
186
+ --awsui-style-focus-ring-box-shadow-c5ek4l: 0 0 0 var(--awsui-style-focus-ring-border-width-c5ek4l, 2px) var(--awsui-style-focus-ring-border-color-c5ek4l, var(--color-border-item-focused-r5f6xl, #0073bb));
187
187
  }
188
- .awsui_segment_8cbea_1av64_161:not(#\9):not(.awsui_refresh_8cbea_1av64_188) {
188
+ .awsui_segment_8cbea_bo5ti_161:not(#\9):not(.awsui_refresh_8cbea_bo5ti_188) {
189
189
  block-size: calc(100% - var(--space-static-xxs-0cgyf1, 4px) - 2 * var(--border-width-field-9k1tdz, 1px));
190
190
  }
191
- .awsui_segment_8cbea_1av64_161:not(#\9):focus {
191
+ .awsui_segment_8cbea_bo5ti_161:not(#\9):focus {
192
192
  outline: none;
193
193
  }
194
- .awsui_segment_8cbea_1av64_161.awsui_disabled_8cbea_1av64_194:not(#\9) {
195
- background: var(--awsui-style-background-disabled-4hh3rt, var(--color-background-segment-disabled-etp65k, #ffffff));
196
- color: var(--awsui-style-color-disabled-4hh3rt, var(--color-text-interactive-disabled-xwt2jl, #aab7b8));
194
+ .awsui_segment_8cbea_bo5ti_161.awsui_disabled_8cbea_bo5ti_194:not(#\9) {
195
+ background: var(--awsui-style-background-disabled-c5ek4l, var(--color-background-segment-disabled-etp65k, #ffffff));
196
+ color: var(--awsui-style-color-disabled-c5ek4l, var(--color-text-interactive-disabled-xwt2jl, #aab7b8));
197
197
  }
198
- body[data-awsui-focus-visible=true] .awsui_segment_8cbea_1av64_161:not(#\9):focus {
198
+ body[data-awsui-focus-visible=true] .awsui_segment_8cbea_bo5ti_161:not(#\9):focus {
199
199
  position: relative;
200
200
  }
201
- body[data-awsui-focus-visible=true] .awsui_segment_8cbea_1av64_161:not(#\9):focus {
201
+ body[data-awsui-focus-visible=true] .awsui_segment_8cbea_bo5ti_161:not(#\9):focus {
202
202
  outline: 2px dotted transparent;
203
203
  outline-offset: calc(var(--space-segmented-control-focus-outline-gutter-tvktqv, 3px) - 1px);
204
204
  }
205
- body[data-awsui-focus-visible=true] .awsui_segment_8cbea_1av64_161:not(#\9):focus::before {
205
+ body[data-awsui-focus-visible=true] .awsui_segment_8cbea_bo5ti_161:not(#\9):focus::before {
206
206
  content: " ";
207
207
  display: block;
208
208
  position: absolute;
@@ -210,14 +210,14 @@ body[data-awsui-focus-visible=true] .awsui_segment_8cbea_1av64_161:not(#\9):focu
210
210
  inset-block-start: calc(-1 * var(--space-segmented-control-focus-outline-gutter-tvktqv, 3px));
211
211
  inline-size: calc(100% + var(--space-segmented-control-focus-outline-gutter-tvktqv, 3px) + var(--space-segmented-control-focus-outline-gutter-tvktqv, 3px));
212
212
  block-size: calc(100% + var(--space-segmented-control-focus-outline-gutter-tvktqv, 3px) + var(--space-segmented-control-focus-outline-gutter-tvktqv, 3px));
213
- border-start-start-radius: var(--awsui-style-focus-ring-border-radius-4hh3rt, var(--border-radius-control-default-focus-ring-9xsko1, 2px));
214
- border-start-end-radius: var(--awsui-style-focus-ring-border-radius-4hh3rt, var(--border-radius-control-default-focus-ring-9xsko1, 2px));
215
- border-end-start-radius: var(--awsui-style-focus-ring-border-radius-4hh3rt, var(--border-radius-control-default-focus-ring-9xsko1, 2px));
216
- border-end-end-radius: var(--awsui-style-focus-ring-border-radius-4hh3rt, var(--border-radius-control-default-focus-ring-9xsko1, 2px));
217
- box-shadow: var(--awsui-style-focus-ring-box-shadow-4hh3rt);
213
+ border-start-start-radius: var(--awsui-style-focus-ring-border-radius-c5ek4l, var(--border-radius-control-default-focus-ring-9xsko1, 2px));
214
+ border-start-end-radius: var(--awsui-style-focus-ring-border-radius-c5ek4l, var(--border-radius-control-default-focus-ring-9xsko1, 2px));
215
+ border-end-start-radius: var(--awsui-style-focus-ring-border-radius-c5ek4l, var(--border-radius-control-default-focus-ring-9xsko1, 2px));
216
+ border-end-end-radius: var(--awsui-style-focus-ring-border-radius-c5ek4l, var(--border-radius-control-default-focus-ring-9xsko1, 2px));
217
+ box-shadow: var(--awsui-style-focus-ring-box-shadow-c5ek4l);
218
218
  z-index: 1;
219
219
  }
220
- .awsui_segment_8cbea_1av64_161:not(#\9):not(:last-child)::after {
220
+ .awsui_segment_8cbea_bo5ti_161:not(#\9):not(:last-child)::after {
221
221
  content: "";
222
222
  position: absolute;
223
223
  inset-inline-end: calc(-1 * (var(--space-static-xxs-0cgyf1, 4px) + 1px));
@@ -227,53 +227,53 @@ body[data-awsui-focus-visible=true] .awsui_segment_8cbea_1av64_161:not(#\9):focu
227
227
  background: var(--color-border-input-default-txli8y, #687078);
228
228
  z-index: 1;
229
229
  }
230
- .awsui_segment_8cbea_1av64_161:not(#\9):not(.awsui_refresh_8cbea_1av64_188):not(:last-child)::after {
230
+ .awsui_segment_8cbea_bo5ti_161:not(#\9):not(.awsui_refresh_8cbea_bo5ti_188):not(:last-child)::after {
231
231
  inset-inline-end: calc(-1 * var(--space-static-xxs-0cgyf1, 4px));
232
232
  }
233
- .awsui_segment_8cbea_1av64_161:not(#\9):nth-child(1) {
233
+ .awsui_segment_8cbea_bo5ti_161:not(#\9):nth-child(1) {
234
234
  grid-column: 1;
235
235
  }
236
- .awsui_segment_8cbea_1av64_161:not(#\9):nth-child(2) {
236
+ .awsui_segment_8cbea_bo5ti_161:not(#\9):nth-child(2) {
237
237
  grid-column: 2;
238
238
  }
239
- .awsui_segment_8cbea_1av64_161:not(#\9):nth-child(3) {
239
+ .awsui_segment_8cbea_bo5ti_161:not(#\9):nth-child(3) {
240
240
  grid-column: 3;
241
241
  }
242
- .awsui_segment_8cbea_1av64_161:not(#\9):nth-child(4) {
242
+ .awsui_segment_8cbea_bo5ti_161:not(#\9):nth-child(4) {
243
243
  grid-column: 4;
244
244
  }
245
- .awsui_segment_8cbea_1av64_161:not(#\9):nth-child(5) {
245
+ .awsui_segment_8cbea_bo5ti_161:not(#\9):nth-child(5) {
246
246
  grid-column: 5;
247
247
  }
248
- .awsui_segment_8cbea_1av64_161:not(#\9):nth-child(6) {
248
+ .awsui_segment_8cbea_bo5ti_161:not(#\9):nth-child(6) {
249
249
  grid-column: 6;
250
250
  }
251
- .awsui_segment_8cbea_1av64_161.awsui_selected_8cbea_1av64_251:not(#\9) {
252
- background: var(--awsui-style-background-active-4hh3rt, var(--color-background-segment-active-pvua4h, #0073bb));
253
- color: var(--awsui-style-color-active-4hh3rt, var(--color-text-segment-active-q50mlg, #ffffff));
251
+ .awsui_segment_8cbea_bo5ti_161.awsui_selected_8cbea_bo5ti_251:not(#\9) {
252
+ background: var(--awsui-style-background-active-c5ek4l, var(--color-background-segment-active-pvua4h, #0073bb));
253
+ color: var(--awsui-style-color-active-c5ek4l, var(--color-text-segment-active-q50mlg, #ffffff));
254
254
  }
255
- .awsui_segment_8cbea_1av64_161:not(#\9):hover:not(.awsui_selected_8cbea_1av64_251):not(.awsui_disabled_8cbea_1av64_194):not(:focus) {
256
- background: var(--awsui-style-background-hover-4hh3rt, var(--color-background-segment-hover-bakufl, #fafafa));
257
- color: var(--awsui-style-color-hover-4hh3rt, var(--color-text-segment-hover-33xnva, #16191f));
255
+ .awsui_segment_8cbea_bo5ti_161:not(#\9):hover:not(.awsui_selected_8cbea_bo5ti_251):not(.awsui_disabled_8cbea_bo5ti_194):not(:focus) {
256
+ background: var(--awsui-style-background-hover-c5ek4l, var(--color-background-segment-hover-bakufl, #fafafa));
257
+ color: var(--awsui-style-color-hover-c5ek4l, var(--color-text-segment-hover-33xnva, #16191f));
258
258
  cursor: pointer;
259
259
  }
260
260
 
261
- .awsui_icon_8cbea_1av64_261:not(#\9) {
261
+ .awsui_icon_8cbea_bo5ti_261:not(#\9) {
262
262
  /* used in test-utils */
263
263
  }
264
264
 
265
- .awsui_with-text_8cbea_1av64_265:not(#\9) {
265
+ .awsui_with-text_8cbea_bo5ti_265:not(#\9) {
266
266
  position: relative;
267
267
  inset-inline-start: calc(-1 * var(--space-xxs-jnczic, 4px));
268
268
  margin-inline-end: var(--space-xxs-jnczic, 4px);
269
269
  }
270
270
 
271
- .awsui_with-no-text_8cbea_1av64_271:not(#\9) {
271
+ .awsui_with-no-text_8cbea_bo5ti_271:not(#\9) {
272
272
  margin-inline: auto;
273
273
  inset-inline: 0;
274
274
  }
275
275
 
276
- .awsui_root_8cbea_1av64_276:not(#\9) {
276
+ .awsui_root_8cbea_bo5ti_276:not(#\9) {
277
277
  border-collapse: separate;
278
278
  border-spacing: 0;
279
279
  box-sizing: border-box;
@@ -305,7 +305,7 @@ body[data-awsui-focus-visible=true] .awsui_segment_8cbea_1av64_161:not(#\9):focu
305
305
  -moz-osx-font-smoothing: auto;
306
306
  }
307
307
 
308
- .awsui_segment-part_8cbea_1av64_308:not(#\9) {
308
+ .awsui_segment-part_8cbea_bo5ti_308:not(#\9) {
309
309
  display: inline-grid;
310
310
  border-inline: solid var(--border-width-field-9k1tdz, 1px) var(--color-border-input-default-txli8y, #687078);
311
311
  border-block: solid var(--border-width-field-9k1tdz, 1px) var(--color-border-input-default-txli8y, #687078);
@@ -320,46 +320,46 @@ body[data-awsui-focus-visible=true] .awsui_segment_8cbea_1av64_161:not(#\9):focu
320
320
  padding-inline: calc(var(--space-static-xxs-0cgyf1, 4px) - var(--border-width-field-9k1tdz, 1px));
321
321
  gap: calc(var(--space-static-xxs-0cgyf1, 4px) * 2 + 1px);
322
322
  }
323
- .awsui_segment-part_8cbea_1av64_308:not(#\9):not(.awsui_refresh_8cbea_1av64_188) {
323
+ .awsui_segment-part_8cbea_bo5ti_308:not(#\9):not(.awsui_refresh_8cbea_bo5ti_188) {
324
324
  padding-inline: calc(var(--space-static-xxxs-zckw10, 2px) + var(--border-width-field-9k1tdz, 1px));
325
325
  padding-block: 0;
326
326
  gap: calc(var(--space-static-xxs-0cgyf1, 4px) * 2 - 1px);
327
327
  }
328
328
  @media (max-width: 688px) {
329
- .awsui_segment-part_8cbea_1av64_308:not(#\9) {
329
+ .awsui_segment-part_8cbea_bo5ti_308:not(#\9) {
330
330
  display: none;
331
331
  }
332
332
  }
333
333
 
334
- .awsui_select_8cbea_1av64_251:not(#\9) {
334
+ .awsui_select_8cbea_bo5ti_251:not(#\9) {
335
335
  display: none;
336
336
  }
337
337
  @media (max-width: 688px) {
338
- .awsui_select_8cbea_1av64_251:not(#\9) {
338
+ .awsui_select_8cbea_bo5ti_251:not(#\9) {
339
339
  display: block;
340
340
  }
341
341
  }
342
342
 
343
- .awsui_segment-count-2_8cbea_1av64_343:not(#\9) {
343
+ .awsui_segment-count-2_8cbea_bo5ti_343:not(#\9) {
344
344
  grid-template-columns: repeat(2, auto);
345
345
  }
346
346
 
347
- .awsui_segment-count-3_8cbea_1av64_347:not(#\9) {
347
+ .awsui_segment-count-3_8cbea_bo5ti_347:not(#\9) {
348
348
  grid-template-columns: repeat(3, auto);
349
349
  }
350
350
 
351
- .awsui_segment-count-4_8cbea_1av64_351:not(#\9) {
351
+ .awsui_segment-count-4_8cbea_bo5ti_351:not(#\9) {
352
352
  grid-template-columns: repeat(4, auto);
353
353
  }
354
354
 
355
- .awsui_segment-count-5_8cbea_1av64_355:not(#\9) {
355
+ .awsui_segment-count-5_8cbea_bo5ti_355:not(#\9) {
356
356
  grid-template-columns: repeat(5, auto);
357
357
  }
358
358
 
359
- .awsui_segment-count-6_8cbea_1av64_359:not(#\9) {
359
+ .awsui_segment-count-6_8cbea_bo5ti_359:not(#\9) {
360
360
  grid-template-columns: repeat(6, auto);
361
361
  }
362
362
 
363
- .awsui_disabled-reason-tooltip_8cbea_1av64_363:not(#\9) {
363
+ .awsui_disabled-reason-tooltip_8cbea_bo5ti_363:not(#\9) {
364
364
  /* used in test-utils or tests */
365
365
  }
@@ -2,21 +2,21 @@
2
2
  // es-module interop with Babel and Typescript
3
3
  Object.defineProperty(exports, "__esModule", { value: true });
4
4
  module.exports.default = {
5
- "segment": "awsui_segment_8cbea_1av64_161",
6
- "refresh": "awsui_refresh_8cbea_1av64_188",
7
- "disabled": "awsui_disabled_8cbea_1av64_194",
8
- "selected": "awsui_selected_8cbea_1av64_251",
9
- "icon": "awsui_icon_8cbea_1av64_261",
10
- "with-text": "awsui_with-text_8cbea_1av64_265",
11
- "with-no-text": "awsui_with-no-text_8cbea_1av64_271",
12
- "root": "awsui_root_8cbea_1av64_276",
13
- "segment-part": "awsui_segment-part_8cbea_1av64_308",
14
- "select": "awsui_select_8cbea_1av64_251",
15
- "segment-count-2": "awsui_segment-count-2_8cbea_1av64_343",
16
- "segment-count-3": "awsui_segment-count-3_8cbea_1av64_347",
17
- "segment-count-4": "awsui_segment-count-4_8cbea_1av64_351",
18
- "segment-count-5": "awsui_segment-count-5_8cbea_1av64_355",
19
- "segment-count-6": "awsui_segment-count-6_8cbea_1av64_359",
20
- "disabled-reason-tooltip": "awsui_disabled-reason-tooltip_8cbea_1av64_363"
5
+ "segment": "awsui_segment_8cbea_bo5ti_161",
6
+ "refresh": "awsui_refresh_8cbea_bo5ti_188",
7
+ "disabled": "awsui_disabled_8cbea_bo5ti_194",
8
+ "selected": "awsui_selected_8cbea_bo5ti_251",
9
+ "icon": "awsui_icon_8cbea_bo5ti_261",
10
+ "with-text": "awsui_with-text_8cbea_bo5ti_265",
11
+ "with-no-text": "awsui_with-no-text_8cbea_bo5ti_271",
12
+ "root": "awsui_root_8cbea_bo5ti_276",
13
+ "segment-part": "awsui_segment-part_8cbea_bo5ti_308",
14
+ "select": "awsui_select_8cbea_bo5ti_251",
15
+ "segment-count-2": "awsui_segment-count-2_8cbea_bo5ti_343",
16
+ "segment-count-3": "awsui_segment-count-3_8cbea_bo5ti_347",
17
+ "segment-count-4": "awsui_segment-count-4_8cbea_bo5ti_351",
18
+ "segment-count-5": "awsui_segment-count-5_8cbea_bo5ti_355",
19
+ "segment-count-6": "awsui_segment-count-6_8cbea_bo5ti_359",
20
+ "disabled-reason-tooltip": "awsui_disabled-reason-tooltip_8cbea_bo5ti_363"
21
21
  };
22
22
 
@@ -1 +1 @@
1
- {"version":3,"file":"internal.d.ts","sourceRoot":"","sources":["../../../src/select/internal.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAsC,MAAM,OAAO,CAAC;AAe3D,OAAO,EAAE,0BAA0B,EAAE,MAAM,sCAAsC,CAAC;AAClF,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEjD,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAa3C,MAAM,WAAW,mBAAoB,SAAQ,YAAY,CAAC,WAAW,EAAE,SAAS,CAAC,EAAE,0BAA0B;IAC3G,kBAAkB,CAAC,EAAE,MAAM,GAAG,QAAQ,CAAC;CACxC;AAED,QAAA,MAAM,cAAc,6FAiQnB,CAAC;AAEF,eAAe,cAAc,CAAC"}
1
+ {"version":3,"file":"internal.d.ts","sourceRoot":"","sources":["../../../src/select/internal.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAsC,MAAM,OAAO,CAAC;AAgB3D,OAAO,EAAE,0BAA0B,EAAE,MAAM,sCAAsC,CAAC;AAClF,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEjD,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAa3C,MAAM,WAAW,mBAAoB,SAAQ,YAAY,CAAC,WAAW,EAAE,SAAS,CAAC,EAAE,0BAA0B;IAC3G,kBAAkB,CAAC,EAAE,MAAM,GAAG,QAAQ,CAAC;CACxC;AAED,QAAA,MAAM,cAAc,6FAgQnB,CAAC;AAEF,eAAe,cAAc,CAAC"}
@@ -5,6 +5,7 @@ import clsx from 'clsx';
5
5
  import { useMergeRefs, useUniqueId, warnOnce } from '@cloudscape-design/component-toolkit/internal';
6
6
  import { useInternalI18n } from '../i18n/context.js';
7
7
  import { getBaseProps } from '../internal/base-component';
8
+ import { getBreakpointValue } from '../internal/breakpoints';
8
9
  import Dropdown from '../internal/components/dropdown';
9
10
  import DropdownFooter from '../internal/components/dropdown-footer';
10
11
  import { useDropdownStatus } from '../internal/components/dropdown-status';
@@ -122,7 +123,7 @@ const InternalSelect = React.forwardRef(({ options, filteringType = 'none', filt
122
123
  const hasOptions = useRef(options.length > 0);
123
124
  hasOptions.current = hasOptions.current || options.length > 0;
124
125
  return (React.createElement("div", { ...baseProps, ref: mergedRef, className: clsx(styles.root, baseProps.className), onKeyDown: handleNativeSearch },
125
- React.createElement(Dropdown, { ...dropdownProps, ariaLabelledby: dropdownProps.dropdownContentRole ? joinStrings(selectAriaLabelId, controlId) : undefined, ariaDescribedby: dropdownProps.dropdownContentRole ? (dropdownStatus.content ? footerId : undefined) : undefined, open: isOpen, stretchTriggerHeight: !!__inFilteringToken, stretchBeyondTriggerWidth: true, trigger: trigger, header: filter, onMouseDown: handleMouseDown, footer: dropdownStatus.isSticky ? (React.createElement(DropdownFooter, { content: isOpen ? dropdownStatus.content : null, id: footerId })) : null, expandToViewport: expandToViewport,
126
+ React.createElement(Dropdown, { ...dropdownProps, ariaLabelledby: dropdownProps.ariaRole ? joinStrings(selectAriaLabelId, controlId) : undefined, ariaDescribedby: dropdownProps.ariaRole ? (dropdownStatus.content ? footerId : undefined) : undefined, open: isOpen, stretchTriggerHeight: !!__inFilteringToken, minWidth: expandToViewport ? undefined : 'trigger', maxWidth: getBreakpointValue('xxs'), trigger: trigger, header: filter, onMouseDown: handleMouseDown, footer: dropdownStatus.isSticky ? (React.createElement(DropdownFooter, { content: isOpen ? dropdownStatus.content : null, id: footerId })) : null, expandToViewport: expandToViewport,
126
127
  // Forces dropdown position recalculation when new options are loaded
127
128
  contentKey: hasOptions.current.toString(), content: React.createElement(ListComponent, { listBottom: !dropdownStatus.isSticky ? (React.createElement(DropdownFooter, { content: isOpen ? dropdownStatus.content : null, id: footerId })) : null, renderOption: renderOption, menuProps: menuProps, getOptionProps: getOptionProps, filteredOptions: filteredOptions, filteringValue: filteringValue, ref: scrollToIndex, hasDropdownStatus: dropdownStatus.content !== null, screenReaderContent: announcement, highlightType: highlightType }) }),
128
129
  React.createElement("div", { hidden: true, id: selectAriaLabelId }, ariaLabel || inlineLabelText)));
@@ -1 +1 @@
1
- {"version":3,"file":"internal.js","sourceRoot":"","sources":["../../../src/select/internal.tsx"],"names":[],"mappings":"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","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport React, { useEffect, useRef, useState } from 'react';\nimport clsx from 'clsx';\n\nimport { useMergeRefs, useUniqueId, warnOnce } from '@cloudscape-design/component-toolkit/internal';\n\nimport { useInternalI18n } from '../i18n/context.js';\nimport { getBaseProps } from '../internal/base-component';\nimport Dropdown from '../internal/components/dropdown';\nimport DropdownFooter from '../internal/components/dropdown-footer';\nimport { useDropdownStatus } from '../internal/components/dropdown-status';\nimport { OptionGroup } from '../internal/components/option/interfaces.js';\nimport { prepareOptions } from '../internal/components/option/utils/prepare-options.js';\nimport { useFormFieldContext } from '../internal/context/form-field-context';\nimport { fireNonCancelableEvent } from '../internal/events';\nimport checkControlled from '../internal/hooks/check-controlled';\nimport { InternalBaseComponentProps } from '../internal/hooks/use-base-component';\nimport { SomeRequired } from '../internal/types';\nimport { joinStrings } from '../internal/utils/strings/join-strings.js';\nimport { SelectProps } from './interfaces';\nimport Filter from './parts/filter';\nimport PlainList, { SelectListProps } from './parts/plain-list';\nimport Trigger from './parts/trigger';\nimport VirtualList from './parts/virtual-list';\nimport { checkOptionValueField } from './utils/check-option-value-field';\nimport { useAnnouncement } from './utils/use-announcement';\nimport { useLoadItems } from './utils/use-load-items';\nimport { useNativeSearch } from './utils/use-native-search';\nimport { useSelect } from './utils/use-select';\n\nimport styles from './styles.css.js';\n\nexport interface InternalSelectProps extends SomeRequired<SelectProps, 'options'>, InternalBaseComponentProps {\n __inFilteringToken?: 'root' | 'nested';\n}\n\nconst InternalSelect = React.forwardRef(\n (\n {\n options,\n filteringType = 'none',\n filteringPlaceholder,\n filteringAriaLabel,\n filteringClearAriaLabel,\n filteringResultsText,\n inlineLabelText,\n ariaRequired,\n placeholder,\n disabled,\n readOnly,\n ariaLabel,\n statusType = 'finished',\n empty,\n loadingText,\n finishedText,\n errorText,\n noMatch,\n triggerVariant = 'label',\n renderHighlightedAriaLive,\n selectedOption,\n onBlur,\n onFocus,\n onLoadItems,\n onChange,\n virtualScroll,\n expandToViewport,\n autoFocus,\n __inFilteringToken,\n __internalRootRef,\n renderOption,\n ...restProps\n }: InternalSelectProps,\n externalRef: React.Ref<SelectProps.Ref>\n ) => {\n const baseProps = getBaseProps(restProps);\n const formFieldContext = useFormFieldContext(restProps);\n\n const i18n = useInternalI18n('select');\n const errorIconAriaLabel = i18n('errorIconAriaLabel', restProps.errorIconAriaLabel);\n const selectedAriaLabel = i18n('selectedAriaLabel', restProps.selectedAriaLabel);\n const recoveryText = i18n('recoveryText', restProps.recoveryText);\n\n if (restProps.recoveryText && !onLoadItems) {\n warnOnce('Select', '`onLoadItems` must be provided for `recoveryText` to be displayed.');\n }\n\n const { handleLoadMore, handleRecoveryClick, fireLoadItems } = useLoadItems({\n onLoadItems,\n options,\n statusType,\n });\n\n checkControlled('Select', 'selectedOption', selectedOption, 'onChange', onChange);\n\n checkOptionValueField('Select', 'options', options);\n\n const [filteringValue, setFilteringValue] = useState('');\n\n const { filteredOptions, parentMap, totalCount, matchesCount } = prepareOptions(\n options,\n filteringType,\n filteringValue\n );\n\n const rootRef = useRef<HTMLDivElement>(null);\n const triggerRef = useRef<HTMLButtonElement>(null);\n\n const selfControlId = useUniqueId('trigger');\n const controlId = formFieldContext.controlId ?? selfControlId;\n\n const scrollToIndex = useRef<SelectListProps.SelectListRef>(null);\n const {\n isOpen,\n highlightType,\n highlightedOption,\n highlightedIndex,\n getTriggerProps,\n getDropdownProps,\n getFilterProps,\n getMenuProps,\n getOptionProps,\n highlightOption,\n selectOption,\n announceSelected,\n focusActiveRef,\n } = useSelect({\n selectedOptions: selectedOption ? [selectedOption] : [],\n updateSelectedOption: option => fireNonCancelableEvent(onChange, { selectedOption: option }),\n options: filteredOptions,\n filteringType,\n onBlur,\n onFocus,\n externalRef,\n fireLoadItems,\n setFilteringValue,\n statusType,\n });\n\n const handleNativeSearch = useNativeSearch({\n isEnabled: filteringType === 'none' && !readOnly,\n options: filteredOptions,\n highlightOption: !isOpen ? selectOption : highlightOption,\n highlightedOption: !isOpen ? selectedOption : highlightedOption?.option,\n });\n\n const selectAriaLabelId = useUniqueId('select-arialabel-');\n const footerId = useUniqueId('footer');\n\n useEffect(() => {\n scrollToIndex.current?.(highlightedIndex);\n }, [highlightedIndex]);\n\n const filter = (\n <Filter\n clearAriaLabel={filteringClearAriaLabel}\n filteringType={filteringType}\n placeholder={filteringPlaceholder}\n ariaLabel={filteringAriaLabel}\n ariaRequired={ariaRequired}\n value={filteringValue}\n {...getFilterProps()}\n />\n );\n\n const trigger = (\n <Trigger\n renderOption={renderOption}\n ref={triggerRef}\n placeholder={placeholder}\n disabled={disabled}\n readOnly={readOnly}\n triggerVariant={triggerVariant}\n triggerProps={getTriggerProps(disabled, autoFocus)}\n selectedOption={selectedOption}\n isOpen={isOpen}\n inFilteringToken={__inFilteringToken}\n inlineLabelText={inlineLabelText}\n {...formFieldContext}\n controlId={controlId}\n ariaLabelledby={joinStrings(formFieldContext.ariaLabelledby, selectAriaLabelId)}\n />\n );\n\n const isEmpty = !options || options.length === 0;\n const isNoMatch = filteredOptions && filteredOptions.length === 0;\n const isFiltered =\n filteringType !== 'none' && filteringValue.length > 0 && filteredOptions && filteredOptions.length > 0;\n const filteredText = isFiltered ? filteringResultsText?.(matchesCount, totalCount) : undefined;\n\n const dropdownStatus = useDropdownStatus({\n statusType,\n empty,\n loadingText,\n finishedText,\n errorText,\n recoveryText,\n isEmpty,\n isNoMatch,\n noMatch,\n filteringResultsText: filteredText,\n errorIconAriaLabel,\n onRecoveryClick: () => {\n handleRecoveryClick();\n focusActiveRef();\n },\n hasRecoveryCallback: !!onLoadItems,\n });\n\n const menuProps = {\n ...getMenuProps(),\n onLoadMore: handleLoadMore,\n ariaLabelledby: joinStrings(selectAriaLabelId, controlId),\n ariaDescribedby: dropdownStatus.content ? footerId : undefined,\n };\n\n const announcement = useAnnouncement({\n announceSelected,\n highlightedOption,\n getParent: option => parentMap.get(option)?.option as undefined | OptionGroup,\n selectedAriaLabel,\n renderHighlightedAriaLive,\n });\n\n const ListComponent = virtualScroll ? VirtualList : PlainList;\n\n const handleMouseDown = (event: React.MouseEvent) => {\n const target = event.target as HTMLElement;\n\n if (target !== document.activeElement) {\n // prevent currently focused element from losing it\n event.preventDefault();\n }\n };\n\n const mergedRef = useMergeRefs(rootRef, __internalRootRef);\n\n const dropdownProps = getDropdownProps();\n\n const hasOptions = useRef(options.length > 0);\n hasOptions.current = hasOptions.current || options.length > 0;\n\n return (\n <div\n {...baseProps}\n ref={mergedRef}\n className={clsx(styles.root, baseProps.className)}\n onKeyDown={handleNativeSearch}\n >\n <Dropdown\n {...dropdownProps}\n ariaLabelledby={dropdownProps.dropdownContentRole ? joinStrings(selectAriaLabelId, controlId) : undefined}\n ariaDescribedby={\n dropdownProps.dropdownContentRole ? (dropdownStatus.content ? footerId : undefined) : undefined\n }\n open={isOpen}\n stretchTriggerHeight={!!__inFilteringToken}\n stretchBeyondTriggerWidth={true}\n trigger={trigger}\n header={filter}\n onMouseDown={handleMouseDown}\n footer={\n dropdownStatus.isSticky ? (\n <DropdownFooter content={isOpen ? dropdownStatus.content : null} id={footerId} />\n ) : null\n }\n expandToViewport={expandToViewport}\n // Forces dropdown position recalculation when new options are loaded\n contentKey={hasOptions.current.toString()}\n content={\n <ListComponent\n listBottom={\n !dropdownStatus.isSticky ? (\n <DropdownFooter content={isOpen ? dropdownStatus.content : null} id={footerId} />\n ) : null\n }\n renderOption={renderOption}\n menuProps={menuProps}\n getOptionProps={getOptionProps}\n filteredOptions={filteredOptions}\n filteringValue={filteringValue}\n ref={scrollToIndex}\n hasDropdownStatus={dropdownStatus.content !== null}\n screenReaderContent={announcement}\n highlightType={highlightType}\n />\n }\n />\n <div hidden={true} id={selectAriaLabelId}>\n {ariaLabel || inlineLabelText}\n </div>\n </div>\n );\n }\n);\n\nexport default InternalSelect;\n"]}
1
+ {"version":3,"file":"internal.js","sourceRoot":"","sources":["../../../src/select/internal.tsx"],"names":[],"mappings":"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","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport React, { useEffect, useRef, useState } from 'react';\nimport clsx from 'clsx';\n\nimport { useMergeRefs, useUniqueId, warnOnce } from '@cloudscape-design/component-toolkit/internal';\n\nimport { useInternalI18n } from '../i18n/context.js';\nimport { getBaseProps } from '../internal/base-component';\nimport { getBreakpointValue } from '../internal/breakpoints';\nimport Dropdown from '../internal/components/dropdown';\nimport DropdownFooter from '../internal/components/dropdown-footer';\nimport { useDropdownStatus } from '../internal/components/dropdown-status';\nimport { OptionGroup } from '../internal/components/option/interfaces.js';\nimport { prepareOptions } from '../internal/components/option/utils/prepare-options.js';\nimport { useFormFieldContext } from '../internal/context/form-field-context';\nimport { fireNonCancelableEvent } from '../internal/events';\nimport checkControlled from '../internal/hooks/check-controlled';\nimport { InternalBaseComponentProps } from '../internal/hooks/use-base-component';\nimport { SomeRequired } from '../internal/types';\nimport { joinStrings } from '../internal/utils/strings/join-strings.js';\nimport { SelectProps } from './interfaces';\nimport Filter from './parts/filter';\nimport PlainList, { SelectListProps } from './parts/plain-list';\nimport Trigger from './parts/trigger';\nimport VirtualList from './parts/virtual-list';\nimport { checkOptionValueField } from './utils/check-option-value-field';\nimport { useAnnouncement } from './utils/use-announcement';\nimport { useLoadItems } from './utils/use-load-items';\nimport { useNativeSearch } from './utils/use-native-search';\nimport { useSelect } from './utils/use-select';\n\nimport styles from './styles.css.js';\n\nexport interface InternalSelectProps extends SomeRequired<SelectProps, 'options'>, InternalBaseComponentProps {\n __inFilteringToken?: 'root' | 'nested';\n}\n\nconst InternalSelect = React.forwardRef(\n (\n {\n options,\n filteringType = 'none',\n filteringPlaceholder,\n filteringAriaLabel,\n filteringClearAriaLabel,\n filteringResultsText,\n inlineLabelText,\n ariaRequired,\n placeholder,\n disabled,\n readOnly,\n ariaLabel,\n statusType = 'finished',\n empty,\n loadingText,\n finishedText,\n errorText,\n noMatch,\n triggerVariant = 'label',\n renderHighlightedAriaLive,\n selectedOption,\n onBlur,\n onFocus,\n onLoadItems,\n onChange,\n virtualScroll,\n expandToViewport,\n autoFocus,\n __inFilteringToken,\n __internalRootRef,\n renderOption,\n ...restProps\n }: InternalSelectProps,\n externalRef: React.Ref<SelectProps.Ref>\n ) => {\n const baseProps = getBaseProps(restProps);\n const formFieldContext = useFormFieldContext(restProps);\n\n const i18n = useInternalI18n('select');\n const errorIconAriaLabel = i18n('errorIconAriaLabel', restProps.errorIconAriaLabel);\n const selectedAriaLabel = i18n('selectedAriaLabel', restProps.selectedAriaLabel);\n const recoveryText = i18n('recoveryText', restProps.recoveryText);\n\n if (restProps.recoveryText && !onLoadItems) {\n warnOnce('Select', '`onLoadItems` must be provided for `recoveryText` to be displayed.');\n }\n\n const { handleLoadMore, handleRecoveryClick, fireLoadItems } = useLoadItems({\n onLoadItems,\n options,\n statusType,\n });\n\n checkControlled('Select', 'selectedOption', selectedOption, 'onChange', onChange);\n\n checkOptionValueField('Select', 'options', options);\n\n const [filteringValue, setFilteringValue] = useState('');\n\n const { filteredOptions, parentMap, totalCount, matchesCount } = prepareOptions(\n options,\n filteringType,\n filteringValue\n );\n\n const rootRef = useRef<HTMLDivElement>(null);\n const triggerRef = useRef<HTMLButtonElement>(null);\n\n const selfControlId = useUniqueId('trigger');\n const controlId = formFieldContext.controlId ?? selfControlId;\n\n const scrollToIndex = useRef<SelectListProps.SelectListRef>(null);\n const {\n isOpen,\n highlightType,\n highlightedOption,\n highlightedIndex,\n getTriggerProps,\n getDropdownProps,\n getFilterProps,\n getMenuProps,\n getOptionProps,\n highlightOption,\n selectOption,\n announceSelected,\n focusActiveRef,\n } = useSelect({\n selectedOptions: selectedOption ? [selectedOption] : [],\n updateSelectedOption: option => fireNonCancelableEvent(onChange, { selectedOption: option }),\n options: filteredOptions,\n filteringType,\n onBlur,\n onFocus,\n externalRef,\n fireLoadItems,\n setFilteringValue,\n statusType,\n });\n\n const handleNativeSearch = useNativeSearch({\n isEnabled: filteringType === 'none' && !readOnly,\n options: filteredOptions,\n highlightOption: !isOpen ? selectOption : highlightOption,\n highlightedOption: !isOpen ? selectedOption : highlightedOption?.option,\n });\n\n const selectAriaLabelId = useUniqueId('select-arialabel-');\n const footerId = useUniqueId('footer');\n\n useEffect(() => {\n scrollToIndex.current?.(highlightedIndex);\n }, [highlightedIndex]);\n\n const filter = (\n <Filter\n clearAriaLabel={filteringClearAriaLabel}\n filteringType={filteringType}\n placeholder={filteringPlaceholder}\n ariaLabel={filteringAriaLabel}\n ariaRequired={ariaRequired}\n value={filteringValue}\n {...getFilterProps()}\n />\n );\n\n const trigger = (\n <Trigger\n renderOption={renderOption}\n ref={triggerRef}\n placeholder={placeholder}\n disabled={disabled}\n readOnly={readOnly}\n triggerVariant={triggerVariant}\n triggerProps={getTriggerProps(disabled, autoFocus)}\n selectedOption={selectedOption}\n isOpen={isOpen}\n inFilteringToken={__inFilteringToken}\n inlineLabelText={inlineLabelText}\n {...formFieldContext}\n controlId={controlId}\n ariaLabelledby={joinStrings(formFieldContext.ariaLabelledby, selectAriaLabelId)}\n />\n );\n\n const isEmpty = !options || options.length === 0;\n const isNoMatch = filteredOptions && filteredOptions.length === 0;\n const isFiltered =\n filteringType !== 'none' && filteringValue.length > 0 && filteredOptions && filteredOptions.length > 0;\n const filteredText = isFiltered ? filteringResultsText?.(matchesCount, totalCount) : undefined;\n\n const dropdownStatus = useDropdownStatus({\n statusType,\n empty,\n loadingText,\n finishedText,\n errorText,\n recoveryText,\n isEmpty,\n isNoMatch,\n noMatch,\n filteringResultsText: filteredText,\n errorIconAriaLabel,\n onRecoveryClick: () => {\n handleRecoveryClick();\n focusActiveRef();\n },\n hasRecoveryCallback: !!onLoadItems,\n });\n\n const menuProps = {\n ...getMenuProps(),\n onLoadMore: handleLoadMore,\n ariaLabelledby: joinStrings(selectAriaLabelId, controlId),\n ariaDescribedby: dropdownStatus.content ? footerId : undefined,\n };\n\n const announcement = useAnnouncement({\n announceSelected,\n highlightedOption,\n getParent: option => parentMap.get(option)?.option as undefined | OptionGroup,\n selectedAriaLabel,\n renderHighlightedAriaLive,\n });\n\n const ListComponent = virtualScroll ? VirtualList : PlainList;\n\n const handleMouseDown = (event: React.MouseEvent) => {\n const target = event.target as HTMLElement;\n\n if (target !== document.activeElement) {\n // prevent currently focused element from losing it\n event.preventDefault();\n }\n };\n\n const mergedRef = useMergeRefs(rootRef, __internalRootRef);\n\n const dropdownProps = getDropdownProps();\n\n const hasOptions = useRef(options.length > 0);\n hasOptions.current = hasOptions.current || options.length > 0;\n\n return (\n <div\n {...baseProps}\n ref={mergedRef}\n className={clsx(styles.root, baseProps.className)}\n onKeyDown={handleNativeSearch}\n >\n <Dropdown\n {...dropdownProps}\n ariaLabelledby={dropdownProps.ariaRole ? joinStrings(selectAriaLabelId, controlId) : undefined}\n ariaDescribedby={dropdownProps.ariaRole ? (dropdownStatus.content ? footerId : undefined) : undefined}\n open={isOpen}\n stretchTriggerHeight={!!__inFilteringToken}\n minWidth={expandToViewport ? undefined : 'trigger'}\n maxWidth={getBreakpointValue('xxs')} // AWSUI-19898\n trigger={trigger}\n header={filter}\n onMouseDown={handleMouseDown}\n footer={\n dropdownStatus.isSticky ? (\n <DropdownFooter content={isOpen ? dropdownStatus.content : null} id={footerId} />\n ) : null\n }\n expandToViewport={expandToViewport}\n // Forces dropdown position recalculation when new options are loaded\n contentKey={hasOptions.current.toString()}\n content={\n <ListComponent\n listBottom={\n !dropdownStatus.isSticky ? (\n <DropdownFooter content={isOpen ? dropdownStatus.content : null} id={footerId} />\n ) : null\n }\n renderOption={renderOption}\n menuProps={menuProps}\n getOptionProps={getOptionProps}\n filteredOptions={filteredOptions}\n filteringValue={filteringValue}\n ref={scrollToIndex}\n hasDropdownStatus={dropdownStatus.content !== null}\n screenReaderContent={announcement}\n highlightType={highlightType}\n />\n }\n />\n <div hidden={true} id={selectAriaLabelId}>\n {ariaLabel || inlineLabelText}\n </div>\n </div>\n );\n }\n);\n\nexport default InternalSelect;\n"]}
@@ -38,7 +38,7 @@ export declare function useSelect({ selectedOptions, updateSelectedOption, optio
38
38
  highlightedIndex: number;
39
39
  highlightType: import("../../internal/components/options-list/utils/use-highlight-option").HighlightType;
40
40
  getTriggerProps: (disabled?: boolean, autoFocus?: boolean) => SelectTriggerProps;
41
- getDropdownProps: () => Pick<DropdownProps, "onFocus" | "onBlur" | "dropdownContentId" | "dropdownContentRole">;
41
+ getDropdownProps: () => Pick<DropdownProps, "onFocus" | "onBlur" | "dropdownContentId" | "ariaRole">;
42
42
  getMenuProps: () => MenuProps;
43
43
  getFilterProps: () => Partial<FilterProps>;
44
44
  getOptionProps: (option: DropdownOption, index: number) => any;
@@ -1 +1 @@
1
- {"version":3,"file":"use-select.d.ts","sourceRoot":"","sources":["../../../../src/select/utils/use-select.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,EAAE,SAAS,EAAe,MAAM,OAAO,CAAC;AAKtD,OAAO,EAAE,kBAAkB,EAAE,MAAM,0CAA0C,CAAC;AAC9E,OAAO,EAAE,aAAa,EAAE,MAAM,+CAA+C,CAAC;AAC9E,OAAO,EAAE,mBAAmB,EAAE,MAAM,2CAA2C,CAAC;AAChF,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAe,MAAM,6CAA6C,CAAC;AAE5G,OAAO,EAAE,gBAAgB,EAAE,MAAM,wCAAwC,CAAC;AAK1E,OAAO,EAA0B,yBAAyB,EAAE,MAAM,uBAAuB,CAAC;AAG1F,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAG1C,MAAM,MAAM,SAAS,GAAG,IAAI,CAAC,gBAAgB,EAAE,UAAU,CAAC,GAAG;IAAE,GAAG,EAAE,KAAK,CAAC,SAAS,CAAC,cAAc,CAAC,CAAA;CAAE,CAAC;AACtG,MAAM,MAAM,cAAc,GAAG,CAAC,MAAM,EAAE,cAAc,EAAE,KAAK,EAAE,MAAM,KAAK,SAAS,CAAC;AAElF,UAAU,cAAc;IACtB,eAAe,EAAE,aAAa,CAAC,gBAAgB,CAAC,CAAC;IACjD,oBAAoB,EAAE,CAAC,MAAM,EAAE,gBAAgB,KAAK,IAAI,CAAC;IACzD,OAAO,EAAE,aAAa,CAAC,cAAc,CAAC,CAAC;IACvC,aAAa,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,MAAM,CAAC,EAAE,yBAAyB,CAAC;IACnC,OAAO,CAAC,EAAE,yBAAyB,CAAC;IACpC,WAAW,EAAE,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC5B,aAAa,EAAE,CAAC,aAAa,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/C,iBAAiB,CAAC,EAAE,CAAC,aAAa,EAAE,MAAM,KAAK,IAAI,CAAC;IACpD,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,UAAU,EAAE,mBAAmB,CAAC,UAAU,CAAC;IAC3C,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;CACxB;AAED,MAAM,WAAW,kBAAmB,SAAQ,kBAAkB;IAC5D,GAAG,EAAE,SAAS,CAAC,iBAAiB,CAAC,CAAC;CACnC;AAED,wBAAgB,SAAS,CAAC,EACxB,eAAe,EACf,oBAAoB,EACpB,OAAO,EACP,aAAa,EACb,MAAM,EACN,OAAO,EACP,WAAW,EACX,QAAQ,EACR,QAAQ,EACR,aAAa,EACb,iBAAiB,EACjB,oBAA4B,EAC5B,UAAU,EACV,aAAa,EACb,cAAc,EACd,SAAS,GACV,EAAE,cAAc;;;;;;4BA6Ge,IAAI,CAChC,aAAa,EACb,SAAS,GAAG,QAAQ,GAAG,mBAAmB,GAAG,qBAAqB,CACnE;;0BA4B0B,OAAO,CAAC,WAAW,CAAC;6BAoEf,cAAc,SAAS,MAAM;;4BApJ9B,cAAc;;;;EAuP9C"}
1
+ {"version":3,"file":"use-select.d.ts","sourceRoot":"","sources":["../../../../src/select/utils/use-select.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,EAAE,SAAS,EAAe,MAAM,OAAO,CAAC;AAKtD,OAAO,EAAE,kBAAkB,EAAE,MAAM,0CAA0C,CAAC;AAC9E,OAAO,EAAE,aAAa,EAAE,MAAM,+CAA+C,CAAC;AAC9E,OAAO,EAAE,mBAAmB,EAAE,MAAM,2CAA2C,CAAC;AAChF,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAe,MAAM,6CAA6C,CAAC;AAE5G,OAAO,EAAE,gBAAgB,EAAE,MAAM,wCAAwC,CAAC;AAK1E,OAAO,EAA0B,yBAAyB,EAAE,MAAM,uBAAuB,CAAC;AAG1F,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAG1C,MAAM,MAAM,SAAS,GAAG,IAAI,CAAC,gBAAgB,EAAE,UAAU,CAAC,GAAG;IAAE,GAAG,EAAE,KAAK,CAAC,SAAS,CAAC,cAAc,CAAC,CAAA;CAAE,CAAC;AACtG,MAAM,MAAM,cAAc,GAAG,CAAC,MAAM,EAAE,cAAc,EAAE,KAAK,EAAE,MAAM,KAAK,SAAS,CAAC;AAElF,UAAU,cAAc;IACtB,eAAe,EAAE,aAAa,CAAC,gBAAgB,CAAC,CAAC;IACjD,oBAAoB,EAAE,CAAC,MAAM,EAAE,gBAAgB,KAAK,IAAI,CAAC;IACzD,OAAO,EAAE,aAAa,CAAC,cAAc,CAAC,CAAC;IACvC,aAAa,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,MAAM,CAAC,EAAE,yBAAyB,CAAC;IACnC,OAAO,CAAC,EAAE,yBAAyB,CAAC;IACpC,WAAW,EAAE,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC5B,aAAa,EAAE,CAAC,aAAa,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/C,iBAAiB,CAAC,EAAE,CAAC,aAAa,EAAE,MAAM,KAAK,IAAI,CAAC;IACpD,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,UAAU,EAAE,mBAAmB,CAAC,UAAU,CAAC;IAC3C,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;CACxB;AAED,MAAM,WAAW,kBAAmB,SAAQ,kBAAkB;IAC5D,GAAG,EAAE,SAAS,CAAC,iBAAiB,CAAC,CAAC;CACnC;AAED,wBAAgB,SAAS,CAAC,EACxB,eAAe,EACf,oBAAoB,EACpB,OAAO,EACP,aAAa,EACb,MAAM,EACN,OAAO,EACP,WAAW,EACX,QAAQ,EACR,QAAQ,EACR,aAAa,EACb,iBAAiB,EACjB,oBAA4B,EAC5B,UAAU,EACV,aAAa,EACb,cAAc,EACd,SAAS,GACV,EAAE,cAAc;;;;;;4BA6Ge,IAAI,CAAC,aAAa,EAAE,SAAS,GAAG,QAAQ,GAAG,mBAAmB,GAAG,UAAU,CAAC;;0BA4B/E,OAAO,CAAC,WAAW,CAAC;6BAoEf,cAAc,SAAS,MAAM;;4BAjJ9B,cAAc;;;;EAoP9C"}
@@ -103,7 +103,7 @@ export function useSelect({ selectedOptions, updateSelectedOption, options, filt
103
103
  onFocus: handleFocus,
104
104
  onBlur: handleBlur,
105
105
  dropdownContentId: dialogId,
106
- dropdownContentRole: hasFilter ? 'dialog' : undefined,
106
+ ariaRole: hasFilter ? 'dialog' : undefined,
107
107
  });
108
108
  const getTriggerProps = (disabled = false, autoFocus = false) => {
109
109
  const triggerProps = {
@@ -1 +1 @@
1
- {"version":3,"file":"use-select.js","sourceRoot":"","sources":["../../../../src/select/utils/use-select.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 React, { RefObject, useCallback } from 'react';\nimport { useEffect, useRef } from 'react';\n\nimport { useUniqueId } from '@cloudscape-design/component-toolkit/internal';\n\nimport { ButtonTriggerProps } from '../../internal/components/button-trigger';\nimport { DropdownProps } from '../../internal/components/dropdown/interfaces';\nimport { DropdownStatusProps } from '../../internal/components/dropdown-status';\nimport { DropdownOption, OptionDefinition, OptionGroup } from '../../internal/components/option/interfaces';\nimport { isGroup, isGroupInteractive, isInteractive } from '../../internal/components/option/utils/filter-options';\nimport { OptionsListProps } from '../../internal/components/options-list';\nimport { useHighlightedOption } from '../../internal/components/options-list/utils/use-highlight-option';\nimport { getOptionId } from '../../internal/components/options-list/utils/use-ids';\nimport { useMenuKeyboard, useTriggerKeyboard } from '../../internal/components/options-list/utils/use-keyboard';\nimport { useOpenState } from '../../internal/components/options-list/utils/use-open-state';\nimport { fireNonCancelableEvent, NonCancelableEventHandler } from '../../internal/events';\nimport useForwardFocus from '../../internal/hooks/forward-focus';\nimport { usePrevious } from '../../internal/hooks/use-previous';\nimport { FilterProps } from '../parts/filter';\nimport { ItemProps } from '../parts/item';\nimport { connectOptionsByValue } from './connect-options';\n\nexport type MenuProps = Omit<OptionsListProps, 'children'> & { ref: React.RefObject<HTMLDivElement> };\nexport type GetOptionProps = (option: DropdownOption, index: number) => ItemProps;\n\ninterface UseSelectProps {\n selectedOptions: ReadonlyArray<OptionDefinition>;\n updateSelectedOption: (option: OptionDefinition) => void;\n options: ReadonlyArray<DropdownOption>;\n filteringType: string;\n keepOpen?: boolean;\n embedded?: boolean;\n onBlur?: NonCancelableEventHandler;\n onFocus?: NonCancelableEventHandler;\n externalRef: React.Ref<any>;\n fireLoadItems: (filteringText: string) => void;\n setFilteringValue?: (filteringText: string) => void;\n useInteractiveGroups?: boolean;\n statusType: DropdownStatusProps.StatusType;\n isAllSelected?: boolean;\n isSomeSelected?: boolean;\n toggleAll?: () => void;\n}\n\nexport interface SelectTriggerProps extends ButtonTriggerProps {\n ref: RefObject<HTMLButtonElement>;\n}\n\nexport function useSelect({\n selectedOptions,\n updateSelectedOption,\n options,\n filteringType,\n onBlur,\n onFocus,\n externalRef,\n keepOpen,\n embedded,\n fireLoadItems,\n setFilteringValue,\n useInteractiveGroups = false,\n statusType,\n isAllSelected,\n isSomeSelected,\n toggleAll,\n}: UseSelectProps) {\n const interactivityCheck = useInteractiveGroups ? isGroupInteractive : isInteractive;\n\n const isHighlightable = (option?: DropdownOption) => !!option && (useInteractiveGroups || option.type !== 'parent');\n\n const filterRef = useRef<HTMLInputElement>(null);\n const triggerRef = useRef<HTMLButtonElement>(null);\n const menuRef = useRef<HTMLDivElement>(null);\n const hasFilter = filteringType !== 'none' && !embedded;\n const activeRef = hasFilter ? filterRef : menuRef;\n const __selectedOptions = connectOptionsByValue(options, selectedOptions);\n const __selectedValuesSet = selectedOptions.reduce((selectedValuesSet: Set<string>, item: OptionDefinition) => {\n if (item.value) {\n selectedValuesSet.add(item.value);\n }\n return selectedValuesSet;\n }, new Set<string>());\n const [\n { highlightType, highlightedOption, highlightedIndex },\n {\n moveHighlightWithKeyboard,\n resetHighlightWithKeyboard,\n setHighlightedIndexWithMouse,\n highlightOptionWithKeyboard,\n highlightFirstOptionWithMouse,\n goHomeWithKeyboard,\n goEndWithKeyboard,\n },\n ] = useHighlightedOption({ options: options, isHighlightable });\n\n const { isOpen, openDropdown, closeDropdown, toggleDropdown, openedWithKeyboard } = useOpenState({\n defaultOpen: embedded,\n onOpen: () => fireLoadItems(''),\n onClose: () => {\n resetHighlightWithKeyboard();\n setFilteringValue?.('');\n },\n });\n\n const handleFocus = () => {\n fireNonCancelableEvent(onFocus, {});\n };\n\n const handleBlur = () => {\n fireNonCancelableEvent(onBlur, {});\n closeDropdown();\n };\n\n const hasSelectedOption = __selectedOptions.length > 0;\n const menuId = useUniqueId('option-list');\n const dialogId = useUniqueId('dialog');\n const highlightedOptionId = getOptionId(menuId, highlightedIndex);\n\n const closeDropdownIfNecessary = () => {\n if (!keepOpen) {\n triggerRef.current?.focus();\n closeDropdown();\n }\n };\n\n const selectOption = (option?: DropdownOption) => {\n const optionToSelect = option || highlightedOption;\n if (!optionToSelect || !interactivityCheck(optionToSelect)) {\n return;\n }\n if (optionToSelect.type === 'select-all' && toggleAll) {\n toggleAll();\n } else {\n updateSelectedOption(optionToSelect.option);\n }\n closeDropdownIfNecessary();\n };\n\n const activeKeyDownHandler = useMenuKeyboard({\n goUp: () => {\n if (\n (!useInteractiveGroups && highlightedOption?.type === 'child' && highlightedIndex === 1) ||\n highlightedIndex === 0\n ) {\n goEndWithKeyboard();\n return;\n }\n moveHighlightWithKeyboard(-1);\n },\n goDown: () => {\n if (highlightedIndex === options.length - 1) {\n goHomeWithKeyboard();\n return;\n }\n\n moveHighlightWithKeyboard(1);\n },\n selectOption,\n goHome: goHomeWithKeyboard,\n goEnd: goEndWithKeyboard,\n closeDropdown: () => {\n if (!embedded) {\n triggerRef.current?.focus();\n closeDropdown();\n }\n },\n preventNativeSpace: !hasFilter || (highlightedOption && highlightType.type === 'keyboard'),\n });\n\n const triggerKeyDownHandler = useTriggerKeyboard({\n openDropdown: () => openDropdown(true),\n goHome: goHomeWithKeyboard,\n });\n\n const getDropdownProps: () => Pick<\n DropdownProps,\n 'onFocus' | 'onBlur' | 'dropdownContentId' | 'dropdownContentRole'\n > = () => ({\n onFocus: handleFocus,\n onBlur: handleBlur,\n dropdownContentId: dialogId,\n dropdownContentRole: hasFilter ? 'dialog' : undefined,\n });\n\n const getTriggerProps = (disabled = false, autoFocus = false) => {\n const triggerProps: SelectTriggerProps = {\n ref: triggerRef,\n onFocus: () => closeDropdown(),\n autoFocus,\n ariaHasPopup: hasFilter ? 'dialog' : 'listbox',\n ariaControls: isOpen ? (hasFilter ? dialogId : menuId) : undefined,\n };\n if (!disabled) {\n triggerProps.onMouseDown = (event: CustomEvent) => {\n event.preventDefault(); // prevent current focus from blurring as it immediately closes the dropdown\n if (isOpen) {\n triggerRef.current?.focus();\n }\n toggleDropdown();\n };\n triggerProps.onKeyDown = triggerKeyDownHandler;\n }\n return triggerProps;\n };\n\n const getFilterProps = (): Partial<FilterProps> => {\n if (!hasFilter || !setFilteringValue) {\n return {};\n }\n\n return {\n ref: filterRef,\n onKeyDown: activeKeyDownHandler,\n onChange: event => {\n setFilteringValue(event.detail.value);\n resetHighlightWithKeyboard();\n },\n __onDelayedInput: event => {\n fireLoadItems(event.detail.value);\n },\n nativeInputAttributes: {\n 'aria-activedescendant': highlightedOptionId,\n ['aria-owns']: menuId,\n ['aria-controls']: menuId,\n },\n };\n };\n\n const getMenuProps = () => {\n const menuProps: MenuProps = {\n id: menuId,\n ref: menuRef,\n open: isOpen,\n onMouseUp: itemIndex => {\n if (itemIndex > -1) {\n selectOption(options[itemIndex]);\n }\n },\n onMouseMove: itemIndex => {\n if (itemIndex > -1) {\n setHighlightedIndexWithMouse(itemIndex);\n }\n },\n statusType,\n };\n if (!hasFilter) {\n menuProps.onKeyDown = activeKeyDownHandler;\n menuProps.nativeAttributes = {\n 'aria-activedescendant': highlightedOptionId,\n };\n }\n if (embedded) {\n menuProps.onFocus = () => {\n if (!highlightedOption) {\n goHomeWithKeyboard();\n }\n };\n menuProps.onBlur = () => {\n resetHighlightWithKeyboard();\n };\n }\n return menuProps;\n };\n const getGroupState = (option: OptionGroup) => {\n const totalSelected = option.options.filter(item => !!item.value && __selectedValuesSet.has(item.value)).length;\n const hasSelected = totalSelected > 0;\n const allSelected = totalSelected === option.options.length;\n return {\n selected: hasSelected && allSelected && useInteractiveGroups,\n indeterminate: hasSelected && !allSelected,\n };\n };\n\n const getOptionProps = (option: DropdownOption, index: number) => {\n const isSelectAll = option.type === 'select-all';\n const highlighted = option === highlightedOption;\n const groupState = isGroup(option.option) ? getGroupState(option.option) : undefined;\n const selected = isSelectAll ? isAllSelected : __selectedOptions.indexOf(option) > -1 || !!groupState?.selected;\n const nextOption = options[index + 1]?.option;\n const isNextSelected =\n !!nextOption && isGroup(nextOption)\n ? getGroupState(nextOption).selected\n : __selectedOptions.indexOf(options[index + 1]) > -1;\n const previousOption = options[index - 1]?.option;\n const isPreviousSelected =\n !!previousOption && isGroup(previousOption)\n ? getGroupState(previousOption).selected\n : __selectedOptions.indexOf(options[index - 1]) > -1;\n const optionProps: any = {\n key: index,\n option,\n highlighted,\n selected,\n isNextSelected,\n isPreviousSelected,\n indeterminate: !!groupState?.indeterminate || (isSelectAll && !isAllSelected && isSomeSelected),\n ['data-mouse-target']: isHighlightable(option) ? index : -1,\n id: getOptionId(menuId, index),\n };\n\n return optionProps;\n };\n\n const prevOpen = usePrevious<boolean>(isOpen);\n useEffect(() => {\n // highlight the first selected option, when opening the Select component without filter input\n // keep the focus in the filter input when opening, so that screenreader can recognize the combobox\n if (isOpen && !prevOpen && options.length > 0 && !hasFilter) {\n if (openedWithKeyboard) {\n if (__selectedOptions[0]) {\n highlightOptionWithKeyboard(__selectedOptions[0]);\n } else {\n goHomeWithKeyboard();\n }\n } else {\n if (!__selectedOptions[0] || !options.includes(__selectedOptions[0])) {\n highlightFirstOptionWithMouse();\n } else {\n const highlightedIndex = options.indexOf(__selectedOptions[0]);\n setHighlightedIndexWithMouse(highlightedIndex, true);\n }\n }\n }\n }, [\n isOpen,\n __selectedOptions,\n hasSelectedOption,\n setHighlightedIndexWithMouse,\n highlightOptionWithKeyboard,\n highlightFirstOptionWithMouse,\n goHomeWithKeyboard,\n openedWithKeyboard,\n options,\n prevOpen,\n hasFilter,\n ]);\n\n const focusActiveRef = useCallback(() => {\n // dropdown-fit calculations ensure that the dropdown will fit inside the current\n // viewport, so prevent the browser from trying to scroll it into view (e.g. if\n // scroll-padding-top is set on a parent)\n activeRef.current?.focus({ preventScroll: true });\n }, [activeRef]);\n\n useEffect(() => {\n if (isOpen && !embedded) {\n focusActiveRef();\n }\n }, [isOpen, activeRef, embedded, focusActiveRef]);\n\n useForwardFocus(externalRef, triggerRef as React.RefObject<HTMLElement>);\n const highlightedGroupSelected =\n !!highlightedOption && isGroup(highlightedOption.option) && getGroupState(highlightedOption.option).selected;\n const announceSelected =\n !!highlightedOption && (__selectedOptions.indexOf(highlightedOption) > -1 || highlightedGroupSelected);\n\n return {\n isOpen,\n highlightedOption,\n highlightedIndex,\n highlightType,\n getTriggerProps,\n getDropdownProps,\n getMenuProps,\n getFilterProps,\n getOptionProps,\n highlightOption: highlightOptionWithKeyboard,\n selectOption,\n announceSelected,\n dialogId,\n focusActiveRef,\n };\n}\n"]}
1
+ {"version":3,"file":"use-select.js","sourceRoot":"","sources":["../../../../src/select/utils/use-select.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 React, { RefObject, useCallback } from 'react';\nimport { useEffect, useRef } from 'react';\n\nimport { useUniqueId } from '@cloudscape-design/component-toolkit/internal';\n\nimport { ButtonTriggerProps } from '../../internal/components/button-trigger';\nimport { DropdownProps } from '../../internal/components/dropdown/interfaces';\nimport { DropdownStatusProps } from '../../internal/components/dropdown-status';\nimport { DropdownOption, OptionDefinition, OptionGroup } from '../../internal/components/option/interfaces';\nimport { isGroup, isGroupInteractive, isInteractive } from '../../internal/components/option/utils/filter-options';\nimport { OptionsListProps } from '../../internal/components/options-list';\nimport { useHighlightedOption } from '../../internal/components/options-list/utils/use-highlight-option';\nimport { getOptionId } from '../../internal/components/options-list/utils/use-ids';\nimport { useMenuKeyboard, useTriggerKeyboard } from '../../internal/components/options-list/utils/use-keyboard';\nimport { useOpenState } from '../../internal/components/options-list/utils/use-open-state';\nimport { fireNonCancelableEvent, NonCancelableEventHandler } from '../../internal/events';\nimport useForwardFocus from '../../internal/hooks/forward-focus';\nimport { usePrevious } from '../../internal/hooks/use-previous';\nimport { FilterProps } from '../parts/filter';\nimport { ItemProps } from '../parts/item';\nimport { connectOptionsByValue } from './connect-options';\n\nexport type MenuProps = Omit<OptionsListProps, 'children'> & { ref: React.RefObject<HTMLDivElement> };\nexport type GetOptionProps = (option: DropdownOption, index: number) => ItemProps;\n\ninterface UseSelectProps {\n selectedOptions: ReadonlyArray<OptionDefinition>;\n updateSelectedOption: (option: OptionDefinition) => void;\n options: ReadonlyArray<DropdownOption>;\n filteringType: string;\n keepOpen?: boolean;\n embedded?: boolean;\n onBlur?: NonCancelableEventHandler;\n onFocus?: NonCancelableEventHandler;\n externalRef: React.Ref<any>;\n fireLoadItems: (filteringText: string) => void;\n setFilteringValue?: (filteringText: string) => void;\n useInteractiveGroups?: boolean;\n statusType: DropdownStatusProps.StatusType;\n isAllSelected?: boolean;\n isSomeSelected?: boolean;\n toggleAll?: () => void;\n}\n\nexport interface SelectTriggerProps extends ButtonTriggerProps {\n ref: RefObject<HTMLButtonElement>;\n}\n\nexport function useSelect({\n selectedOptions,\n updateSelectedOption,\n options,\n filteringType,\n onBlur,\n onFocus,\n externalRef,\n keepOpen,\n embedded,\n fireLoadItems,\n setFilteringValue,\n useInteractiveGroups = false,\n statusType,\n isAllSelected,\n isSomeSelected,\n toggleAll,\n}: UseSelectProps) {\n const interactivityCheck = useInteractiveGroups ? isGroupInteractive : isInteractive;\n\n const isHighlightable = (option?: DropdownOption) => !!option && (useInteractiveGroups || option.type !== 'parent');\n\n const filterRef = useRef<HTMLInputElement>(null);\n const triggerRef = useRef<HTMLButtonElement>(null);\n const menuRef = useRef<HTMLDivElement>(null);\n const hasFilter = filteringType !== 'none' && !embedded;\n const activeRef = hasFilter ? filterRef : menuRef;\n const __selectedOptions = connectOptionsByValue(options, selectedOptions);\n const __selectedValuesSet = selectedOptions.reduce((selectedValuesSet: Set<string>, item: OptionDefinition) => {\n if (item.value) {\n selectedValuesSet.add(item.value);\n }\n return selectedValuesSet;\n }, new Set<string>());\n const [\n { highlightType, highlightedOption, highlightedIndex },\n {\n moveHighlightWithKeyboard,\n resetHighlightWithKeyboard,\n setHighlightedIndexWithMouse,\n highlightOptionWithKeyboard,\n highlightFirstOptionWithMouse,\n goHomeWithKeyboard,\n goEndWithKeyboard,\n },\n ] = useHighlightedOption({ options: options, isHighlightable });\n\n const { isOpen, openDropdown, closeDropdown, toggleDropdown, openedWithKeyboard } = useOpenState({\n defaultOpen: embedded,\n onOpen: () => fireLoadItems(''),\n onClose: () => {\n resetHighlightWithKeyboard();\n setFilteringValue?.('');\n },\n });\n\n const handleFocus = () => {\n fireNonCancelableEvent(onFocus, {});\n };\n\n const handleBlur = () => {\n fireNonCancelableEvent(onBlur, {});\n closeDropdown();\n };\n\n const hasSelectedOption = __selectedOptions.length > 0;\n const menuId = useUniqueId('option-list');\n const dialogId = useUniqueId('dialog');\n const highlightedOptionId = getOptionId(menuId, highlightedIndex);\n\n const closeDropdownIfNecessary = () => {\n if (!keepOpen) {\n triggerRef.current?.focus();\n closeDropdown();\n }\n };\n\n const selectOption = (option?: DropdownOption) => {\n const optionToSelect = option || highlightedOption;\n if (!optionToSelect || !interactivityCheck(optionToSelect)) {\n return;\n }\n if (optionToSelect.type === 'select-all' && toggleAll) {\n toggleAll();\n } else {\n updateSelectedOption(optionToSelect.option);\n }\n closeDropdownIfNecessary();\n };\n\n const activeKeyDownHandler = useMenuKeyboard({\n goUp: () => {\n if (\n (!useInteractiveGroups && highlightedOption?.type === 'child' && highlightedIndex === 1) ||\n highlightedIndex === 0\n ) {\n goEndWithKeyboard();\n return;\n }\n moveHighlightWithKeyboard(-1);\n },\n goDown: () => {\n if (highlightedIndex === options.length - 1) {\n goHomeWithKeyboard();\n return;\n }\n\n moveHighlightWithKeyboard(1);\n },\n selectOption,\n goHome: goHomeWithKeyboard,\n goEnd: goEndWithKeyboard,\n closeDropdown: () => {\n if (!embedded) {\n triggerRef.current?.focus();\n closeDropdown();\n }\n },\n preventNativeSpace: !hasFilter || (highlightedOption && highlightType.type === 'keyboard'),\n });\n\n const triggerKeyDownHandler = useTriggerKeyboard({\n openDropdown: () => openDropdown(true),\n goHome: goHomeWithKeyboard,\n });\n\n const getDropdownProps: () => Pick<DropdownProps, 'onFocus' | 'onBlur' | 'dropdownContentId' | 'ariaRole'> = () => ({\n onFocus: handleFocus,\n onBlur: handleBlur,\n dropdownContentId: dialogId,\n ariaRole: hasFilter ? 'dialog' : undefined,\n });\n\n const getTriggerProps = (disabled = false, autoFocus = false) => {\n const triggerProps: SelectTriggerProps = {\n ref: triggerRef,\n onFocus: () => closeDropdown(),\n autoFocus,\n ariaHasPopup: hasFilter ? 'dialog' : 'listbox',\n ariaControls: isOpen ? (hasFilter ? dialogId : menuId) : undefined,\n };\n if (!disabled) {\n triggerProps.onMouseDown = (event: CustomEvent) => {\n event.preventDefault(); // prevent current focus from blurring as it immediately closes the dropdown\n if (isOpen) {\n triggerRef.current?.focus();\n }\n toggleDropdown();\n };\n triggerProps.onKeyDown = triggerKeyDownHandler;\n }\n return triggerProps;\n };\n\n const getFilterProps = (): Partial<FilterProps> => {\n if (!hasFilter || !setFilteringValue) {\n return {};\n }\n\n return {\n ref: filterRef,\n onKeyDown: activeKeyDownHandler,\n onChange: event => {\n setFilteringValue(event.detail.value);\n resetHighlightWithKeyboard();\n },\n __onDelayedInput: event => {\n fireLoadItems(event.detail.value);\n },\n nativeInputAttributes: {\n 'aria-activedescendant': highlightedOptionId,\n ['aria-owns']: menuId,\n ['aria-controls']: menuId,\n },\n };\n };\n\n const getMenuProps = () => {\n const menuProps: MenuProps = {\n id: menuId,\n ref: menuRef,\n open: isOpen,\n onMouseUp: itemIndex => {\n if (itemIndex > -1) {\n selectOption(options[itemIndex]);\n }\n },\n onMouseMove: itemIndex => {\n if (itemIndex > -1) {\n setHighlightedIndexWithMouse(itemIndex);\n }\n },\n statusType,\n };\n if (!hasFilter) {\n menuProps.onKeyDown = activeKeyDownHandler;\n menuProps.nativeAttributes = {\n 'aria-activedescendant': highlightedOptionId,\n };\n }\n if (embedded) {\n menuProps.onFocus = () => {\n if (!highlightedOption) {\n goHomeWithKeyboard();\n }\n };\n menuProps.onBlur = () => {\n resetHighlightWithKeyboard();\n };\n }\n return menuProps;\n };\n const getGroupState = (option: OptionGroup) => {\n const totalSelected = option.options.filter(item => !!item.value && __selectedValuesSet.has(item.value)).length;\n const hasSelected = totalSelected > 0;\n const allSelected = totalSelected === option.options.length;\n return {\n selected: hasSelected && allSelected && useInteractiveGroups,\n indeterminate: hasSelected && !allSelected,\n };\n };\n\n const getOptionProps = (option: DropdownOption, index: number) => {\n const isSelectAll = option.type === 'select-all';\n const highlighted = option === highlightedOption;\n const groupState = isGroup(option.option) ? getGroupState(option.option) : undefined;\n const selected = isSelectAll ? isAllSelected : __selectedOptions.indexOf(option) > -1 || !!groupState?.selected;\n const nextOption = options[index + 1]?.option;\n const isNextSelected =\n !!nextOption && isGroup(nextOption)\n ? getGroupState(nextOption).selected\n : __selectedOptions.indexOf(options[index + 1]) > -1;\n const previousOption = options[index - 1]?.option;\n const isPreviousSelected =\n !!previousOption && isGroup(previousOption)\n ? getGroupState(previousOption).selected\n : __selectedOptions.indexOf(options[index - 1]) > -1;\n const optionProps: any = {\n key: index,\n option,\n highlighted,\n selected,\n isNextSelected,\n isPreviousSelected,\n indeterminate: !!groupState?.indeterminate || (isSelectAll && !isAllSelected && isSomeSelected),\n ['data-mouse-target']: isHighlightable(option) ? index : -1,\n id: getOptionId(menuId, index),\n };\n\n return optionProps;\n };\n\n const prevOpen = usePrevious<boolean>(isOpen);\n useEffect(() => {\n // highlight the first selected option, when opening the Select component without filter input\n // keep the focus in the filter input when opening, so that screenreader can recognize the combobox\n if (isOpen && !prevOpen && options.length > 0 && !hasFilter) {\n if (openedWithKeyboard) {\n if (__selectedOptions[0]) {\n highlightOptionWithKeyboard(__selectedOptions[0]);\n } else {\n goHomeWithKeyboard();\n }\n } else {\n if (!__selectedOptions[0] || !options.includes(__selectedOptions[0])) {\n highlightFirstOptionWithMouse();\n } else {\n const highlightedIndex = options.indexOf(__selectedOptions[0]);\n setHighlightedIndexWithMouse(highlightedIndex, true);\n }\n }\n }\n }, [\n isOpen,\n __selectedOptions,\n hasSelectedOption,\n setHighlightedIndexWithMouse,\n highlightOptionWithKeyboard,\n highlightFirstOptionWithMouse,\n goHomeWithKeyboard,\n openedWithKeyboard,\n options,\n prevOpen,\n hasFilter,\n ]);\n\n const focusActiveRef = useCallback(() => {\n // dropdown-fit calculations ensure that the dropdown will fit inside the current\n // viewport, so prevent the browser from trying to scroll it into view (e.g. if\n // scroll-padding-top is set on a parent)\n activeRef.current?.focus({ preventScroll: true });\n }, [activeRef]);\n\n useEffect(() => {\n if (isOpen && !embedded) {\n focusActiveRef();\n }\n }, [isOpen, activeRef, embedded, focusActiveRef]);\n\n useForwardFocus(externalRef, triggerRef as React.RefObject<HTMLElement>);\n const highlightedGroupSelected =\n !!highlightedOption && isGroup(highlightedOption.option) && getGroupState(highlightedOption.option).selected;\n const announceSelected =\n !!highlightedOption && (__selectedOptions.indexOf(highlightedOption) > -1 || highlightedGroupSelected);\n\n return {\n isOpen,\n highlightedOption,\n highlightedIndex,\n highlightType,\n getTriggerProps,\n getDropdownProps,\n getMenuProps,\n getFilterProps,\n getOptionProps,\n highlightOption: highlightOptionWithKeyboard,\n selectOption,\n announceSelected,\n dialogId,\n focusActiveRef,\n };\n}\n"]}
@@ -67,6 +67,8 @@ export interface SliderProps extends BaseComponentProps, FormFieldValidationCont
67
67
  */
68
68
  readOnly?: boolean;
69
69
  /**
70
+ * An object containing CSS properties to customize the slider's visual appearance.
71
+ * Refer to the [style](/components/slider/?tabId=style) tab for more details.
70
72
  * @awsuiSystem core
71
73
  */
72
74
  style?: SliderProps.Style;
@@ -1 +1 @@
1
- {"version":3,"file":"interfaces.d.ts","sourceRoot":"","sources":["../../../src/slider/interfaces.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAChE,OAAO,EAAE,+BAA+B,EAAE,MAAM,wCAAwC,CAAC;AACzF,OAAO,EAAE,yBAAyB,EAAE,MAAM,oBAAoB,CAAC;AAE/D,MAAM,WAAW,WAAY,SAAQ,kBAAkB,EAAE,+BAA+B;IACtF;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf;;OAEG;IACH,GAAG,EAAE,MAAM,CAAC;IAEZ;;OAEG;IACH,GAAG,EAAE,MAAM,CAAC;IAEZ;;OAEG;IACH,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC;IAE3C;;;OAGG;IACH,QAAQ,CAAC,EAAE,yBAAyB,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;IAE/D;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd;;OAEG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;IAEvB;;OAEG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IAEpB;;OAEG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB;;OAEG;IACH,eAAe,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;IAExC;;;;OAIG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;;;OAIG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;IAEzB;;;OAGG;IACH,WAAW,CAAC,EAAE,WAAW,CAAC,WAAW,CAAC;IAEtC;;;;OAIG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB;;OAEG;IACH,KAAK,CAAC,EAAE,WAAW,CAAC,KAAK,CAAC;CAC3B;AAED,yBAAiB,WAAW,CAAC;IAC3B,UAAiB,YAAY;QAC3B,KAAK,EAAE,MAAM,CAAC;KACf;IACD,UAAiB,WAAW;QAC1B;;WAEG;QACH,cAAc,EAAE,CAAC,aAAa,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,KAAK,MAAM,CAAC;KACrF;IAED,UAAiB,KAAK;QACpB,KAAK,CAAC,EAAE;YACN,eAAe,CAAC,EAAE,MAAM,CAAC;SAC1B,CAAC;QACF,KAAK,CAAC,EAAE;YACN,eAAe,CAAC,EAAE;gBAChB,OAAO,CAAC,EAAE,MAAM,CAAC;gBACjB,MAAM,CAAC,EAAE,MAAM,CAAC;aACjB,CAAC;SACH,CAAC;QACF,MAAM,CAAC,EAAE;YACP,eAAe,CAAC,EAAE;gBAChB,OAAO,CAAC,EAAE,MAAM,CAAC;gBACjB,KAAK,CAAC,EAAE,MAAM,CAAC;gBACf,MAAM,CAAC,EAAE,MAAM,CAAC;aACjB,CAAC;YACF,YAAY,CAAC,EAAE,MAAM,CAAC;SACvB,CAAC;KACH;CACF"}
1
+ {"version":3,"file":"interfaces.d.ts","sourceRoot":"","sources":["../../../src/slider/interfaces.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAChE,OAAO,EAAE,+BAA+B,EAAE,MAAM,wCAAwC,CAAC;AACzF,OAAO,EAAE,yBAAyB,EAAE,MAAM,oBAAoB,CAAC;AAE/D,MAAM,WAAW,WAAY,SAAQ,kBAAkB,EAAE,+BAA+B;IACtF;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf;;OAEG;IACH,GAAG,EAAE,MAAM,CAAC;IAEZ;;OAEG;IACH,GAAG,EAAE,MAAM,CAAC;IAEZ;;OAEG;IACH,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC;IAE3C;;;OAGG;IACH,QAAQ,CAAC,EAAE,yBAAyB,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;IAE/D;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd;;OAEG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;IAEvB;;OAEG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IAEpB;;OAEG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB;;OAEG;IACH,eAAe,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;IAExC;;;;OAIG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;;;OAIG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;IAEzB;;;OAGG;IACH,WAAW,CAAC,EAAE,WAAW,CAAC,WAAW,CAAC;IAEtC;;;;OAIG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB;;;;OAIG;IACH,KAAK,CAAC,EAAE,WAAW,CAAC,KAAK,CAAC;CAC3B;AAED,yBAAiB,WAAW,CAAC;IAC3B,UAAiB,YAAY;QAC3B,KAAK,EAAE,MAAM,CAAC;KACf;IACD,UAAiB,WAAW;QAC1B;;WAEG;QACH,cAAc,EAAE,CAAC,aAAa,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,KAAK,MAAM,CAAC;KACrF;IAED,UAAiB,KAAK;QACpB,KAAK,CAAC,EAAE;YACN,eAAe,CAAC,EAAE,MAAM,CAAC;SAC1B,CAAC;QACF,KAAK,CAAC,EAAE;YACN,eAAe,CAAC,EAAE;gBAChB,OAAO,CAAC,EAAE,MAAM,CAAC;gBACjB,MAAM,CAAC,EAAE,MAAM,CAAC;aACjB,CAAC;SACH,CAAC;QACF,MAAM,CAAC,EAAE;YACP,eAAe,CAAC,EAAE;gBAChB,OAAO,CAAC,EAAE,MAAM,CAAC;gBACjB,KAAK,CAAC,EAAE,MAAM,CAAC;gBACf,MAAM,CAAC,EAAE,MAAM,CAAC;aACjB,CAAC;YACF,YAAY,CAAC,EAAE,MAAM,CAAC;SACvB,CAAC;KACH;CACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"interfaces.js","sourceRoot":"","sources":["../../../src/slider/interfaces.ts"],"names":[],"mappings":"","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { BaseComponentProps } from '../internal/base-component';\nimport { FormFieldValidationControlProps } from '../internal/context/form-field-context';\nimport { NonCancelableEventHandler } from '../internal/events';\n\nexport interface SliderProps extends BaseComponentProps, FormFieldValidationControlProps {\n /**\n * Indicates the current value.\n */\n value?: number;\n\n /**\n * Indicates the minimum value.\n */\n min: number;\n\n /**\n * Indicates the maximum value.\n */\n max: number;\n\n /**\n * Formats the values. This will format both the labels and the tooltip.\n */\n valueFormatter?: (value: number) => string;\n\n /**\n * Called when the user selects a value.\n * The event `detail` contains the current `value`.\n */\n onChange?: NonCancelableEventHandler<SliderProps.ChangeDetail>;\n\n /**\n * How big the step size is.\n */\n step?: number;\n\n /**\n * Hides the colored fill line, so only the handle is visible.\n */\n hideFillLine?: boolean;\n\n /**\n * Show the tick marks along the slider line. Use with stepped sliders, except in extreme cases.\n */\n tickMarks?: boolean;\n\n /**\n * Whether or not the slider is disabled.\n */\n disabled?: boolean;\n\n /**\n * Labels shown between the minimum and maximum values.\n */\n referenceValues?: ReadonlyArray<number>;\n\n /**\n * Adds an `aria-label` to the native control.\n *\n * Use this if you don't have a visible label for this control.\n */\n ariaLabel?: string;\n\n /**\n * Adds an aria-description for slider labels.\n *\n * Use when sliders have formatted reference values.\n */\n ariaDescription?: string;\n\n /**\n * An object containing all the necessary localized strings required by the component.\n * @i18n\n */\n i18nStrings?: SliderProps.I18nStrings;\n\n /**\n * Specifies if the control is read-only, which prevents the\n * user from modifying the value, but does not prevent the value from\n * being included in a form submission. A read-only control is still focusable.\n */\n readOnly?: boolean;\n\n /**\n * @awsuiSystem core\n */\n style?: SliderProps.Style;\n}\n\nexport namespace SliderProps {\n export interface ChangeDetail {\n value: number;\n }\n export interface I18nStrings {\n /**\n The aria value text displayed when the slider value is between two labeled values.\n */\n valueTextRange: (previousValue: string, value: number, nextValue: string) => string;\n }\n\n export interface Style {\n track?: {\n backgroundColor?: string;\n };\n range?: {\n backgroundColor?: {\n default?: string;\n active?: string;\n };\n };\n handle?: {\n backgroundColor?: {\n default?: string;\n hover?: string;\n active?: string;\n };\n borderRadius?: string;\n };\n }\n}\n"]}
1
+ {"version":3,"file":"interfaces.js","sourceRoot":"","sources":["../../../src/slider/interfaces.ts"],"names":[],"mappings":"","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { BaseComponentProps } from '../internal/base-component';\nimport { FormFieldValidationControlProps } from '../internal/context/form-field-context';\nimport { NonCancelableEventHandler } from '../internal/events';\n\nexport interface SliderProps extends BaseComponentProps, FormFieldValidationControlProps {\n /**\n * Indicates the current value.\n */\n value?: number;\n\n /**\n * Indicates the minimum value.\n */\n min: number;\n\n /**\n * Indicates the maximum value.\n */\n max: number;\n\n /**\n * Formats the values. This will format both the labels and the tooltip.\n */\n valueFormatter?: (value: number) => string;\n\n /**\n * Called when the user selects a value.\n * The event `detail` contains the current `value`.\n */\n onChange?: NonCancelableEventHandler<SliderProps.ChangeDetail>;\n\n /**\n * How big the step size is.\n */\n step?: number;\n\n /**\n * Hides the colored fill line, so only the handle is visible.\n */\n hideFillLine?: boolean;\n\n /**\n * Show the tick marks along the slider line. Use with stepped sliders, except in extreme cases.\n */\n tickMarks?: boolean;\n\n /**\n * Whether or not the slider is disabled.\n */\n disabled?: boolean;\n\n /**\n * Labels shown between the minimum and maximum values.\n */\n referenceValues?: ReadonlyArray<number>;\n\n /**\n * Adds an `aria-label` to the native control.\n *\n * Use this if you don't have a visible label for this control.\n */\n ariaLabel?: string;\n\n /**\n * Adds an aria-description for slider labels.\n *\n * Use when sliders have formatted reference values.\n */\n ariaDescription?: string;\n\n /**\n * An object containing all the necessary localized strings required by the component.\n * @i18n\n */\n i18nStrings?: SliderProps.I18nStrings;\n\n /**\n * Specifies if the control is read-only, which prevents the\n * user from modifying the value, but does not prevent the value from\n * being included in a form submission. A read-only control is still focusable.\n */\n readOnly?: boolean;\n\n /**\n * An object containing CSS properties to customize the slider's visual appearance.\n * Refer to the [style](/components/slider/?tabId=style) tab for more details.\n * @awsuiSystem core\n */\n style?: SliderProps.Style;\n}\n\nexport namespace SliderProps {\n export interface ChangeDetail {\n value: number;\n }\n export interface I18nStrings {\n /**\n The aria value text displayed when the slider value is between two labeled values.\n */\n valueTextRange: (previousValue: string, value: number, nextValue: string) => string;\n }\n\n export interface Style {\n track?: {\n backgroundColor?: string;\n };\n range?: {\n backgroundColor?: {\n default?: string;\n active?: string;\n };\n };\n handle?: {\n backgroundColor?: {\n default?: string;\n hover?: string;\n active?: string;\n };\n borderRadius?: string;\n };\n }\n}\n"]}