@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
@@ -1 +1 @@
1
- {"version":3,"file":"interfaces.js","sourceRoot":"","sources":["../../../src/input/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 { BaseKeyDetail, CancelableEventHandler, NonCancelableEventHandler } from '../internal/events';\n/**\n * @awsuiSystem core\n */\nimport { NativeAttributes } from '../internal/utils/with-native-attributes';\n\nexport interface BaseInputProps {\n /**\n * Specifies the text entered into the form element.\n */\n value: string;\n\n /**\n * Specifies the name of the control used in HTML forms.\n */\n name?: string;\n\n /**\n * Specifies the placeholder text rendered when the value is an empty string.\n */\n placeholder?: string;\n\n /**\n * Specifies if the control is disabled, which prevents the\n * user from modifying the value and prevents the value from\n * being included in a form submission. A disabled control can't\n * receive focus.\n */\n disabled?: boolean;\n\n /**\n * Specifies if the control is read-only, which prevents the\n * user from modifying the value but includes it in a form\n * submission. A read-only control can receive focus.\n *\n * Don't use read-only inputs outside a form.\n */\n readOnly?: boolean;\n\n /**\n * Indicates whether the control should be focused as\n * soon as the page loads, which enables the user to\n * start typing without having to manually focus the control. Don't\n * use this option on pages where the control may be\n * scrolled out of the viewport.\n */\n autoFocus?: boolean;\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 * Specifies whether to add `aria-required` to the native control.\n */\n ariaRequired?: boolean;\n\n /**\n * Called when input focus is removed from the UI control.\n */\n onBlur?: NonCancelableEventHandler<null>;\n\n /**\n * Called when input focus is moved to the UI control.\n */\n onFocus?: NonCancelableEventHandler<null>;\n\n /**\n * Called whenever a user changes the input value (by typing or pasting).\n * The event `detail` contains the current value of the field.\n */\n onChange?: NonCancelableEventHandler<InputProps.ChangeDetail>;\n\n /**\n * Attributes to add to the native `input` element.\n * Some attributes will be automatically combined with internal attribute values:\n * - `className` will be appended.\n * - Event handlers will be chained, unless the default is prevented.\n *\n * We do not support using this attribute to apply custom styling.\n *\n * @awsuiSystem core\n */\n nativeInputAttributes?: NativeAttributes<React.InputHTMLAttributes<HTMLInputElement>>;\n}\n\nexport interface InputAutoCorrect {\n /**\n * Specifies whether to disable browser autocorrect and related features.\n * If you set this to `true`, it disables any native browser capabilities\n * that automatically correct user input, such as `autocorrect` and\n * `autocapitalize`. If you don't set it, the behavior follows the default behavior\n * of the user's browser.\n */\n disableBrowserAutocorrect?: boolean;\n}\n\nexport interface InputAutoComplete {\n /**\n * Specifies whether to enable a browser's autocomplete functionality for this input.\n * In some cases it might be appropriate to disable autocomplete (for example, for security-sensitive fields).\n * To use it correctly, set the `name` property.\n *\n * You can either provide a boolean value to set the property to \"on\" or \"off\", or specify a string value\n * for the [autocomplete](https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/autocomplete) attribute.\n */\n autoComplete?: boolean | string;\n}\n\nexport interface InputSpellcheck {\n /**\n * Specifies the value of the `spellcheck` attribute on the native control.\n * This value controls the native browser capability to check for spelling/grammar errors.\n * If not set, the browser default behavior is to perform spellchecking.\n * For more details, check the [spellcheck MDN article](https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/spellcheck).\n *\n * Enhanced spellchecking features of your browser and/or operating system may send input values to external parties.\n * Make sure it’s deactivated for fields with sensitive information to prevent\n * inadvertently sending data (such as user passwords) to third parties.\n */\n spellcheck?: boolean;\n}\n\nexport interface InputKeyEvents {\n /**\n * Called when the underlying native textarea emits a `keydown` event.\n * The event `detail` contains the `keyCode` and information\n * about modifiers (that is, CTRL, ALT, SHIFT, META, etc.).\n */\n onKeyDown?: CancelableEventHandler<InputProps.KeyDetail>;\n\n /**\n * Called when the underlying native textarea emits a `keyup` event.\n * The event `detail` contains the `keyCode` and information\n * about modifiers (that is, CTRL, ALT, SHIFT, META, etc.).\n */\n onKeyUp?: CancelableEventHandler<InputProps.KeyDetail>;\n}\n\nexport interface InputClearLabel {\n /**\n * Adds an `aria-label` to the clear button inside the search input.\n * @i18n\n */\n clearAriaLabel?: string;\n}\n\nexport interface InputProps\n extends BaseComponentProps,\n BaseInputProps,\n InputKeyEvents,\n InputAutoCorrect,\n InputAutoComplete,\n InputSpellcheck,\n InputClearLabel,\n FormFieldValidationControlProps {\n /**\n * Specifies the type of control to render.\n * Inputs with a `number` type use the native element behavior, which might\n * be slightly different across browsers.\n */\n type?: InputProps.Type;\n\n /**\n * Adds a hint to the browser about the type of data a user may enter into this field.\n * Some devices may render a different virtual keyboard depending on this value.\n * This value may not be supported by all browsers or devices.\n */\n inputMode?: InputProps.InputMode;\n\n /**\n * The step attribute is a number that specifies the granularity that the value\n * must adhere to or the keyword \"any\". It is valid for the numeric input types,\n * including the date, month, week, time, datetime-local, number and range types.\n */\n step?: InputProps.Step;\n\n /**\n * @awsuiSystem core\n */\n style?: InputProps.Style;\n}\n\nexport namespace InputProps {\n export type Type = 'text' | 'password' | 'search' | 'number' | 'email' | 'url';\n export type InputMode = 'none' | 'text' | 'decimal' | 'numeric' | 'tel' | 'search' | 'email' | 'url';\n export type Step = number | 'any';\n\n export type ChangeDetail = BaseChangeDetail;\n export type KeyDetail = BaseKeyDetail;\n\n export interface Ref {\n /**\n * Sets input focus onto the UI control.\n */\n focus(): void;\n\n /**\n * Selects all text in the input control.\n */\n select(): void;\n }\n\n export interface Style {\n root?: {\n backgroundColor?: {\n default?: string;\n disabled?: string;\n focus?: string;\n hover?: string;\n readonly?: string;\n };\n borderColor?: {\n default?: string;\n disabled?: string;\n focus?: string;\n hover?: string;\n readonly?: string;\n };\n borderRadius?: string;\n borderWidth?: string;\n boxShadow?: {\n default?: string;\n disabled?: string;\n focus?: string;\n hover?: string;\n readonly?: string;\n };\n color?: {\n default?: string;\n disabled?: string;\n focus?: string;\n hover?: string;\n readonly?: string;\n };\n fontSize?: string;\n fontWeight?: string;\n paddingBlock?: string;\n paddingInline?: string;\n };\n placeholder?: {\n color?: string;\n fontSize?: string;\n fontStyle?: string;\n fontWeight?: string;\n };\n }\n}\n\nexport interface BaseChangeDetail {\n value: string;\n}\n"]}
1
+ {"version":3,"file":"interfaces.js","sourceRoot":"","sources":["../../../src/input/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 { BaseKeyDetail, CancelableEventHandler, NonCancelableEventHandler } from '../internal/events';\n/**\n * @awsuiSystem core\n */\nimport { NativeAttributes } from '../internal/utils/with-native-attributes';\n\nexport interface BaseInputProps {\n /**\n * Specifies the text entered into the form element.\n */\n value: string;\n\n /**\n * Specifies the name of the control used in HTML forms.\n */\n name?: string;\n\n /**\n * Specifies the placeholder text rendered when the value is an empty string.\n */\n placeholder?: string;\n\n /**\n * Specifies if the control is disabled, which prevents the\n * user from modifying the value and prevents the value from\n * being included in a form submission. A disabled control can't\n * receive focus.\n */\n disabled?: boolean;\n\n /**\n * Specifies if the control is read-only, which prevents the\n * user from modifying the value but includes it in a form\n * submission. A read-only control can receive focus.\n *\n * Don't use read-only inputs outside a form.\n */\n readOnly?: boolean;\n\n /**\n * Indicates whether the control should be focused as\n * soon as the page loads, which enables the user to\n * start typing without having to manually focus the control. Don't\n * use this option on pages where the control may be\n * scrolled out of the viewport.\n */\n autoFocus?: boolean;\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 * Specifies whether to add `aria-required` to the native control.\n */\n ariaRequired?: boolean;\n\n /**\n * Called when input focus is removed from the UI control.\n */\n onBlur?: NonCancelableEventHandler<null>;\n\n /**\n * Called when input focus is moved to the UI control.\n */\n onFocus?: NonCancelableEventHandler<null>;\n\n /**\n * Called whenever a user changes the input value (by typing or pasting).\n * The event `detail` contains the current value of the field.\n */\n onChange?: NonCancelableEventHandler<InputProps.ChangeDetail>;\n\n /**\n * Attributes to add to the native `input` element.\n * Some attributes will be automatically combined with internal attribute values:\n * - `className` will be appended.\n * - Event handlers will be chained, unless the default is prevented.\n *\n * We do not support using this attribute to apply custom styling.\n *\n * @awsuiSystem core\n */\n nativeInputAttributes?: NativeAttributes<React.InputHTMLAttributes<HTMLInputElement>>;\n}\n\nexport interface InputAutoCorrect {\n /**\n * Specifies whether to disable browser autocorrect and related features.\n * If you set this to `true`, it disables any native browser capabilities\n * that automatically correct user input, such as `autocorrect` and\n * `autocapitalize`. If you don't set it, the behavior follows the default behavior\n * of the user's browser.\n */\n disableBrowserAutocorrect?: boolean;\n}\n\nexport interface InputAutoComplete {\n /**\n * Specifies whether to enable a browser's autocomplete functionality for this input.\n * In some cases it might be appropriate to disable autocomplete (for example, for security-sensitive fields).\n * To use it correctly, set the `name` property.\n *\n * You can either provide a boolean value to set the property to \"on\" or \"off\", or specify a string value\n * for the [autocomplete](https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/autocomplete) attribute.\n */\n autoComplete?: boolean | string;\n}\n\nexport interface InputSpellcheck {\n /**\n * Specifies the value of the `spellcheck` attribute on the native control.\n * This value controls the native browser capability to check for spelling/grammar errors.\n * If not set, the browser default behavior is to perform spellchecking.\n * For more details, check the [spellcheck MDN article](https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/spellcheck).\n *\n * Enhanced spellchecking features of your browser and/or operating system may send input values to external parties.\n * Make sure it’s deactivated for fields with sensitive information to prevent\n * inadvertently sending data (such as user passwords) to third parties.\n */\n spellcheck?: boolean;\n}\n\nexport interface InputKeyEvents {\n /**\n * Called when the underlying native textarea emits a `keydown` event.\n * The event `detail` contains the `keyCode` and information\n * about modifiers (that is, CTRL, ALT, SHIFT, META, etc.).\n */\n onKeyDown?: CancelableEventHandler<InputProps.KeyDetail>;\n\n /**\n * Called when the underlying native textarea emits a `keyup` event.\n * The event `detail` contains the `keyCode` and information\n * about modifiers (that is, CTRL, ALT, SHIFT, META, etc.).\n */\n onKeyUp?: CancelableEventHandler<InputProps.KeyDetail>;\n}\n\nexport interface InputClearLabel {\n /**\n * Adds an `aria-label` to the clear button inside the search input.\n * @i18n\n */\n clearAriaLabel?: string;\n}\n\nexport interface InputProps\n extends BaseComponentProps,\n BaseInputProps,\n InputKeyEvents,\n InputAutoCorrect,\n InputAutoComplete,\n InputSpellcheck,\n InputClearLabel,\n FormFieldValidationControlProps {\n /**\n * Specifies the type of control to render.\n * Inputs with a `number` type use the native element behavior, which might\n * be slightly different across browsers.\n */\n type?: InputProps.Type;\n\n /**\n * Adds a hint to the browser about the type of data a user may enter into this field.\n * Some devices may render a different virtual keyboard depending on this value.\n * This value may not be supported by all browsers or devices.\n */\n inputMode?: InputProps.InputMode;\n\n /**\n * The step attribute is a number that specifies the granularity that the value\n * must adhere to or the keyword \"any\". It is valid for the numeric input types,\n * including the date, month, week, time, datetime-local, number and range types.\n */\n step?: InputProps.Step;\n\n /**\n * An object containing CSS properties to customize the input's visual appearance.\n * Refer to the [style](/components/input/?tabId=style) tab for more details.\n * @awsuiSystem core\n */\n style?: InputProps.Style;\n}\n\nexport namespace InputProps {\n export type Type = 'text' | 'password' | 'search' | 'number' | 'email' | 'url';\n export type InputMode = 'none' | 'text' | 'decimal' | 'numeric' | 'tel' | 'search' | 'email' | 'url';\n export type Step = number | 'any';\n\n export type ChangeDetail = BaseChangeDetail;\n export type KeyDetail = BaseKeyDetail;\n\n export interface Ref {\n /**\n * Sets input focus onto the UI control.\n */\n focus(): void;\n\n /**\n * Selects all text in the input control.\n */\n select(): void;\n }\n\n export interface Style {\n root?: {\n backgroundColor?: {\n default?: string;\n disabled?: string;\n focus?: string;\n hover?: string;\n readonly?: string;\n };\n borderColor?: {\n default?: string;\n disabled?: string;\n focus?: string;\n hover?: string;\n readonly?: string;\n };\n borderRadius?: string;\n borderWidth?: string;\n boxShadow?: {\n default?: string;\n disabled?: string;\n focus?: string;\n hover?: string;\n readonly?: string;\n };\n color?: {\n default?: string;\n disabled?: string;\n focus?: string;\n hover?: string;\n readonly?: string;\n };\n fontSize?: string;\n fontWeight?: string;\n paddingBlock?: string;\n paddingInline?: string;\n };\n placeholder?: {\n color?: string;\n fontSize?: string;\n fontStyle?: string;\n fontWeight?: string;\n };\n }\n}\n\nexport interface BaseChangeDetail {\n value: string;\n}\n"]}
@@ -1,18 +1,18 @@
1
1
 
