@cloudscape-design/components 3.0.1269 → 3.0.1271

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 (203) hide show
  1. package/app-layout/visual-refresh-toolbar/state/use-feature-notifications.d.ts.map +1 -1
  2. package/app-layout/visual-refresh-toolbar/state/use-feature-notifications.js +13 -0
  3. package/app-layout/visual-refresh-toolbar/state/use-feature-notifications.js.map +1 -1
  4. package/app-layout/visual-refresh-toolbar/toolbar/index.js +1 -1
  5. package/app-layout/visual-refresh-toolbar/toolbar/index.js.map +1 -1
  6. package/app-layout/visual-refresh-toolbar/toolbar/trigger-button/index.d.ts +1 -1
  7. package/app-layout/visual-refresh-toolbar/toolbar/trigger-button/index.d.ts.map +1 -1
  8. package/app-layout/visual-refresh-toolbar/toolbar/trigger-button/index.js +1 -2
  9. package/app-layout/visual-refresh-toolbar/toolbar/trigger-button/index.js.map +1 -1
  10. package/app-layout/visual-refresh-toolbar/toolbar/trigger-button/styles.css.js +6 -7
  11. package/app-layout/visual-refresh-toolbar/toolbar/trigger-button/styles.scoped.css +20 -26
  12. package/app-layout/visual-refresh-toolbar/toolbar/trigger-button/styles.selectors.js +6 -7
  13. package/button/styles.css.js +22 -22
  14. package/button/styles.scoped.css +78 -78
  15. package/button/styles.selectors.js +22 -22
  16. package/date-input/internal.d.ts.map +1 -1
  17. package/date-input/internal.js +7 -5
  18. package/date-input/internal.js.map +1 -1
  19. package/help-panel/styles.css.js +6 -6
  20. package/help-panel/styles.scoped.css +70 -70
  21. package/help-panel/styles.selectors.js +6 -6
  22. package/i18n/messages/all.all.js +1 -1
  23. package/i18n/messages/all.all.json +1 -1
  24. package/i18n/messages/all.ar.js +1 -1
  25. package/i18n/messages/all.ar.json +1 -1
  26. package/i18n/messages/all.de.js +1 -1
  27. package/i18n/messages/all.de.json +1 -1
  28. package/i18n/messages/all.en-GB.js +1 -1
  29. package/i18n/messages/all.en-GB.json +1 -1
  30. package/i18n/messages/all.en.js +1 -1
  31. package/i18n/messages/all.en.json +1 -1
  32. package/i18n/messages/all.es.js +1 -1
  33. package/i18n/messages/all.es.json +1 -1
  34. package/i18n/messages/all.fr.js +1 -1
  35. package/i18n/messages/all.fr.json +1 -1
  36. package/i18n/messages/all.id.js +1 -1
  37. package/i18n/messages/all.id.json +1 -1
  38. package/i18n/messages/all.it.js +1 -1
  39. package/i18n/messages/all.it.json +1 -1
  40. package/i18n/messages/all.ja.js +1 -1
  41. package/i18n/messages/all.ja.json +1 -1
  42. package/i18n/messages/all.ko.js +1 -1
  43. package/i18n/messages/all.ko.json +1 -1
  44. package/i18n/messages/all.pt-BR.js +1 -1
  45. package/i18n/messages/all.pt-BR.json +1 -1
  46. package/i18n/messages/all.tr.js +1 -1
  47. package/i18n/messages/all.tr.json +1 -1
  48. package/i18n/messages/all.zh-CN.js +1 -1
  49. package/i18n/messages/all.zh-CN.json +1 -1
  50. package/i18n/messages/all.zh-TW.js +1 -1
  51. package/i18n/messages/all.zh-TW.json +1 -1
  52. package/i18n/messages-types.d.ts +18 -0
  53. package/i18n/messages-types.d.ts.map +1 -1
  54. package/i18n/messages-types.js.map +1 -1
  55. package/internal/base-component/styles.scoped.css +63 -4
  56. package/internal/components/token-list/styles.css.js +10 -10
  57. package/internal/components/token-list/styles.scoped.css +25 -25
  58. package/internal/components/token-list/styles.selectors.js +10 -10
  59. package/internal/context/reset-contexts-for-modal.d.ts.map +1 -1
  60. package/internal/context/reset-contexts-for-modal.js +3 -1
  61. package/internal/context/reset-contexts-for-modal.js.map +1 -1
  62. package/internal/context/token-inline-context.d.ts +6 -0
  63. package/internal/context/token-inline-context.d.ts.map +1 -0
  64. package/internal/context/token-inline-context.js +11 -0
  65. package/internal/context/token-inline-context.js.map +1 -0
  66. package/internal/environment.js +2 -2
  67. package/internal/environment.json +2 -2
  68. package/internal/generated/styles/tokens.d.ts +17 -3
  69. package/internal/generated/styles/tokens.js +17 -3
  70. package/internal/generated/theming/index.cjs +417 -9
  71. package/internal/generated/theming/index.cjs.d.ts +189 -0
  72. package/internal/generated/theming/index.d.ts +189 -0
  73. package/internal/generated/theming/index.js +417 -9
  74. package/internal/keycode.d.ts +3 -1
  75. package/internal/keycode.d.ts.map +1 -1
  76. package/internal/keycode.js +5 -0
  77. package/internal/keycode.js.map +1 -1
  78. package/internal/manifest.json +1 -1
  79. package/internal/utils/handle-key.d.ts +22 -1
  80. package/internal/utils/handle-key.d.ts.map +1 -1
  81. package/internal/utils/handle-key.js +62 -4
  82. package/internal/utils/handle-key.js.map +1 -1
  83. package/link/internal.d.ts.map +1 -1
  84. package/link/internal.js +3 -1
  85. package/link/internal.js.map +1 -1
  86. package/link/styles.css.js +21 -20
  87. package/link/styles.scoped.css +83 -80
  88. package/link/styles.selectors.js +21 -20
  89. package/package.json +1 -1
  90. package/popover/internal.d.ts.map +1 -1
  91. package/popover/internal.js +3 -1
  92. package/popover/internal.js.map +1 -1
  93. package/popover/styles.css.js +58 -57
  94. package/popover/styles.scoped.css +92 -89
  95. package/popover/styles.selectors.js +58 -57
  96. package/prompt-input/components/menu-dropdown.d.ts +33 -0
  97. package/prompt-input/components/menu-dropdown.d.ts.map +1 -0
  98. package/prompt-input/components/menu-dropdown.js +48 -0
  99. package/prompt-input/components/menu-dropdown.js.map +1 -0
  100. package/prompt-input/components/textarea-mode.d.ts +15 -0
  101. package/prompt-input/components/textarea-mode.d.ts.map +1 -0
  102. package/prompt-input/components/textarea-mode.js +8 -0
  103. package/prompt-input/components/textarea-mode.js.map +1 -0
  104. package/prompt-input/components/token-mode.d.ts +61 -0
  105. package/prompt-input/components/token-mode.d.ts.map +1 -0
  106. package/prompt-input/components/token-mode.js +37 -0
  107. package/prompt-input/components/token-mode.js.map +1 -0
  108. package/prompt-input/core/caret-controller.d.ts +73 -0
  109. package/prompt-input/core/caret-controller.d.ts.map +1 -0
  110. package/prompt-input/core/caret-controller.js +396 -0
  111. package/prompt-input/core/caret-controller.js.map +1 -0
  112. package/prompt-input/core/caret-spot-utils.d.ts +6 -0
  113. package/prompt-input/core/caret-spot-utils.d.ts.map +1 -0
  114. package/prompt-input/core/caret-spot-utils.js +52 -0
  115. package/prompt-input/core/caret-spot-utils.js.map +1 -0
  116. package/prompt-input/core/caret-utils.d.ts +25 -0
  117. package/prompt-input/core/caret-utils.d.ts.map +1 -0
  118. package/prompt-input/core/caret-utils.js +183 -0
  119. package/prompt-input/core/caret-utils.js.map +1 -0
  120. package/prompt-input/core/constants.d.ts +14 -0
  121. package/prompt-input/core/constants.d.ts.map +1 -0
  122. package/prompt-input/core/constants.js +18 -0
  123. package/prompt-input/core/constants.js.map +1 -0
  124. package/prompt-input/core/dom-utils.d.ts +60 -0
  125. package/prompt-input/core/dom-utils.d.ts.map +1 -0
  126. package/prompt-input/core/dom-utils.js +252 -0
  127. package/prompt-input/core/dom-utils.js.map +1 -0
  128. package/prompt-input/core/event-handlers.d.ts +68 -0
  129. package/prompt-input/core/event-handlers.d.ts.map +1 -0
  130. package/prompt-input/core/event-handlers.js +678 -0
  131. package/prompt-input/core/event-handlers.js.map +1 -0
  132. package/prompt-input/core/menu-state.d.ts +62 -0
  133. package/prompt-input/core/menu-state.d.ts.map +1 -0
  134. package/prompt-input/core/menu-state.js +168 -0
  135. package/prompt-input/core/menu-state.js.map +1 -0
  136. package/prompt-input/core/token-operations.d.ts +21 -0
  137. package/prompt-input/core/token-operations.d.ts.map +1 -0
  138. package/prompt-input/core/token-operations.js +273 -0
  139. package/prompt-input/core/token-operations.js.map +1 -0
  140. package/prompt-input/core/token-renderer.d.ts +26 -0
  141. package/prompt-input/core/token-renderer.d.ts.map +1 -0
  142. package/prompt-input/core/token-renderer.js +230 -0
  143. package/prompt-input/core/token-renderer.js.map +1 -0
  144. package/prompt-input/core/token-utils.d.ts +22 -0
  145. package/prompt-input/core/token-utils.d.ts.map +1 -0
  146. package/prompt-input/core/token-utils.js +262 -0
  147. package/prompt-input/core/token-utils.js.map +1 -0
  148. package/prompt-input/core/trigger-utils.d.ts +18 -0
  149. package/prompt-input/core/trigger-utils.d.ts.map +1 -0
  150. package/prompt-input/core/trigger-utils.js +174 -0
  151. package/prompt-input/core/trigger-utils.js.map +1 -0
  152. package/prompt-input/core/type-guards.d.ts +13 -0
  153. package/prompt-input/core/type-guards.d.ts.map +1 -0
  154. package/prompt-input/core/type-guards.js +36 -0
  155. package/prompt-input/core/type-guards.js.map +1 -0
  156. package/prompt-input/index.d.ts +1 -1
  157. package/prompt-input/index.d.ts.map +1 -1
  158. package/prompt-input/index.js.map +1 -1
  159. package/prompt-input/interfaces.d.ts +356 -7
  160. package/prompt-input/interfaces.d.ts.map +1 -1
  161. package/prompt-input/interfaces.js.map +1 -1
  162. package/prompt-input/internal.d.ts +1 -1
  163. package/prompt-input/internal.d.ts.map +1 -1
  164. package/prompt-input/internal.js +195 -61
  165. package/prompt-input/internal.js.map +1 -1
  166. package/prompt-input/styles.css.js +26 -17
  167. package/prompt-input/styles.scoped.css +152 -39
  168. package/prompt-input/styles.selectors.js +26 -17
  169. package/prompt-input/test-classes/styles.css.js +7 -6
  170. package/prompt-input/test-classes/styles.scoped.css +10 -6
  171. package/prompt-input/test-classes/styles.selectors.js +7 -6
  172. package/prompt-input/tokens/use-shortcuts.d.ts +37 -0
  173. package/prompt-input/tokens/use-shortcuts.d.ts.map +1 -0
  174. package/prompt-input/tokens/use-shortcuts.js +89 -0
  175. package/prompt-input/tokens/use-shortcuts.js.map +1 -0
  176. package/prompt-input/tokens/use-token-mode.d.ts +78 -0
  177. package/prompt-input/tokens/use-token-mode.d.ts.map +1 -0
  178. package/prompt-input/tokens/use-token-mode.js +817 -0
  179. package/prompt-input/tokens/use-token-mode.js.map +1 -0
  180. package/prompt-input/utils/insert-text-content-editable.d.ts +10 -0
  181. package/prompt-input/utils/insert-text-content-editable.d.ts.map +1 -0
  182. package/prompt-input/utils/insert-text-content-editable.js +133 -0
  183. package/prompt-input/utils/insert-text-content-editable.js.map +1 -0
  184. package/tabs/styles.css.js +30 -30
  185. package/tabs/styles.scoped.css +55 -55
  186. package/tabs/styles.selectors.js +30 -30
  187. package/test-utils/dom/hotspot/index.js +1 -2
  188. package/test-utils/dom/hotspot/index.js.map +1 -1
  189. package/test-utils/dom/prompt-input/index.d.ts +53 -1
  190. package/test-utils/dom/prompt-input/index.js +121 -13
  191. package/test-utils/dom/prompt-input/index.js.map +1 -1
  192. package/test-utils/dom/s3-resource-selector/index.js +2 -3
  193. package/test-utils/dom/s3-resource-selector/index.js.map +1 -1
  194. package/test-utils/selectors/hotspot/index.js +1 -2
  195. package/test-utils/selectors/hotspot/index.js.map +1 -1
  196. package/test-utils/selectors/prompt-input/index.d.ts +30 -0
  197. package/test-utils/selectors/prompt-input/index.js +53 -7
  198. package/test-utils/selectors/prompt-input/index.js.map +1 -1
  199. package/test-utils/selectors/s3-resource-selector/index.js +2 -3
  200. package/test-utils/selectors/s3-resource-selector/index.js.map +1 -1
  201. package/token/internal.d.ts.map +1 -1
  202. package/token/internal.js +17 -15
  203. package/token/internal.js.map +1 -1