2
2
  import './styles.scoped.css';
3
3
  export default {
4
- "root": "awsui_root_2rhyz_1hgr3_145",
5
- "input": "awsui_input_2rhyz_1hgr3_149",
6
- "input-readonly": "awsui_input-readonly_2rhyz_1hgr3_203",
7
- "input-invalid": "awsui_input-invalid_2rhyz_1hgr3_266",
8
- "input-has-icon-left": "awsui_input-has-icon-left_2rhyz_1hgr3_275",
9
- "input-warning": "awsui_input-warning_2rhyz_1hgr3_278",
10
- "input-type-search": "awsui_input-type-search_2rhyz_1hgr3_290",
11
- "input-has-icon-right": "awsui_input-has-icon-right_2rhyz_1hgr3_303",
12
- "input-has-no-border-radius": "awsui_input-has-no-border-radius_2rhyz_1hgr3_306",
13
- "input-container": "awsui_input-container_2rhyz_1hgr3_313",
14
- "input-icon-left": "awsui_input-icon-left_2rhyz_1hgr3_318",
15
- "input-icon-right": "awsui_input-icon-right_2rhyz_1hgr3_325",
16
- "input-button-right": "awsui_input-button-right_2rhyz_1hgr3_331"
4
+ "root": "awsui_root_2rhyz_1yh0m_145",
5
+ "input": "awsui_input_2rhyz_1yh0m_149",
6
+ "input-readonly": "awsui_input-readonly_2rhyz_1yh0m_203",
7
+ "input-invalid": "awsui_input-invalid_2rhyz_1yh0m_266",
8
+ "input-has-icon-left": "awsui_input-has-icon-left_2rhyz_1yh0m_275",
9
+ "input-warning": "awsui_input-warning_2rhyz_1yh0m_278",
10
+ "input-type-search": "awsui_input-type-search_2rhyz_1yh0m_290",
11
+ "input-has-icon-right": "awsui_input-has-icon-right_2rhyz_1yh0m_303",
12
+ "input-has-no-border-radius": "awsui_input-has-no-border-radius_2rhyz_1yh0m_306",
13
+ "input-container": "awsui_input-container_2rhyz_1yh0m_313",
14
+ "input-icon-left": "awsui_input-icon-left_2rhyz_1yh0m_318",
15
+ "input-icon-right": "awsui_input-icon-right_2rhyz_1yh0m_325",
16
+ "input-button-right": "awsui_input-button-right_2rhyz_1yh0m_331"
17
17
  };
18
18
 
@@ -142,11 +142,11 @@
142
142
  */
143
143
  /* Style used for links in slots/components that are text heavy, to help links stand out among
144
144
  surrounding text. (WCAG F73) https://www.w3.org/WAI/WCAG21/Techniques/failures/F73#description */
145
- .awsui_root_2rhyz_1hgr3_145:not(#\9) {
145
+ .awsui_root_2rhyz_1yh0m_145:not(#\9) {
146
146
  /* used in test-utils for component to distinguish input from other input-like components, for example autosuggest */
147
147
  }
148
148
 
149
- .awsui_input_2rhyz_1hgr3_149:not(#\9) {
149
+ .awsui_input_2rhyz_1yh0m_149:not(#\9) {
150
150
  border-collapse: separate;
151
151
  border-spacing: 0;
152
152
  box-sizing: border-box;
@@ -178,158 +178,158 @@ surrounding text. (WCAG F73) https://www.w3.org/WAI/WCAG21/Techniques/failures/F
178
178
  -moz-osx-font-smoothing: auto;
179
179
  padding-block: var(--space-scaled-xxs-jatbiv, 4px);
180
180
  padding-inline: var(--space-field-horizontal-n5peob, 8px);
181
- color: var(--awsui-style-color-default-4hh3rt, var(--color-text-body-default-5qid0u, #16191f));
181
+ color: var(--awsui-style-color-default-c5ek4l, var(--color-text-body-default-5qid0u, #16191f));
182
182
  inline-size: 100%;
183
183
  cursor: text;
184
184
  box-sizing: border-box;
185
- background-color: var(--awsui-style-background-default-4hh3rt, var(--color-background-input-default-1z2buq, #ffffff));
185
+ background-color: var(--awsui-style-background-default-c5ek4l, var(--color-background-input-default-1z2buq, #ffffff));
186
186
  border-start-start-radius: var(--border-radius-input-4vr9on, 2px);
187
187
  border-start-end-radius: var(--border-radius-input-4vr9on, 2px);
188
188
  border-end-start-radius: var(--border-radius-input-4vr9on, 2px);
189
189
  border-end-end-radius: var(--border-radius-input-4vr9on, 2px);
190
- border-block: var(--border-width-field-9k1tdz, 1px) solid var(--awsui-style-border-color-default-4hh3rt, var(--color-border-input-default-txli8y, #687078));
191
- border-inline: var(--border-width-field-9k1tdz, 1px) solid var(--awsui-style-border-color-default-4hh3rt, var(--color-border-input-default-txli8y, #687078));
192
- box-shadow: var(--awsui-style-box-shadow-default-4hh3rt);
190
+ border-block: var(--border-width-field-9k1tdz, 1px) solid var(--awsui-style-border-color-default-c5ek4l, var(--color-border-input-default-txli8y, #687078));
191
+ border-inline: var(--border-width-field-9k1tdz, 1px) solid var(--awsui-style-border-color-default-c5ek4l, var(--color-border-input-default-txli8y, #687078));
192
+ box-shadow: var(--awsui-style-box-shadow-default-c5ek4l);
193
193
  font-size: var(--font-size-body-m-vv54cm, 14px);
194
194
  line-height: var(--line-height-body-m-bedeoh, 22px);
195
195
  block-size: var(--size-vertical-input-8gzd1t, 32px);
196
196
  }
197
- .awsui_input_2rhyz_1hgr3_149:not(#\9):hover {
198
- border-color: var(--awsui-style-border-color-hover-4hh3rt, var(--awsui-style-border-color-default-4hh3rt, var(--color-border-input-default-txli8y, #687078)));
199
- color: var(--awsui-style-color-hover-4hh3rt, var(--awsui-style-border-color-default-4hh3rt, var(--color-text-body-default-5qid0u, #16191f)));
200
- background-color: var(--awsui-style-background-hover-4hh3rt, var(--awsui-style-background-default-4hh3rt, var(--color-background-input-default-1z2buq, #ffffff)));
201
- box-shadow: var(--awsui-style-box-shadow-hover-4hh3rt, --awsui-style-box-shadow-default-4hh3rt);
197
+ .awsui_input_2rhyz_1yh0m_149:not(#\9):hover {
198
+ border-color: var(--awsui-style-border-color-hover-c5ek4l, var(--awsui-style-border-color-default-c5ek4l, var(--color-border-input-default-txli8y, #687078)));
199
+ color: var(--awsui-style-color-hover-c5ek4l, var(--awsui-style-border-color-default-c5ek4l, var(--color-text-body-default-5qid0u, #16191f)));
200
+ background-color: var(--awsui-style-background-hover-c5ek4l, var(--awsui-style-background-default-c5ek4l, var(--color-background-input-default-1z2buq, #ffffff)));
201
+ box-shadow: var(--awsui-style-box-shadow-hover-c5ek4l, --awsui-style-box-shadow-default-c5ek4l);
202
202
  }
203
- .awsui_input_2rhyz_1hgr3_149.awsui_input-readonly_2rhyz_1hgr3_203:not(#\9) {
204
- background-color: var(--awsui-style-background-readonly-4hh3rt, var(--awsui-style-background-default-4hh3rt, var(--color-background-input-default-1z2buq, #ffffff)));
205
- border-block: var(--border-width-field-9k1tdz, 1px) solid var(--awsui-style-border-color-readonly-4hh3rt, var(--awsui-style-border-color-default-4hh3rt, var(--color-border-input-disabled-tz38ro, #eaeded)));
206
- border-inline: var(--border-width-field-9k1tdz, 1px) solid var(--awsui-style-border-color-readonly-4hh3rt, var(--awsui-style-border-color-default-4hh3rt, var(--color-border-input-disabled-tz38ro, #eaeded)));
207
- color: var(--awsui-style-color-readonly-4hh3rt, var(--awsui-style-color-default-4hh3rt, var(--color-text-body-default-5qid0u, #16191f)));
208
- box-shadow: var(--awsui-style-box-shadow-readonly-4hh3rt);
203
+ .awsui_input_2rhyz_1yh0m_149.awsui_input-readonly_2rhyz_1yh0m_203:not(#\9) {
204
+ background-color: var(--awsui-style-background-readonly-c5ek4l, var(--awsui-style-background-default-c5ek4l, var(--color-background-input-default-1z2buq, #ffffff)));
205
+ border-block: var(--border-width-field-9k1tdz, 1px) solid var(--awsui-style-border-color-readonly-c5ek4l, var(--awsui-style-border-color-default-c5ek4l, var(--color-border-input-disabled-tz38ro, #eaeded)));
206
+ border-inline: var(--border-width-field-9k1tdz, 1px) solid var(--awsui-style-border-color-readonly-c5ek4l, var(--awsui-style-border-color-default-c5ek4l, var(--color-border-input-disabled-tz38ro, #eaeded)));
207
+ color: var(--awsui-style-color-readonly-c5ek4l, var(--awsui-style-color-default-c5ek4l, var(--color-text-body-default-5qid0u, #16191f)));
208
+ box-shadow: var(--awsui-style-box-shadow-readonly-c5ek4l);
209
209
  }
210
- .awsui_input_2rhyz_1hgr3_149:not(#\9)::-webkit-input-placeholder {
211
- color: var(--awsui-style-placeholder-color-4hh3rt, var(--color-text-input-placeholder-hvcry0, #687078));
212
- font-size: var(--awsui-style-placeholder-font-size-4hh3rt);
213
- font-style: var(--awsui-style-placeholder-font-style-4hh3rt, italic);
214
- font-weight: var(--awsui-style-placeholder-font-weight-4hh3rt);
210
+ .awsui_input_2rhyz_1yh0m_149:not(#\9)::-webkit-input-placeholder {
211
+ color: var(--awsui-style-placeholder-color-c5ek4l, var(--color-text-input-placeholder-hvcry0, #687078));
212
+ font-size: var(--awsui-style-placeholder-font-size-c5ek4l);
213
+ font-style: var(--awsui-style-placeholder-font-style-c5ek4l, italic);
214
+ font-weight: var(--awsui-style-placeholder-font-weight-c5ek4l);
215
215
  -webkit-user-select: none;
216
216
  user-select: none;
217
217
  }
218
- .awsui_input_2rhyz_1hgr3_149:not(#\9)::-moz-placeholder {
219
- color: var(--awsui-style-placeholder-color-4hh3rt, var(--color-text-input-placeholder-hvcry0, #687078));
220
- font-size: var(--awsui-style-placeholder-font-size-4hh3rt);
221
- font-style: var(--awsui-style-placeholder-font-style-4hh3rt, italic);
222
- font-weight: var(--awsui-style-placeholder-font-weight-4hh3rt);
218
+ .awsui_input_2rhyz_1yh0m_149:not(#\9)::-moz-placeholder {
219
+ color: var(--awsui-style-placeholder-color-c5ek4l, var(--color-text-input-placeholder-hvcry0, #687078));
220
+ font-size: var(--awsui-style-placeholder-font-size-c5ek4l);
221
+ font-style: var(--awsui-style-placeholder-font-style-c5ek4l, italic);
222
+ font-weight: var(--awsui-style-placeholder-font-weight-c5ek4l);
223
223
  opacity: 1;
224
224
  }
225
- .awsui_input_2rhyz_1hgr3_149:not(#\9):-moz-placeholder {
226
- color: var(--awsui-style-placeholder-color-4hh3rt, var(--color-text-input-placeholder-hvcry0, #687078));
227
- font-size: var(--awsui-style-placeholder-font-size-4hh3rt);
228
- font-style: var(--awsui-style-placeholder-font-style-4hh3rt, italic);
229
- font-weight: var(--awsui-style-placeholder-font-weight-4hh3rt);
225
+ .awsui_input_2rhyz_1yh0m_149:not(#\9):-moz-placeholder {
226
+ color: var(--awsui-style-placeholder-color-c5ek4l, var(--color-text-input-placeholder-hvcry0, #687078));
227
+ font-size: var(--awsui-style-placeholder-font-size-c5ek4l);
228
+ font-style: var(--awsui-style-placeholder-font-style-c5ek4l, italic);
229
+ font-weight: var(--awsui-style-placeholder-font-weight-c5ek4l);
230
230
  opacity: 1;
231
231
  }
232
- .awsui_input_2rhyz_1hgr3_149:not(#\9):focus {
232
+ .awsui_input_2rhyz_1yh0m_149:not(#\9):focus {
233
233
  outline: 2px dotted transparent;
234
- border-block: var(--border-width-field-9k1tdz, 1px) solid var(--awsui-style-border-color-focus-4hh3rt, var(--color-border-input-focused-lslq4r, #0073bb));
235
- border-inline: var(--border-width-field-9k1tdz, 1px) solid var(--awsui-style-border-color-focus-4hh3rt, var(--color-border-input-focused-lslq4r, #0073bb));
234
+ border-block: var(--border-width-field-9k1tdz, 1px) solid var(--awsui-style-border-color-focus-c5ek4l, var(--color-border-input-focused-lslq4r, #0073bb));
235
+ border-inline: var(--border-width-field-9k1tdz, 1px) solid var(--awsui-style-border-color-focus-c5ek4l, var(--color-border-input-focused-lslq4r, #0073bb));
236
236
  border-start-start-radius: var(--border-radius-input-4vr9on, 2px);
237
237
  border-start-end-radius: var(--border-radius-input-4vr9on, 2px);
238
238
  border-end-start-radius: var(--border-radius-input-4vr9on, 2px);
239
239
  border-end-end-radius: var(--border-radius-input-4vr9on, 2px);
240
- box-shadow: var(--awsui-style-box-shadow-focus-4hh3rt, 0 0 0 var(--border-control-focus-ring-shadow-spread-ql2vj7, 1px) var(--color-border-item-focused-r5f6xl, #0073bb));
241
- color: var(--awsui-style-color-focus-4hh3rt, var(--color-text-body-default-5qid0u, #16191f));
242
- background-color: var(--awsui-style-background-focus-4hh3rt, var(--color-background-input-default-1z2buq, #ffffff));
240
+ box-shadow: var(--awsui-style-box-shadow-focus-c5ek4l, 0 0 0 var(--border-control-focus-ring-shadow-spread-ql2vj7, 1px) var(--color-border-item-focused-r5f6xl, #0073bb));
241
+ color: var(--awsui-style-color-focus-c5ek4l, var(--color-text-body-default-5qid0u, #16191f));
242
+ background-color: var(--awsui-style-background-focus-c5ek4l, var(--color-background-input-default-1z2buq, #ffffff));
243
243
  }
244
- .awsui_input_2rhyz_1hgr3_149:not(#\9):disabled {
245
- background-color: var(--awsui-style-background-disabled-4hh3rt, var(--color-background-input-disabled-4vlau3, #eaeded));
246
- border-block: var(--border-width-field-9k1tdz, 1px) solid var(--awsui-style-border-color-disabled-4hh3rt, var(--color-border-input-disabled-tz38ro, #eaeded));
247
- border-inline: var(--border-width-field-9k1tdz, 1px) solid var(--awsui-style-border-color-disabled-4hh3rt, var(--color-border-input-disabled-tz38ro, #eaeded));
248
- color: var(--awsui-style-color-disabled-4hh3rt, var(--color-text-input-disabled-y5t5v9, #879596));
244
+ .awsui_input_2rhyz_1yh0m_149:not(#\9):disabled {
245
+ background-color: var(--awsui-style-background-disabled-c5ek4l, var(--color-background-input-disabled-4vlau3, #eaeded));
246
+ border-block: var(--border-width-field-9k1tdz, 1px) solid var(--awsui-style-border-color-disabled-c5ek4l, var(--color-border-input-disabled-tz38ro, #eaeded));
247
+ border-inline: var(--border-width-field-9k1tdz, 1px) solid var(--awsui-style-border-color-disabled-c5ek4l, var(--color-border-input-disabled-tz38ro, #eaeded));
248
+ color: var(--awsui-style-color-disabled-c5ek4l, var(--color-text-input-disabled-y5t5v9, #879596));
249
249
  cursor: default;
250
- box-shadow: var(--awsui-style-box-shadow-disabled-4hh3rt);
250
+ box-shadow: var(--awsui-style-box-shadow-disabled-c5ek4l);
251
251
  }
252
- .awsui_input_2rhyz_1hgr3_149:not(#\9):disabled::-webkit-input-placeholder {
253
- color: var(--awsui-style-placeholder-color-4hh3rt, var(--color-text-input-placeholder-disabled-x4lauf, #687078));
252
+ .awsui_input_2rhyz_1yh0m_149:not(#\9):disabled::-webkit-input-placeholder {
253
+ color: var(--awsui-style-placeholder-color-c5ek4l, var(--color-text-input-placeholder-disabled-x4lauf, #687078));
254
254
  -webkit-user-select: none;
255
255
  user-select: none;
256
256
  }
257
- .awsui_input_2rhyz_1hgr3_149:not(#\9):disabled::-moz-placeholder {
258
- color: var(--awsui-style-placeholder-color-4hh3rt, var(--color-text-input-placeholder-disabled-x4lauf, #687078));
257
+ .awsui_input_2rhyz_1yh0m_149:not(#\9):disabled::-moz-placeholder {
258
+ color: var(--awsui-style-placeholder-color-c5ek4l, var(--color-text-input-placeholder-disabled-x4lauf, #687078));
259
259
  opacity: 1;
260
260
  }
261
- .awsui_input_2rhyz_1hgr3_149:not(#\9):disabled:-moz-placeholder {
262
- color: var(--awsui-style-placeholder-color-4hh3rt, var(--color-text-input-placeholder-disabled-x4lauf, #687078));
261
+ .awsui_input_2rhyz_1yh0m_149:not(#\9):disabled:-moz-placeholder {
262
+ color: var(--awsui-style-placeholder-color-c5ek4l, var(--color-text-input-placeholder-disabled-x4lauf, #687078));
263
263
  opacity: 1;
264
264
  }
265
- .awsui_input_2rhyz_1hgr3_149:not(#\9):invalid {
265
+ .awsui_input_2rhyz_1yh0m_149:not(#\9):invalid {
266
266
  box-shadow: none;
267
267
  }
268
- .awsui_input_2rhyz_1hgr3_149.awsui_input-invalid_2rhyz_1hgr3_266:not(#\9) {
269
- color: var(--awsui-style-color-default-4hh3rt, var(--color-text-status-error-aknuvu, #d13212));
270
- border-color: var(--awsui-style-border-color-default-4hh3rt, var(--color-text-status-error-aknuvu, #d13212));
268
+ .awsui_input_2rhyz_1yh0m_149.awsui_input-invalid_2rhyz_1yh0m_266:not(#\9) {
269
+ color: var(--awsui-style-color-default-c5ek4l, var(--color-text-status-error-aknuvu, #d13212));
270
+ border-color: var(--awsui-style-border-color-default-c5ek4l, var(--color-text-status-error-aknuvu, #d13212));
271
271
  padding-inline-start: calc(var(--space-field-horizontal-n5peob, 8px) - (var(--border-invalid-width-z5cnpo, 4px) - var(--border-width-field-9k1tdz, 1px)));
272
272
  border-inline-start-width: var(--border-invalid-width-z5cnpo, 4px);
273
273
  }
274
- .awsui_input_2rhyz_1hgr3_149.awsui_input-invalid_2rhyz_1hgr3_266:not(#\9):focus {
275
- box-shadow: var(--awsui-style-box-shadow-focus-4hh3rt, 0 0 0 var(--border-control-invalid-focus-ring-shadow-spread-t0us6n, 1px) var(--color-border-item-focused-r5f6xl, #0073bb));
274
+ .awsui_input_2rhyz_1yh0m_149.awsui_input-invalid_2rhyz_1yh0m_266:not(#\9):focus {
275
+ box-shadow: var(--awsui-style-box-shadow-focus-c5ek4l, 0 0 0 var(--border-control-invalid-focus-ring-shadow-spread-t0us6n, 1px) var(--color-border-item-focused-r5f6xl, #0073bb));
276
276
  }
277
- .awsui_input_2rhyz_1hgr3_149.awsui_input-invalid_2rhyz_1hgr3_266.awsui_input-has-icon-left_2rhyz_1hgr3_275:not(#\9) {
277
+ .awsui_input_2rhyz_1yh0m_149.awsui_input-invalid_2rhyz_1yh0m_266.awsui_input-has-icon-left_2rhyz_1yh0m_275:not(#\9) {
278
278
  padding-inline-start: calc(var(--space-field-icon-offset-ihoxql, 32px) - (var(--border-invalid-width-z5cnpo, 4px) - var(--border-width-field-9k1tdz, 1px)));
279
279
  }
280
- .awsui_input_2rhyz_1hgr3_149.awsui_input-warning_2rhyz_1hgr3_278:not(#\9) {
281
- color: var(--awsui-style-color-default-4hh3rt, var(--color-text-status-warning-9b45qh, #906806));
282
- border-color: var(--awsui-style-border-color-default-4hh3rt, var(--color-text-status-warning-9b45qh, #906806));
280
+ .awsui_input_2rhyz_1yh0m_149.awsui_input-warning_2rhyz_1yh0m_278:not(#\9) {
281
+ color: var(--awsui-style-color-default-c5ek4l, var(--color-text-status-warning-9b45qh, #906806));
282
+ border-color: var(--awsui-style-border-color-default-c5ek4l, var(--color-text-status-warning-9b45qh, #906806));
283
283
  padding-inline-start: calc(var(--space-field-horizontal-n5peob, 8px) - (var(--border-invalid-width-z5cnpo, 4px) - var(--border-width-field-9k1tdz, 1px)));
284
284
  border-inline-start-width: var(--border-invalid-width-z5cnpo, 4px);
285
285
  }
286
- .awsui_input_2rhyz_1hgr3_149.awsui_input-warning_2rhyz_1hgr3_278:not(#\9):focus {
287
- box-shadow: var(--awsui-style-box-shadow-focus-4hh3rt, 0 0 0 var(--border-control-invalid-focus-ring-shadow-spread-t0us6n, 1px) var(--color-border-item-focused-r5f6xl, #0073bb));
286
+ .awsui_input_2rhyz_1yh0m_149.awsui_input-warning_2rhyz_1yh0m_278:not(#\9):focus {
287
+ box-shadow: var(--awsui-style-box-shadow-focus-c5ek4l, 0 0 0 var(--border-control-invalid-focus-ring-shadow-spread-t0us6n, 1px) var(--color-border-item-focused-r5f6xl, #0073bb));
288
288
  }
289
- .awsui_input_2rhyz_1hgr3_149.awsui_input-warning_2rhyz_1hgr3_278.awsui_input-has-icon-left_2rhyz_1hgr3_275:not(#\9) {
289
+ .awsui_input_2rhyz_1yh0m_149.awsui_input-warning_2rhyz_1yh0m_278.awsui_input-has-icon-left_2rhyz_1yh0m_275:not(#\9) {
290
290
  padding-inline-start: calc(var(--space-field-icon-offset-ihoxql, 32px) - (var(--border-invalid-width-z5cnpo, 4px) - var(--border-width-field-9k1tdz, 1px)));
291
291
  }
292
- .awsui_input_2rhyz_1hgr3_149.awsui_input-type-search_2rhyz_1hgr3_290:not(#\9) {
292
+ .awsui_input_2rhyz_1yh0m_149.awsui_input-type-search_2rhyz_1yh0m_290:not(#\9) {
293
293
  box-sizing: border-box;
294
294
  -webkit-appearance: none;
295
295
  }
296
- .awsui_input_2rhyz_1hgr3_149.awsui_input-type-search_2rhyz_1hgr3_290:not(#\9)::-webkit-search-decoration {
296
+ .awsui_input_2rhyz_1yh0m_149.awsui_input-type-search_2rhyz_1yh0m_290:not(#\9)::-webkit-search-decoration {
297
297
  -webkit-appearance: none;
298
298
  }
299
- .awsui_input_2rhyz_1hgr3_149.awsui_input-type-search_2rhyz_1hgr3_290:not(#\9)::-webkit-search-cancel-button {
299
+ .awsui_input_2rhyz_1yh0m_149.awsui_input-type-search_2rhyz_1yh0m_290:not(#\9)::-webkit-search-cancel-button {
300
300
  display: none;
301
301
  }
302
- .awsui_input_2rhyz_1hgr3_149.awsui_input-has-icon-left_2rhyz_1hgr3_275:not(#\9) {
302
+ .awsui_input_2rhyz_1yh0m_149.awsui_input-has-icon-left_2rhyz_1yh0m_275:not(#\9) {
303
303
  padding-inline-start: var(--space-field-icon-offset-ihoxql, 32px);
304
304
  }
305
- .awsui_input_2rhyz_1hgr3_149.awsui_input-has-icon-right_2rhyz_1hgr3_303:not(#\9) {
305
+ .awsui_input_2rhyz_1yh0m_149.awsui_input-has-icon-right_2rhyz_1yh0m_303:not(#\9) {
306
306
  padding-inline-end: var(--space-field-icon-offset-ihoxql, 32px);
307
307
  }
308
- .awsui_input_2rhyz_1hgr3_149.awsui_input-has-no-border-radius_2rhyz_1hgr3_306:not(#\9) {
308
+ .awsui_input_2rhyz_1yh0m_149.awsui_input-has-no-border-radius_2rhyz_1yh0m_306:not(#\9) {
309
309
  border-start-start-radius: var(--border-radius-dropdown-oaxffg, 0px);
310
310
  border-start-end-radius: var(--border-radius-dropdown-oaxffg, 0px);
311
311
  border-end-start-radius: var(--border-radius-dropdown-oaxffg, 0px);
312
312
  border-end-end-radius: var(--border-radius-dropdown-oaxffg, 0px);
313
313
  }
314
314
 
315
- .awsui_input-container_2rhyz_1hgr3_313:not(#\9) {
315
+ .awsui_input-container_2rhyz_1yh0m_313:not(#\9) {
316
316
  display: flex;
317
317
  position: relative;
318
318
  }
319
319
 
320
- .awsui_input-icon-left_2rhyz_1hgr3_318:not(#\9) {
320
+ .awsui_input-icon-left_2rhyz_1yh0m_318:not(#\9) {
321
321
  position: absolute;
322
322
  pointer-events: none;
323
323
  inset-inline-start: var(--space-field-horizontal-n5peob, 8px);
324
324
  inset-block-start: calc(50% - var(--line-height-body-m-bedeoh, 22px) / 2);
325
325
  }
326
326
 
327
- .awsui_input-icon-right_2rhyz_1hgr3_325:not(#\9) {
327
+ .awsui_input-icon-right_2rhyz_1yh0m_325:not(#\9) {
328
328
  position: absolute;
329
329
  inset-block-start: calc(calc(50% - var(--line-height-body-m-bedeoh, 22px) / 2) - var(--space-xxxs-3w1kr2, 2px));
330
330
  inset-inline-end: calc(var(--space-field-horizontal-n5peob, 8px) - var(--space-xxs-jnczic, 4px));
331
331
  }
332
332
 
333
- .awsui_input-button-right_2rhyz_1hgr3_331:not(#\9) {
333
+ .awsui_input-button-right_2rhyz_1yh0m_331:not(#\9) {
334
334
  /* used in test-utils */
335
335
  }
@@ -2,18 +2,18 @@
2
2
  // es-module interop with Babel and Typescript
3
3
  Object.defineProperty(exports, "__esModule", { value: true });
4
4
  module.exports.default = {
5
- "root": "awsui_root_2rhyz_1hgr3_145",
6
- "input": "awsui_input_2rhyz_1hgr3_149",
7
- "input-readonly": "awsui_input-readonly_2rhyz_1hgr3_203",
8
- "input-invalid": "awsui_input-invalid_2rhyz_1hgr3_266",
9
- "input-has-icon-left": "awsui_input-has-icon-left_2rhyz_1hgr3_275",
10
- "input-warning": "awsui_input-warning_2rhyz_1hgr3_278",
11
- "input-type-search": "awsui_input-type-search_2rhyz_1hgr3_290",
12
- "input-has-icon-right": "awsui_input-has-icon-right_2rhyz_1hgr3_303",
13
- "input-has-no-border-radius": "awsui_input-has-no-border-radius_2rhyz_1hgr3_306",
14
- "input-container": "awsui_input-container_2rhyz_1hgr3_313",
15
- "input-icon-left": "awsui_input-icon-left_2rhyz_1hgr3_318",
16
- "input-icon-right": "awsui_input-icon-right_2rhyz_1hgr3_325",
17
- "input-button-right": "awsui_input-button-right_2rhyz_1hgr3_331"
5
+ "root": "awsui_root_2rhyz_1yh0m_145",
6
+ "input": "awsui_input_2rhyz_1yh0m_149",
7
+ "input-readonly": "awsui_input-readonly_2rhyz_1yh0m_203",
8
+ "input-invalid": "awsui_input-invalid_2rhyz_1yh0m_266",
9
+ "input-has-icon-left": "awsui_input-has-icon-left_2rhyz_1yh0m_275",
10
+ "input-warning": "awsui_input-warning_2rhyz_1yh0m_278",
11
+ "input-type-search": "awsui_input-type-search_2rhyz_1yh0m_290",
12
+ "input-has-icon-right": "awsui_input-has-icon-right_2rhyz_1yh0m_303",
13
+ "input-has-no-border-radius": "awsui_input-has-no-border-radius_2rhyz_1yh0m_306",
14
+ "input-container": "awsui_input-container_2rhyz_1yh0m_313",
15
+ "input-icon-left": "awsui_input-icon-left_2rhyz_1yh0m_318",
16
+ "input-icon-right": "awsui_input-icon-right_2rhyz_1yh0m_325",
17
+ "input-button-right": "awsui_input-button-right_2rhyz_1yh0m_331"
18
18
  };
19
19
 
@@ -3813,5 +3813,5 @@ body {
3813
3813
  }
3814
3814
  }
3815
3815
  :root {
3816
- --awsui-version-info-62db9d6a: true;
3816
+ --awsui-version-info-96f8230d: true;
3817
3817
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/internal/components/autosuggest-input/index.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAgE,MAAM,OAAO,CAAC;AAGrF,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AACnE,OAAO,EACL,gBAAgB,EAChB,cAAc,EACd,gBAAgB,EAChB,eAAe,EACf,cAAc,EACd,UAAU,EACX,MAAM,2BAA2B,CAAC;AAEnC,OAAO,EAAE,kBAAkB,EAAgB,MAAM,sBAAsB,CAAC;AACxE,OAAO,EAAE,+BAA+B,EAAuB,MAAM,kCAAkC,CAAC;AACxG,OAAO,EAA8D,yBAAyB,EAAE,MAAM,cAAc,CAAC;AACrH,OAAO,EAAE,0BAA0B,EAAE,MAAM,gCAAgC,CAAC;AAM5E,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAI1D,UAAU,qBACR,SAAQ,kBAAkB,EACxB,cAAc,EACd,gBAAgB,EAChB,cAAc,EACd,eAAe,EACf,+BAA+B,EAC/B,gBAAgB,EAChB,0BAA0B;IAC5B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,wBAAwB,CAAC,EAAE,OAAO,CAAC;IACnC,eAAe,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAClC,cAAc,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACjC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,eAAe,CAAC,EAAE,yBAAyB,CAAC,IAAI,CAAC,CAAC;IAClD,cAAc,CAAC,EAAE,yBAAyB,CAAC,gBAAgB,CAAC,CAAC;IAC7D,gBAAgB,CAAC,EAAE,MAAM,IAAI,CAAC;IAC9B,cAAc,CAAC,EAAE,MAAM,IAAI,CAAC;IAC5B,YAAY,CAAC,EAAE,MAAM,OAAO,CAAC;IAC7B,KAAK,CAAC,EAAE,UAAU,CAAC,OAAO,CAAC,CAAC;CAC7B;AAED,UAAU,4BAA4B;IACpC,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED,MAAM,WAAW,mBAAoB,SAAQ,gBAAgB,CAAC,GAAG;IAC/D,KAAK,CAAC,OAAO,CAAC,EAAE,4BAA4B,GAAG,IAAI,CAAC;IACpD,IAAI,IAAI,IAAI,CAAC;IACb,KAAK,IAAI,IAAI,CAAC;CACf;AAED,QAAA,MAAM,gBAAgB,mGAwRrB,CAAC;AAEF,eAAe,gBAAgB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/internal/components/autosuggest-input/index.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAgE,MAAM,OAAO,CAAC;AAGrF,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AACnE,OAAO,EACL,gBAAgB,EAChB,cAAc,EACd,gBAAgB,EAChB,eAAe,EACf,cAAc,EACd,UAAU,EACX,MAAM,2BAA2B,CAAC;AAEnC,OAAO,EAAE,kBAAkB,EAAgB,MAAM,sBAAsB,CAAC;AAExE,OAAO,EAAE,+BAA+B,EAAuB,MAAM,kCAAkC,CAAC;AACxG,OAAO,EAA8D,yBAAyB,EAAE,MAAM,cAAc,CAAC;AACrH,OAAO,EAAE,0BAA0B,EAAE,MAAM,gCAAgC,CAAC;AAM5E,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAI1D,UAAU,qBACR,SAAQ,kBAAkB,EACxB,cAAc,EACd,gBAAgB,EAChB,cAAc,EACd,eAAe,EACf,+BAA+B,EAC/B,gBAAgB,EAChB,0BAA0B;IAC5B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,wBAAwB,CAAC,EAAE,OAAO,CAAC;IACnC,eAAe,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAClC,cAAc,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACjC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,eAAe,CAAC,EAAE,yBAAyB,CAAC,IAAI,CAAC,CAAC;IAClD,cAAc,CAAC,EAAE,yBAAyB,CAAC,gBAAgB,CAAC,CAAC;IAC7D,gBAAgB,CAAC,EAAE,MAAM,IAAI,CAAC;IAC9B,cAAc,CAAC,EAAE,MAAM,IAAI,CAAC;IAC5B,YAAY,CAAC,EAAE,MAAM,OAAO,CAAC;IAC7B,KAAK,CAAC,EAAE,UAAU,CAAC,OAAO,CAAC,CAAC;CAC7B;AAED,UAAU,4BAA4B;IACpC,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED,MAAM,WAAW,mBAAoB,SAAQ,gBAAgB,CAAC,GAAG;IAC/D,KAAK,CAAC,OAAO,CAAC,EAAE,4BAA4B,GAAG,IAAI,CAAC;IACpD,IAAI,IAAI,IAAI,CAAC;IACb,KAAK,IAAI,IAAI,CAAC;CACf;AAED,QAAA,MAAM,gBAAgB,mGAuRrB,CAAC;AAEF,eAAe,gBAAgB,CAAC"}
@@ -4,6 +4,7 @@ import React, { useEffect, useImperativeHandle, useRef, useState } from 'react';
4
4
  import clsx from 'clsx';
5
5
  import InternalInput from '../../../input/internal';
6
6
  import { getBaseProps } from '../../base-component';
7
+ import { getBreakpointValue } from '../../breakpoints';
7
8
  import { useFormFieldContext } from '../../context/form-field-context';
8
9
  import { fireCancelableEvent, fireNonCancelableEvent } from '../../events';
9
10
  import { useIMEComposition } from '../../hooks/use-ime-composition';
@@ -180,7 +181,7 @@ const AutosuggestInput = React.forwardRef(({ value, onChange, onBlur, onFocus, o
180
181
  }
181
182
  };
182
183
  return (React.createElement("div", { ...baseProps, className: clsx(baseProps.className, styles.root), ref: __internalRootRef },
183
- React.createElement(Dropdown, { minWidth: dropdownWidth, stretchWidth: !dropdownWidth, stretchBeyondTriggerWidth: true, contentKey: dropdownContentKey, onFocus: handleFocus, onBlur: handleBlur, trigger: React.createElement(InternalInput, { type: "visualSearch", value: value, onChange: event => handleChange(event.detail.value), __onDelayedInput: event => handleDelayedInput(event.detail.value), onKeyDown: handleKeyDown, onKeyUp: onKeyUp, disabled: disabled, disableBrowserAutocorrect: disableBrowserAutocorrect, readOnly: readOnly, ariaRequired: ariaRequired, clearAriaLabel: clearAriaLabel, ref: inputRef, autoComplete: false, nativeInputAttributes: processAttributes(nativeAttributes, nativeInputAttributes, 'Autosuggest'), __skipNativeAttributesWarnings: Object.keys(nativeAttributes), style: style, ...formFieldContext }), onMouseDown: handleDropdownMouseDown, open: open && (!!dropdownContent || !!dropdownFooter), footer: dropdownFooterRef && (React.createElement("div", { ref: dropdownFooterRef, className: styles['dropdown-footer'], onKeyDown: handleDropdownKeyDown }, open && dropdownFooter ? dropdownFooter : null)), expandToViewport: expandToViewport, loopFocus: loopFocus, content: open && dropdownContent ? (React.createElement("div", { ref: dropdownContentRef, className: styles['dropdown-content'] }, dropdownContent)) : null })));
184
+ React.createElement(Dropdown, { minWidth: dropdownWidth ? dropdownWidth : expandToViewport ? undefined : 'trigger', maxWidth: getBreakpointValue('xxs'), contentKey: dropdownContentKey, onFocus: handleFocus, onBlur: handleBlur, trigger: React.createElement(InternalInput, { type: "visualSearch", value: value, onChange: event => handleChange(event.detail.value), __onDelayedInput: event => handleDelayedInput(event.detail.value), onKeyDown: handleKeyDown, onKeyUp: onKeyUp, disabled: disabled, disableBrowserAutocorrect: disableBrowserAutocorrect, readOnly: readOnly, ariaRequired: ariaRequired, clearAriaLabel: clearAriaLabel, ref: inputRef, autoComplete: false, nativeInputAttributes: processAttributes(nativeAttributes, nativeInputAttributes, 'Autosuggest'), __skipNativeAttributesWarnings: Object.keys(nativeAttributes), style: style, ...formFieldContext }), onMouseDown: handleDropdownMouseDown, open: open && (!!dropdownContent || !!dropdownFooter), footer: dropdownFooterRef && (React.createElement("div", { ref: dropdownFooterRef, className: styles['dropdown-footer'], onKeyDown: handleDropdownKeyDown }, open && dropdownFooter ? dropdownFooter : null)), expandToViewport: expandToViewport, loopFocus: loopFocus, content: open && dropdownContent ? (React.createElement("div", { ref: dropdownContentRef, className: styles['dropdown-content'] }, dropdownContent)) : null })));
184
185
  });
185
186
  export default AutosuggestInput;
186
187
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/internal/components/autosuggest-input/index.tsx"],"names":[],"mappings":"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","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nimport React, { Ref, useEffect, useImperativeHandle, useRef, useState } from 'react';\nimport clsx from 'clsx';\n\nimport { AutosuggestProps } from '../../../autosuggest/interfaces';\nimport {\n BaseChangeDetail,\n BaseInputProps,\n InputAutoCorrect,\n InputClearLabel,\n InputKeyEvents,\n InputProps,\n} from '../../../input/interfaces';\nimport InternalInput from '../../../input/internal';\nimport { BaseComponentProps, getBaseProps } from '../../base-component';\nimport { FormFieldValidationControlProps, useFormFieldContext } from '../../context/form-field-context';\nimport { BaseKeyDetail, fireCancelableEvent, fireNonCancelableEvent, NonCancelableEventHandler } from '../../events';\nimport { InternalBaseComponentProps } from '../../hooks/use-base-component';\nimport { useIMEComposition } from '../../hooks/use-ime-composition';\nimport { KeyCode } from '../../keycode';\nimport { nodeBelongs } from '../../utils/node-belongs';\nimport { processAttributes } from '../../utils/with-native-attributes';\nimport Dropdown from '../dropdown';\nimport { ExpandToViewport } from '../dropdown/interfaces';\n\nimport styles from './styles.css.js';\n\ninterface AutosuggestInputProps\n extends BaseComponentProps,\n BaseInputProps,\n InputAutoCorrect,\n InputKeyEvents,\n InputClearLabel,\n FormFieldValidationControlProps,\n ExpandToViewport,\n InternalBaseComponentProps {\n ariaControls?: string;\n ariaActivedescendant?: string;\n dropdownExpanded?: boolean;\n dropdownContentKey?: string;\n dropdownContentFocusable?: boolean;\n dropdownContent?: React.ReactNode;\n dropdownFooter?: React.ReactNode;\n dropdownWidth?: number;\n loopFocus?: boolean;\n onCloseDropdown?: NonCancelableEventHandler<null>;\n onDelayedInput?: NonCancelableEventHandler<BaseChangeDetail>;\n onPressArrowDown?: () => void;\n onPressArrowUp?: () => void;\n onPressEnter?: () => boolean;\n style?: InputProps['style'];\n}\n\ninterface AutosuggestInputFocusOptions {\n preventDropdown?: boolean;\n}\n\nexport interface AutosuggestInputRef extends AutosuggestProps.Ref {\n focus(options?: AutosuggestInputFocusOptions): void;\n open(): void;\n close(): void;\n}\n\nconst AutosuggestInput = React.forwardRef(\n (\n {\n value,\n onChange,\n onBlur,\n onFocus,\n onKeyUp,\n onKeyDown,\n name,\n placeholder,\n disabled,\n readOnly,\n autoFocus,\n ariaLabel,\n ariaRequired,\n disableBrowserAutocorrect = false,\n expandToViewport,\n ariaControls,\n ariaActivedescendant,\n clearAriaLabel,\n dropdownExpanded = true,\n dropdownContentKey,\n dropdownContentFocusable = false,\n dropdownContent = null,\n dropdownFooter = null,\n dropdownWidth,\n loopFocus,\n nativeInputAttributes,\n onCloseDropdown,\n onDelayedInput,\n onPressArrowDown,\n onPressArrowUp,\n onPressEnter,\n style,\n __internalRootRef,\n ...restProps\n }: AutosuggestInputProps,\n ref: Ref<AutosuggestInputRef>\n ) => {\n const baseProps = getBaseProps(restProps);\n const formFieldContext = useFormFieldContext(restProps);\n\n const inputRef = useRef<HTMLInputElement>(null);\n const dropdownContentRef = useRef<HTMLDivElement>(null);\n const dropdownFooterRef = useRef<HTMLDivElement>(null);\n const preventOpenOnFocusRef = useRef(false);\n const preventCloseOnBlurRef = useRef(false);\n\n const [open, setOpen] = useState(false);\n\n const openDropdown = () => !readOnly && setOpen(true);\n\n const closeDropdown = () => {\n setOpen(false);\n fireNonCancelableEvent(onCloseDropdown, null);\n };\n\n const { isComposing } = useIMEComposition(inputRef);\n\n useImperativeHandle(ref, () => ({\n focus(options?: AutosuggestInputFocusOptions) {\n if (options?.preventDropdown) {\n preventOpenOnFocusRef.current = true;\n }\n inputRef.current?.focus();\n },\n select() {\n inputRef.current?.select();\n },\n open: openDropdown,\n close: closeDropdown,\n }));\n\n const handleBlur = () => {\n if (!preventCloseOnBlurRef.current) {\n closeDropdown();\n fireNonCancelableEvent(onBlur, null);\n }\n };\n\n const handleFocus = () => {\n if (!preventOpenOnFocusRef.current) {\n openDropdown();\n fireNonCancelableEvent(onFocus, null);\n }\n preventOpenOnFocusRef.current = false;\n };\n\n const fireKeydown = (event: CustomEvent<BaseKeyDetail>) => fireCancelableEvent(onKeyDown, event.detail, event);\n\n // Shared ESC key handler logic for both input and dropdown elements\n // When returnFocus is true (from dropdown elements), focus returns to input after closing\n const handleEscapeKey = (returnFocus: boolean) => {\n if (open) {\n closeDropdown();\n if (returnFocus) {\n // Return focus to input when closing from dropdown elements (e.g., recovery button)\n inputRef.current?.focus();\n }\n } else if (value) {\n fireNonCancelableEvent(onChange, { value: '' });\n }\n };\n\n const handleKeyDown = (event: CustomEvent<BaseKeyDetail>) => {\n switch (event.detail.keyCode) {\n case KeyCode.down: {\n onPressArrowDown?.();\n openDropdown();\n event.preventDefault();\n break;\n }\n case KeyCode.up: {\n onPressArrowUp?.();\n openDropdown();\n event.preventDefault();\n break;\n }\n case KeyCode.enter: {\n if (isComposing()) {\n event.preventDefault();\n return;\n }\n\n if (open) {\n if (!onPressEnter?.()) {\n closeDropdown();\n }\n event.preventDefault();\n }\n fireKeydown(event);\n break;\n }\n case KeyCode.escape: {\n // Use shared ESC handler, without focus restoration since ESC came from input\n handleEscapeKey(false);\n if (open || value) {\n event.stopPropagation();\n }\n event.preventDefault();\n fireKeydown(event);\n break;\n }\n default: {\n fireKeydown(event);\n }\n }\n };\n\n const handleChange = (value: string) => {\n openDropdown();\n fireNonCancelableEvent(onChange, { value });\n };\n\n const handleDelayedInput = (value: string) => {\n fireNonCancelableEvent(onDelayedInput, { value });\n };\n\n const handleDropdownMouseDown: React.MouseEventHandler = event => {\n // Prevent currently focused element from losing focus.\n if (!dropdownContentFocusable) {\n event.preventDefault();\n }\n // Prevent closing dropdown on click inside.\n else {\n preventCloseOnBlurRef.current = true;\n requestAnimationFrame(() => {\n preventCloseOnBlurRef.current = false;\n });\n }\n };\n\n const expanded = open && dropdownExpanded;\n const nativeAttributes: BaseInputProps['nativeInputAttributes'] = {\n name,\n placeholder,\n autoFocus,\n onClick: openDropdown,\n role: 'combobox',\n 'aria-autocomplete': 'list',\n 'aria-expanded': expanded,\n 'aria-controls': open ? ariaControls : undefined,\n // 'aria-owns' needed for safari+vo to announce activedescendant content\n 'aria-owns': open ? ariaControls : undefined,\n 'aria-label': ariaLabel,\n 'aria-activedescendant': ariaActivedescendant,\n };\n\n // Closes dropdown when outside click is detected.\n // Similar to the internal dropdown implementation but includes the target as well.\n useEffect(() => {\n if (!open) {\n return;\n }\n\n const clickListener = (event: MouseEvent) => {\n if (\n !nodeBelongs(inputRef.current, event.target) &&\n !nodeBelongs(dropdownContentRef.current, event.target) &&\n !nodeBelongs(dropdownFooterRef.current, event.target)\n ) {\n closeDropdown();\n }\n };\n\n window.addEventListener('mousedown', clickListener);\n\n return () => {\n window.removeEventListener('mousedown', clickListener);\n };\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [open]);\n\n const handleDropdownKeyDown: React.KeyboardEventHandler = event => {\n // Handle ESC key from focusable elements inside the dropdown (e.g., recovery button)\n // but NOT from the input itself (that's handled by handleKeyDown)\n const isFromInput = event.target === inputRef.current || nodeBelongs(inputRef.current, event.target);\n\n if (event.key === 'Escape' && !isFromInput) {\n event.stopPropagation();\n event.preventDefault();\n // Use shared ESC handler with focus restoration since ESC came from dropdown element\n handleEscapeKey(true);\n }\n };\n\n return (\n <div {...baseProps} className={clsx(baseProps.className, styles.root)} ref={__internalRootRef}>\n <Dropdown\n minWidth={dropdownWidth}\n stretchWidth={!dropdownWidth}\n stretchBeyondTriggerWidth={true}\n contentKey={dropdownContentKey}\n onFocus={handleFocus}\n onBlur={handleBlur}\n trigger={\n <InternalInput\n type=\"visualSearch\"\n value={value}\n onChange={event => handleChange(event.detail.value)}\n __onDelayedInput={event => handleDelayedInput(event.detail.value)}\n onKeyDown={handleKeyDown}\n onKeyUp={onKeyUp}\n disabled={disabled}\n disableBrowserAutocorrect={disableBrowserAutocorrect}\n readOnly={readOnly}\n ariaRequired={ariaRequired}\n clearAriaLabel={clearAriaLabel}\n ref={inputRef}\n autoComplete={false}\n nativeInputAttributes={processAttributes(nativeAttributes, nativeInputAttributes, 'Autosuggest')}\n __skipNativeAttributesWarnings={Object.keys(nativeAttributes)}\n style={style}\n {...formFieldContext}\n />\n }\n onMouseDown={handleDropdownMouseDown}\n open={open && (!!dropdownContent || !!dropdownFooter)}\n footer={\n dropdownFooterRef && (\n <div ref={dropdownFooterRef} className={styles['dropdown-footer']} onKeyDown={handleDropdownKeyDown}>\n {open && dropdownFooter ? dropdownFooter : null}\n </div>\n )\n }\n expandToViewport={expandToViewport}\n loopFocus={loopFocus}\n content={\n open && dropdownContent ? (\n <div ref={dropdownContentRef} className={styles['dropdown-content']}>\n {dropdownContent}\n </div>\n ) : null\n }\n />\n </div>\n );\n }\n);\n\nexport default AutosuggestInput;\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/internal/components/autosuggest-input/index.tsx"],"names":[],"mappings":"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","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nimport React, { Ref, useEffect, useImperativeHandle, useRef, useState } from 'react';\nimport clsx from 'clsx';\n\nimport { AutosuggestProps } from '../../../autosuggest/interfaces';\nimport {\n BaseChangeDetail,\n BaseInputProps,\n InputAutoCorrect,\n InputClearLabel,\n InputKeyEvents,\n InputProps,\n} from '../../../input/interfaces';\nimport InternalInput from '../../../input/internal';\nimport { BaseComponentProps, getBaseProps } from '../../base-component';\nimport { getBreakpointValue } from '../../breakpoints';\nimport { FormFieldValidationControlProps, useFormFieldContext } from '../../context/form-field-context';\nimport { BaseKeyDetail, fireCancelableEvent, fireNonCancelableEvent, NonCancelableEventHandler } from '../../events';\nimport { InternalBaseComponentProps } from '../../hooks/use-base-component';\nimport { useIMEComposition } from '../../hooks/use-ime-composition';\nimport { KeyCode } from '../../keycode';\nimport { nodeBelongs } from '../../utils/node-belongs';\nimport { processAttributes } from '../../utils/with-native-attributes';\nimport Dropdown from '../dropdown';\nimport { ExpandToViewport } from '../dropdown/interfaces';\n\nimport styles from './styles.css.js';\n\ninterface AutosuggestInputProps\n extends BaseComponentProps,\n BaseInputProps,\n InputAutoCorrect,\n InputKeyEvents,\n InputClearLabel,\n FormFieldValidationControlProps,\n ExpandToViewport,\n InternalBaseComponentProps {\n ariaControls?: string;\n ariaActivedescendant?: string;\n dropdownExpanded?: boolean;\n dropdownContentKey?: string;\n dropdownContentFocusable?: boolean;\n dropdownContent?: React.ReactNode;\n dropdownFooter?: React.ReactNode;\n dropdownWidth?: number;\n loopFocus?: boolean;\n onCloseDropdown?: NonCancelableEventHandler<null>;\n onDelayedInput?: NonCancelableEventHandler<BaseChangeDetail>;\n onPressArrowDown?: () => void;\n onPressArrowUp?: () => void;\n onPressEnter?: () => boolean;\n style?: InputProps['style'];\n}\n\ninterface AutosuggestInputFocusOptions {\n preventDropdown?: boolean;\n}\n\nexport interface AutosuggestInputRef extends AutosuggestProps.Ref {\n focus(options?: AutosuggestInputFocusOptions): void;\n open(): void;\n close(): void;\n}\n\nconst AutosuggestInput = React.forwardRef(\n (\n {\n value,\n onChange,\n onBlur,\n onFocus,\n onKeyUp,\n onKeyDown,\n name,\n placeholder,\n disabled,\n readOnly,\n autoFocus,\n ariaLabel,\n ariaRequired,\n disableBrowserAutocorrect = false,\n expandToViewport,\n ariaControls,\n ariaActivedescendant,\n clearAriaLabel,\n dropdownExpanded = true,\n dropdownContentKey,\n dropdownContentFocusable = false,\n dropdownContent = null,\n dropdownFooter = null,\n dropdownWidth,\n loopFocus,\n nativeInputAttributes,\n onCloseDropdown,\n onDelayedInput,\n onPressArrowDown,\n onPressArrowUp,\n onPressEnter,\n style,\n __internalRootRef,\n ...restProps\n }: AutosuggestInputProps,\n ref: Ref<AutosuggestInputRef>\n ) => {\n const baseProps = getBaseProps(restProps);\n const formFieldContext = useFormFieldContext(restProps);\n\n const inputRef = useRef<HTMLInputElement>(null);\n const dropdownContentRef = useRef<HTMLDivElement>(null);\n const dropdownFooterRef = useRef<HTMLDivElement>(null);\n const preventOpenOnFocusRef = useRef(false);\n const preventCloseOnBlurRef = useRef(false);\n\n const [open, setOpen] = useState(false);\n\n const openDropdown = () => !readOnly && setOpen(true);\n\n const closeDropdown = () => {\n setOpen(false);\n fireNonCancelableEvent(onCloseDropdown, null);\n };\n\n const { isComposing } = useIMEComposition(inputRef);\n\n useImperativeHandle(ref, () => ({\n focus(options?: AutosuggestInputFocusOptions) {\n if (options?.preventDropdown) {\n preventOpenOnFocusRef.current = true;\n }\n inputRef.current?.focus();\n },\n select() {\n inputRef.current?.select();\n },\n open: openDropdown,\n close: closeDropdown,\n }));\n\n const handleBlur = () => {\n if (!preventCloseOnBlurRef.current) {\n closeDropdown();\n fireNonCancelableEvent(onBlur, null);\n }\n };\n\n const handleFocus = () => {\n if (!preventOpenOnFocusRef.current) {\n openDropdown();\n fireNonCancelableEvent(onFocus, null);\n }\n preventOpenOnFocusRef.current = false;\n };\n\n const fireKeydown = (event: CustomEvent<BaseKeyDetail>) => fireCancelableEvent(onKeyDown, event.detail, event);\n\n // Shared ESC key handler logic for both input and dropdown elements\n // When returnFocus is true (from dropdown elements), focus returns to input after closing\n const handleEscapeKey = (returnFocus: boolean) => {\n if (open) {\n closeDropdown();\n if (returnFocus) {\n // Return focus to input when closing from dropdown elements (e.g., recovery button)\n inputRef.current?.focus();\n }\n } else if (value) {\n fireNonCancelableEvent(onChange, { value: '' });\n }\n };\n\n const handleKeyDown = (event: CustomEvent<BaseKeyDetail>) => {\n switch (event.detail.keyCode) {\n case KeyCode.down: {\n onPressArrowDown?.();\n openDropdown();\n event.preventDefault();\n break;\n }\n case KeyCode.up: {\n onPressArrowUp?.();\n openDropdown();\n event.preventDefault();\n break;\n }\n case KeyCode.enter: {\n if (isComposing()) {\n event.preventDefault();\n return;\n }\n\n if (open) {\n if (!onPressEnter?.()) {\n closeDropdown();\n }\n event.preventDefault();\n }\n fireKeydown(event);\n break;\n }\n case KeyCode.escape: {\n // Use shared ESC handler, without focus restoration since ESC came from input\n handleEscapeKey(false);\n if (open || value) {\n event.stopPropagation();\n }\n event.preventDefault();\n fireKeydown(event);\n break;\n }\n default: {\n fireKeydown(event);\n }\n }\n };\n\n const handleChange = (value: string) => {\n openDropdown();\n fireNonCancelableEvent(onChange, { value });\n };\n\n const handleDelayedInput = (value: string) => {\n fireNonCancelableEvent(onDelayedInput, { value });\n };\n\n const handleDropdownMouseDown: React.MouseEventHandler = event => {\n // Prevent currently focused element from losing focus.\n if (!dropdownContentFocusable) {\n event.preventDefault();\n }\n // Prevent closing dropdown on click inside.\n else {\n preventCloseOnBlurRef.current = true;\n requestAnimationFrame(() => {\n preventCloseOnBlurRef.current = false;\n });\n }\n };\n\n const expanded = open && dropdownExpanded;\n const nativeAttributes: BaseInputProps['nativeInputAttributes'] = {\n name,\n placeholder,\n autoFocus,\n onClick: openDropdown,\n role: 'combobox',\n 'aria-autocomplete': 'list',\n 'aria-expanded': expanded,\n 'aria-controls': open ? ariaControls : undefined,\n // 'aria-owns' needed for safari+vo to announce activedescendant content\n 'aria-owns': open ? ariaControls : undefined,\n 'aria-label': ariaLabel,\n 'aria-activedescendant': ariaActivedescendant,\n };\n\n // Closes dropdown when outside click is detected.\n // Similar to the internal dropdown implementation but includes the target as well.\n useEffect(() => {\n if (!open) {\n return;\n }\n\n const clickListener = (event: MouseEvent) => {\n if (\n !nodeBelongs(inputRef.current, event.target) &&\n !nodeBelongs(dropdownContentRef.current, event.target) &&\n !nodeBelongs(dropdownFooterRef.current, event.target)\n ) {\n closeDropdown();\n }\n };\n\n window.addEventListener('mousedown', clickListener);\n\n return () => {\n window.removeEventListener('mousedown', clickListener);\n };\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [open]);\n\n const handleDropdownKeyDown: React.KeyboardEventHandler = event => {\n // Handle ESC key from focusable elements inside the dropdown (e.g., recovery button)\n // but NOT from the input itself (that's handled by handleKeyDown)\n const isFromInput = event.target === inputRef.current || nodeBelongs(inputRef.current, event.target);\n\n if (event.key === 'Escape' && !isFromInput) {\n event.stopPropagation();\n event.preventDefault();\n // Use shared ESC handler with focus restoration since ESC came from dropdown element\n handleEscapeKey(true);\n }\n };\n\n return (\n <div {...baseProps} className={clsx(baseProps.className, styles.root)} ref={__internalRootRef}>\n <Dropdown\n minWidth={dropdownWidth ? dropdownWidth : expandToViewport ? undefined : 'trigger'}\n maxWidth={getBreakpointValue('xxs')} // AWSUI-19898\n contentKey={dropdownContentKey}\n onFocus={handleFocus}\n onBlur={handleBlur}\n trigger={\n <InternalInput\n type=\"visualSearch\"\n value={value}\n onChange={event => handleChange(event.detail.value)}\n __onDelayedInput={event => handleDelayedInput(event.detail.value)}\n onKeyDown={handleKeyDown}\n onKeyUp={onKeyUp}\n disabled={disabled}\n disableBrowserAutocorrect={disableBrowserAutocorrect}\n readOnly={readOnly}\n ariaRequired={ariaRequired}\n clearAriaLabel={clearAriaLabel}\n ref={inputRef}\n autoComplete={false}\n nativeInputAttributes={processAttributes(nativeAttributes, nativeInputAttributes, 'Autosuggest')}\n __skipNativeAttributesWarnings={Object.keys(nativeAttributes)}\n style={style}\n {...formFieldContext}\n />\n }\n onMouseDown={handleDropdownMouseDown}\n open={open && (!!dropdownContent || !!dropdownFooter)}\n footer={\n dropdownFooterRef && (\n <div ref={dropdownFooterRef} className={styles['dropdown-footer']} onKeyDown={handleDropdownKeyDown}>\n {open && dropdownFooter ? dropdownFooter : null}\n </div>\n )\n }\n expandToViewport={expandToViewport}\n loopFocus={loopFocus}\n content={\n open && dropdownContent ? (\n <div ref={dropdownContentRef} className={styles['dropdown-content']}>\n {dropdownContent}\n </div>\n ) : null\n }\n />\n </div>\n );\n }\n);\n\nexport default AutosuggestInput;\n"]}
@@ -1,35 +1,35 @@
1
1
 
2
2
  import './styles.scoped.css';
3
3
  export default {
4
- "direction-button-wrapper": "awsui_direction-button-wrapper_155yk_f48s3_169",
5
- "direction-button-wrapper-motion-enter": "awsui_direction-button-wrapper-motion-enter_155yk_f48s3_189",
6
- "direction-button-wrapper-motion-entering": "awsui_direction-button-wrapper-motion-entering_155yk_f48s3_189",
7
- "direction-button-wrapper-motion-exit": "awsui_direction-button-wrapper-motion-exit_155yk_f48s3_189",
8
- "direction-button-wrapper-motion-exiting": "awsui_direction-button-wrapper-motion-exiting_155yk_f48s3_189",
9
- "drag-handle-entry": "awsui_drag-handle-entry_155yk_f48s3_1",
10
- "awsui-motion-fade-in": "awsui_awsui-motion-fade-in_155yk_f48s3_1",
11
- "drag-handle-exit": "awsui_drag-handle-exit_155yk_f48s3_1",
12
- "awsui-motion-fade-out-0": "awsui_awsui-motion-fade-out-0_155yk_f48s3_1",
13
- "direction-button-wrapper-block-start": "awsui_direction-button-wrapper-block-start_155yk_f48s3_229",
14
- "direction-button-wrapper-block-end": "awsui_direction-button-wrapper-block-end_155yk_f48s3_233",
15
- "direction-button-wrapper-inline-start": "awsui_direction-button-wrapper-inline-start_155yk_f48s3_237",
16
- "direction-button-wrapper-inline-end": "awsui_direction-button-wrapper-inline-end_155yk_f48s3_248",
17
- "contents": "awsui_contents_155yk_f48s3_259",
18
- "portal-overlay": "awsui_portal-overlay_155yk_f48s3_263",
19
- "portal-overlay-disabled": "awsui_portal-overlay-disabled_155yk_f48s3_271",
20
- "portal-overlay-contents": "awsui_portal-overlay-contents_155yk_f48s3_275",
21
- "drag-handle": "awsui_drag-handle_155yk_f48s3_279",
22
- "direction-button-wrapper-hidden": "awsui_direction-button-wrapper-hidden_155yk_f48s3_292",
23
- "direction-button-wrapper-forced": "awsui_direction-button-wrapper-forced_155yk_f48s3_316",
24
- "direction-button-wrapper-forced-top-0": "awsui_direction-button-wrapper-forced-top-0_155yk_f48s3_320",
25
- "direction-button-wrapper-forced-top-1": "awsui_direction-button-wrapper-forced-top-1_155yk_f48s3_324",
26
- "direction-button-wrapper-forced-top-2": "awsui_direction-button-wrapper-forced-top-2_155yk_f48s3_328",
27
- "direction-button-wrapper-forced-top-3": "awsui_direction-button-wrapper-forced-top-3_155yk_f48s3_332",
28
- "direction-button-wrapper-forced-bottom-0": "awsui_direction-button-wrapper-forced-bottom-0_155yk_f48s3_336",
29
- "direction-button-wrapper-forced-bottom-1": "awsui_direction-button-wrapper-forced-bottom-1_155yk_f48s3_340",
30
- "direction-button-wrapper-forced-bottom-2": "awsui_direction-button-wrapper-forced-bottom-2_155yk_f48s3_344",
31
- "direction-button-wrapper-forced-bottom-3": "awsui_direction-button-wrapper-forced-bottom-3_155yk_f48s3_348",
32
- "direction-button": "awsui_direction-button_155yk_f48s3_169",
33
- "direction-button-disabled": "awsui_direction-button-disabled_155yk_f48s3_371"
4
+ "direction-button-wrapper": "awsui_direction-button-wrapper_155yk_ea0dq_169",
5
+ "direction-button-wrapper-motion-enter": "awsui_direction-button-wrapper-motion-enter_155yk_ea0dq_189",
6
+ "direction-button-wrapper-motion-entering": "awsui_direction-button-wrapper-motion-entering_155yk_ea0dq_189",
7
+ "direction-button-wrapper-motion-exit": "awsui_direction-button-wrapper-motion-exit_155yk_ea0dq_189",
8
+ "direction-button-wrapper-motion-exiting": "awsui_direction-button-wrapper-motion-exiting_155yk_ea0dq_189",
9
+ "drag-handle-entry": "awsui_drag-handle-entry_155yk_ea0dq_1",
10
+ "awsui-motion-fade-in": "awsui_awsui-motion-fade-in_155yk_ea0dq_1",
11
+ "drag-handle-exit": "awsui_drag-handle-exit_155yk_ea0dq_1",
12
+ "awsui-motion-fade-out-0": "awsui_awsui-motion-fade-out-0_155yk_ea0dq_1",
13
+ "direction-button-wrapper-block-start": "awsui_direction-button-wrapper-block-start_155yk_ea0dq_229",
14
+ "direction-button-wrapper-block-end": "awsui_direction-button-wrapper-block-end_155yk_ea0dq_233",
15
+ "direction-button-wrapper-inline-start": "awsui_direction-button-wrapper-inline-start_155yk_ea0dq_237",
16
+ "direction-button-wrapper-inline-end": "awsui_direction-button-wrapper-inline-end_155yk_ea0dq_248",
17
+ "contents": "awsui_contents_155yk_ea0dq_259",
18
+ "portal-overlay": "awsui_portal-overlay_155yk_ea0dq_263",
19
+ "portal-overlay-disabled": "awsui_portal-overlay-disabled_155yk_ea0dq_271",
20
+ "portal-overlay-contents": "awsui_portal-overlay-contents_155yk_ea0dq_275",
21
+ "drag-handle": "awsui_drag-handle_155yk_ea0dq_279",
22
+ "direction-button-wrapper-hidden": "awsui_direction-button-wrapper-hidden_155yk_ea0dq_292",
23
+ "direction-button-wrapper-forced": "awsui_direction-button-wrapper-forced_155yk_ea0dq_316",
24
+ "direction-button-wrapper-forced-top-0": "awsui_direction-button-wrapper-forced-top-0_155yk_ea0dq_320",
25
+ "direction-button-wrapper-forced-top-1": "awsui_direction-button-wrapper-forced-top-1_155yk_ea0dq_324",
26
+ "direction-button-wrapper-forced-top-2": "awsui_direction-button-wrapper-forced-top-2_155yk_ea0dq_328",
27
+ "direction-button-wrapper-forced-top-3": "awsui_direction-button-wrapper-forced-top-3_155yk_ea0dq_332",
28
+ "direction-button-wrapper-forced-bottom-0": "awsui_direction-button-wrapper-forced-bottom-0_155yk_ea0dq_336",
29
+ "direction-button-wrapper-forced-bottom-1": "awsui_direction-button-wrapper-forced-bottom-1_155yk_ea0dq_340",
30
+ "direction-button-wrapper-forced-bottom-2": "awsui_direction-button-wrapper-forced-bottom-2_155yk_ea0dq_344",
31
+ "direction-button-wrapper-forced-bottom-3": "awsui_direction-button-wrapper-forced-bottom-3_155yk_ea0dq_348",
32
+ "direction-button": "awsui_direction-button_155yk_ea0dq_169",
33
+ "direction-button-disabled": "awsui_direction-button-disabled_155yk_ea0dq_371"
34
34
  };
35
35