@@ -2,62 +2,63 @@
2
2
  // es-module interop with Babel and Typescript
3
3
  Object.defineProperty(exports, "__esModule", { value: true });
4
4
  module.exports.default = {
5
- "arrow": "awsui_arrow_xjuzf_45l16_153",
6
- "arrow-outer": "awsui_arrow-outer_xjuzf_45l16_157",
7
- "arrow-inner": "awsui_arrow-inner_xjuzf_45l16_157",
8
- "arrow-position-right-top": "awsui_arrow-position-right-top_xjuzf_45l16_199",
9
- "arrow-position-right-bottom": "awsui_arrow-position-right-bottom_xjuzf_45l16_199",
10
- "arrow-position-left-top": "awsui_arrow-position-left-top_xjuzf_45l16_202",
11
- "arrow-position-left-bottom": "awsui_arrow-position-left-bottom_xjuzf_45l16_202",
12
- "arrow-position-top-center": "awsui_arrow-position-top-center_xjuzf_45l16_205",
13
- "arrow-position-top-right": "awsui_arrow-position-top-right_xjuzf_45l16_205",
14
- "arrow-position-top-left": "awsui_arrow-position-top-left_xjuzf_45l16_205",
15
- "arrow-position-top-responsive": "awsui_arrow-position-top-responsive_xjuzf_45l16_205",
16
- "arrow-position-bottom-center": "awsui_arrow-position-bottom-center_xjuzf_45l16_208",
17
- "arrow-position-bottom-right": "awsui_arrow-position-bottom-right_xjuzf_45l16_208",
18
- "arrow-position-bottom-left": "awsui_arrow-position-bottom-left_xjuzf_45l16_208",
19
- "arrow-position-bottom-responsive": "awsui_arrow-position-bottom-responsive_xjuzf_45l16_208",
20
- "arrow-variant-info": "awsui_arrow-variant-info_xjuzf_45l16_212",
21
- "body": "awsui_body_xjuzf_45l16_227",
22
- "body-overflow-visible": "awsui_body-overflow-visible_xjuzf_45l16_263",
23
- "body-variant-chart": "awsui_body-variant-chart_xjuzf_45l16_266",
24
- "has-dismiss": "awsui_has-dismiss_xjuzf_45l16_271",
25
- "dismiss": "awsui_dismiss_xjuzf_45l16_276",
26
- "dismiss-control": "awsui_dismiss-control_xjuzf_45l16_284",
27
- "header-row": "awsui_header-row_xjuzf_45l16_288",
28
- "header": "awsui_header_xjuzf_45l16_288",
29
- "content": "awsui_content_xjuzf_45l16_317",
30
- "content-overflow-visible": "awsui_content-overflow-visible_xjuzf_45l16_326",
31
- "container": "awsui_container_xjuzf_45l16_338",
32
- "container-arrow-position-bottom-left": "awsui_container-arrow-position-bottom-left_xjuzf_45l16_349",
33
- "container-arrow-position-bottom-center": "awsui_container-arrow-position-bottom-center_xjuzf_45l16_349",
34
- "container-arrow-position-bottom-right": "awsui_container-arrow-position-bottom-right_xjuzf_45l16_349",
35
- "container-arrow-position-top-left": "awsui_container-arrow-position-top-left_xjuzf_45l16_354",
36
- "container-arrow-position-top-center": "awsui_container-arrow-position-top-center_xjuzf_45l16_354",
37
- "container-arrow-position-top-right": "awsui_container-arrow-position-top-right_xjuzf_45l16_354",
38
- "container-arrow-position-right-top": "awsui_container-arrow-position-right-top_xjuzf_45l16_359",
39
- "container-arrow-position-right-bottom": "awsui_container-arrow-position-right-bottom_xjuzf_45l16_359",
40
- "container-arrow-position-left-top": "awsui_container-arrow-position-left-top_xjuzf_45l16_364",
41
- "container-arrow-position-left-bottom": "awsui_container-arrow-position-left-bottom_xjuzf_45l16_364",
42
- "container-body": "awsui_container-body_xjuzf_45l16_370",
43
- "container-body-variant-annotation": "awsui_container-body-variant-annotation_xjuzf_45l16_410",
44
- "container-body-size-small": "awsui_container-body-size-small_xjuzf_45l16_415",
45
- "fixed-width": "awsui_fixed-width_xjuzf_45l16_418",
46
- "container-body-size-medium": "awsui_container-body-size-medium_xjuzf_45l16_422",
47
- "container-body-size-large": "awsui_container-body-size-large_xjuzf_45l16_429",
48
- "container-arrow": "awsui_container-arrow_xjuzf_45l16_349",
49
- "container-arrow-position-top-responsive": "awsui_container-arrow-position-top-responsive_xjuzf_45l16_479",
50
- "awsui-motion-fade-in": "awsui_awsui-motion-fade-in_xjuzf_45l16_1",
51
- "refresh": "awsui_refresh_xjuzf_45l16_537",
52
- "root": "awsui_root_xjuzf_45l16_559",
53
- "no-wrap": "awsui_no-wrap_xjuzf_45l16_591",
54
- "trigger-type-text-inline": "awsui_trigger-type-text-inline_xjuzf_45l16_594",
55
- "overflow-ellipsis": "awsui_overflow-ellipsis_xjuzf_45l16_594",
56
- "trigger-type-text": "awsui_trigger-type-text_xjuzf_45l16_594",
57
- "root-filtering-token": "awsui_root-filtering-token_xjuzf_45l16_616",
58
- "trigger": "awsui_trigger_xjuzf_45l16_594",
59
- "trigger-type-filtering-token": "awsui_trigger-type-filtering-token_xjuzf_45l16_703",
60
- "popover-inline-content": "awsui_popover-inline-content_xjuzf_45l16_707",
61
- "hover-area": "awsui_hover-area_xjuzf_45l16_711"
5
+ "arrow": "awsui_arrow_xjuzf_38kom_153",
6
+ "arrow-outer": "awsui_arrow-outer_xjuzf_38kom_157",
7
+ "arrow-inner": "awsui_arrow-inner_xjuzf_38kom_157",
8
+ "arrow-position-right-top": "awsui_arrow-position-right-top_xjuzf_38kom_199",
9
+ "arrow-position-right-bottom": "awsui_arrow-position-right-bottom_xjuzf_38kom_199",
10
+ "arrow-position-left-top": "awsui_arrow-position-left-top_xjuzf_38kom_202",
11
+ "arrow-position-left-bottom": "awsui_arrow-position-left-bottom_xjuzf_38kom_202",
12
+ "arrow-position-top-center": "awsui_arrow-position-top-center_xjuzf_38kom_205",
13
+ "arrow-position-top-right": "awsui_arrow-position-top-right_xjuzf_38kom_205",
14
+ "arrow-position-top-left": "awsui_arrow-position-top-left_xjuzf_38kom_205",
15
+ "arrow-position-top-responsive": "awsui_arrow-position-top-responsive_xjuzf_38kom_205",
16
+ "arrow-position-bottom-center": "awsui_arrow-position-bottom-center_xjuzf_38kom_208",
17
+ "arrow-position-bottom-right": "awsui_arrow-position-bottom-right_xjuzf_38kom_208",
18
+ "arrow-position-bottom-left": "awsui_arrow-position-bottom-left_xjuzf_38kom_208",
19
+ "arrow-position-bottom-responsive": "awsui_arrow-position-bottom-responsive_xjuzf_38kom_208",
20
+ "arrow-variant-info": "awsui_arrow-variant-info_xjuzf_38kom_212",
21
+ "body": "awsui_body_xjuzf_38kom_227",
22
+ "body-overflow-visible": "awsui_body-overflow-visible_xjuzf_38kom_263",
23
+ "body-variant-chart": "awsui_body-variant-chart_xjuzf_38kom_266",
24
+ "has-dismiss": "awsui_has-dismiss_xjuzf_38kom_271",
25
+ "dismiss": "awsui_dismiss_xjuzf_38kom_276",
26
+ "dismiss-control": "awsui_dismiss-control_xjuzf_38kom_284",
27
+ "header-row": "awsui_header-row_xjuzf_38kom_288",
28
+ "header": "awsui_header_xjuzf_38kom_288",
29
+ "content": "awsui_content_xjuzf_38kom_317",
30
+ "content-overflow-visible": "awsui_content-overflow-visible_xjuzf_38kom_326",
31
+ "container": "awsui_container_xjuzf_38kom_338",
32
+ "container-arrow-position-bottom-left": "awsui_container-arrow-position-bottom-left_xjuzf_38kom_349",
33
+ "container-arrow-position-bottom-center": "awsui_container-arrow-position-bottom-center_xjuzf_38kom_349",
34
+ "container-arrow-position-bottom-right": "awsui_container-arrow-position-bottom-right_xjuzf_38kom_349",
35
+ "container-arrow-position-top-left": "awsui_container-arrow-position-top-left_xjuzf_38kom_354",
36
+ "container-arrow-position-top-center": "awsui_container-arrow-position-top-center_xjuzf_38kom_354",
37
+ "container-arrow-position-top-right": "awsui_container-arrow-position-top-right_xjuzf_38kom_354",
38
+ "container-arrow-position-right-top": "awsui_container-arrow-position-right-top_xjuzf_38kom_359",
39
+ "container-arrow-position-right-bottom": "awsui_container-arrow-position-right-bottom_xjuzf_38kom_359",
40
+ "container-arrow-position-left-top": "awsui_container-arrow-position-left-top_xjuzf_38kom_364",
41
+ "container-arrow-position-left-bottom": "awsui_container-arrow-position-left-bottom_xjuzf_38kom_364",
42
+ "container-body": "awsui_container-body_xjuzf_38kom_370",
43
+ "container-body-variant-annotation": "awsui_container-body-variant-annotation_xjuzf_38kom_410",
44
+ "container-body-size-small": "awsui_container-body-size-small_xjuzf_38kom_415",
45
+ "fixed-width": "awsui_fixed-width_xjuzf_38kom_418",
46
+ "container-body-size-medium": "awsui_container-body-size-medium_xjuzf_38kom_422",
47
+ "container-body-size-large": "awsui_container-body-size-large_xjuzf_38kom_429",
48
+ "container-arrow": "awsui_container-arrow_xjuzf_38kom_349",
49
+ "container-arrow-position-top-responsive": "awsui_container-arrow-position-top-responsive_xjuzf_38kom_479",
50
+ "awsui-motion-fade-in": "awsui_awsui-motion-fade-in_xjuzf_38kom_1",
51
+ "refresh": "awsui_refresh_xjuzf_38kom_537",
52
+ "root": "awsui_root_xjuzf_38kom_559",
53
+ "no-wrap": "awsui_no-wrap_xjuzf_38kom_591",
54
+ "trigger-type-text-inline": "awsui_trigger-type-text-inline_xjuzf_38kom_594",
55
+ "overflow-ellipsis": "awsui_overflow-ellipsis_xjuzf_38kom_594",
56
+ "trigger-type-text": "awsui_trigger-type-text_xjuzf_38kom_594",
57
+ "root-filtering-token": "awsui_root-filtering-token_xjuzf_38kom_616",
58
+ "trigger": "awsui_trigger_xjuzf_38kom_594",
59
+ "in-inline-token": "awsui_in-inline-token_xjuzf_38kom_658",
60
+ "trigger-type-filtering-token": "awsui_trigger-type-filtering-token_xjuzf_38kom_706",
61
+ "popover-inline-content": "awsui_popover-inline-content_xjuzf_38kom_710",
62
+ "hover-area": "awsui_hover-area_xjuzf_38kom_714"
62
63
  };
63
64
 
@@ -0,0 +1,33 @@
1
+ import React from 'react';
2
+ import { MenuItemsHandlers, MenuItemsState } from '../core/menu-state';
3
+ import { PromptInputProps } from '../interfaces';
4
+ /** Props for the menu options list rendered inside the trigger dropdown. */
5
+ interface MenuDropdownProps {
6
+ menu: PromptInputProps.MenuDefinition;
7
+ statusType: PromptInputProps.MenuDefinition['statusType'];
8
+ menuItemsState: MenuItemsState;
9
+ menuItemsHandlers: MenuItemsHandlers;
10
+ highlightedOptionId?: string;
11
+ highlightText: string;
12
+ listId: string;
13
+ controlId: string;
14
+ handleLoadMore: () => void;
15
+ hasDropdownStatus?: boolean;
16
+ listBottom?: React.ReactNode;
17
+ ariaDescribedby?: string;
18
+ }
19
+ export default function MenuDropdown({
20
+ menu,
21
+ statusType,
22
+ menuItemsState,
23
+ menuItemsHandlers,
24
+ highlightedOptionId,
25
+ highlightText,
26
+ listId,
27
+ controlId,
28
+ handleLoadMore,
29
+ hasDropdownStatus,
30
+ listBottom,
31
+ ariaDescribedby
32
+ }: MenuDropdownProps): JSX.Element;
33
+ export {};
@@ -0,0 +1 @@
1
+ {"version":3,"file":"menu-dropdown.d.ts","sourceRoot":"","sources":["../../../../src/prompt-input/components/menu-dropdown.tsx"],"names":[],"mappings":"AAGA,OAAO,KAA4B,MAAM,OAAO,CAAC;AAMjD,OAAO,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACvE,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAEjD,4EAA4E;AAC5E,UAAU,iBAAiB;IACzB,IAAI,EAAE,gBAAgB,CAAC,cAAc,CAAC;IACtC,UAAU,EAAE,gBAAgB,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC;IAC1D,cAAc,EAAE,cAAc,CAAC;IAC/B,iBAAiB,EAAE,iBAAiB,CAAC;IACrC,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,aAAa,EAAE,MAAM,CAAC;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,EAAE,MAAM,IAAI,CAAC;IAC3B,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,UAAU,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC7B,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAQD,MAAM,CAAC,OAAO,UAAU,YAAY,CAAC,EACnC,IAAI,EACJ,UAAU,EACV,cAAc,EACd,iBAAiB,EACjB,mBAAmB,EACnB,aAAa,EACb,MAAM,EACN,SAAS,EACT,cAAc,EACd,iBAAiB,EACjB,UAAU,EACV,eAAe,GAChB,EAAE,iBAAiB,eAmDnB"}
@@ -0,0 +1,48 @@
1
+ // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
2
+ // SPDX-License-Identifier: Apache-2.0
3
+ import React, { useEffect, useRef } from 'react';
4
+ import PlainList from '../../autosuggest/plain-list';
5
+ import VirtualList from '../../autosuggest/virtual-list';
6
+ import InternalLiveRegion from '../../live-region/internal';
7
+ import { useAnnouncement } from '../../select/utils/use-announcement';
8
+ const createMouseEventHandler = (handler) => (itemIndex) => {
9
+ if (itemIndex > -1) {
10
+ handler(itemIndex);
11
+ }
12
+ };
13
+ export default function MenuDropdown({ menu, statusType, menuItemsState, menuItemsHandlers, highlightedOptionId, highlightText, listId, controlId, handleLoadMore, hasDropdownStatus, listBottom, ariaDescribedby, }) {
14
+ const handleMouseUp = createMouseEventHandler(menuItemsHandlers.selectVisibleOptionWithMouse);
15
+ const handleMouseMove = createMouseEventHandler(menuItemsHandlers.highlightVisibleOptionWithMouse);
16
+ const ListComponent = menu.virtualScroll ? VirtualList : PlainList;
17
+ const announcement = useAnnouncement({
18
+ highlightText,
19
+ announceSelected: false,
20
+ highlightedOption: menuItemsState.highlightedOption,
21
+ getParent: option => menuItemsState.getItemGroup(option),
22
+ });
23
+ // Force re-announcement when the filtered items list changes.
24
+ // The screenReaderContent on SelectableItem only works for keyboard
25
+ // navigation (highlight moving between existing items). When filtering
26
+ // replaces the entire list, new items mount already highlighted and
27
+ // the SR doesn't pick up the initial textContent set.
28
+ const liveRegionRef = useRef(null);
29
+ const prevItemsLengthRef = useRef(menuItemsState.items.length);
30
+ useEffect(() => {
31
+ var _a;
32
+ if (menuItemsState.items.length !== prevItemsLengthRef.current && announcement) {
33
+ (_a = liveRegionRef.current) === null || _a === void 0 ? void 0 : _a.reannounce();
34
+ }
35
+ prevItemsLengthRef.current = menuItemsState.items.length;
36
+ }, [menuItemsState.items.length, announcement]);
37
+ return (React.createElement(React.Fragment, null,
38
+ React.createElement(InternalLiveRegion, { ref: liveRegionRef, tagName: "span", hidden: true }, announcement),
39
+ React.createElement(ListComponent, { listBottom: listBottom, handleLoadMore: handleLoadMore, autosuggestItemsState: menuItemsState, highlightText: highlightText, highlightedA11yProps: highlightedOptionId ? { id: highlightedOptionId } : {}, hasDropdownStatus: hasDropdownStatus, menuProps: {
40
+ id: listId,
41
+ ariaLabelledby: controlId,
42
+ onMouseUp: handleMouseUp,
43
+ onMouseMove: handleMouseMove,
44
+ ariaDescribedby,
45
+ statusType: statusType !== null && statusType !== void 0 ? statusType : 'finished',
46
+ }, screenReaderContent: announcement })));
47
+ }
48
+ //# sourceMappingURL=menu-dropdown.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"menu-dropdown.js","sourceRoot":"","sources":["../../../../src/prompt-input/components/menu-dropdown.tsx"],"names":[],"mappings":"AAAA,qEAAqE;AACrE,sCAAsC;AAEtC,OAAO,KAAK,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AAEjD,OAAO,SAAS,MAAM,8BAA8B,CAAC;AACrD,OAAO,WAAW,MAAM,gCAAgC,CAAC;AACzD,OAAO,kBAA6C,MAAM,4BAA4B,CAAC;AACvF,OAAO,EAAE,eAAe,EAAE,MAAM,qCAAqC,CAAC;AAoBtE,MAAM,uBAAuB,GAAG,CAAC,OAAgC,EAAE,EAAE,CAAC,CAAC,SAAiB,EAAE,EAAE;IAC1F,IAAI,SAAS,GAAG,CAAC,CAAC,EAAE,CAAC;QACnB,OAAO,CAAC,SAAS,CAAC,CAAC;IACrB,CAAC;AACH,CAAC,CAAC;AAEF,MAAM,CAAC,OAAO,UAAU,YAAY,CAAC,EACnC,IAAI,EACJ,UAAU,EACV,cAAc,EACd,iBAAiB,EACjB,mBAAmB,EACnB,aAAa,EACb,MAAM,EACN,SAAS,EACT,cAAc,EACd,iBAAiB,EACjB,UAAU,EACV,eAAe,GACG;IAClB,MAAM,aAAa,GAAG,uBAAuB,CAAC,iBAAiB,CAAC,4BAA4B,CAAC,CAAC;IAC9F,MAAM,eAAe,GAAG,uBAAuB,CAAC,iBAAiB,CAAC,+BAA+B,CAAC,CAAC;IAEnG,MAAM,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC;IAEnE,MAAM,YAAY,GAAG,eAAe,CAAC;QACnC,aAAa;QACb,gBAAgB,EAAE,KAAK;QACvB,iBAAiB,EAAE,cAAc,CAAC,iBAAiB;QACnD,SAAS,EAAE,MAAM,CAAC,EAAE,CAAC,cAAc,CAAC,YAAY,CAAC,MAAM,CAAC;KACzD,CAAC,CAAC;IAEH,8DAA8D;IAC9D,oEAAoE;IACpE,uEAAuE;IACvE,oEAAoE;IACpE,sDAAsD;IACtD,MAAM,aAAa,GAAG,MAAM,CAAwB,IAAI,CAAC,CAAC;IAC1D,MAAM,kBAAkB,GAAG,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAC/D,SAAS,CAAC,GAAG,EAAE;;QACb,IAAI,cAAc,CAAC,KAAK,CAAC,MAAM,KAAK,kBAAkB,CAAC,OAAO,IAAI,YAAY,EAAE,CAAC;YAC/E,MAAA,aAAa,CAAC,OAAO,0CAAE,UAAU,EAAE,CAAC;QACtC,CAAC;QACD,kBAAkB,CAAC,OAAO,GAAG,cAAc,CAAC,KAAK,CAAC,MAAM,CAAC;IAC3D,CAAC,EAAE,CAAC,cAAc,CAAC,KAAK,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC,CAAC;IAEhD,OAAO,CACL;QACE,oBAAC,kBAAkB,IAAC,GAAG,EAAE,aAAa,EAAE,OAAO,EAAC,MAAM,EAAC,MAAM,EAAE,IAAI,IAChE,YAAY,CACM;QACrB,oBAAC,aAAa,IACZ,UAAU,EAAE,UAAU,EACtB,cAAc,EAAE,cAAc,EAC9B,qBAAqB,EAAE,cAAc,EACrC,aAAa,EAAE,aAAa,EAC5B,oBAAoB,EAAE,mBAAmB,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,mBAAmB,EAAE,CAAC,CAAC,CAAC,EAAE,EAC5E,iBAAiB,EAAE,iBAAiB,EACpC,SAAS,EAAE;gBACT,EAAE,EAAE,MAAM;gBACV,cAAc,EAAE,SAAS;gBACzB,SAAS,EAAE,aAAa;gBACxB,WAAW,EAAE,eAAe;gBAC5B,eAAe;gBACf,UAAU,EAAE,UAAU,aAAV,UAAU,cAAV,UAAU,GAAI,UAAU;aACrC,EACD,mBAAmB,EAAE,YAAY,GACjC,CACD,CACJ,CAAC;AACJ,CAAC","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nimport React, { useEffect, useRef } from 'react';\n\nimport PlainList from '../../autosuggest/plain-list';\nimport VirtualList from '../../autosuggest/virtual-list';\nimport InternalLiveRegion, { InternalLiveRegionRef } from '../../live-region/internal';\nimport { useAnnouncement } from '../../select/utils/use-announcement';\nimport { MenuItemsHandlers, MenuItemsState } from '../core/menu-state';\nimport { PromptInputProps } from '../interfaces';\n\n/** Props for the menu options list rendered inside the trigger dropdown. */\ninterface MenuDropdownProps {\n menu: PromptInputProps.MenuDefinition;\n statusType: PromptInputProps.MenuDefinition['statusType'];\n menuItemsState: MenuItemsState;\n menuItemsHandlers: MenuItemsHandlers;\n highlightedOptionId?: string;\n highlightText: string;\n listId: string;\n controlId: string;\n handleLoadMore: () => void;\n hasDropdownStatus?: boolean;\n listBottom?: React.ReactNode;\n ariaDescribedby?: string;\n}\n\nconst createMouseEventHandler = (handler: (index: number) => void) => (itemIndex: number) => {\n if (itemIndex > -1) {\n handler(itemIndex);\n }\n};\n\nexport default function MenuDropdown({\n menu,\n statusType,\n menuItemsState,\n menuItemsHandlers,\n highlightedOptionId,\n highlightText,\n listId,\n controlId,\n handleLoadMore,\n hasDropdownStatus,\n listBottom,\n ariaDescribedby,\n}: MenuDropdownProps) {\n const handleMouseUp = createMouseEventHandler(menuItemsHandlers.selectVisibleOptionWithMouse);\n const handleMouseMove = createMouseEventHandler(menuItemsHandlers.highlightVisibleOptionWithMouse);\n\n const ListComponent = menu.virtualScroll ? VirtualList : PlainList;\n\n const announcement = useAnnouncement({\n highlightText,\n announceSelected: false,\n highlightedOption: menuItemsState.highlightedOption,\n getParent: option => menuItemsState.getItemGroup(option),\n });\n\n // Force re-announcement when the filtered items list changes.\n // The screenReaderContent on SelectableItem only works for keyboard\n // navigation (highlight moving between existing items). When filtering\n // replaces the entire list, new items mount already highlighted and\n // the SR doesn't pick up the initial textContent set.\n const liveRegionRef = useRef<InternalLiveRegionRef>(null);\n const prevItemsLengthRef = useRef(menuItemsState.items.length);\n useEffect(() => {\n if (menuItemsState.items.length !== prevItemsLengthRef.current && announcement) {\n liveRegionRef.current?.reannounce();\n }\n prevItemsLengthRef.current = menuItemsState.items.length;\n }, [menuItemsState.items.length, announcement]);\n\n return (\n <>\n <InternalLiveRegion ref={liveRegionRef} tagName=\"span\" hidden={true}>\n {announcement}\n </InternalLiveRegion>\n <ListComponent\n listBottom={listBottom}\n handleLoadMore={handleLoadMore}\n autosuggestItemsState={menuItemsState}\n highlightText={highlightText}\n highlightedA11yProps={highlightedOptionId ? { id: highlightedOptionId } : {}}\n hasDropdownStatus={hasDropdownStatus}\n menuProps={{\n id: listId,\n ariaLabelledby: controlId,\n onMouseUp: handleMouseUp,\n onMouseMove: handleMouseMove,\n ariaDescribedby,\n statusType: statusType ?? 'finished',\n }}\n screenReaderContent={announcement}\n />\n </>\n );\n}\n"]}
@@ -0,0 +1,15 @@
1
+ import React from 'react';
2
+ /** Props for when using standard PromptInput. */
3
+ interface TextareaModeProps {
4
+ textareaRef: React.RefObject<HTMLTextAreaElement>;
5
+ controlId?: string;
6
+ textareaAttributes: React.TextareaHTMLAttributes<HTMLTextAreaElement>;
7
+ nativeTextareaAttributes?: Record<string, any>;
8
+ }
9
+ export default function TextareaMode({
10
+ textareaRef,
11
+ controlId,
12
+ textareaAttributes,
13
+ nativeTextareaAttributes
14
+ }: TextareaModeProps): JSX.Element;
15
+ export {};
@@ -0,0 +1 @@
1
+ {"version":3,"file":"textarea-mode.d.ts","sourceRoot":"","sources":["../../../../src/prompt-input/components/textarea-mode.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,MAAM,OAAO,CAAC;AAI1B,iDAAiD;AACjD,UAAU,iBAAiB;IACzB,WAAW,EAAE,KAAK,CAAC,SAAS,CAAC,mBAAmB,CAAC,CAAC;IAClD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,kBAAkB,EAAE,KAAK,CAAC,sBAAsB,CAAC,mBAAmB,CAAC,CAAC;IACtE,wBAAwB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CAChD;AAED,MAAM,CAAC,OAAO,UAAU,YAAY,CAAC,EACnC,WAAW,EACX,SAAS,EACT,kBAAkB,EAClB,wBAAwB,GACzB,EAAE,iBAAiB,eAWnB"}
@@ -0,0 +1,8 @@
1
+ // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
2
+ // SPDX-License-Identifier: Apache-2.0
3
+ import React from 'react';
4
+ import WithNativeAttributes from '../../internal/utils/with-native-attributes';
5
+ export default function TextareaMode({ textareaRef, controlId, textareaAttributes, nativeTextareaAttributes, }) {
6
+ return (React.createElement(WithNativeAttributes, { ...textareaAttributes, tag: "textarea", componentName: "PromptInput", nativeAttributes: nativeTextareaAttributes, ref: textareaRef, id: controlId }));
7
+ }
8
+ //# sourceMappingURL=textarea-mode.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"textarea-mode.js","sourceRoot":"","sources":["../../../../src/prompt-input/components/textarea-mode.tsx"],"names":[],"mappings":"AAAA,qEAAqE;AACrE,sCAAsC;AAEtC,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,oBAAoB,MAAM,6CAA6C,CAAC;AAU/E,MAAM,CAAC,OAAO,UAAU,YAAY,CAAC,EACnC,WAAW,EACX,SAAS,EACT,kBAAkB,EAClB,wBAAwB,GACN;IAClB,OAAO,CACL,oBAAC,oBAAoB,OACf,kBAAkB,EACtB,GAAG,EAAC,UAAU,EACd,aAAa,EAAC,aAAa,EAC3B,gBAAgB,EAAE,wBAAwB,EAC1C,GAAG,EAAE,WAAW,EAChB,EAAE,EAAE,SAAS,GACb,CACH,CAAC;AACJ,CAAC","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nimport React from 'react';\n\nimport WithNativeAttributes from '../../internal/utils/with-native-attributes';\n\n/** Props for when using standard PromptInput. */\ninterface TextareaModeProps {\n textareaRef: React.RefObject<HTMLTextAreaElement>;\n controlId?: string;\n textareaAttributes: React.TextareaHTMLAttributes<HTMLTextAreaElement>;\n nativeTextareaAttributes?: Record<string, any>;\n}\n\nexport default function TextareaMode({\n textareaRef,\n controlId,\n textareaAttributes,\n nativeTextareaAttributes,\n}: TextareaModeProps) {\n return (\n <WithNativeAttributes\n {...textareaAttributes}\n tag=\"textarea\"\n componentName=\"PromptInput\"\n nativeAttributes={nativeTextareaAttributes}\n ref={textareaRef}\n id={controlId}\n />\n );\n}\n"]}
@@ -0,0 +1,61 @@
1
+ import React from 'react';
2
+ import { DropdownStatusResult } from '../../internal/components/dropdown-status';
3
+ import { MenuItemsHandlers, MenuItemsState } from '../core/menu-state';
4
+ import { PromptInputProps } from '../interfaces';
5
+ /** Props for the token-mode contentEditable input and its associated menu dropdown. */
6
+ interface TokenModeProps {
7
+ /** Ref to the contentEditable div */
8
+ editableElementRef: React.RefObject<HTMLDivElement>;
9
+ /** Ref to the active trigger element, used to anchor the dropdown */
10
+ triggerWrapperRef: React.MutableRefObject<HTMLElement | null>;
11
+ controlId?: string;
12
+ menuListId: string;
13
+ menuFooterControlId: string;
14
+ highlightedMenuOptionId?: string;
15
+ /** When set, renders a hidden input for native form submission */
16
+ name?: string;
17
+ /** Plain text representation of the current tokens */
18
+ plainTextValue: string;
19
+ menuIsOpen: boolean;
20
+ /** True once the trigger element is mounted and ready for dropdown positioning */
21
+ triggerWrapperReady: boolean;
22
+ shouldRenderMenuDropdown: boolean;
23
+ activeMenu: PromptInputProps.MenuDefinition | null;
24
+ activeTriggerToken: PromptInputProps.TriggerToken | null;
25
+ menuFilterText: string;
26
+ menuItemsState: MenuItemsState | null;
27
+ menuItemsHandlers: MenuItemsHandlers | null;
28
+ menuDropdownStatus: DropdownStatusResult | null;
29
+ handleInput: () => void;
30
+ handleLoadMore: () => void;
31
+ /** Spread onto the contentEditable div — includes aria attrs, className, and event handlers */
32
+ editableElementAttributes: React.HTMLAttributes<HTMLDivElement> & {
33
+ 'data-placeholder'?: string;
34
+ };
35
+ i18nStrings?: PromptInputProps['i18nStrings'];
36
+ maxMenuHeight?: number;
37
+ }
38
+ export default function TokenMode({
39
+ editableElementRef,
40
+ triggerWrapperRef,
41
+ controlId,
42
+ menuListId,
43
+ menuFooterControlId,
44
+ highlightedMenuOptionId,
45
+ name,
46
+ plainTextValue,
47
+ menuIsOpen,
48
+ triggerWrapperReady,
49
+ shouldRenderMenuDropdown,
50
+ activeMenu,
51
+ activeTriggerToken,
52
+ menuFilterText,
53
+ menuItemsState,
54
+ menuItemsHandlers,
55
+ menuDropdownStatus,
56
+ maxMenuHeight,
57
+ handleInput,
58
+ handleLoadMore,
59
+ editableElementAttributes
60
+ }: TokenModeProps): JSX.Element;
61
+ export {};
@@ -0,0 +1 @@
1
+ {"version":3,"file":"token-mode.d.ts","sourceRoot":"","sources":["../../../../src/prompt-input/components/token-mode.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,MAAM,OAAO,CAAC;AAK1B,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACvE,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAMjD,uFAAuF;AACvF,UAAU,cAAc;IACtB,qCAAqC;IACrC,kBAAkB,EAAE,KAAK,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;IACpD,qEAAqE;IACrE,iBAAiB,EAAE,KAAK,CAAC,gBAAgB,CAAC,WAAW,GAAG,IAAI,CAAC,CAAC;IAE9D,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,uBAAuB,CAAC,EAAE,MAAM,CAAC;IAEjC,kEAAkE;IAClE,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,sDAAsD;IACtD,cAAc,EAAE,MAAM,CAAC;IACvB,UAAU,EAAE,OAAO,CAAC;IACpB,kFAAkF;IAClF,mBAAmB,EAAE,OAAO,CAAC;IAC7B,wBAAwB,EAAE,OAAO,CAAC;IAElC,UAAU,EAAE,gBAAgB,CAAC,cAAc,GAAG,IAAI,CAAC;IACnD,kBAAkB,EAAE,gBAAgB,CAAC,YAAY,GAAG,IAAI,CAAC;IACzD,cAAc,EAAE,MAAM,CAAC;IACvB,cAAc,EAAE,cAAc,GAAG,IAAI,CAAC;IACtC,iBAAiB,EAAE,iBAAiB,GAAG,IAAI,CAAC;IAC5C,kBAAkB,EAAE,oBAAoB,GAAG,IAAI,CAAC;IAEhD,WAAW,EAAE,MAAM,IAAI,CAAC;IACxB,cAAc,EAAE,MAAM,IAAI,CAAC;IAE3B,+FAA+F;IAC/F,yBAAyB,EAAE,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC,GAAG;QAChE,kBAAkB,CAAC,EAAE,MAAM,CAAC;KAC7B,CAAC;IAEF,WAAW,CAAC,EAAE,gBAAgB,CAAC,aAAa,CAAC,CAAC;IAE9C,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAID,MAAM,CAAC,OAAO,UAAU,SAAS,CAAC,EAChC,kBAAkB,EAClB,iBAAiB,EACjB,SAAS,EACT,UAAU,EACV,mBAAmB,EACnB,uBAAuB,EACvB,IAAI,EACJ,cAAc,EACd,UAAU,EACV,mBAAmB,EACnB,wBAAwB,EACxB,UAAU,EACV,kBAAkB,EAClB,cAAc,EACd,cAAc,EACd,iBAAiB,EACjB,kBAAkB,EAClB,aAAa,EACb,WAAW,EACX,cAAc,EACd,yBAAyB,GAC1B,EAAE,cAAc,eAkGhB"}
@@ -0,0 +1,37 @@
1
+ // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
2
+ // SPDX-License-Identifier: Apache-2.0
3
+ import React from 'react';
4
+ import clsx from 'clsx';
5
+ import Dropdown from '../../dropdown/internal';
6
+ import DropdownFooter from '../../internal/components/dropdown-footer';
7
+ import MenuDropdown from './menu-dropdown';
8
+ import styles from '../styles.css.js';
9
+ import testutilStyles from '../test-classes/styles.css.js';
10
+ const MENU_MIN_WIDTH = 300;
11
+ export default function TokenMode({ editableElementRef, triggerWrapperRef, controlId, menuListId, menuFooterControlId, highlightedMenuOptionId, name, plainTextValue, menuIsOpen, triggerWrapperReady, shouldRenderMenuDropdown, activeMenu, activeTriggerToken, menuFilterText, menuItemsState, menuItemsHandlers, menuDropdownStatus, maxMenuHeight, handleInput, handleLoadMore, editableElementAttributes, }) {
12
+ var _a;
13
+ return (React.createElement(React.Fragment, null,
14
+ name && React.createElement("input", { type: "hidden", name: name, value: plainTextValue }),
15
+ React.createElement("div", { className: styles['editable-wrapper'] },
16
+ React.createElement("div", { id: controlId, ref: editableElementRef, role: "textbox", "aria-multiline": "true", "aria-haspopup": "listbox", "aria-expanded": menuIsOpen && shouldRenderMenuDropdown, contentEditable: !editableElementAttributes['aria-disabled'] && !editableElementAttributes['aria-readonly']
17
+ ? 'true'
18
+ : 'false',
19
+ // React warns when children of a contentEditable element are managed by React.
20
+ // We suppress this because we intentionally manage the DOM directly via token-renderer
21
+ // to avoid React's reconciliation conflicting with browser-native editing behavior.
22
+ suppressContentEditableWarning: true, "aria-controls": menuIsOpen ? menuListId : undefined, "aria-owns": menuIsOpen ? menuListId : undefined, "aria-activedescendant": highlightedMenuOptionId, onInput: handleInput, ...editableElementAttributes, className: clsx(editableElementAttributes.className, testutilStyles['content-editable'], styles['editable-element']) }),
23
+ React.createElement(Dropdown, { minWidth: MENU_MIN_WIDTH, maxHeight: maxMenuHeight, expandToViewport: true, open: !!(shouldRenderMenuDropdown &&
24
+ triggerWrapperReady &&
25
+ menuIsOpen &&
26
+ menuItemsState &&
27
+ (menuItemsState.items.length > 0 || (menuDropdownStatus === null || menuDropdownStatus === void 0 ? void 0 : menuDropdownStatus.content))), trigger: null, triggerRef: triggerWrapperRef, triggerId: activeTriggerToken === null || activeTriggerToken === void 0 ? void 0 : activeTriggerToken.id, contentKey: triggerWrapperReady
28
+ ? `trigger-${activeTriggerToken === null || activeTriggerToken === void 0 ? void 0 : activeTriggerToken.id}-${activeTriggerToken === null || activeTriggerToken === void 0 ? void 0 : activeTriggerToken.triggerChar}-${menuItemsState ? menuItemsState.items.length > 0 : false}`
29
+ : undefined,
30
+ /* istanbul ignore next -- integ test: src/prompt-input/__integ__/prompt-input-token-mode.test.ts > "clicking a menu option inserts reference and retains focus" */
31
+ onMouseDown: event => {
32
+ // Prevent default to stop the dropdown from stealing focus from the contentEditable.
33
+ // Without this, clicking a menu option would blur the input before the selection handler fires.
34
+ event.preventDefault();
35
+ }, footer: (menuDropdownStatus === null || menuDropdownStatus === void 0 ? void 0 : menuDropdownStatus.isSticky) && menuDropdownStatus.content ? (React.createElement(DropdownFooter, { id: menuFooterControlId, content: menuDropdownStatus.content, hasItems: menuItemsState ? menuItemsState.items.length >= 1 : false })) : null, content: React.createElement(React.Fragment, null, shouldRenderMenuDropdown && menuItemsState && menuItemsHandlers && activeMenu && (React.createElement(MenuDropdown, { menu: activeMenu, statusType: (_a = activeMenu.statusType) !== null && _a !== void 0 ? _a : 'finished', menuItemsState: menuItemsState, menuItemsHandlers: menuItemsHandlers, highlightedOptionId: highlightedMenuOptionId, highlightText: menuFilterText, listId: menuListId, controlId: controlId !== null && controlId !== void 0 ? controlId : '', handleLoadMore: handleLoadMore, hasDropdownStatus: (menuDropdownStatus === null || menuDropdownStatus === void 0 ? void 0 : menuDropdownStatus.content) !== null, listBottom: !(menuDropdownStatus === null || menuDropdownStatus === void 0 ? void 0 : menuDropdownStatus.isSticky) && (menuDropdownStatus === null || menuDropdownStatus === void 0 ? void 0 : menuDropdownStatus.content) ? (React.createElement(DropdownFooter, { content: menuDropdownStatus.content, id: menuFooterControlId })) : null, ariaDescribedby: (menuDropdownStatus === null || menuDropdownStatus === void 0 ? void 0 : menuDropdownStatus.content) ? menuFooterControlId : undefined }))) }))));
36
+ }
37
+ //# sourceMappingURL=token-mode.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"token-mode.js","sourceRoot":"","sources":["../../../../src/prompt-input/components/token-mode.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 from 'react';\nimport clsx from 'clsx';\n\nimport Dropdown from '../../dropdown/internal';\nimport DropdownFooter from '../../internal/components/dropdown-footer';\nimport { DropdownStatusResult } from '../../internal/components/dropdown-status';\nimport { MenuItemsHandlers, MenuItemsState } from '../core/menu-state';\nimport { PromptInputProps } from '../interfaces';\nimport MenuDropdown from './menu-dropdown';\n\nimport styles from '../styles.css.js';\nimport testutilStyles from '../test-classes/styles.css.js';\n\n/** Props for the token-mode contentEditable input and its associated menu dropdown. */\ninterface TokenModeProps {\n /** Ref to the contentEditable div */\n editableElementRef: React.RefObject<HTMLDivElement>;\n /** Ref to the active trigger element, used to anchor the dropdown */\n triggerWrapperRef: React.MutableRefObject<HTMLElement | null>;\n\n controlId?: string;\n menuListId: string;\n menuFooterControlId: string;\n highlightedMenuOptionId?: string;\n\n /** When set, renders a hidden input for native form submission */\n name?: string;\n /** Plain text representation of the current tokens */\n plainTextValue: string;\n menuIsOpen: boolean;\n /** True once the trigger element is mounted and ready for dropdown positioning */\n triggerWrapperReady: boolean;\n shouldRenderMenuDropdown: boolean;\n\n activeMenu: PromptInputProps.MenuDefinition | null;\n activeTriggerToken: PromptInputProps.TriggerToken | null;\n menuFilterText: string;\n menuItemsState: MenuItemsState | null;\n menuItemsHandlers: MenuItemsHandlers | null;\n menuDropdownStatus: DropdownStatusResult | null;\n\n handleInput: () => void;\n handleLoadMore: () => void;\n\n /** Spread onto the contentEditable div — includes aria attrs, className, and event handlers */\n editableElementAttributes: React.HTMLAttributes<HTMLDivElement> & {\n 'data-placeholder'?: string;\n };\n\n i18nStrings?: PromptInputProps['i18nStrings'];\n\n maxMenuHeight?: number;\n}\n\nconst MENU_MIN_WIDTH = 300;\n\nexport default function TokenMode({\n editableElementRef,\n triggerWrapperRef,\n controlId,\n menuListId,\n menuFooterControlId,\n highlightedMenuOptionId,\n name,\n plainTextValue,\n menuIsOpen,\n triggerWrapperReady,\n shouldRenderMenuDropdown,\n activeMenu,\n activeTriggerToken,\n menuFilterText,\n menuItemsState,\n menuItemsHandlers,\n menuDropdownStatus,\n maxMenuHeight,\n handleInput,\n handleLoadMore,\n editableElementAttributes,\n}: TokenModeProps) {\n return (\n <>\n {/* Hidden input enables native form submission with the plain text value when a name is provided */}\n {name && <input type=\"hidden\" name={name} value={plainTextValue} />}\n <div className={styles['editable-wrapper']}>\n <div\n id={controlId}\n ref={editableElementRef}\n role=\"textbox\"\n aria-multiline=\"true\"\n aria-haspopup=\"listbox\"\n aria-expanded={menuIsOpen && shouldRenderMenuDropdown}\n contentEditable={\n !editableElementAttributes['aria-disabled'] && !editableElementAttributes['aria-readonly']\n ? 'true'\n : 'false'\n }\n // React warns when children of a contentEditable element are managed by React.\n // We suppress this because we intentionally manage the DOM directly via token-renderer\n // to avoid React's reconciliation conflicting with browser-native editing behavior.\n suppressContentEditableWarning={true}\n aria-controls={menuIsOpen ? menuListId : undefined}\n // aria-owns needed for Safari+VoiceOver to announce activedescendant content\n aria-owns={menuIsOpen ? menuListId : undefined}\n aria-activedescendant={highlightedMenuOptionId}\n onInput={handleInput}\n {...editableElementAttributes}\n className={clsx(\n editableElementAttributes.className,\n testutilStyles['content-editable'],\n styles['editable-element']\n )}\n />\n <Dropdown\n minWidth={MENU_MIN_WIDTH}\n maxHeight={maxMenuHeight}\n expandToViewport={true}\n open={\n !!(\n shouldRenderMenuDropdown &&\n triggerWrapperReady &&\n menuIsOpen &&\n menuItemsState &&\n (menuItemsState.items.length > 0 || menuDropdownStatus?.content)\n )\n }\n trigger={null}\n triggerRef={triggerWrapperRef}\n triggerId={activeTriggerToken?.id}\n contentKey={\n triggerWrapperReady\n ? `trigger-${activeTriggerToken?.id}-${activeTriggerToken?.triggerChar}-${menuItemsState ? menuItemsState.items.length > 0 : false}`\n : undefined\n }\n /* istanbul ignore next -- integ test: src/prompt-input/__integ__/prompt-input-token-mode.test.ts > \"clicking a menu option inserts reference and retains focus\" */\n onMouseDown={event => {\n // Prevent default to stop the dropdown from stealing focus from the contentEditable.\n // Without this, clicking a menu option would blur the input before the selection handler fires.\n event.preventDefault();\n }}\n footer={\n menuDropdownStatus?.isSticky && menuDropdownStatus.content ? (\n <DropdownFooter\n id={menuFooterControlId}\n content={menuDropdownStatus.content}\n hasItems={menuItemsState ? menuItemsState.items.length >= 1 : false}\n />\n ) : null\n }\n content={\n <>\n {shouldRenderMenuDropdown && menuItemsState && menuItemsHandlers && activeMenu && (\n <MenuDropdown\n menu={activeMenu}\n statusType={activeMenu.statusType ?? 'finished'}\n menuItemsState={menuItemsState}\n menuItemsHandlers={menuItemsHandlers}\n highlightedOptionId={highlightedMenuOptionId}\n highlightText={menuFilterText}\n listId={menuListId}\n controlId={controlId ?? ''}\n handleLoadMore={handleLoadMore}\n hasDropdownStatus={menuDropdownStatus?.content !== null}\n listBottom={\n !menuDropdownStatus?.isSticky && menuDropdownStatus?.content ? (\n <DropdownFooter content={menuDropdownStatus.content} id={menuFooterControlId} />\n ) : null\n }\n ariaDescribedby={menuDropdownStatus?.content ? menuFooterControlId : undefined}\n />\n )}\n </>\n }\n />\n </div>\n </>\n );\n}\n"]}
@@ -0,0 +1,73 @@
1
+ import { PromptInputProps } from '../interfaces';
2
+ /** Returns the Selection from the element's owning window, supporting iframe contexts. */
3
+ export declare function getOwnerSelection(element: Node): Selection | null;
4
+ /** Logical lengths for each token type, used for cursor position calculations. */
5
+ export declare const TOKEN_LENGTHS: {
6
+ readonly REFERENCE: 1;
7
+ readonly LINE_BREAK: 1;
8
+ readonly trigger: (filterText: string) => number;
9
+ readonly text: (content: string) => number;
10
+ };
11
+ /** Calculates the logical cursor position after a given token index. */
12
+ export declare function calculateTokenPosition(tokens: readonly PromptInputProps.InputToken[], upToIndex: number): number;
13
+ /** Calculates the total logical length of all tokens. */
14
+ export declare function calculateTotalTokenLength(tokens: readonly PromptInputProps.InputToken[]): number;
15
+ /** A resolved position within the DOM: a node and an offset into it. */
16
+ interface DOMLocation {
17
+ node: Node;
18
+ offset: number;
19
+ }
20
+ /**
21
+ * Manages caret positioning within a contentEditable element.
22
+ * Translates between logical token positions and DOM Range/Selection API.
23
+ */
24
+ export declare class CaretController {
25
+ private element;
26
+ private state;
27
+ constructor(element: HTMLElement);
28
+ private get ownerDoc();
29
+ /**
30
+ * Creates a DOM Range from resolved start/end locations and applies it to the given selection.
31
+ * Returns the created Range for further use (e.g. scroll-into-view checks).
32
+ */
33
+ applyRange(ownerDocument: Document, selection: Selection, startLocation: DOMLocation, endLocation?: DOMLocation): Range;
34
+ /** Returns the logical length of a DOM node based on its token type. */
35
+ private getNodeLength;
36
+ /** Returns the current logical caret position from the DOM selection. */
37
+ getPosition(): number;
38
+ /** Finds the trigger element at the current caret position, if any. */
39
+ findActiveTrigger(): HTMLElement | null;
40
+ /**
41
+ * Sets the caret to a logical position, or creates a selection range if end is provided.
42
+ * Handles smart positioning around atomic reference tokens and scrolls into view.
43
+ * @param start logical start position
44
+ * @param end optional logical end position for range selection
45
+ */
46
+ setPosition(start: number, end?: number): void;
47
+ /** Captures the current caret/selection state for later restoration. */
48
+ capture(): void;
49
+ /** Returns the captured caret start position, or null if no valid capture exists. */
50
+ getSavedPosition(): number | null;
51
+ /** Restores the caret to the previously captured state. */
52
+ restore(offset?: number): void;
53
+ /** Overrides the captured state so the next restore() positions to a calculated location.
54
+ * Currently used only in tests — consider removing if no production use case emerges.
55
+ */
56
+ setCapturedPosition(start: number, end?: number): void;
57
+ /** Selects all content in the element. */
58
+ selectAll(): void;
59
+ /** Positions the caret at the end of a text node. */
60
+ positionAfterText(textNode: Text): void;
61
+ /** Moves the caret forward by a logical offset. */
62
+ moveForward(offset: number): void;
63
+ /** Moves the caret backward by a logical offset, clamped to 0. */
64
+ moveBackward(offset: number): void;
65
+ private calculatePositionFromRange;
66
+ private findDOMLocation;
67
+ /** Resolves a DOM location for a specific child node at the given offset within a paragraph. */
68
+ private resolveChildLocation;
69
+ private findLocationInParagraph;
70
+ private countParagraphContent;
71
+ private countUpToCursor;
72
+ }
73
+ export {};
@@ -0,0 +1 @@
1
+ {"version":3,"file":"caret-controller.d.ts","sourceRoot":"","sources":["../../../../src/prompt-input/core/caret-controller.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAYjD,0FAA0F;AAC1F,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,IAAI,GAAG,SAAS,GAAG,IAAI,CAEjE;AAED,kFAAkF;AAClF,eAAO,MAAM,aAAa;;;mCAGF,MAAM;6BACZ,MAAM;CACd,CAAC;AAEX,wEAAwE;AACxE,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,SAAS,gBAAgB,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAehH;AAED,yDAAyD;AACzD,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,SAAS,gBAAgB,CAAC,UAAU,EAAE,GAAG,MAAM,CAEhG;AAQD,wEAAwE;AACxE,UAAU,WAAW;IACnB,IAAI,EAAE,IAAI,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;;GAGG;AACH,qBAAa,eAAe;IAC1B,OAAO,CAAC,OAAO,CAAc;IAC7B,OAAO,CAAC,KAAK,CAAa;gBAEd,OAAO,EAAE,WAAW;IAKhC,OAAO,KAAK,QAAQ,GAEnB;IAED;;;OAGG;IACH,UAAU,CACR,aAAa,EAAE,QAAQ,EACvB,SAAS,EAAE,SAAS,EACpB,aAAa,EAAE,WAAW,EAC1B,WAAW,CAAC,EAAE,WAAW,GACxB,KAAK;IAeR,wEAAwE;IACxE,OAAO,CAAC,aAAa;IAYrB,yEAAyE;IACzE,WAAW,IAAI,MAAM;IAcrB,uEAAuE;IACvE,iBAAiB,IAAI,WAAW,GAAG,IAAI;IAuCvC;;;;;OAKG;IACH,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,IAAI;IA0B9C,wEAAwE;IACxE,OAAO,IAAI,IAAI;IAmBf,qFAAqF;IACrF,gBAAgB,IAAI,MAAM,GAAG,IAAI;IAIjC,2DAA2D;IAC3D,OAAO,CAAC,MAAM,SAAI,GAAG,IAAI;IAQzB;;OAEG;IACH,mBAAmB,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,IAAI;IAItD,0CAA0C;IAC1C,SAAS,IAAI,IAAI;IA6BjB,qDAAqD;IACrD,iBAAiB,CAAC,QAAQ,EAAE,IAAI,GAAG,IAAI;IAYvC,mDAAmD;IACnD,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAKjC,kEAAkE;IAClE,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAKlC,OAAO,CAAC,0BAA0B;IA4BlC,OAAO,CAAC,eAAe;IA8BvB,gGAAgG;IAChG,OAAO,CAAC,oBAAoB;IAqC5B,OAAO,CAAC,uBAAuB;IAmB/B,OAAO,CAAC,qBAAqB;IAQ7B,OAAO,CAAC,eAAe;CA+DxB"}