@cloudscape-design/components 3.0.840 → 3.0.841

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 (601) hide show
  1. package/annotation-context/annotation/annotation-icon.d.ts +2 -1
  2. package/annotation-context/annotation/annotation-icon.d.ts.map +1 -1
  3. package/annotation-context/annotation/annotation-icon.js.map +1 -1
  4. package/annotation-context/annotation/annotation-popover.d.ts +2 -1
  5. package/annotation-context/annotation/annotation-popover.d.ts.map +1 -1
  6. package/annotation-context/annotation/annotation-popover.js.map +1 -1
  7. package/annotation-context/annotation/annotation-trigger.d.ts +1 -1
  8. package/annotation-context/annotation/annotation-trigger.d.ts.map +1 -1
  9. package/annotation-context/annotation/annotation-trigger.js.map +1 -1
  10. package/annotation-context/annotation/closed-annotation.d.ts +2 -1
  11. package/annotation-context/annotation/closed-annotation.d.ts.map +1 -1
  12. package/annotation-context/annotation/closed-annotation.js.map +1 -1
  13. package/annotation-context/annotation/open-annotation.d.ts +2 -1
  14. package/annotation-context/annotation/open-annotation.d.ts.map +1 -1
  15. package/annotation-context/annotation/open-annotation.js.map +1 -1
  16. package/app-layout/classic.d.ts.map +1 -1
  17. package/app-layout/classic.js +7 -3
  18. package/app-layout/classic.js.map +1 -1
  19. package/app-layout/defaults.d.ts +2 -1
  20. package/app-layout/defaults.d.ts.map +1 -1
  21. package/app-layout/defaults.js.map +1 -1
  22. package/app-layout/split-panel/split-panel-forced-position.d.ts +5 -0
  23. package/app-layout/split-panel/split-panel-forced-position.d.ts.map +1 -0
  24. package/app-layout/split-panel/split-panel-forced-position.js +30 -0
  25. package/app-layout/split-panel/split-panel-forced-position.js.map +1 -0
  26. package/app-layout/utils/use-resize.d.ts +1 -1
  27. package/app-layout/utils/use-resize.d.ts.map +1 -1
  28. package/app-layout/utils/use-resize.js.map +1 -1
  29. package/app-layout/utils/use-split-panel-focus-control.d.ts +2 -1
  30. package/app-layout/utils/use-split-panel-focus-control.d.ts.map +1 -1
  31. package/app-layout/utils/use-split-panel-focus-control.js.map +1 -1
  32. package/app-layout/visual-refresh/context.d.ts.map +1 -1
  33. package/app-layout/visual-refresh/context.js +5 -8
  34. package/app-layout/visual-refresh/context.js.map +1 -1
  35. package/app-layout/visual-refresh/drawers.d.ts +0 -8
  36. package/app-layout/visual-refresh/drawers.d.ts.map +1 -1
  37. package/app-layout/visual-refresh/drawers.js +1 -1
  38. package/app-layout/visual-refresh/drawers.js.map +1 -1
  39. package/app-layout/visual-refresh-toolbar/compute-layout.d.ts.map +1 -1
  40. package/app-layout/visual-refresh-toolbar/compute-layout.js +6 -2
  41. package/app-layout/visual-refresh-toolbar/compute-layout.js.map +1 -1
  42. package/app-layout/visual-refresh-toolbar/drawer/local-drawer.js +1 -1
  43. package/app-layout/visual-refresh-toolbar/drawer/local-drawer.js.map +1 -1
  44. package/app-layout/visual-refresh-toolbar/index.d.ts.map +1 -1
  45. package/app-layout/visual-refresh-toolbar/index.js +32 -2
  46. package/app-layout/visual-refresh-toolbar/index.js.map +1 -1
  47. package/app-layout/visual-refresh-toolbar/split-panel/index.d.ts +1 -1
  48. package/app-layout/visual-refresh-toolbar/split-panel/index.d.ts.map +1 -1
  49. package/app-layout/visual-refresh-toolbar/split-panel/index.js +3 -1
  50. package/app-layout/visual-refresh-toolbar/split-panel/index.js.map +1 -1
  51. package/app-layout/visual-refresh-toolbar/toolbar/drawer-triggers.d.ts.map +1 -1
  52. package/app-layout/visual-refresh-toolbar/toolbar/drawer-triggers.js +3 -5
  53. package/app-layout/visual-refresh-toolbar/toolbar/drawer-triggers.js.map +1 -1
  54. package/app-layout/visual-refresh-toolbar/toolbar/index.d.ts.map +1 -1
  55. package/app-layout/visual-refresh-toolbar/toolbar/index.js +4 -1
  56. package/app-layout/visual-refresh-toolbar/toolbar/index.js.map +1 -1
  57. package/area-chart/elements/area-series.d.ts +1 -1
  58. package/area-chart/elements/area-series.d.ts.map +1 -1
  59. package/area-chart/elements/area-series.js.map +1 -1
  60. package/area-chart/elements/threshold-series.d.ts +1 -1
  61. package/area-chart/elements/threshold-series.d.ts.map +1 -1
  62. package/area-chart/elements/threshold-series.js.map +1 -1
  63. package/attribute-editor/internal.d.ts.map +1 -1
  64. package/attribute-editor/internal.js +5 -1
  65. package/attribute-editor/internal.js.map +1 -1
  66. package/attribute-editor/row.d.ts +2 -1
  67. package/attribute-editor/row.d.ts.map +1 -1
  68. package/attribute-editor/row.js.map +1 -1
  69. package/autosuggest/analytics-metadata/interfaces.d.ts +0 -4
  70. package/autosuggest/analytics-metadata/interfaces.d.ts.map +1 -1
  71. package/autosuggest/analytics-metadata/interfaces.js.map +1 -1
  72. package/autosuggest/autosuggest-option.d.ts +1 -1
  73. package/autosuggest/autosuggest-option.d.ts.map +1 -1
  74. package/autosuggest/autosuggest-option.js.map +1 -1
  75. package/autosuggest/internal.d.ts +1 -1
  76. package/autosuggest/internal.d.ts.map +1 -1
  77. package/autosuggest/internal.js.map +1 -1
  78. package/autosuggest/load-more-controller.d.ts +3 -2
  79. package/autosuggest/load-more-controller.d.ts.map +1 -1
  80. package/autosuggest/load-more-controller.js.map +1 -1
  81. package/autosuggest/options-list.d.ts +2 -1
  82. package/autosuggest/options-list.d.ts.map +1 -1
  83. package/autosuggest/options-list.js.map +1 -1
  84. package/breadcrumb-group/analytics-metadata/interfaces.d.ts +0 -7
  85. package/breadcrumb-group/analytics-metadata/interfaces.d.ts.map +1 -1
  86. package/breadcrumb-group/analytics-metadata/interfaces.js.map +1 -1
  87. package/button-dropdown/interfaces.d.ts +4 -3
  88. package/button-dropdown/interfaces.d.ts.map +1 -1
  89. package/button-dropdown/interfaces.js.map +1 -1
  90. package/button-dropdown/item-element/index.d.ts +0 -7
  91. package/button-dropdown/item-element/index.d.ts.map +1 -1
  92. package/button-dropdown/item-element/index.js.map +1 -1
  93. package/button-dropdown/mobile-expandable-group/mobile-expandable-group.d.ts +1 -1
  94. package/button-dropdown/mobile-expandable-group/mobile-expandable-group.d.ts.map +1 -1
  95. package/button-dropdown/mobile-expandable-group/mobile-expandable-group.js.map +1 -1
  96. package/button-dropdown/tooltip.d.ts +2 -1
  97. package/button-dropdown/tooltip.d.ts.map +1 -1
  98. package/button-dropdown/tooltip.js.map +1 -1
  99. package/button-dropdown/utils/menu-item.d.ts +3 -2
  100. package/button-dropdown/utils/menu-item.d.ts.map +1 -1
  101. package/button-dropdown/utils/menu-item.js.map +1 -1
  102. package/calendar/grid/index.d.ts +2 -1
  103. package/calendar/grid/index.d.ts.map +1 -1
  104. package/calendar/grid/index.js.map +1 -1
  105. package/code-editor/pane.d.ts +2 -1
  106. package/code-editor/pane.d.ts.map +1 -1
  107. package/code-editor/pane.js.map +1 -1
  108. package/collection-preferences/analytics-metadata/interfaces.d.ts +0 -24
  109. package/collection-preferences/analytics-metadata/interfaces.d.ts.map +1 -1
  110. package/collection-preferences/analytics-metadata/interfaces.js.map +1 -1
  111. package/collection-preferences/content-display/content-display-option.d.ts +1 -1
  112. package/collection-preferences/content-display/content-display-option.d.ts.map +1 -1
  113. package/collection-preferences/content-display/content-display-option.js.map +1 -1
  114. package/collection-preferences/content-display/index.d.ts.map +1 -1
  115. package/collection-preferences/content-display/index.js +18 -42
  116. package/collection-preferences/content-display/index.js.map +1 -1
  117. package/collection-preferences/content-display/styles.css.js +12 -13
  118. package/collection-preferences/content-display/styles.scoped.css +15 -44
  119. package/collection-preferences/content-display/styles.selectors.js +12 -13
  120. package/collection-preferences/styles.css.js +38 -39
  121. package/collection-preferences/styles.scoped.css +42 -71
  122. package/collection-preferences/styles.selectors.js +38 -39
  123. package/copy-to-clipboard/internal.d.ts +2 -1
  124. package/copy-to-clipboard/internal.d.ts.map +1 -1
  125. package/copy-to-clipboard/internal.js.map +1 -1
  126. package/date-range-picker/calendar/grids/index.d.ts +2 -1
  127. package/date-range-picker/calendar/grids/index.d.ts.map +1 -1
  128. package/date-range-picker/calendar/grids/index.js.map +1 -1
  129. package/date-range-picker/calendar/grids/monthly-grid.d.ts +2 -1
  130. package/date-range-picker/calendar/grids/monthly-grid.d.ts.map +1 -1
  131. package/date-range-picker/calendar/grids/monthly-grid.js.map +1 -1
  132. package/date-range-picker/calendar/range-inputs.d.ts +1 -1
  133. package/date-range-picker/calendar/range-inputs.d.ts.map +1 -1
  134. package/date-range-picker/calendar/range-inputs.js.map +1 -1
  135. package/date-range-picker/dropdown.d.ts +2 -2
  136. package/date-range-picker/dropdown.d.ts.map +1 -1
  137. package/date-range-picker/dropdown.js +1 -1
  138. package/date-range-picker/dropdown.js.map +1 -1
  139. package/date-range-picker/interfaces.d.ts +2 -1
  140. package/date-range-picker/interfaces.d.ts.map +1 -1
  141. package/date-range-picker/interfaces.js.map +1 -1
  142. package/date-range-picker/relative-range/index.d.ts +2 -1
  143. package/date-range-picker/relative-range/index.d.ts.map +1 -1
  144. package/date-range-picker/relative-range/index.js.map +1 -1
  145. package/drawer/implementation.d.ts +2 -1
  146. package/drawer/implementation.d.ts.map +1 -1
  147. package/drawer/implementation.js.map +1 -1
  148. package/drawer/interfaces.d.ts +2 -1
  149. package/drawer/interfaces.d.ts.map +1 -1
  150. package/drawer/interfaces.js.map +1 -1
  151. package/expandable-section/expandable-section-container.d.ts +2 -1
  152. package/expandable-section/expandable-section-container.d.ts.map +1 -1
  153. package/expandable-section/expandable-section-container.js.map +1 -1
  154. package/expandable-section/expandable-section-header.d.ts +0 -1
  155. package/expandable-section/expandable-section-header.d.ts.map +1 -1
  156. package/expandable-section/expandable-section-header.js +1 -1
  157. package/expandable-section/expandable-section-header.js.map +1 -1
  158. package/expandable-section/internal.d.ts +2 -1
  159. package/expandable-section/internal.d.ts.map +1 -1
  160. package/expandable-section/internal.js.map +1 -1
  161. package/file-token-group/file-token.d.ts +1 -1
  162. package/file-token-group/file-token.d.ts.map +1 -1
  163. package/file-token-group/file-token.js.map +1 -1
  164. package/file-upload/interfaces.d.ts +0 -5
  165. package/file-upload/interfaces.d.ts.map +1 -1
  166. package/file-upload/interfaces.js.map +1 -1
  167. package/flashbar/analytics-metadata/interfaces.d.ts +0 -6
  168. package/flashbar/analytics-metadata/interfaces.d.ts.map +1 -1
  169. package/flashbar/analytics-metadata/interfaces.js.map +1 -1
  170. package/flashbar/collapsible-flashbar.d.ts +0 -1
  171. package/flashbar/collapsible-flashbar.d.ts.map +1 -1
  172. package/flashbar/collapsible-flashbar.js.map +1 -1
  173. package/flashbar/flash.d.ts +2 -1
  174. package/flashbar/flash.d.ts.map +1 -1
  175. package/flashbar/flash.js.map +1 -1
  176. package/flashbar/non-collapsible-flashbar.d.ts +0 -1
  177. package/flashbar/non-collapsible-flashbar.d.ts.map +1 -1
  178. package/flashbar/non-collapsible-flashbar.js.map +1 -1
  179. package/flashbar/utils.d.ts +2 -1
  180. package/flashbar/utils.d.ts.map +1 -1
  181. package/flashbar/utils.js.map +1 -1
  182. package/grid/internal.d.ts +1 -1
  183. package/grid/internal.d.ts.map +1 -1
  184. package/grid/internal.js.map +1 -1
  185. package/help-panel/implementation.d.ts +2 -1
  186. package/help-panel/implementation.d.ts.map +1 -1
  187. package/help-panel/implementation.js.map +1 -1
  188. package/i18n/context.d.ts +1 -1
  189. package/i18n/context.d.ts.map +1 -1
  190. package/i18n/context.js.map +1 -1
  191. package/i18n/testing.d.ts +2 -1
  192. package/i18n/testing.d.ts.map +1 -1
  193. package/i18n/testing.js.map +1 -1
  194. package/internal/analytics/components/analytics-funnel.d.ts +0 -1
  195. package/internal/analytics/components/analytics-funnel.d.ts.map +1 -1
  196. package/internal/analytics/components/analytics-funnel.js +1 -1
  197. package/internal/analytics/components/analytics-funnel.js.map +1 -1
  198. package/internal/analytics/interfaces.d.ts +17 -24
  199. package/internal/analytics/interfaces.d.ts.map +1 -1
  200. package/internal/analytics/interfaces.js.map +1 -1
  201. package/internal/analytics/selectors.d.ts +1 -1
  202. package/internal/analytics/selectors.d.ts.map +1 -1
  203. package/internal/analytics/selectors.js +2 -1
  204. package/internal/analytics/selectors.js.map +1 -1
  205. package/internal/components/autosuggest-input/index.d.ts +2 -2
  206. package/internal/components/autosuggest-input/index.d.ts.map +1 -1
  207. package/internal/components/autosuggest-input/index.js.map +1 -1
  208. package/internal/components/cartesian-chart/highlighted-point.d.ts +1 -1
  209. package/internal/components/cartesian-chart/highlighted-point.d.ts.map +1 -1
  210. package/internal/components/cartesian-chart/highlighted-point.js.map +1 -1
  211. package/internal/components/cartesian-chart/scales.d.ts +4 -5
  212. package/internal/components/cartesian-chart/scales.d.ts.map +1 -1
  213. package/internal/components/cartesian-chart/scales.js +1 -1
  214. package/internal/components/cartesian-chart/scales.js.map +1 -1
  215. package/internal/components/cartesian-chart/vertical-marker.d.ts +1 -1
  216. package/internal/components/cartesian-chart/vertical-marker.d.ts.map +1 -1
  217. package/internal/components/cartesian-chart/vertical-marker.js.map +1 -1
  218. package/internal/components/chart-filter/index.d.ts +1 -1
  219. package/internal/components/chart-filter/index.d.ts.map +1 -1
  220. package/internal/components/chart-filter/index.js.map +1 -1
  221. package/internal/components/chart-legend/index.d.ts +1 -1
  222. package/internal/components/chart-legend/index.d.ts.map +1 -1
  223. package/internal/components/chart-legend/index.js.map +1 -1
  224. package/internal/components/chart-plot/application-controller.d.ts +1 -1
  225. package/internal/components/chart-plot/application-controller.d.ts.map +1 -1
  226. package/internal/components/chart-plot/application-controller.js.map +1 -1
  227. package/internal/components/chart-plot/focus-outline.d.ts +2 -1
  228. package/internal/components/chart-plot/focus-outline.d.ts.map +1 -1
  229. package/internal/components/chart-plot/focus-outline.js.map +1 -1
  230. package/internal/components/chart-plot/index.d.ts +1 -1
  231. package/internal/components/chart-plot/index.d.ts.map +1 -1
  232. package/internal/components/chart-plot/index.js.map +1 -1
  233. package/internal/components/chart-popover/index.d.ts +1 -1
  234. package/internal/components/chart-popover/index.d.ts.map +1 -1
  235. package/internal/components/chart-popover/index.js.map +1 -1
  236. package/internal/components/chart-series-details/index.d.ts +1 -1
  237. package/internal/components/chart-series-details/index.d.ts.map +1 -1
  238. package/internal/components/chart-series-details/index.js.map +1 -1
  239. package/internal/components/checkbox-icon/index.d.ts +1 -10
  240. package/internal/components/checkbox-icon/index.d.ts.map +1 -1
  241. package/internal/components/checkbox-icon/index.js +1 -1
  242. package/internal/components/checkbox-icon/index.js.map +1 -1
  243. package/internal/components/dnd-container/index.d.ts +28 -0
  244. package/internal/components/dnd-container/index.d.ts.map +1 -0
  245. package/internal/components/dnd-container/index.js +67 -0
  246. package/internal/components/dnd-container/index.js.map +1 -0
  247. package/internal/components/dnd-container/interfaces.d.ts +13 -0
  248. package/internal/components/dnd-container/interfaces.d.ts.map +1 -0
  249. package/internal/components/dnd-container/interfaces.js +4 -0
  250. package/internal/components/dnd-container/interfaces.js.map +1 -0
  251. package/internal/components/dnd-container/keyboard-sensor/defaults.d.ts.map +1 -0
  252. package/internal/components/dnd-container/keyboard-sensor/defaults.js.map +1 -0
  253. package/internal/components/dnd-container/keyboard-sensor/index.d.ts.map +1 -0
  254. package/{collection-preferences/content-display → internal/components/dnd-container}/keyboard-sensor/index.js +1 -1
  255. package/internal/components/dnd-container/keyboard-sensor/index.js.map +1 -0
  256. package/internal/components/dnd-container/keyboard-sensor/utilities/events.d.ts +7 -0
  257. package/internal/components/dnd-container/keyboard-sensor/utilities/events.d.ts.map +1 -0
  258. package/{collection-preferences/content-display → internal/components/dnd-container}/keyboard-sensor/utilities/events.js +0 -4
  259. package/internal/components/dnd-container/keyboard-sensor/utilities/events.js.map +1 -0
  260. package/internal/components/dnd-container/keyboard-sensor/utilities/listeners.d.ts.map +1 -0
  261. package/internal/components/dnd-container/keyboard-sensor/utilities/listeners.js.map +1 -0
  262. package/internal/components/dnd-container/keyboard-sensor/utilities/scroll.d.ts +8 -0
  263. package/internal/components/dnd-container/keyboard-sensor/utilities/scroll.d.ts.map +1 -0
  264. package/{collection-preferences/content-display → internal/components/dnd-container}/keyboard-sensor/utilities/scroll.js +2 -2
  265. package/internal/components/dnd-container/keyboard-sensor/utilities/scroll.js.map +1 -0
  266. package/internal/components/dnd-container/styles.css.js +6 -0
  267. package/internal/components/dnd-container/styles.scoped.css +168 -0
  268. package/internal/components/dnd-container/styles.selectors.js +7 -0
  269. package/{collection-preferences/content-display → internal/components/dnd-container}/use-drag-and-drop-reorder.d.ts +2 -4
  270. package/internal/components/dnd-container/use-drag-and-drop-reorder.d.ts.map +1 -0
  271. package/{collection-preferences/content-display → internal/components/dnd-container}/use-drag-and-drop-reorder.js +4 -4
  272. package/internal/components/dnd-container/use-drag-and-drop-reorder.js.map +1 -0
  273. package/internal/components/dnd-container/use-live-announcements.d.ts +11 -0
  274. package/internal/components/dnd-container/use-live-announcements.d.ts.map +1 -0
  275. package/{collection-preferences/content-display → internal/components/dnd-container}/use-live-announcements.js +6 -6
  276. package/internal/components/dnd-container/use-live-announcements.js.map +1 -0
  277. package/internal/components/dropdown/dropdown-fit-handler.d.ts +0 -30
  278. package/internal/components/dropdown/dropdown-fit-handler.d.ts.map +1 -1
  279. package/internal/components/dropdown/dropdown-fit-handler.js +4 -4
  280. package/internal/components/dropdown/dropdown-fit-handler.js.map +1 -1
  281. package/internal/components/focus-lock/utils.d.ts +0 -1
  282. package/internal/components/focus-lock/utils.d.ts.map +1 -1
  283. package/internal/components/focus-lock/utils.js +1 -1
  284. package/internal/components/focus-lock/utils.js.map +1 -1
  285. package/internal/components/masked-input/index.d.ts +1 -2
  286. package/internal/components/masked-input/index.d.ts.map +1 -1
  287. package/internal/components/masked-input/index.js +0 -1
  288. package/internal/components/masked-input/index.js.map +1 -1
  289. package/internal/components/masked-input/utils/mask-format.d.ts +1 -1
  290. package/internal/components/masked-input/utils/mask-format.d.ts.map +1 -1
  291. package/internal/components/masked-input/utils/mask-format.js.map +1 -1
  292. package/internal/components/option/highlight-match.d.ts +2 -1
  293. package/internal/components/option/highlight-match.d.ts.map +1 -1
  294. package/internal/components/option/highlight-match.js.map +1 -1
  295. package/internal/components/option/interfaces.d.ts +3 -2
  296. package/internal/components/option/interfaces.d.ts.map +1 -1
  297. package/internal/components/option/interfaces.js.map +1 -1
  298. package/internal/components/options-list/utils/use-highlight-option.d.ts +2 -1
  299. package/internal/components/options-list/utils/use-highlight-option.d.ts.map +1 -1
  300. package/internal/components/options-list/utils/use-highlight-option.js +2 -2
  301. package/internal/components/options-list/utils/use-highlight-option.js.map +1 -1
  302. package/internal/components/screenreader-only/index.d.ts +2 -1
  303. package/internal/components/screenreader-only/index.d.ts.map +1 -1
  304. package/internal/components/screenreader-only/index.js.map +1 -1
  305. package/internal/components/tab-trap/index.d.ts +2 -1
  306. package/internal/components/tab-trap/index.d.ts.map +1 -1
  307. package/internal/components/tab-trap/index.js.map +1 -1
  308. package/internal/components/transition/index.d.ts +2 -1
  309. package/internal/components/transition/index.d.ts.map +1 -1
  310. package/internal/components/transition/index.js.map +1 -1
  311. package/internal/context/single-tab-stop-navigation-context.d.ts +2 -4
  312. package/internal/context/single-tab-stop-navigation-context.d.ts.map +1 -1
  313. package/internal/context/single-tab-stop-navigation-context.js.map +1 -1
  314. package/internal/context/table-component-context.d.ts +2 -2
  315. package/internal/context/table-component-context.d.ts.map +1 -1
  316. package/internal/context/table-component-context.js +1 -1
  317. package/internal/context/table-component-context.js.map +1 -1
  318. package/internal/environment.js +1 -1
  319. package/internal/environment.json +1 -1
  320. package/internal/hooks/forward-focus/radio-group.d.ts +2 -1
  321. package/internal/hooks/forward-focus/radio-group.d.ts.map +1 -1
  322. package/internal/hooks/forward-focus/radio-group.js.map +1 -1
  323. package/internal/hooks/use-dynamic-overlap/index.d.ts +2 -1
  324. package/internal/hooks/use-dynamic-overlap/index.d.ts.map +1 -1
  325. package/internal/hooks/use-dynamic-overlap/index.js.map +1 -1
  326. package/internal/keycode.d.ts +1 -5
  327. package/internal/keycode.d.ts.map +1 -1
  328. package/internal/keycode.js +0 -4
  329. package/internal/keycode.js.map +1 -1
  330. package/internal/manifest.json +1 -1
  331. package/internal/plugins/controllers/action-buttons.d.ts +1 -1
  332. package/internal/plugins/controllers/action-buttons.d.ts.map +1 -1
  333. package/internal/plugins/controllers/action-buttons.js.map +1 -1
  334. package/internal/plugins/controllers/alert-flash-content.d.ts +3 -3
  335. package/internal/plugins/controllers/alert-flash-content.d.ts.map +1 -1
  336. package/internal/plugins/controllers/alert-flash-content.js.map +1 -1
  337. package/internal/plugins/controllers/app-layout-widget.d.ts +1 -1
  338. package/internal/plugins/controllers/app-layout-widget.d.ts.map +1 -1
  339. package/internal/plugins/controllers/app-layout-widget.js.map +1 -1
  340. package/internal/plugins/controllers/drawers.d.ts +4 -4
  341. package/internal/plugins/controllers/drawers.d.ts.map +1 -1
  342. package/internal/plugins/controllers/drawers.js.map +1 -1
  343. package/internal/utils/handle-key.d.ts +2 -1
  344. package/internal/utils/handle-key.d.ts.map +1 -1
  345. package/internal/utils/handle-key.js.map +1 -1
  346. package/internal/utils/throttle.d.ts +2 -1
  347. package/internal/utils/throttle.d.ts.map +1 -1
  348. package/internal/utils/throttle.js.map +1 -1
  349. package/live-region/internal.d.ts +1 -1
  350. package/live-region/internal.d.ts.map +1 -1
  351. package/live-region/internal.js.map +1 -1
  352. package/mixed-line-bar-chart/bar-groups.d.ts +2 -1
  353. package/mixed-line-bar-chart/bar-groups.d.ts.map +1 -1
  354. package/mixed-line-bar-chart/bar-groups.js.map +1 -1
  355. package/mixed-line-bar-chart/bar-series.d.ts +2 -1
  356. package/mixed-line-bar-chart/bar-series.d.ts.map +1 -1
  357. package/mixed-line-bar-chart/bar-series.js.map +1 -1
  358. package/mixed-line-bar-chart/data-series.d.ts +2 -1
  359. package/mixed-line-bar-chart/data-series.d.ts.map +1 -1
  360. package/mixed-line-bar-chart/data-series.js.map +1 -1
  361. package/mixed-line-bar-chart/interfaces.d.ts +0 -2
  362. package/mixed-line-bar-chart/interfaces.d.ts.map +1 -1
  363. package/mixed-line-bar-chart/interfaces.js.map +1 -1
  364. package/mixed-line-bar-chart/line-series.d.ts +2 -1
  365. package/mixed-line-bar-chart/line-series.d.ts.map +1 -1
  366. package/mixed-line-bar-chart/line-series.js.map +1 -1
  367. package/modal/index.d.ts.map +1 -1
  368. package/modal/index.js +8 -2
  369. package/modal/index.js.map +1 -1
  370. package/multiselect/analytics-metadata/interfaces.d.ts +0 -4
  371. package/multiselect/analytics-metadata/interfaces.d.ts.map +1 -1
  372. package/multiselect/analytics-metadata/interfaces.js.map +1 -1
  373. package/package.json +1 -1
  374. package/pie-chart/interfaces.d.ts +2 -1
  375. package/pie-chart/interfaces.d.ts.map +1 -1
  376. package/pie-chart/interfaces.js.map +1 -1
  377. package/pie-chart/labels.d.ts +1 -1
  378. package/pie-chart/labels.d.ts.map +1 -1
  379. package/pie-chart/labels.js.map +1 -1
  380. package/pie-chart/pie-chart.d.ts +2 -7
  381. package/pie-chart/pie-chart.d.ts.map +1 -1
  382. package/pie-chart/pie-chart.js.map +1 -1
  383. package/popover/arrow.d.ts +1 -1
  384. package/popover/arrow.d.ts.map +1 -1
  385. package/popover/arrow.js.map +1 -1
  386. package/popover/container.d.ts +2 -1
  387. package/popover/container.d.ts.map +1 -1
  388. package/popover/container.js.map +1 -1
  389. package/prompt-input/internal.d.ts +1 -1
  390. package/prompt-input/internal.d.ts.map +1 -1
  391. package/prompt-input/internal.js.map +1 -1
  392. package/property-filter/analytics-metadata/interfaces.d.ts +0 -15
  393. package/property-filter/analytics-metadata/interfaces.d.ts.map +1 -1
  394. package/property-filter/analytics-metadata/interfaces.js.map +1 -1
  395. package/property-filter/controller.d.ts +0 -1
  396. package/property-filter/controller.d.ts.map +1 -1
  397. package/property-filter/controller.js +1 -1
  398. package/property-filter/controller.js.map +1 -1
  399. package/property-filter/interfaces.d.ts +1 -6
  400. package/property-filter/interfaces.d.ts.map +1 -1
  401. package/property-filter/interfaces.js.map +1 -1
  402. package/property-filter/internal.d.ts +0 -2
  403. package/property-filter/internal.d.ts.map +1 -1
  404. package/property-filter/internal.js.map +1 -1
  405. package/property-filter/utils.d.ts +0 -1
  406. package/property-filter/utils.d.ts.map +1 -1
  407. package/property-filter/utils.js +1 -1
  408. package/property-filter/utils.js.map +1 -1
  409. package/s3-resource-selector/s3-modal/basic-table.d.ts +0 -6
  410. package/s3-resource-selector/s3-modal/basic-table.d.ts.map +1 -1
  411. package/s3-resource-selector/s3-modal/basic-table.js +1 -1
  412. package/s3-resource-selector/s3-modal/basic-table.js.map +1 -1
  413. package/segmented-control/segment.d.ts +2 -1
  414. package/segmented-control/segment.d.ts.map +1 -1
  415. package/segmented-control/segment.js.map +1 -1
  416. package/select/analytics-metadata/interfaces.d.ts +0 -4
  417. package/select/analytics-metadata/interfaces.d.ts.map +1 -1
  418. package/select/analytics-metadata/interfaces.js.map +1 -1
  419. package/select/utils/render-options.d.ts +2 -1
  420. package/select/utils/render-options.d.ts.map +1 -1
  421. package/select/utils/render-options.js.map +1 -1
  422. package/select/utils/use-native-search.d.ts +0 -1
  423. package/select/utils/use-native-search.d.ts.map +1 -1
  424. package/select/utils/use-native-search.js +1 -1
  425. package/select/utils/use-native-search.js.map +1 -1
  426. package/side-navigation/analytics-metadata/interfaces.d.ts +0 -2
  427. package/side-navigation/analytics-metadata/interfaces.d.ts.map +1 -1
  428. package/side-navigation/analytics-metadata/interfaces.js.map +1 -1
  429. package/side-navigation/implementation.d.ts +2 -1
  430. package/side-navigation/implementation.d.ts.map +1 -1
  431. package/side-navigation/implementation.js.map +1 -1
  432. package/side-navigation/parts.d.ts +2 -2
  433. package/side-navigation/parts.d.ts.map +1 -1
  434. package/side-navigation/parts.js.map +1 -1
  435. package/slider/internal.d.ts +2 -1
  436. package/slider/internal.d.ts.map +1 -1
  437. package/slider/internal.js.map +1 -1
  438. package/slider/slider-labels.d.ts +2 -1
  439. package/slider/slider-labels.d.ts.map +1 -1
  440. package/slider/slider-labels.js.map +1 -1
  441. package/slider/tick-marks.d.ts +2 -4
  442. package/slider/tick-marks.d.ts.map +1 -1
  443. package/slider/tick-marks.js.map +1 -1
  444. package/split-panel/bottom.d.ts.map +1 -1
  445. package/split-panel/bottom.js +13 -3
  446. package/split-panel/bottom.js.map +1 -1
  447. package/split-panel/implementation.js +1 -1
  448. package/split-panel/implementation.js.map +1 -1
  449. package/split-panel/styles.css.js +26 -26
  450. package/split-panel/styles.scoped.css +43 -48
  451. package/split-panel/styles.selectors.js +26 -26
  452. package/steps/internal.d.ts +1 -1
  453. package/steps/internal.d.ts.map +1 -1
  454. package/steps/internal.js +1 -1
  455. package/steps/internal.js.map +1 -1
  456. package/table/interfaces.d.ts +3 -2
  457. package/table/interfaces.d.ts.map +1 -1
  458. package/table/interfaces.js.map +1 -1
  459. package/table/internal.js +2 -2
  460. package/table/internal.js.map +1 -1
  461. package/table/progressive-loading/loader-cell.d.ts +2 -1
  462. package/table/progressive-loading/loader-cell.d.ts.map +1 -1
  463. package/table/progressive-loading/loader-cell.js.map +1 -1
  464. package/table/selection/utils.d.ts +0 -1
  465. package/table/selection/utils.d.ts.map +1 -1
  466. package/table/selection/utils.js +1 -1
  467. package/table/selection/utils.js.map +1 -1
  468. package/table/sticky-columns/use-sticky-columns.d.ts +1 -21
  469. package/table/sticky-columns/use-sticky-columns.d.ts.map +1 -1
  470. package/table/sticky-columns/use-sticky-columns.js +1 -1
  471. package/table/sticky-columns/use-sticky-columns.js.map +1 -1
  472. package/table/table-role/grid-navigation.js +10 -0
  473. package/table/table-role/grid-navigation.js.map +1 -1
  474. package/table/table-role/index.d.ts +1 -1
  475. package/table/table-role/index.d.ts.map +1 -1
  476. package/table/table-role/index.js.map +1 -1
  477. package/table/use-cell-editing.d.ts +1 -1
  478. package/table/use-cell-editing.d.ts.map +1 -1
  479. package/table/use-cell-editing.js.map +1 -1
  480. package/tabs/tab-header-bar.d.ts +2 -1
  481. package/tabs/tab-header-bar.d.ts.map +1 -1
  482. package/tabs/tab-header-bar.js.map +1 -1
  483. package/tag-editor/internal.d.ts +2 -1
  484. package/tag-editor/internal.d.ts.map +1 -1
  485. package/tag-editor/internal.js.map +1 -1
  486. package/test-utils/dom/anchor-navigation/index.d.ts +2 -1
  487. package/test-utils/dom/anchor-navigation/index.js +0 -2
  488. package/test-utils/dom/anchor-navigation/index.js.map +1 -1
  489. package/test-utils/dom/autosuggest/index.d.ts +0 -3
  490. package/test-utils/dom/autosuggest/index.js +1 -2
  491. package/test-utils/dom/autosuggest/index.js.map +1 -1
  492. package/test-utils/dom/cards/index.d.ts +3 -2
  493. package/test-utils/dom/cards/index.js +0 -3
  494. package/test-utils/dom/cards/index.js.map +1 -1
  495. package/test-utils/dom/key-value-pairs/index.d.ts +3 -2
  496. package/test-utils/dom/key-value-pairs/index.js +0 -3
  497. package/test-utils/dom/key-value-pairs/index.js.map +1 -1
  498. package/test-utils/dom/steps/index.d.ts +2 -1
  499. package/test-utils/dom/steps/index.js +0 -2
  500. package/test-utils/dom/steps/index.js.map +1 -1
  501. package/test-utils/dom/tabs/index.d.ts +2 -1
  502. package/test-utils/dom/tabs/index.js +0 -2
  503. package/test-utils/dom/tabs/index.js.map +1 -1
  504. package/test-utils/dom/tag-editor/index.d.ts +2 -1
  505. package/test-utils/dom/tag-editor/index.js +0 -2
  506. package/test-utils/dom/tag-editor/index.js.map +1 -1
  507. package/test-utils/selectors/anchor-navigation/index.d.ts +2 -1
  508. package/test-utils/selectors/anchor-navigation/index.js +0 -2
  509. package/test-utils/selectors/anchor-navigation/index.js.map +1 -1
  510. package/test-utils/selectors/autosuggest/index.d.ts +0 -3
  511. package/test-utils/selectors/autosuggest/index.js +1 -2
  512. package/test-utils/selectors/autosuggest/index.js.map +1 -1
  513. package/test-utils/selectors/cards/index.d.ts +3 -2
  514. package/test-utils/selectors/cards/index.js +0 -3
  515. package/test-utils/selectors/cards/index.js.map +1 -1
  516. package/test-utils/selectors/key-value-pairs/index.d.ts +3 -2
  517. package/test-utils/selectors/key-value-pairs/index.js +0 -3
  518. package/test-utils/selectors/key-value-pairs/index.js.map +1 -1
  519. package/test-utils/selectors/steps/index.d.ts +2 -1
  520. package/test-utils/selectors/steps/index.js +0 -2
  521. package/test-utils/selectors/steps/index.js.map +1 -1
  522. package/test-utils/selectors/tabs/index.d.ts +2 -1
  523. package/test-utils/selectors/tabs/index.js +0 -2
  524. package/test-utils/selectors/tabs/index.js.map +1 -1
  525. package/test-utils/selectors/tag-editor/index.d.ts +2 -1
  526. package/test-utils/selectors/tag-editor/index.js +0 -2
  527. package/test-utils/selectors/tag-editor/index.js.map +1 -1
  528. package/test-utils/tsconfig.tsbuildinfo +1 -1
  529. package/text-filter/analytics-metadata/interfaces.d.ts +0 -2
  530. package/text-filter/analytics-metadata/interfaces.d.ts.map +1 -1
  531. package/text-filter/analytics-metadata/interfaces.js.map +1 -1
  532. package/toggle-button/internal.d.ts +0 -1
  533. package/toggle-button/internal.d.ts.map +1 -1
  534. package/toggle-button/internal.js +0 -1
  535. package/toggle-button/internal.js.map +1 -1
  536. package/token-group/analytics-metadata/interfaces.d.ts +0 -2
  537. package/token-group/analytics-metadata/interfaces.d.ts.map +1 -1
  538. package/token-group/analytics-metadata/interfaces.js.map +1 -1
  539. package/top-navigation/1.0-beta/internal.d.ts +2 -1
  540. package/top-navigation/1.0-beta/internal.d.ts.map +1 -1
  541. package/top-navigation/1.0-beta/internal.js.map +1 -1
  542. package/top-navigation/1.0-beta/parts/overflow-menu.d.ts +2 -1
  543. package/top-navigation/1.0-beta/parts/overflow-menu.d.ts.map +1 -1
  544. package/top-navigation/1.0-beta/parts/overflow-menu.js.map +1 -1
  545. package/top-navigation/1.0-beta/use-top-navigation.d.ts +4 -24
  546. package/top-navigation/1.0-beta/use-top-navigation.d.ts.map +1 -1
  547. package/top-navigation/1.0-beta/use-top-navigation.js +2 -2
  548. package/top-navigation/1.0-beta/use-top-navigation.js.map +1 -1
  549. package/top-navigation/internal.d.ts +2 -1
  550. package/top-navigation/internal.d.ts.map +1 -1
  551. package/top-navigation/internal.js.map +1 -1
  552. package/top-navigation/parts/overflow-menu/router.d.ts +1 -10
  553. package/top-navigation/parts/overflow-menu/router.d.ts.map +1 -1
  554. package/top-navigation/parts/overflow-menu/router.js +1 -1
  555. package/top-navigation/parts/overflow-menu/router.js.map +1 -1
  556. package/top-navigation/use-top-navigation.d.ts +4 -3
  557. package/top-navigation/use-top-navigation.d.ts.map +1 -1
  558. package/top-navigation/use-top-navigation.js.map +1 -1
  559. package/tutorial-panel/components/tutorial-detail-view/task-list.d.ts +2 -1
  560. package/tutorial-panel/components/tutorial-detail-view/task-list.d.ts.map +1 -1
  561. package/tutorial-panel/components/tutorial-detail-view/task-list.js.map +1 -1
  562. package/tutorial-panel/components/tutorial-list/index.d.ts +2 -1
  563. package/tutorial-panel/components/tutorial-list/index.d.ts.map +1 -1
  564. package/tutorial-panel/components/tutorial-list/index.js.map +1 -1
  565. package/wizard/analytics-metadata/interfaces.d.ts +0 -21
  566. package/wizard/analytics-metadata/interfaces.d.ts.map +1 -1
  567. package/wizard/analytics-metadata/interfaces.js.map +1 -1
  568. package/wizard/wizard-form.d.ts +1 -4
  569. package/wizard/wizard-form.d.ts.map +1 -1
  570. package/wizard/wizard-form.js +1 -1
  571. package/wizard/wizard-form.js.map +1 -1
  572. package/collection-preferences/content-display/draggable-option.d.ts +0 -9
  573. package/collection-preferences/content-display/draggable-option.d.ts.map +0 -1
  574. package/collection-preferences/content-display/draggable-option.js +0 -27
  575. package/collection-preferences/content-display/draggable-option.js.map +0 -1
  576. package/collection-preferences/content-display/keyboard-sensor/defaults.d.ts.map +0 -1
  577. package/collection-preferences/content-display/keyboard-sensor/defaults.js.map +0 -1
  578. package/collection-preferences/content-display/keyboard-sensor/index.d.ts.map +0 -1
  579. package/collection-preferences/content-display/keyboard-sensor/index.js.map +0 -1
  580. package/collection-preferences/content-display/keyboard-sensor/utilities/events.d.ts +0 -11
  581. package/collection-preferences/content-display/keyboard-sensor/utilities/events.d.ts.map +0 -1
  582. package/collection-preferences/content-display/keyboard-sensor/utilities/events.js.map +0 -1
  583. package/collection-preferences/content-display/keyboard-sensor/utilities/listeners.d.ts.map +0 -1
  584. package/collection-preferences/content-display/keyboard-sensor/utilities/listeners.js.map +0 -1
  585. package/collection-preferences/content-display/keyboard-sensor/utilities/scroll.d.ts +0 -30
  586. package/collection-preferences/content-display/keyboard-sensor/utilities/scroll.d.ts.map +0 -1
  587. package/collection-preferences/content-display/keyboard-sensor/utilities/scroll.js.map +0 -1
  588. package/collection-preferences/content-display/use-drag-and-drop-reorder.d.ts.map +0 -1
  589. package/collection-preferences/content-display/use-drag-and-drop-reorder.js.map +0 -1
  590. package/collection-preferences/content-display/use-live-announcements.d.ts +0 -12
  591. package/collection-preferences/content-display/use-live-announcements.d.ts.map +0 -1
  592. package/collection-preferences/content-display/use-live-announcements.js.map +0 -1
  593. package/internal/hooks/use-mutation-observer/index.d.ts +0 -8
  594. package/internal/hooks/use-mutation-observer/index.d.ts.map +0 -1
  595. package/internal/hooks/use-mutation-observer/index.js +0 -26
  596. package/internal/hooks/use-mutation-observer/index.js.map +0 -1
  597. /package/{collection-preferences/content-display → internal/components/dnd-container}/keyboard-sensor/defaults.d.ts +0 -0
  598. /package/{collection-preferences/content-display → internal/components/dnd-container}/keyboard-sensor/defaults.js +0 -0
  599. /package/{collection-preferences/content-display → internal/components/dnd-container}/keyboard-sensor/index.d.ts +0 -0
  600. /package/{collection-preferences/content-display → internal/components/dnd-container}/keyboard-sensor/utilities/listeners.d.ts +0 -0
  601. /package/{collection-preferences/content-display → internal/components/dnd-container}/keyboard-sensor/utilities/listeners.js +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"interfaces.d.ts","sourceRoot":"","sources":["../../../../../src/internal/components/option/interfaces.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AACrD,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAE1D,MAAM,WAAW,UAAU;IACzB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;IAC7B,aAAa,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;IACtC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,SAAS,CAAC,IAAI,CAAC;IAC1B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC3B;AAED,MAAM,WAAW,gBAAiB,SAAQ,UAAU;IAClD,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,wBAAyB,SAAQ,gBAAgB;IAChE,YAAY,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAChC;AAED,MAAM,WAAW,WAAY,SAAQ,UAAU;IAC7C,OAAO,EAAE,aAAa,CAAC,gBAAgB,CAAC,CAAC;CAC1C;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,MAAM,EAAE,gBAAgB,GAAG,WAAW,CAAC;CACxC;AAED,MAAM,WAAW,WAAY,SAAQ,kBAAkB;IACrD,MAAM,CAAC,EAAE,wBAAwB,CAAC;IAClC,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B"}
1
+ {"version":3,"file":"interfaces.d.ts","sourceRoot":"","sources":["../../../../../src/internal/components/option/interfaces.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AACrD,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAE1D,UAAU,UAAU;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;IAC7B,aAAa,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;IACtC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,SAAS,CAAC,IAAI,CAAC;IAC1B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC3B;AAED,MAAM,WAAW,gBAAiB,SAAQ,UAAU;IAClD,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,UAAU,wBAAyB,SAAQ,gBAAgB;IACzD,YAAY,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAChC;AAED,MAAM,WAAW,WAAY,SAAQ,UAAU;IAC7C,OAAO,EAAE,aAAa,CAAC,gBAAgB,CAAC,CAAC;CAC1C;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,MAAM,EAAE,gBAAgB,GAAG,WAAW,CAAC;CACxC;AAED,MAAM,WAAW,WAAY,SAAQ,kBAAkB;IACrD,MAAM,CAAC,EAAE,wBAAwB,CAAC;IAClC,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B"}
@@ -1 +1 @@
1
- {"version":3,"file":"interfaces.js","sourceRoot":"","sources":["../../../../../src/internal/components/option/interfaces.ts"],"names":[],"mappings":"","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport React from 'react';\n\nimport { IconProps } from '../../../icon/interfaces';\nimport { BaseComponentProps } from '../../base-component';\n\nexport interface BaseOption {\n value?: string;\n label?: string;\n lang?: string;\n description?: string;\n disabled?: boolean;\n disabledReason?: string;\n labelTag?: string;\n tags?: ReadonlyArray<string>;\n filteringTags?: ReadonlyArray<string>;\n iconAlt?: string;\n iconName?: IconProps.Name;\n iconUrl?: string;\n iconSvg?: React.ReactNode;\n}\n\nexport interface OptionDefinition extends BaseOption {\n __labelPrefix?: string;\n}\n\nexport interface InternalOptionDefinition extends OptionDefinition {\n __customIcon?: React.ReactNode;\n}\n\nexport interface OptionGroup extends BaseOption {\n options: ReadonlyArray<OptionDefinition>;\n}\n\nexport interface DropdownOption {\n type?: string;\n disabled?: boolean;\n disabledReason?: string;\n option: OptionDefinition | OptionGroup;\n}\n\nexport interface OptionProps extends BaseComponentProps {\n option?: InternalOptionDefinition;\n triggerVariant?: boolean;\n highlightText?: string;\n highlightedOption?: boolean;\n selectedOption?: boolean;\n isGroupOption?: boolean;\n isGenericGroup?: boolean;\n}\n"]}
1
+ {"version":3,"file":"interfaces.js","sourceRoot":"","sources":["../../../../../src/internal/components/option/interfaces.ts"],"names":[],"mappings":"","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport React from 'react';\n\nimport { IconProps } from '../../../icon/interfaces';\nimport { BaseComponentProps } from '../../base-component';\n\ninterface BaseOption {\n value?: string;\n label?: string;\n lang?: string;\n description?: string;\n disabled?: boolean;\n disabledReason?: string;\n labelTag?: string;\n tags?: ReadonlyArray<string>;\n filteringTags?: ReadonlyArray<string>;\n iconAlt?: string;\n iconName?: IconProps.Name;\n iconUrl?: string;\n iconSvg?: React.ReactNode;\n}\n\nexport interface OptionDefinition extends BaseOption {\n __labelPrefix?: string;\n}\n\ninterface InternalOptionDefinition extends OptionDefinition {\n __customIcon?: React.ReactNode;\n}\n\nexport interface OptionGroup extends BaseOption {\n options: ReadonlyArray<OptionDefinition>;\n}\n\nexport interface DropdownOption {\n type?: string;\n disabled?: boolean;\n disabledReason?: string;\n option: OptionDefinition | OptionGroup;\n}\n\nexport interface OptionProps extends BaseComponentProps {\n option?: InternalOptionDefinition;\n triggerVariant?: boolean;\n highlightText?: string;\n highlightedOption?: boolean;\n selectedOption?: boolean;\n isGroupOption?: boolean;\n isGenericGroup?: boolean;\n}\n"]}
@@ -3,7 +3,7 @@ export declare class HighlightType {
3
3
  moveFocus: boolean;
4
4
  constructor(type: 'keyboard' | 'mouse', moveFocus?: boolean);
5
5
  }
6
- export interface HighlightedOptionProps<OptionType> {
6
+ interface HighlightedOptionProps<OptionType> {
7
7
  options: readonly OptionType[];
8
8
  isHighlightable: (option: OptionType) => boolean;
9
9
  }
@@ -21,4 +21,5 @@ export interface HighlightedOptionHandlers<OptionType> {
21
21
  goEndWithKeyboard(): void;
22
22
  }
23
23
  export declare function useHighlightedOption<OptionType>({ options, isHighlightable, }: HighlightedOptionProps<OptionType>): [HighlightedOptionState<OptionType>, HighlightedOptionHandlers<OptionType>];
24
+ export {};
24
25
  //# sourceMappingURL=use-highlight-option.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"use-highlight-option.d.ts","sourceRoot":"","sources":["../../../../../../src/internal/components/options-list/utils/use-highlight-option.ts"],"names":[],"mappings":"AAIA,qBAAa,aAAa;IAEf,IAAI,EAAE,UAAU,GAAG,OAAO;IAC1B,SAAS,EAAE,OAAO;gBADlB,IAAI,EAAE,UAAU,GAAG,OAAO,EAC1B,SAAS,GAAE,OAA6B;CAElD;AAED,MAAM,WAAW,sBAAsB,CAAC,UAAU;IAChD,OAAO,EAAE,SAAS,UAAU,EAAE,CAAC;IAC/B,eAAe,EAAE,CAAC,MAAM,EAAE,UAAU,KAAK,OAAO,CAAC;CAClD;AAED,MAAM,WAAW,sBAAsB,CAAC,UAAU;IAChD,aAAa,EAAE,aAAa,CAAC;IAC7B,gBAAgB,EAAE,MAAM,CAAC;IACzB,iBAAiB,CAAC,EAAE,UAAU,CAAC;CAChC;AAED,MAAM,WAAW,yBAAyB,CAAC,UAAU;IAEnD,4BAA4B,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;IAEvE,yBAAyB,CAAC,SAAS,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;IACnD,2BAA2B,CAAC,MAAM,EAAE,UAAU,GAAG,IAAI,CAAC;IACtD,0BAA0B,IAAI,IAAI,CAAC;IACnC,kBAAkB,IAAI,IAAI,CAAC;IAC3B,iBAAiB,IAAI,IAAI,CAAC;CAC3B;AAED,wBAAgB,oBAAoB,CAAC,UAAU,EAAE,EAC/C,OAAO,EACP,eAAe,GAChB,EAAE,sBAAsB,CAAC,UAAU,CAAC,GAAG,CAAC,sBAAsB,CAAC,UAAU,CAAC,EAAE,yBAAyB,CAAC,UAAU,CAAC,CAAC,CA8ClH"}
1
+ {"version":3,"file":"use-highlight-option.d.ts","sourceRoot":"","sources":["../../../../../../src/internal/components/options-list/utils/use-highlight-option.ts"],"names":[],"mappings":"AAIA,qBAAa,aAAa;IAEf,IAAI,EAAE,UAAU,GAAG,OAAO;IAC1B,SAAS,EAAE,OAAO;gBADlB,IAAI,EAAE,UAAU,GAAG,OAAO,EAC1B,SAAS,GAAE,OAA6B;CAElD;AAED,UAAU,sBAAsB,CAAC,UAAU;IACzC,OAAO,EAAE,SAAS,UAAU,EAAE,CAAC;IAC/B,eAAe,EAAE,CAAC,MAAM,EAAE,UAAU,KAAK,OAAO,CAAC;CAClD;AAED,MAAM,WAAW,sBAAsB,CAAC,UAAU;IAChD,aAAa,EAAE,aAAa,CAAC;IAC7B,gBAAgB,EAAE,MAAM,CAAC;IACzB,iBAAiB,CAAC,EAAE,UAAU,CAAC;CAChC;AAED,MAAM,WAAW,yBAAyB,CAAC,UAAU;IAEnD,4BAA4B,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;IAEvE,yBAAyB,CAAC,SAAS,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;IACnD,2BAA2B,CAAC,MAAM,EAAE,UAAU,GAAG,IAAI,CAAC;IACtD,0BAA0B,IAAI,IAAI,CAAC;IACnC,kBAAkB,IAAI,IAAI,CAAC;IAC3B,iBAAiB,IAAI,IAAI,CAAC;CAC3B;AAED,wBAAgB,oBAAoB,CAAC,UAAU,EAAE,EAC/C,OAAO,EACP,eAAe,GAChB,EAAE,sBAAsB,CAAC,UAAU,CAAC,GAAG,CAAC,sBAAsB,CAAC,UAAU,CAAC,EAAE,yBAAyB,CAAC,UAAU,CAAC,CAAC,CA8ClH"}
@@ -10,9 +10,9 @@ export class HighlightType {
10
10
  export function useHighlightedOption({ options, isHighlightable, }) {
11
11
  const [highlightedIndex, setHighlightedIndexState] = useState(-1);
12
12
  const [highlightType, setHighlightType] = useState(new HighlightType('keyboard'));
13
- const setHighlightedIndex = useCallback((index, highlightType) => {
13
+ const setHighlightedIndex = useCallback((index, newHighlightType) => {
14
14
  setHighlightedIndexState(index);
15
- setHighlightType(highlightType);
15
+ setHighlightType(oldHighlight => (oldHighlight.type !== newHighlightType.type ? newHighlightType : oldHighlight));
16
16
  }, []);
17
17
  const highlightedOption = options[highlightedIndex] && isHighlightable(options[highlightedIndex]) ? options[highlightedIndex] : undefined;
18
18
  const moveHighlightFrom = (direction, startIndex = highlightedIndex, highlightType) => {
@@ -1 +1 @@
1
- {"version":3,"file":"use-highlight-option.js","sourceRoot":"","sources":["../../../../../../src/internal/components/options-list/utils/use-highlight-option.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { useCallback, useState } from 'react';\n\nexport class HighlightType {\n constructor(\n public type: 'keyboard' | 'mouse',\n public moveFocus: boolean = type === 'keyboard'\n ) {}\n}\n\nexport interface HighlightedOptionProps<OptionType> {\n options: readonly OptionType[];\n isHighlightable: (option: OptionType) => boolean;\n}\n\nexport interface HighlightedOptionState<OptionType> {\n highlightType: HighlightType;\n highlightedIndex: number;\n highlightedOption?: OptionType;\n}\n\nexport interface HighlightedOptionHandlers<OptionType> {\n // Mouse handlers\n setHighlightedIndexWithMouse(index: number, moveFocus?: boolean): void;\n // Keyboard handlers\n moveHighlightWithKeyboard(direction: -1 | 1): void;\n highlightOptionWithKeyboard(option: OptionType): void;\n resetHighlightWithKeyboard(): void;\n goHomeWithKeyboard(): void;\n goEndWithKeyboard(): void;\n}\n\nexport function useHighlightedOption<OptionType>({\n options,\n isHighlightable,\n}: HighlightedOptionProps<OptionType>): [HighlightedOptionState<OptionType>, HighlightedOptionHandlers<OptionType>] {\n const [highlightedIndex, setHighlightedIndexState] = useState(-1);\n const [highlightType, setHighlightType] = useState<HighlightType>(new HighlightType('keyboard'));\n const setHighlightedIndex = useCallback((index: number, highlightType: HighlightType) => {\n setHighlightedIndexState(index);\n setHighlightType(highlightType);\n }, []);\n\n const highlightedOption =\n options[highlightedIndex] && isHighlightable(options[highlightedIndex]) ? options[highlightedIndex] : undefined;\n\n const moveHighlightFrom = (direction: -1 | 1, startIndex = highlightedIndex, highlightType: HighlightType) => {\n const fromBottomEnd = startIndex === -1 && direction === -1;\n let newIndex = fromBottomEnd ? options.length : startIndex;\n do {\n newIndex += direction;\n } while (options[newIndex] && !isHighlightable(options[newIndex]));\n\n if (options[newIndex]) {\n setHighlightedIndex(newIndex, highlightType);\n }\n };\n\n const moveHighlight = (direction: -1 | 1, highlightType: HighlightType) =>\n moveHighlightFrom(direction, highlightedIndex, highlightType);\n\n const highlightOption = useCallback(\n (option: OptionType, highlightType: HighlightType) => {\n const index = options.indexOf(option);\n setHighlightedIndex(index, highlightType);\n },\n [options, setHighlightedIndex]\n );\n\n return [\n { highlightType, highlightedIndex, highlightedOption },\n {\n setHighlightedIndexWithMouse: (index: number, moveFocus = false) =>\n setHighlightedIndex(index, new HighlightType('mouse', moveFocus)),\n moveHighlightWithKeyboard: (direction: -1 | 1) => moveHighlight(direction, new HighlightType('keyboard')),\n highlightOptionWithKeyboard: (option: OptionType) => highlightOption(option, new HighlightType('keyboard')),\n resetHighlightWithKeyboard: () => setHighlightedIndex(-1, new HighlightType('keyboard')),\n goHomeWithKeyboard: () => moveHighlightFrom(1, -1, new HighlightType('keyboard')),\n goEndWithKeyboard: () => moveHighlightFrom(-1, options.length, new HighlightType('keyboard')),\n },\n ];\n}\n"]}
1
+ {"version":3,"file":"use-highlight-option.js","sourceRoot":"","sources":["../../../../../../src/internal/components/options-list/utils/use-highlight-option.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { useCallback, useState } from 'react';\n\nexport class HighlightType {\n constructor(\n public type: 'keyboard' | 'mouse',\n public moveFocus: boolean = type === 'keyboard'\n ) {}\n}\n\ninterface HighlightedOptionProps<OptionType> {\n options: readonly OptionType[];\n isHighlightable: (option: OptionType) => boolean;\n}\n\nexport interface HighlightedOptionState<OptionType> {\n highlightType: HighlightType;\n highlightedIndex: number;\n highlightedOption?: OptionType;\n}\n\nexport interface HighlightedOptionHandlers<OptionType> {\n // Mouse handlers\n setHighlightedIndexWithMouse(index: number, moveFocus?: boolean): void;\n // Keyboard handlers\n moveHighlightWithKeyboard(direction: -1 | 1): void;\n highlightOptionWithKeyboard(option: OptionType): void;\n resetHighlightWithKeyboard(): void;\n goHomeWithKeyboard(): void;\n goEndWithKeyboard(): void;\n}\n\nexport function useHighlightedOption<OptionType>({\n options,\n isHighlightable,\n}: HighlightedOptionProps<OptionType>): [HighlightedOptionState<OptionType>, HighlightedOptionHandlers<OptionType>] {\n const [highlightedIndex, setHighlightedIndexState] = useState(-1);\n const [highlightType, setHighlightType] = useState<HighlightType>(new HighlightType('keyboard'));\n const setHighlightedIndex = useCallback((index: number, newHighlightType: HighlightType) => {\n setHighlightedIndexState(index);\n setHighlightType(oldHighlight => (oldHighlight.type !== newHighlightType.type ? newHighlightType : oldHighlight));\n }, []);\n\n const highlightedOption =\n options[highlightedIndex] && isHighlightable(options[highlightedIndex]) ? options[highlightedIndex] : undefined;\n\n const moveHighlightFrom = (direction: -1 | 1, startIndex = highlightedIndex, highlightType: HighlightType) => {\n const fromBottomEnd = startIndex === -1 && direction === -1;\n let newIndex = fromBottomEnd ? options.length : startIndex;\n do {\n newIndex += direction;\n } while (options[newIndex] && !isHighlightable(options[newIndex]));\n\n if (options[newIndex]) {\n setHighlightedIndex(newIndex, highlightType);\n }\n };\n\n const moveHighlight = (direction: -1 | 1, highlightType: HighlightType) =>\n moveHighlightFrom(direction, highlightedIndex, highlightType);\n\n const highlightOption = useCallback(\n (option: OptionType, highlightType: HighlightType) => {\n const index = options.indexOf(option);\n setHighlightedIndex(index, highlightType);\n },\n [options, setHighlightedIndex]\n );\n\n return [\n { highlightType, highlightedIndex, highlightedOption },\n {\n setHighlightedIndexWithMouse: (index: number, moveFocus = false) =>\n setHighlightedIndex(index, new HighlightType('mouse', moveFocus)),\n moveHighlightWithKeyboard: (direction: -1 | 1) => moveHighlight(direction, new HighlightType('keyboard')),\n highlightOptionWithKeyboard: (option: OptionType) => highlightOption(option, new HighlightType('keyboard')),\n resetHighlightWithKeyboard: () => setHighlightedIndex(-1, new HighlightType('keyboard')),\n goHomeWithKeyboard: () => moveHighlightFrom(1, -1, new HighlightType('keyboard')),\n goEndWithKeyboard: () => moveHighlightFrom(-1, options.length, new HighlightType('keyboard')),\n },\n ];\n}\n"]}
@@ -1,5 +1,5 @@
1
1
  import React from 'react';
2
- export interface ScreenreaderOnlyProps {
2
+ interface ScreenreaderOnlyProps {
3
3
  id?: string;
4
4
  className?: string;
5
5
  children?: React.ReactNode;
@@ -19,4 +19,5 @@ export interface ScreenreaderOnlyProps {
19
19
  * ```
20
20
  */
21
21
  export default function ScreenreaderOnly(props: ScreenreaderOnlyProps): JSX.Element;
22
+ export {};
22
23
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/internal/components/screenreader-only/index.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,MAAM,OAAO,CAAC;AAK1B,MAAM,WAAW,qBAAqB;IACpC,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC5B;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,CAAC,OAAO,UAAU,gBAAgB,CAAC,KAAK,EAAE,qBAAqB,eAEpE"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/internal/components/screenreader-only/index.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,MAAM,OAAO,CAAC;AAK1B,UAAU,qBAAqB;IAC7B,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC5B;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,CAAC,OAAO,UAAU,gBAAgB,CAAC,KAAK,EAAE,qBAAqB,eAEpE"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/internal/components/screenreader-only/index.tsx"],"names":[],"mappings":"AAAA,qEAAqE;AACrE,sCAAsC;AAEtC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB,OAAO,MAAM,MAAM,iBAAiB,CAAC;AAQrC;;;;;;;;;;;;;GAaG;AACH,MAAM,CAAC,OAAO,UAAU,gBAAgB,CAAC,KAA4B;IACnE,OAAO,8CAAU,KAAK,IAAE,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC;AAC5E,CAAC","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 styles from './styles.css.js';\n\nexport interface ScreenreaderOnlyProps {\n id?: string;\n className?: string;\n children?: React.ReactNode;\n}\n\n/**\n * Makes content now shown on a screen but still announced by screen-reader users.\n * The component is suitable when the aria-label cannot be used, e.g. to avoid elemnts being announced as \"blank\".\n *\n * To exclude screenreader-only content use `:not(.${screenreaderOnlyStyles.root})` selector, for example:\n *\n * ```\n * import screenreaderOnlyStyles from '~internal/components/screenreader-only/styles.css.js'\n *\n * let visibleContent = wrapper.find(`${styles.label}`).find(`:not(.${screenreaderOnlyStyles.root})`).getElement().textContent\n *\n * let screenreaderContent = wrapper.find(`${styles.label}`).find(`.${screenreaderOnlyStyles.root}`).getElement().textContent\n * ```\n */\nexport default function ScreenreaderOnly(props: ScreenreaderOnlyProps) {\n return <span {...props} className={clsx(styles.root, props.className)} />;\n}\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/internal/components/screenreader-only/index.tsx"],"names":[],"mappings":"AAAA,qEAAqE;AACrE,sCAAsC;AAEtC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB,OAAO,MAAM,MAAM,iBAAiB,CAAC;AAQrC;;;;;;;;;;;;;GAaG;AACH,MAAM,CAAC,OAAO,UAAU,gBAAgB,CAAC,KAA4B;IACnE,OAAO,8CAAU,KAAK,IAAE,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC;AAC5E,CAAC","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 styles from './styles.css.js';\n\ninterface ScreenreaderOnlyProps {\n id?: string;\n className?: string;\n children?: React.ReactNode;\n}\n\n/**\n * Makes content now shown on a screen but still announced by screen-reader users.\n * The component is suitable when the aria-label cannot be used, e.g. to avoid elemnts being announced as \"blank\".\n *\n * To exclude screenreader-only content use `:not(.${screenreaderOnlyStyles.root})` selector, for example:\n *\n * ```\n * import screenreaderOnlyStyles from '~internal/components/screenreader-only/styles.css.js'\n *\n * let visibleContent = wrapper.find(`${styles.label}`).find(`:not(.${screenreaderOnlyStyles.root})`).getElement().textContent\n *\n * let screenreaderContent = wrapper.find(`${styles.label}`).find(`.${screenreaderOnlyStyles.root}`).getElement().textContent\n * ```\n */\nexport default function ScreenreaderOnly(props: ScreenreaderOnlyProps) {\n return <span {...props} className={clsx(styles.root, props.className)} />;\n}\n"]}
@@ -1,5 +1,5 @@
1
1
  import React from 'react';
2
- export interface TabTrapProps {
2
+ interface TabTrapProps {
3
3
  focusNextCallback: (event: React.FocusEvent) => void;
4
4
  disabled?: boolean;
5
5
  }
@@ -9,4 +9,5 @@ export interface TabTrapProps {
9
9
  * which can forward the focus to another element.
10
10
  */
11
11
  export default function TabTrap({ focusNextCallback, disabled }: TabTrapProps): JSX.Element;
12
+ export {};
12
13
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/internal/components/tab-trap/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAC;AAI1B,MAAM,WAAW,YAAY;IAC3B,iBAAiB,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,UAAU,KAAK,IAAI,CAAC;IACrD,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED;;;;GAIG;AACH,MAAM,CAAC,OAAO,UAAU,OAAO,CAAC,EAAE,iBAAiB,EAAE,QAAgB,EAAE,EAAE,YAAY,eAEpF"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/internal/components/tab-trap/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAC;AAI1B,UAAU,YAAY;IACpB,iBAAiB,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,UAAU,KAAK,IAAI,CAAC;IACrD,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED;;;;GAIG;AACH,MAAM,CAAC,OAAO,UAAU,OAAO,CAAC,EAAE,iBAAiB,EAAE,QAAgB,EAAE,EAAE,YAAY,eAEpF"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/internal/components/tab-trap/index.tsx"],"names":[],"mappings":"AAAA,qEAAqE;AACrE,sCAAsC;AACtC,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,MAAM,MAAM,iBAAiB,CAAC;AAOrC;;;;GAIG;AACH,MAAM,CAAC,OAAO,UAAU,OAAO,CAAC,EAAE,iBAAiB,EAAE,QAAQ,GAAG,KAAK,EAAgB;IACnF,OAAO,6BAAK,SAAS,EAAE,MAAM,CAAC,IAAI,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,iBAAiB,GAAI,CAAC;AAClG,CAAC","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport React from 'react';\n\nimport styles from './styles.css.js';\n\nexport interface TabTrapProps {\n focusNextCallback: (event: React.FocusEvent) => void;\n disabled?: boolean;\n}\n\n/**\n * This component handles focus-forwarding when using keyboard tab navigation.\n * When the user focuses this component, the `focusNextCallback` function is called\n * which can forward the focus to another element.\n */\nexport default function TabTrap({ focusNextCallback, disabled = false }: TabTrapProps) {\n return <div className={styles.root} tabIndex={disabled ? -1 : 0} onFocus={focusNextCallback} />;\n}\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/internal/components/tab-trap/index.tsx"],"names":[],"mappings":"AAAA,qEAAqE;AACrE,sCAAsC;AACtC,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,MAAM,MAAM,iBAAiB,CAAC;AAOrC;;;;GAIG;AACH,MAAM,CAAC,OAAO,UAAU,OAAO,CAAC,EAAE,iBAAiB,EAAE,QAAQ,GAAG,KAAK,EAAgB;IACnF,OAAO,6BAAK,SAAS,EAAE,MAAM,CAAC,IAAI,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,iBAAiB,GAAI,CAAC;AAClG,CAAC","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport React from 'react';\n\nimport styles from './styles.css.js';\n\ninterface TabTrapProps {\n focusNextCallback: (event: React.FocusEvent) => void;\n disabled?: boolean;\n}\n\n/**\n * This component handles focus-forwarding when using keyboard tab navigation.\n * When the user focuses this component, the `focusNextCallback` function is called\n * which can forward the focus to another element.\n */\nexport default function TabTrap({ focusNextCallback, disabled = false }: TabTrapProps) {\n return <div className={styles.root} tabIndex={disabled ? -1 : 0} onFocus={focusNextCallback} />;\n}\n"]}
@@ -2,7 +2,7 @@ import React from 'react';
2
2
  import { MutableRefObject } from 'react';
3
3
  import { TransitionStatus as ReactTransitionGroupTransitionStatus } from 'react-transition-group';
4
4
  export type TransitionStatus = ReactTransitionGroupTransitionStatus | 'enter' | 'exit';
5
- export interface TransitionProps {
5
+ interface TransitionProps {
6
6
  in: boolean;
7
7
  exit?: boolean;
8
8
  disabled?: boolean;
@@ -19,4 +19,5 @@ export interface TransitionProps {
19
19
  * attached to the node that is transitioning.
20
20
  */
21
21
  export declare function Transition({ in: isIn, children, exit, onStatusChange, disabled, transitionChangeDelay, ...rest }: TransitionProps): JSX.Element;
22
+ export {};
22
23
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/internal/components/transition/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAmB,MAAM,OAAO,CAAC;AACxC,OAAO,EAAE,gBAAgB,EAAuB,MAAM,OAAO,CAAC;AAC9D,OAAO,EAEL,gBAAgB,IAAI,oCAAoC,EACzD,MAAM,wBAAwB,CAAC;AAIhC,MAAM,MAAM,gBAAgB,GAAG,oCAAoC,GAAG,OAAO,GAAG,MAAM,CAAC;AAEvF,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,OAAO,CAAC;IACZ,IAAI,CAAC,EAAE,OAAO,CAAC;IAEf,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB,QAAQ,EAAE,CAAC,KAAK,EAAE,gBAAgB,EAAE,uBAAuB,EAAE,gBAAgB,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,SAAS,CAAC;IACvG,cAAc,CAAC,EAAE,CAAC,MAAM,EAAE,gBAAgB,KAAK,IAAI,CAAC;IACpD,qBAAqB,CAAC,EAAE;QAAE,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CAC/C;AAED;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,EACzB,EAAE,EAAE,IAAI,EACR,QAAQ,EACR,IAAW,EACX,cAA6B,EAC7B,QAAgB,EAChB,qBAAqB,EACrB,GAAG,IAAI,EACR,EAAE,eAAe,eA8EjB"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/internal/components/transition/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAmB,MAAM,OAAO,CAAC;AACxC,OAAO,EAAE,gBAAgB,EAAuB,MAAM,OAAO,CAAC;AAC9D,OAAO,EAEL,gBAAgB,IAAI,oCAAoC,EACzD,MAAM,wBAAwB,CAAC;AAIhC,MAAM,MAAM,gBAAgB,GAAG,oCAAoC,GAAG,OAAO,GAAG,MAAM,CAAC;AAEvF,UAAU,eAAe;IACvB,EAAE,EAAE,OAAO,CAAC;IACZ,IAAI,CAAC,EAAE,OAAO,CAAC;IAEf,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB,QAAQ,EAAE,CAAC,KAAK,EAAE,gBAAgB,EAAE,uBAAuB,EAAE,gBAAgB,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,SAAS,CAAC;IACvG,cAAc,CAAC,EAAE,CAAC,MAAM,EAAE,gBAAgB,KAAK,IAAI,CAAC;IACpD,qBAAqB,CAAC,EAAE;QAAE,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CAC/C;AAED;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,EACzB,EAAE,EAAE,IAAI,EACR,QAAQ,EACR,IAAW,EACX,cAA6B,EAC7B,QAAgB,EAChB,qBAAqB,EACrB,GAAG,IAAI,EACR,EAAE,eAAe,eA8EjB"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/internal/components/transition/index.tsx"],"names":[],"mappings":"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","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport React, { useState } from 'react';\nimport { MutableRefObject, useCallback, useRef } from 'react';\nimport {\n Transition as ReactTransitionGroupTransition,\n TransitionStatus as ReactTransitionGroupTransitionStatus,\n} from 'react-transition-group';\n\nimport { useReducedMotion } from '@cloudscape-design/component-toolkit/internal';\n\nexport type TransitionStatus = ReactTransitionGroupTransitionStatus | 'enter' | 'exit';\n\nexport interface TransitionProps {\n in: boolean;\n exit?: boolean;\n\n disabled?: boolean;\n\n children: (state: TransitionStatus, transitioningElementRef: MutableRefObject<any>) => React.ReactNode;\n onStatusChange?: (status: TransitionStatus) => void;\n transitionChangeDelay?: { entering?: number };\n}\n\n/**\n * This component is a wrapper around the CSSTransition component.\n *\n * It provides a second parameter in its rendering function that must be\n * attached to the node that is transitioning.\n */\nexport function Transition({\n in: isIn,\n children,\n exit = true,\n onStatusChange = () => void 0,\n disabled = false,\n transitionChangeDelay,\n ...rest\n}: TransitionProps) {\n const transitionRootElement = useRef<HTMLElement>(null);\n // the initial state of the transition should be either 'exited' or 'entered' depending\n // on the `in` property, this mimicks how internally the Transition component works here:\n // https://github.com/reactjs/react-transition-group/blob/6cbd6aaedaf8e9472007640b429ddb48c6c24158/src/Transition.js#L121\n const [transitionState, setTransitionState] = useState<TransitionStatus>(isIn ? 'entered' : 'exited');\n const motionDisabled = useReducedMotion(transitionRootElement) || disabled;\n\n const addTransitionEndListener = useCallback((done: () => void) => {\n const node = transitionRootElement.current;\n\n if (node === null) {\n return;\n }\n const listener = (e: TransitionEvent | AnimationEvent) => {\n if (e.target === node) {\n node.removeEventListener('transitionend', listener);\n node.removeEventListener('animationend', listener);\n done();\n }\n };\n node.addEventListener('transitionend', listener);\n node.addEventListener('animationend', listener);\n }, []);\n\n return (\n <ReactTransitionGroupTransition\n addEndListener={addTransitionEndListener}\n timeout={motionDisabled ? 0 : undefined}\n in={isIn}\n nodeRef={transitionRootElement}\n exit={exit}\n onEnter={isAppearing => {\n if (!isAppearing) {\n setTransitionState('enter');\n onStatusChange('enter');\n }\n }}\n onEntering={isAppearing => {\n if (!isAppearing) {\n // This line forces the browser to recalculate the layout because we want the starting state in the 'enter' style\n // to be applied before the animation starts.\n void transitionRootElement.current?.offsetHeight;\n\n if (transitionChangeDelay?.entering) {\n setTimeout(() => {\n setTransitionState('entering');\n onStatusChange('entering');\n }, transitionChangeDelay?.entering);\n } else {\n setTransitionState('entering');\n onStatusChange('entering');\n }\n }\n }}\n onEntered={isAppearing => {\n if (!isAppearing) {\n setTransitionState('entered');\n onStatusChange('entered');\n }\n }}\n onExit={() => {\n setTransitionState('exit');\n onStatusChange('exit');\n }}\n onExiting={() => {\n setTransitionState('exiting');\n onStatusChange('exiting');\n }}\n onExited={() => {\n setTransitionState('exited');\n onStatusChange('exited');\n }}\n {...rest}\n >\n {() => children(transitionState, transitionRootElement)}\n </ReactTransitionGroupTransition>\n );\n}\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/internal/components/transition/index.tsx"],"names":[],"mappings":"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","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport React, { useState } from 'react';\nimport { MutableRefObject, useCallback, useRef } from 'react';\nimport {\n Transition as ReactTransitionGroupTransition,\n TransitionStatus as ReactTransitionGroupTransitionStatus,\n} from 'react-transition-group';\n\nimport { useReducedMotion } from '@cloudscape-design/component-toolkit/internal';\n\nexport type TransitionStatus = ReactTransitionGroupTransitionStatus | 'enter' | 'exit';\n\ninterface TransitionProps {\n in: boolean;\n exit?: boolean;\n\n disabled?: boolean;\n\n children: (state: TransitionStatus, transitioningElementRef: MutableRefObject<any>) => React.ReactNode;\n onStatusChange?: (status: TransitionStatus) => void;\n transitionChangeDelay?: { entering?: number };\n}\n\n/**\n * This component is a wrapper around the CSSTransition component.\n *\n * It provides a second parameter in its rendering function that must be\n * attached to the node that is transitioning.\n */\nexport function Transition({\n in: isIn,\n children,\n exit = true,\n onStatusChange = () => void 0,\n disabled = false,\n transitionChangeDelay,\n ...rest\n}: TransitionProps) {\n const transitionRootElement = useRef<HTMLElement>(null);\n // the initial state of the transition should be either 'exited' or 'entered' depending\n // on the `in` property, this mimicks how internally the Transition component works here:\n // https://github.com/reactjs/react-transition-group/blob/6cbd6aaedaf8e9472007640b429ddb48c6c24158/src/Transition.js#L121\n const [transitionState, setTransitionState] = useState<TransitionStatus>(isIn ? 'entered' : 'exited');\n const motionDisabled = useReducedMotion(transitionRootElement) || disabled;\n\n const addTransitionEndListener = useCallback((done: () => void) => {\n const node = transitionRootElement.current;\n\n if (node === null) {\n return;\n }\n const listener = (e: TransitionEvent | AnimationEvent) => {\n if (e.target === node) {\n node.removeEventListener('transitionend', listener);\n node.removeEventListener('animationend', listener);\n done();\n }\n };\n node.addEventListener('transitionend', listener);\n node.addEventListener('animationend', listener);\n }, []);\n\n return (\n <ReactTransitionGroupTransition\n addEndListener={addTransitionEndListener}\n timeout={motionDisabled ? 0 : undefined}\n in={isIn}\n nodeRef={transitionRootElement}\n exit={exit}\n onEnter={isAppearing => {\n if (!isAppearing) {\n setTransitionState('enter');\n onStatusChange('enter');\n }\n }}\n onEntering={isAppearing => {\n if (!isAppearing) {\n // This line forces the browser to recalculate the layout because we want the starting state in the 'enter' style\n // to be applied before the animation starts.\n void transitionRootElement.current?.offsetHeight;\n\n if (transitionChangeDelay?.entering) {\n setTimeout(() => {\n setTransitionState('entering');\n onStatusChange('entering');\n }, transitionChangeDelay?.entering);\n } else {\n setTransitionState('entering');\n onStatusChange('entering');\n }\n }\n }}\n onEntered={isAppearing => {\n if (!isAppearing) {\n setTransitionState('entered');\n onStatusChange('entered');\n }\n }}\n onExit={() => {\n setTransitionState('exit');\n onStatusChange('exit');\n }}\n onExiting={() => {\n setTransitionState('exiting');\n onStatusChange('exiting');\n }}\n onExited={() => {\n setTransitionState('exited');\n onStatusChange('exited');\n }}\n {...rest}\n >\n {() => children(transitionState, transitionRootElement)}\n </ReactTransitionGroupTransition>\n );\n}\n"]}
@@ -1,8 +1,5 @@
1
1
  import React from 'react';
2
2
  export type FocusableChangeHandler = (isFocusable: boolean) => void;
3
- export interface SingleTabStopNavigationOptions {
4
- tabIndex?: number;
5
- }
6
3
  export declare const defaultValue: {
7
4
  navigationActive: boolean;
8
5
  registerFocusable(focusable: HTMLElement, handler: FocusableChangeHandler): () => void;
@@ -21,7 +18,7 @@ export declare function useSingleTabStopNavigation(focusable: null | React.RefOb
21
18
  navigationActive: boolean;
22
19
  tabIndex: number | undefined;
23
20
  };
24
- export interface SingleTabStopNavigationProviderProps {
21
+ interface SingleTabStopNavigationProviderProps {
25
22
  navigationActive: boolean;
26
23
  children: React.ReactNode;
27
24
  getNextFocusTarget: () => null | HTMLElement;
@@ -35,4 +32,5 @@ export interface SingleTabStopNavigationAPI {
35
32
  isRegistered(element: Element): boolean;
36
33
  }
37
34
  export declare const SingleTabStopNavigationProvider: React.ForwardRefExoticComponent<SingleTabStopNavigationProviderProps & React.RefAttributes<SingleTabStopNavigationAPI>>;
35
+ export {};
38
36
  //# sourceMappingURL=single-tab-stop-navigation-context.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"single-tab-stop-navigation-context.d.ts","sourceRoot":"","sources":["../../../../src/internal/context/single-tab-stop-navigation-context.tsx"],"names":[],"mappings":"AAGA,OAAO,KAQN,MAAM,OAAO,CAAC;AAIf,MAAM,MAAM,sBAAsB,GAAG,CAAC,WAAW,EAAE,OAAO,KAAK,IAAI,CAAC;AAEpE,MAAM,WAAW,8BAA8B;IAC7C,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,eAAO,MAAM,YAAY,EAAE;IACzB,gBAAgB,EAAE,OAAO,CAAC;IAC1B,iBAAiB,CAAC,SAAS,EAAE,WAAW,EAAE,OAAO,EAAE,sBAAsB,GAAG,MAAM,IAAI,CAAC;CAIxF,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,8BAA8B;sBAXvB,OAAO;iCACI,WAAW,WAAW,sBAAsB,GAAG,MAAM,IAAI;EAUf,CAAC;AAE1E,wBAAgB,0BAA0B,CACxC,SAAS,EAAE,IAAI,GAAG,KAAK,CAAC,SAAS,CAAC,WAAW,CAAC,EAC9C,OAAO,CAAC,EAAE;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE;;;EAoBhC;AAED,MAAM,WAAW,oCAAoC;IACnD,gBAAgB,EAAE,OAAO,CAAC;IAC1B,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,kBAAkB,EAAE,MAAM,IAAI,GAAG,WAAW,CAAC;IAC7C,mBAAmB,CAAC,CAAC,gBAAgB,EAAE,OAAO,GAAG,OAAO,CAAC;IACzD,mBAAmB,CAAC,CAAC,gBAAgB,EAAE,OAAO,GAAG,IAAI,CAAC;IACtD,kBAAkB,CAAC,CAAC,gBAAgB,EAAE,OAAO,GAAG,IAAI,CAAC;CACtD;AAED,MAAM,WAAW,0BAA0B;IACzC,iBAAiB,IAAI,IAAI,CAAC;IAC1B,cAAc,IAAI,IAAI,GAAG,WAAW,CAAC;IACrC,YAAY,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC;CACzC;AAED,eAAO,MAAM,+BAA+B,yHA8E3C,CAAC"}
1
+ {"version":3,"file":"single-tab-stop-navigation-context.d.ts","sourceRoot":"","sources":["../../../../src/internal/context/single-tab-stop-navigation-context.tsx"],"names":[],"mappings":"AAGA,OAAO,KAQN,MAAM,OAAO,CAAC;AAIf,MAAM,MAAM,sBAAsB,GAAG,CAAC,WAAW,EAAE,OAAO,KAAK,IAAI,CAAC;AAEpE,eAAO,MAAM,YAAY,EAAE;IACzB,gBAAgB,EAAE,OAAO,CAAC;IAC1B,iBAAiB,CAAC,SAAS,EAAE,WAAW,EAAE,OAAO,EAAE,sBAAsB,GAAG,MAAM,IAAI,CAAC;CAIxF,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,8BAA8B;sBAXvB,OAAO;iCACI,WAAW,WAAW,sBAAsB,GAAG,MAAM,IAAI;EAUf,CAAC;AAE1E,wBAAgB,0BAA0B,CACxC,SAAS,EAAE,IAAI,GAAG,KAAK,CAAC,SAAS,CAAC,WAAW,CAAC,EAC9C,OAAO,CAAC,EAAE;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE;;;EAoBhC;AAED,UAAU,oCAAoC;IAC5C,gBAAgB,EAAE,OAAO,CAAC;IAC1B,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,kBAAkB,EAAE,MAAM,IAAI,GAAG,WAAW,CAAC;IAC7C,mBAAmB,CAAC,CAAC,gBAAgB,EAAE,OAAO,GAAG,OAAO,CAAC;IACzD,mBAAmB,CAAC,CAAC,gBAAgB,EAAE,OAAO,GAAG,IAAI,CAAC;IACtD,kBAAkB,CAAC,CAAC,gBAAgB,EAAE,OAAO,GAAG,IAAI,CAAC;CACtD;AAED,MAAM,WAAW,0BAA0B;IACzC,iBAAiB,IAAI,IAAI,CAAC;IAC1B,cAAc,IAAI,IAAI,GAAG,WAAW,CAAC;IACrC,YAAY,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC;CACzC;AAED,eAAO,MAAM,+BAA+B,yHA8E3C,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"single-tab-stop-navigation-context.js","sourceRoot":"","sources":["../../../../src/internal/context/single-tab-stop-navigation-context.tsx"],"names":[],"mappings":"AAAA,qEAAqE;AACrE,sCAAsC;AAEtC,OAAO,KAAK,EAAE,EACZ,aAAa,EACb,UAAU,EACV,UAAU,EACV,mBAAmB,EACnB,eAAe,EACf,MAAM,EACN,QAAQ,GACT,MAAM,OAAO,CAAC;AAEf,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAQpD,MAAM,CAAC,MAAM,YAAY,GAGrB;IACF,gBAAgB,EAAE,KAAK;IACvB,iBAAiB,EAAE,GAAG,EAAE,CAAC,GAAG,EAAE,GAAE,CAAC;CAClC,CAAC;AAEF;;;GAGG;AACH,MAAM,CAAC,MAAM,8BAA8B,GAAG,aAAa,CAAC,YAAY,CAAC,CAAC;AAE1E,MAAM,UAAU,0BAA0B,CACxC,SAA8C,EAC9C,OAA+B;;IAE/B,MAAM,EAAE,gBAAgB,EAAE,uBAAuB,EAAE,iBAAiB,EAAE,GAAG,UAAU,CAAC,8BAA8B,CAAC,CAAC;IACpH,MAAM,CAAC,iBAAiB,EAAE,oBAAoB,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAClE,MAAM,kBAAkB,GAAG,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,QAAQ,KAAI,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,QAAQ,IAAG,CAAC,CAAC;IACtE,MAAM,gBAAgB,GAAG,uBAAuB,IAAI,CAAC,kBAAkB,CAAC;IAExE,eAAe,CAAC,GAAG,EAAE;QACnB,IAAI,gBAAgB,IAAI,SAAS,IAAI,SAAS,CAAC,OAAO,EAAE;YACtD,MAAM,UAAU,GAAG,iBAAiB,CAAC,SAAS,CAAC,OAAO,EAAE,WAAW,CAAC,EAAE,CAAC,oBAAoB,CAAC,WAAW,CAAC,CAAC,CAAC;YAC1G,OAAO,GAAG,EAAE,CAAC,UAAU,EAAE,CAAC;SAC3B;IACH,CAAC,CAAC,CAAC;IAEH,IAAI,QAAQ,GAAG,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,QAAQ,CAAC;IACjC,IAAI,gBAAgB,EAAE;QACpB,QAAQ,GAAG,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,QAAQ,mCAAI,CAAC,CAAC;KAC7D;IAED,OAAO,EAAE,gBAAgB,EAAE,QAAQ,EAAE,CAAC;AACxC,CAAC;AAiBD,MAAM,CAAC,MAAM,+BAA+B,GAAG,UAAU,CACvD,CACE,EACE,gBAAgB,EAChB,QAAQ,EACR,kBAAkB,EAClB,mBAAmB,EACnB,mBAAmB,EACnB,kBAAkB,GACmB,EACvC,GAA0C,EAC1C,EAAE;IACF,2EAA2E;IAC3E,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,GAAG,EAAW,CAAC,CAAC;IAC9C,uFAAuF;IACvF,MAAM,aAAa,GAAG,MAAM,CAAC,IAAI,GAAG,EAAmC,CAAC,CAAC;IACzE,iGAAiG;IACjG,MAAM,eAAe,GAAG,MAAM,CAAC,IAAI,OAAO,EAAoB,CAAC,CAAC;IAChE,gDAAgD;IAChD,MAAM,WAAW,GAAG,MAAM,CAAqB,IAAI,CAAC,CAAC;IAErD,SAAS,qBAAqB,CAAC,gBAAyB;QACtD,MAAM,0BAA0B,GAAG,WAAW,CAAC,gBAAgB,EAAE,QAAQ,CAAC,aAAa,CAAC,CAAC;QACzF,IAAI,0BAA0B,EAAE;YAC9B,uDAAuD;YACvD,UAAU,CAAC,GAAG,EAAE,CAAC,kBAAkB,aAAlB,kBAAkB,uBAAlB,kBAAkB,CAAG,gBAAgB,CAAC,EAAE,CAAC,CAAC,CAAC;SAC7D;IACH,CAAC;IAED,4DAA4D;IAC5D,2FAA2F;IAC3F,SAAS,iBAAiB,CAAC,gBAAyB,EAAE,aAAqC;QACzF,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;QACzC,aAAa,CAAC,OAAO,CAAC,GAAG,CAAC,gBAAgB,EAAE,aAAa,CAAC,CAAC;QAC3D,MAAM,WAAW,GAAG,CAAC,CAAC,eAAe,CAAC,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;QACpE,MAAM,cAAc,GAAG,WAAW,CAAC,OAAO,KAAK,gBAAgB,IAAI,CAAC,CAAC,CAAA,mBAAmB,aAAnB,mBAAmB,uBAAnB,mBAAmB,CAAG,gBAAgB,CAAC,CAAA,CAAC;QAC7G,IAAI,cAAc,KAAK,WAAW,EAAE;YAClC,eAAe,CAAC,OAAO,CAAC,GAAG,CAAC,gBAAgB,EAAE,cAAc,CAAC,CAAC;YAC9D,aAAa,CAAC,cAAc,CAAC,CAAC;SAC/B;QACD,mBAAmB,aAAnB,mBAAmB,uBAAnB,mBAAmB,CAAG,gBAAgB,CAAC,CAAC;QACxC,OAAO,GAAG,EAAE,CAAC,mBAAmB,CAAC,gBAAgB,CAAC,CAAC;IACrD,CAAC;IACD,SAAS,mBAAmB,CAAC,gBAAyB;QACpD,UAAU,CAAC,OAAO,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC;QAC5C,aAAa,CAAC,OAAO,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC;QAC/C,qBAAqB,aAArB,qBAAqB,uBAArB,qBAAqB,CAAG,gBAAgB,CAAC,CAAC;IAC5C,CAAC;IAED,2GAA2G;IAC3G,SAAS,iBAAiB;;QACxB,WAAW,CAAC,OAAO,GAAG,kBAAkB,EAAE,CAAC;QAC3C,KAAK,MAAM,gBAAgB,IAAI,UAAU,CAAC,OAAO,EAAE;YACjD,MAAM,WAAW,GAAG,MAAA,eAAe,CAAC,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,mCAAI,KAAK,CAAC;YAC3E,MAAM,cAAc,GAAG,WAAW,CAAC,OAAO,KAAK,gBAAgB,IAAI,CAAC,CAAC,CAAA,mBAAmB,aAAnB,mBAAmB,uBAAnB,mBAAmB,CAAG,gBAAgB,CAAC,CAAA,CAAC;YAC7G,IAAI,cAAc,KAAK,WAAW,EAAE;gBAClC,eAAe,CAAC,OAAO,CAAC,GAAG,CAAC,gBAAgB,EAAE,cAAc,CAAC,CAAC;gBAC9D,aAAa,CAAC,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAE,CAAC,cAAc,CAAC,CAAC;aAC9D;SACF;IACH,CAAC;IAED,SAAS,cAAc;QACrB,OAAO,WAAW,CAAC,OAAO,CAAC;IAC7B,CAAC;IAED,SAAS,YAAY,CAAC,OAAgB;QACpC,OAAO,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IACzC,CAAC;IAED,mBAAmB,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,iBAAiB,EAAE,cAAc,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC;IAEtF,OAAO,CACL,oBAAC,8BAA8B,CAAC,QAAQ,IAAC,KAAK,EAAE,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,IACpF,QAAQ,CAC+B,CAC3C,CAAC;AACJ,CAAC,CACF,CAAC","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nimport React, {\n createContext,\n forwardRef,\n useContext,\n useImperativeHandle,\n useLayoutEffect,\n useRef,\n useState,\n} from 'react';\n\nimport { nodeBelongs } from '../utils/node-belongs';\n\nexport type FocusableChangeHandler = (isFocusable: boolean) => void;\n\nexport interface SingleTabStopNavigationOptions {\n tabIndex?: number;\n}\n\nexport const defaultValue: {\n navigationActive: boolean;\n registerFocusable(focusable: HTMLElement, handler: FocusableChangeHandler): () => void;\n} = {\n navigationActive: false,\n registerFocusable: () => () => {},\n};\n\n/**\n * Single tab stop navigation context is used together with keyboard navigation that requires a single tab stop.\n * It instructs interactive elements to override tab indices for just a single one to remain user-focusable.\n */\nexport const SingleTabStopNavigationContext = createContext(defaultValue);\n\nexport function useSingleTabStopNavigation(\n focusable: null | React.RefObject<HTMLElement>,\n options?: { tabIndex?: number }\n) {\n const { navigationActive: contextNavigationActive, registerFocusable } = useContext(SingleTabStopNavigationContext);\n const [focusTargetActive, setFocusTargetActive] = useState(false);\n const navigationDisabled = options?.tabIndex && options?.tabIndex < 0;\n const navigationActive = contextNavigationActive && !navigationDisabled;\n\n useLayoutEffect(() => {\n if (navigationActive && focusable && focusable.current) {\n const unregister = registerFocusable(focusable.current, isFocusable => setFocusTargetActive(isFocusable));\n return () => unregister();\n }\n });\n\n let tabIndex = options?.tabIndex;\n if (navigationActive) {\n tabIndex = !focusTargetActive ? -1 : options?.tabIndex ?? 0;\n }\n\n return { navigationActive, tabIndex };\n}\n\nexport interface SingleTabStopNavigationProviderProps {\n navigationActive: boolean;\n children: React.ReactNode;\n getNextFocusTarget: () => null | HTMLElement;\n isElementSuppressed?(focusableElement: Element): boolean;\n onRegisterFocusable?(focusableElement: Element): void;\n onUnregisterActive?(focusableElement: Element): void;\n}\n\nexport interface SingleTabStopNavigationAPI {\n updateFocusTarget(): void;\n getFocusTarget(): null | HTMLElement;\n isRegistered(element: Element): boolean;\n}\n\nexport const SingleTabStopNavigationProvider = forwardRef(\n (\n {\n navigationActive,\n children,\n getNextFocusTarget,\n isElementSuppressed,\n onRegisterFocusable,\n onUnregisterActive,\n }: SingleTabStopNavigationProviderProps,\n ref: React.Ref<SingleTabStopNavigationAPI>\n ) => {\n // A set of registered focusable elements that can use keyboard navigation.\n const focusables = useRef(new Set<Element>());\n // A map of registered focusable element handlers to update the respective tab indices.\n const focusHandlers = useRef(new Map<Element, FocusableChangeHandler>());\n // A map of focusable element states to avoid issuing unnecessary updates to registered elements.\n const focusablesState = useRef(new WeakMap<Element, boolean>());\n // A reference to the currently focused element.\n const focusTarget = useRef<null | HTMLElement>(null);\n\n function onUnregisterFocusable(focusableElement: Element) {\n const isUnregisteringFocusedNode = nodeBelongs(focusableElement, document.activeElement);\n if (isUnregisteringFocusedNode) {\n // Wait for unmounted node to get removed from the DOM.\n setTimeout(() => onUnregisterActive?.(focusableElement), 0);\n }\n }\n\n // Register a focusable element to allow navigating into it.\n // The focusable element tabIndex is only set to 0 if the element matches the focus target.\n function registerFocusable(focusableElement: Element, changeHandler: FocusableChangeHandler) {\n focusables.current.add(focusableElement);\n focusHandlers.current.set(focusableElement, changeHandler);\n const isFocusable = !!focusablesState.current.get(focusableElement);\n const newIsFocusable = focusTarget.current === focusableElement || !!isElementSuppressed?.(focusableElement);\n if (newIsFocusable !== isFocusable) {\n focusablesState.current.set(focusableElement, newIsFocusable);\n changeHandler(newIsFocusable);\n }\n onRegisterFocusable?.(focusableElement);\n return () => unregisterFocusable(focusableElement);\n }\n function unregisterFocusable(focusableElement: Element) {\n focusables.current.delete(focusableElement);\n focusHandlers.current.delete(focusableElement);\n onUnregisterFocusable?.(focusableElement);\n }\n\n // Update focus target with next single focusable element and notify all registered focusables of a change.\n function updateFocusTarget() {\n focusTarget.current = getNextFocusTarget();\n for (const focusableElement of focusables.current) {\n const isFocusable = focusablesState.current.get(focusableElement) ?? false;\n const newIsFocusable = focusTarget.current === focusableElement || !!isElementSuppressed?.(focusableElement);\n if (newIsFocusable !== isFocusable) {\n focusablesState.current.set(focusableElement, newIsFocusable);\n focusHandlers.current.get(focusableElement)!(newIsFocusable);\n }\n }\n }\n\n function getFocusTarget() {\n return focusTarget.current;\n }\n\n function isRegistered(element: Element) {\n return focusables.current.has(element);\n }\n\n useImperativeHandle(ref, () => ({ updateFocusTarget, getFocusTarget, isRegistered }));\n\n return (\n <SingleTabStopNavigationContext.Provider value={{ navigationActive, registerFocusable }}>\n {children}\n </SingleTabStopNavigationContext.Provider>\n );\n }\n);\n"]}
1
+ {"version":3,"file":"single-tab-stop-navigation-context.js","sourceRoot":"","sources":["../../../../src/internal/context/single-tab-stop-navigation-context.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, {\n createContext,\n forwardRef,\n useContext,\n useImperativeHandle,\n useLayoutEffect,\n useRef,\n useState,\n} from 'react';\n\nimport { nodeBelongs } from '../utils/node-belongs';\n\nexport type FocusableChangeHandler = (isFocusable: boolean) => void;\n\nexport const defaultValue: {\n navigationActive: boolean;\n registerFocusable(focusable: HTMLElement, handler: FocusableChangeHandler): () => void;\n} = {\n navigationActive: false,\n registerFocusable: () => () => {},\n};\n\n/**\n * Single tab stop navigation context is used together with keyboard navigation that requires a single tab stop.\n * It instructs interactive elements to override tab indices for just a single one to remain user-focusable.\n */\nexport const SingleTabStopNavigationContext = createContext(defaultValue);\n\nexport function useSingleTabStopNavigation(\n focusable: null | React.RefObject<HTMLElement>,\n options?: { tabIndex?: number }\n) {\n const { navigationActive: contextNavigationActive, registerFocusable } = useContext(SingleTabStopNavigationContext);\n const [focusTargetActive, setFocusTargetActive] = useState(false);\n const navigationDisabled = options?.tabIndex && options?.tabIndex < 0;\n const navigationActive = contextNavigationActive && !navigationDisabled;\n\n useLayoutEffect(() => {\n if (navigationActive && focusable && focusable.current) {\n const unregister = registerFocusable(focusable.current, isFocusable => setFocusTargetActive(isFocusable));\n return () => unregister();\n }\n });\n\n let tabIndex = options?.tabIndex;\n if (navigationActive) {\n tabIndex = !focusTargetActive ? -1 : options?.tabIndex ?? 0;\n }\n\n return { navigationActive, tabIndex };\n}\n\ninterface SingleTabStopNavigationProviderProps {\n navigationActive: boolean;\n children: React.ReactNode;\n getNextFocusTarget: () => null | HTMLElement;\n isElementSuppressed?(focusableElement: Element): boolean;\n onRegisterFocusable?(focusableElement: Element): void;\n onUnregisterActive?(focusableElement: Element): void;\n}\n\nexport interface SingleTabStopNavigationAPI {\n updateFocusTarget(): void;\n getFocusTarget(): null | HTMLElement;\n isRegistered(element: Element): boolean;\n}\n\nexport const SingleTabStopNavigationProvider = forwardRef(\n (\n {\n navigationActive,\n children,\n getNextFocusTarget,\n isElementSuppressed,\n onRegisterFocusable,\n onUnregisterActive,\n }: SingleTabStopNavigationProviderProps,\n ref: React.Ref<SingleTabStopNavigationAPI>\n ) => {\n // A set of registered focusable elements that can use keyboard navigation.\n const focusables = useRef(new Set<Element>());\n // A map of registered focusable element handlers to update the respective tab indices.\n const focusHandlers = useRef(new Map<Element, FocusableChangeHandler>());\n // A map of focusable element states to avoid issuing unnecessary updates to registered elements.\n const focusablesState = useRef(new WeakMap<Element, boolean>());\n // A reference to the currently focused element.\n const focusTarget = useRef<null | HTMLElement>(null);\n\n function onUnregisterFocusable(focusableElement: Element) {\n const isUnregisteringFocusedNode = nodeBelongs(focusableElement, document.activeElement);\n if (isUnregisteringFocusedNode) {\n // Wait for unmounted node to get removed from the DOM.\n setTimeout(() => onUnregisterActive?.(focusableElement), 0);\n }\n }\n\n // Register a focusable element to allow navigating into it.\n // The focusable element tabIndex is only set to 0 if the element matches the focus target.\n function registerFocusable(focusableElement: Element, changeHandler: FocusableChangeHandler) {\n focusables.current.add(focusableElement);\n focusHandlers.current.set(focusableElement, changeHandler);\n const isFocusable = !!focusablesState.current.get(focusableElement);\n const newIsFocusable = focusTarget.current === focusableElement || !!isElementSuppressed?.(focusableElement);\n if (newIsFocusable !== isFocusable) {\n focusablesState.current.set(focusableElement, newIsFocusable);\n changeHandler(newIsFocusable);\n }\n onRegisterFocusable?.(focusableElement);\n return () => unregisterFocusable(focusableElement);\n }\n function unregisterFocusable(focusableElement: Element) {\n focusables.current.delete(focusableElement);\n focusHandlers.current.delete(focusableElement);\n onUnregisterFocusable?.(focusableElement);\n }\n\n // Update focus target with next single focusable element and notify all registered focusables of a change.\n function updateFocusTarget() {\n focusTarget.current = getNextFocusTarget();\n for (const focusableElement of focusables.current) {\n const isFocusable = focusablesState.current.get(focusableElement) ?? false;\n const newIsFocusable = focusTarget.current === focusableElement || !!isElementSuppressed?.(focusableElement);\n if (newIsFocusable !== isFocusable) {\n focusablesState.current.set(focusableElement, newIsFocusable);\n focusHandlers.current.get(focusableElement)!(newIsFocusable);\n }\n }\n }\n\n function getFocusTarget() {\n return focusTarget.current;\n }\n\n function isRegistered(element: Element) {\n return focusables.current.has(element);\n }\n\n useImperativeHandle(ref, () => ({ updateFocusTarget, getFocusTarget, isRegistered }));\n\n return (\n <SingleTabStopNavigationContext.Provider value={{ navigationActive, registerFocusable }}>\n {children}\n </SingleTabStopNavigationContext.Provider>\n );\n }\n);\n"]}
@@ -6,11 +6,11 @@ export interface PaginationRef {
6
6
  currentPageIndex?: number;
7
7
  totalPageCount?: number;
8
8
  }
9
- export interface TableComponentsContextProps {
9
+ interface TableComponentsContextProps {
10
10
  filterRef: RefObject<FilterRef>;
11
11
  paginationRef: RefObject<PaginationRef>;
12
12
  }
13
- export declare const TableComponentsContext: import("react").Context<TableComponentsContextProps | null>;
14
13
  export declare const TableComponentsContextProvider: import("react").Provider<TableComponentsContextProps | null>;
15
14
  export declare const useTableComponentsContext: () => TableComponentsContextProps | null;
15
+ export {};
16
16
  //# sourceMappingURL=table-component-context.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"table-component-context.d.ts","sourceRoot":"","sources":["../../../../src/internal/context/table-component-context.ts"],"names":[],"mappings":"AAEA,OAAO,EAAiB,SAAS,EAAc,MAAM,OAAO,CAAC;AAE7D,MAAM,WAAW,SAAS;IACxB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,aAAa;IAC5B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AACD,MAAM,WAAW,2BAA2B;IAC1C,SAAS,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAChC,aAAa,EAAE,SAAS,CAAC,aAAa,CAAC,CAAC;CACzC;AAED,eAAO,MAAM,sBAAsB,6DAA0D,CAAC;AAE9F,eAAO,MAAM,8BAA8B,8DAAkC,CAAC;AAE9E,eAAO,MAAM,yBAAyB,0CAGrC,CAAC"}
1
+ {"version":3,"file":"table-component-context.d.ts","sourceRoot":"","sources":["../../../../src/internal/context/table-component-context.ts"],"names":[],"mappings":"AAEA,OAAO,EAAiB,SAAS,EAAc,MAAM,OAAO,CAAC;AAE7D,MAAM,WAAW,SAAS;IACxB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,aAAa;IAC5B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AACD,UAAU,2BAA2B;IACnC,SAAS,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAChC,aAAa,EAAE,SAAS,CAAC,aAAa,CAAC,CAAC;CACzC;AAID,eAAO,MAAM,8BAA8B,8DAAkC,CAAC;AAE9E,eAAO,MAAM,yBAAyB,0CAGrC,CAAC"}
@@ -1,7 +1,7 @@
1
1
  // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
2
2
  // SPDX-License-Identifier: Apache-2.0
3
3
  import { createContext, useContext } from 'react';
4
- export const TableComponentsContext = createContext(null);
4
+ const TableComponentsContext = createContext(null);
5
5
  export const TableComponentsContextProvider = TableComponentsContext.Provider;
6
6
  export const useTableComponentsContext = () => {
7
7
  const tableComponentContext = useContext(TableComponentsContext);
@@ -1 +1 @@
1
- {"version":3,"file":"table-component-context.js","sourceRoot":"","sources":["../../../../src/internal/context/table-component-context.ts"],"names":[],"mappings":"AAAA,qEAAqE;AACrE,sCAAsC;AACtC,OAAO,EAAE,aAAa,EAAa,UAAU,EAAE,MAAM,OAAO,CAAC;AAe7D,MAAM,CAAC,MAAM,sBAAsB,GAAG,aAAa,CAAqC,IAAI,CAAC,CAAC;AAE9F,MAAM,CAAC,MAAM,8BAA8B,GAAG,sBAAsB,CAAC,QAAQ,CAAC;AAE9E,MAAM,CAAC,MAAM,yBAAyB,GAAG,GAAG,EAAE;IAC5C,MAAM,qBAAqB,GAAG,UAAU,CAAC,sBAAsB,CAAC,CAAC;IACjE,OAAO,qBAAqB,CAAC;AAC/B,CAAC,CAAC","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { createContext, RefObject, useContext } from 'react';\n\nexport interface FilterRef {\n filterText?: string;\n}\n\nexport interface PaginationRef {\n currentPageIndex?: number;\n totalPageCount?: number;\n}\nexport interface TableComponentsContextProps {\n filterRef: RefObject<FilterRef>;\n paginationRef: RefObject<PaginationRef>;\n}\n\nexport const TableComponentsContext = createContext<TableComponentsContextProps | null>(null);\n\nexport const TableComponentsContextProvider = TableComponentsContext.Provider;\n\nexport const useTableComponentsContext = () => {\n const tableComponentContext = useContext(TableComponentsContext);\n return tableComponentContext;\n};\n"]}
1
+ {"version":3,"file":"table-component-context.js","sourceRoot":"","sources":["../../../../src/internal/context/table-component-context.ts"],"names":[],"mappings":"AAAA,qEAAqE;AACrE,sCAAsC;AACtC,OAAO,EAAE,aAAa,EAAa,UAAU,EAAE,MAAM,OAAO,CAAC;AAe7D,MAAM,sBAAsB,GAAG,aAAa,CAAqC,IAAI,CAAC,CAAC;AAEvF,MAAM,CAAC,MAAM,8BAA8B,GAAG,sBAAsB,CAAC,QAAQ,CAAC;AAE9E,MAAM,CAAC,MAAM,yBAAyB,GAAG,GAAG,EAAE;IAC5C,MAAM,qBAAqB,GAAG,UAAU,CAAC,sBAAsB,CAAC,CAAC;IACjE,OAAO,qBAAqB,CAAC;AAC/B,CAAC,CAAC","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { createContext, RefObject, useContext } from 'react';\n\nexport interface FilterRef {\n filterText?: string;\n}\n\nexport interface PaginationRef {\n currentPageIndex?: number;\n totalPageCount?: number;\n}\ninterface TableComponentsContextProps {\n filterRef: RefObject<FilterRef>;\n paginationRef: RefObject<PaginationRef>;\n}\n\nconst TableComponentsContext = createContext<TableComponentsContextProps | null>(null);\n\nexport const TableComponentsContextProvider = TableComponentsContext.Provider;\n\nexport const useTableComponentsContext = () => {\n const tableComponentContext = useContext(TableComponentsContext);\n return tableComponentContext;\n};\n"]}
@@ -1,4 +1,4 @@
1
1
  export var PACKAGE_SOURCE = "components";
2
- export var PACKAGE_VERSION = "3.0.0 (c04ca9ce)";
2
+ export var PACKAGE_VERSION = "3.0.0 (2049c4ab)";
3
3
  export var THEME = "open-source-visual-refresh";
4
4
  export var ALWAYS_VISUAL_REFRESH = true;
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "PACKAGE_SOURCE": "components",
3
- "PACKAGE_VERSION": "3.0.0 (c04ca9ce)",
3
+ "PACKAGE_VERSION": "3.0.0 (2049c4ab)",
4
4
  "THEME": "default",
5
5
  "ALWAYS_VISUAL_REFRESH": false
6
6
  }
@@ -1,5 +1,5 @@
1
1
  import React from 'react';
2
- export interface ForwardFocusRef {
2
+ interface ForwardFocusRef {
3
3
  focus(): void;
4
4
  }
5
5
  /**
@@ -9,4 +9,5 @@ export interface ForwardFocusRef {
9
9
  export default function useRadioGroupForwardFocus(forwardedRef: React.Ref<ForwardFocusRef>, items: ReadonlyArray<{
10
10
  value: string;
11
11
  }> | undefined, value: string | null): [React.Ref<HTMLInputElement>, number];
12
+ export {};
12
13
  //# sourceMappingURL=radio-group.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"radio-group.d.ts","sourceRoot":"","sources":["../../../../../src/internal/hooks/forward-focus/radio-group.ts"],"names":[],"mappings":"AAEA,OAAO,KAAsC,MAAM,OAAO,CAAC;AAE3D,MAAM,WAAW,eAAe;IAC9B,KAAK,IAAI,IAAI,CAAC;CACf;AAED;;;GAGG;AACH,MAAM,CAAC,OAAO,UAAU,yBAAyB,CAC/C,YAAY,EAAE,KAAK,CAAC,GAAG,CAAC,eAAe,CAAC,EACxC,KAAK,EAAE,aAAa,CAAC;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC,GAAG,SAAS,EACnD,KAAK,EAAE,MAAM,GAAG,IAAI,GACnB,CAAC,KAAK,CAAC,GAAG,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC,CAUvC"}
1
+ {"version":3,"file":"radio-group.d.ts","sourceRoot":"","sources":["../../../../../src/internal/hooks/forward-focus/radio-group.ts"],"names":[],"mappings":"AAEA,OAAO,KAAsC,MAAM,OAAO,CAAC;AAE3D,UAAU,eAAe;IACvB,KAAK,IAAI,IAAI,CAAC;CACf;AAED;;;GAGG;AACH,MAAM,CAAC,OAAO,UAAU,yBAAyB,CAC/C,YAAY,EAAE,KAAK,CAAC,GAAG,CAAC,eAAe,CAAC,EACxC,KAAK,EAAE,aAAa,CAAC;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC,GAAG,SAAS,EACnD,KAAK,EAAE,MAAM,GAAG,IAAI,GACnB,CAAC,KAAK,CAAC,GAAG,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC,CAUvC"}
@@ -1 +1 @@
1
- {"version":3,"file":"radio-group.js","sourceRoot":"","sources":["../../../../../src/internal/hooks/forward-focus/radio-group.ts"],"names":[],"mappings":"AAAA,qEAAqE;AACrE,sCAAsC;AACtC,OAAc,EAAE,mBAAmB,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AAM3D;;;GAGG;AACH,MAAM,CAAC,OAAO,UAAU,yBAAyB,CAC/C,YAAwC,EACxC,KAAmD,EACnD,KAAoB;IAEpB,MAAM,OAAO,GAAG,MAAM,CAA0B,IAAI,CAAC,CAAC;IACtD,MAAM,SAAS,GAAG,KAAK,IAAI,SAAS,CAAC,KAAK,EAAE,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC;IAC1E,mBAAmB,CAAC,YAAY,EAAE,GAAG,EAAE,CAAC,CAAC;QACvC,KAAK;;YACH,MAAA,OAAO,CAAC,OAAO,0CAAE,KAAK,EAAE,CAAC;QAC3B,CAAC;KACF,CAAC,CAAC,CAAC;IAEJ,OAAO,CAAC,OAAO,EAAE,SAAS,KAAK,SAAS,IAAI,SAAS,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAChF,CAAC;AAED,SAAS,SAAS,CAAI,KAAuB,EAAE,SAAwB;IACrE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;QACrC,IAAI,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE;YACvB,OAAO,CAAC,CAAC;SACV;KACF;IACD,OAAO,CAAC,CAAC,CAAC;AACZ,CAAC","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport React, { useImperativeHandle, useRef } from 'react';\n\nexport interface ForwardFocusRef {\n focus(): void;\n}\n\n/**\n * Focus forwarding helper for radio groups where only the first selected\n * child element should be focused.\n */\nexport default function useRadioGroupForwardFocus(\n forwardedRef: React.Ref<ForwardFocusRef>,\n items: ReadonlyArray<{ value: string }> | undefined,\n value: string | null\n): [React.Ref<HTMLInputElement>, number] {\n const itemRef = useRef<HTMLInputElement | null>(null);\n const itemIndex = items && findIndex(items, item => item.value === value);\n useImperativeHandle(forwardedRef, () => ({\n focus() {\n itemRef.current?.focus();\n },\n }));\n\n return [itemRef, itemIndex !== undefined && itemIndex !== -1 ? itemIndex : 0];\n}\n\nfunction findIndex<T>(items: ReadonlyArray<T>, predicate: (t: T) => any): number {\n for (let i = 0; i < items.length; i++) {\n if (predicate(items[i])) {\n return i;\n }\n }\n return -1;\n}\n"]}
1
+ {"version":3,"file":"radio-group.js","sourceRoot":"","sources":["../../../../../src/internal/hooks/forward-focus/radio-group.ts"],"names":[],"mappings":"AAAA,qEAAqE;AACrE,sCAAsC;AACtC,OAAc,EAAE,mBAAmB,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AAM3D;;;GAGG;AACH,MAAM,CAAC,OAAO,UAAU,yBAAyB,CAC/C,YAAwC,EACxC,KAAmD,EACnD,KAAoB;IAEpB,MAAM,OAAO,GAAG,MAAM,CAA0B,IAAI,CAAC,CAAC;IACtD,MAAM,SAAS,GAAG,KAAK,IAAI,SAAS,CAAC,KAAK,EAAE,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC;IAC1E,mBAAmB,CAAC,YAAY,EAAE,GAAG,EAAE,CAAC,CAAC;QACvC,KAAK;;YACH,MAAA,OAAO,CAAC,OAAO,0CAAE,KAAK,EAAE,CAAC;QAC3B,CAAC;KACF,CAAC,CAAC,CAAC;IAEJ,OAAO,CAAC,OAAO,EAAE,SAAS,KAAK,SAAS,IAAI,SAAS,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAChF,CAAC;AAED,SAAS,SAAS,CAAI,KAAuB,EAAE,SAAwB;IACrE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;QACrC,IAAI,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE;YACvB,OAAO,CAAC,CAAC;SACV;KACF;IACD,OAAO,CAAC,CAAC,CAAC;AACZ,CAAC","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport React, { useImperativeHandle, useRef } from 'react';\n\ninterface ForwardFocusRef {\n focus(): void;\n}\n\n/**\n * Focus forwarding helper for radio groups where only the first selected\n * child element should be focused.\n */\nexport default function useRadioGroupForwardFocus(\n forwardedRef: React.Ref<ForwardFocusRef>,\n items: ReadonlyArray<{ value: string }> | undefined,\n value: string | null\n): [React.Ref<HTMLInputElement>, number] {\n const itemRef = useRef<HTMLInputElement | null>(null);\n const itemIndex = items && findIndex(items, item => item.value === value);\n useImperativeHandle(forwardedRef, () => ({\n focus() {\n itemRef.current?.focus();\n },\n }));\n\n return [itemRef, itemIndex !== undefined && itemIndex !== -1 ? itemIndex : 0];\n}\n\nfunction findIndex<T>(items: ReadonlyArray<T>, predicate: (t: T) => any): number {\n for (let i = 0; i < items.length; i++) {\n if (predicate(items[i])) {\n return i;\n }\n }\n return -1;\n}\n"]}
@@ -1,5 +1,5 @@
1
1
  /// <reference types="react" />
2
- export interface UseDynamicOverlapProps {
2
+ interface UseDynamicOverlapProps {
3
3
  /**
4
4
  * Disables hook if not needed. By default, `false`.
5
5
  */
@@ -12,4 +12,5 @@ export interface UseDynamicOverlapProps {
12
12
  * @returns ref to be measured as overlapping height
13
13
  */
14
14
  export declare function useDynamicOverlap(props?: UseDynamicOverlapProps): import("react").MutableRefObject<null>;
15
+ export {};
15
16
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/internal/hooks/use-dynamic-overlap/index.ts"],"names":[],"mappings":";AAUA,MAAM,WAAW,sBAAsB;IACrC;;OAEG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,CAAC,EAAE,sBAAsB,0CA8B/D"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/internal/hooks/use-dynamic-overlap/index.ts"],"names":[],"mappings":";AAUA,UAAU,sBAAsB;IAC9B;;OAEG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,CAAC,EAAE,sBAAsB,0CA8B/D"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/internal/hooks/use-dynamic-overlap/index.ts"],"names":[],"mappings":"AAAA,qEAAqE;AACrE,sCAAsC;AACtC,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,OAAO,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AAG5C,OAAO,EAAE,iBAAiB,EAAE,MAAM,+CAA+C,CAAC;AAElF,OAAO,EAAE,qBAAqB,EAAE,MAAM,uCAAuC,CAAC;AAS9E;;;;;GAKG;AACH,MAAM,UAAU,iBAAiB,CAAC,KAA8B;;IAC9D,MAAM,QAAQ,GAAG,MAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,QAAQ,mCAAI,KAAK,CAAC;IAC1C,MAAM,uBAAuB,GAAG,UAAU,CAAC,qBAAqB,CAAC,CAAC;IAClE,MAAM,iBAAiB,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;IAEvC,MAAM,UAAU,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC,iBAAiB,CAAC,OAAO,EAAE,CAAC,iBAAiB,CAAC,CAAC,CAAC;IACrF,MAAM,WAAW,GAAG,WAAW,CAC7B,CAAC,KAA0B,EAAE,EAAE;QAC7B,IAAI,CAAC,QAAQ,EAAE;YACb,uBAAuB,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;SACjD;IACH,CAAC,EACD,CAAC,QAAQ,EAAE,uBAAuB,CAAC,CACpC,CAAC;IAEF,iBAAiB,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;IAE3C,eAAe,CACb,SAAS,0BAA0B;QACjC,+CAA+C;QAC/C,OAAO,GAAG,EAAE;YACV,IAAI,CAAC,QAAQ,EAAE;gBACb,uBAAuB,CAAC,CAAC,CAAC,CAAC;aAC5B;QACH,CAAC,CAAC;IACJ,CAAC,EACD,CAAC,QAAQ,EAAE,uBAAuB,CAAC,CACpC,CAAC;IAEF,OAAO,iBAAiB,CAAC;AAC3B,CAAC","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { useContext, useLayoutEffect } from 'react';\nimport { useCallback, useRef } from 'react';\n\nimport { ContainerQueryEntry } from '@cloudscape-design/component-toolkit';\nimport { useResizeObserver } from '@cloudscape-design/component-toolkit/internal';\n\nimport { DynamicOverlapContext } from '../../context/dynamic-overlap-context';\n\nexport interface UseDynamicOverlapProps {\n /**\n * Disables hook if not needed. By default, `false`.\n */\n disabled?: boolean;\n}\n\n/**\n * Observes the height of an element referenced by the returning ref and sets the value as overlapping\n * height for the surrounding AppLayout component.\n * @param props.disabled disables hook if not applicable\n * @returns ref to be measured as overlapping height\n */\nexport function useDynamicOverlap(props?: UseDynamicOverlapProps) {\n const disabled = props?.disabled ?? false;\n const setDynamicOverlapHeight = useContext(DynamicOverlapContext);\n const overlapElementRef = useRef(null);\n\n const getElement = useCallback(() => overlapElementRef.current, [overlapElementRef]);\n const updateState = useCallback(\n (entry: ContainerQueryEntry) => {\n if (!disabled) {\n setDynamicOverlapHeight(entry.contentBoxHeight);\n }\n },\n [disabled, setDynamicOverlapHeight]\n );\n\n useResizeObserver(getElement, updateState);\n\n useLayoutEffect(\n function handleDynamicOverlapHeight() {\n // Set overlap height back to 0 when unmounting\n return () => {\n if (!disabled) {\n setDynamicOverlapHeight(0);\n }\n };\n },\n [disabled, setDynamicOverlapHeight]\n );\n\n return overlapElementRef;\n}\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/internal/hooks/use-dynamic-overlap/index.ts"],"names":[],"mappings":"AAAA,qEAAqE;AACrE,sCAAsC;AACtC,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,OAAO,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AAG5C,OAAO,EAAE,iBAAiB,EAAE,MAAM,+CAA+C,CAAC;AAElF,OAAO,EAAE,qBAAqB,EAAE,MAAM,uCAAuC,CAAC;AAS9E;;;;;GAKG;AACH,MAAM,UAAU,iBAAiB,CAAC,KAA8B;;IAC9D,MAAM,QAAQ,GAAG,MAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,QAAQ,mCAAI,KAAK,CAAC;IAC1C,MAAM,uBAAuB,GAAG,UAAU,CAAC,qBAAqB,CAAC,CAAC;IAClE,MAAM,iBAAiB,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;IAEvC,MAAM,UAAU,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC,iBAAiB,CAAC,OAAO,EAAE,CAAC,iBAAiB,CAAC,CAAC,CAAC;IACrF,MAAM,WAAW,GAAG,WAAW,CAC7B,CAAC,KAA0B,EAAE,EAAE;QAC7B,IAAI,CAAC,QAAQ,EAAE;YACb,uBAAuB,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;SACjD;IACH,CAAC,EACD,CAAC,QAAQ,EAAE,uBAAuB,CAAC,CACpC,CAAC;IAEF,iBAAiB,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;IAE3C,eAAe,CACb,SAAS,0BAA0B;QACjC,+CAA+C;QAC/C,OAAO,GAAG,EAAE;YACV,IAAI,CAAC,QAAQ,EAAE;gBACb,uBAAuB,CAAC,CAAC,CAAC,CAAC;aAC5B;QACH,CAAC,CAAC;IACJ,CAAC,EACD,CAAC,QAAQ,EAAE,uBAAuB,CAAC,CACpC,CAAC;IAEF,OAAO,iBAAiB,CAAC;AAC3B,CAAC","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { useContext, useLayoutEffect } from 'react';\nimport { useCallback, useRef } from 'react';\n\nimport { ContainerQueryEntry } from '@cloudscape-design/component-toolkit';\nimport { useResizeObserver } from '@cloudscape-design/component-toolkit/internal';\n\nimport { DynamicOverlapContext } from '../../context/dynamic-overlap-context';\n\ninterface UseDynamicOverlapProps {\n /**\n * Disables hook if not needed. By default, `false`.\n */\n disabled?: boolean;\n}\n\n/**\n * Observes the height of an element referenced by the returning ref and sets the value as overlapping\n * height for the surrounding AppLayout component.\n * @param props.disabled disables hook if not applicable\n * @returns ref to be measured as overlapping height\n */\nexport function useDynamicOverlap(props?: UseDynamicOverlapProps) {\n const disabled = props?.disabled ?? false;\n const setDynamicOverlapHeight = useContext(DynamicOverlapContext);\n const overlapElementRef = useRef(null);\n\n const getElement = useCallback(() => overlapElementRef.current, [overlapElementRef]);\n const updateState = useCallback(\n (entry: ContainerQueryEntry) => {\n if (!disabled) {\n setDynamicOverlapHeight(entry.contentBoxHeight);\n }\n },\n [disabled, setDynamicOverlapHeight]\n );\n\n useResizeObserver(getElement, updateState);\n\n useLayoutEffect(\n function handleDynamicOverlapHeight() {\n // Set overlap height back to 0 when unmounting\n return () => {\n if (!disabled) {\n setDynamicOverlapHeight(0);\n }\n };\n },\n [disabled, setDynamicOverlapHeight]\n );\n\n return overlapElementRef;\n}\n"]}
@@ -11,10 +11,6 @@ export declare enum KeyCode {
11
11
  up = 38,
12
12
  escape = 27,
13
13
  enter = 13,
14
- tab = 9,
15
- shift = 16,
16
- control = 17,
17
- alt = 18,
18
- meta = 91
14
+ tab = 9
19
15
  }
20
16
  //# sourceMappingURL=keycode.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"keycode.d.ts","sourceRoot":"","sources":["../../../src/internal/keycode.ts"],"names":[],"mappings":"AAKA,oBAAY,OAAO;IACjB,MAAM,KAAK;IACX,QAAQ,KAAK;IACb,GAAG,KAAK;IACR,IAAI,KAAK;IACT,SAAS,IAAI;IACb,KAAK,KAAK;IACV,IAAI,KAAK;IACT,IAAI,KAAK;IACT,KAAK,KAAK;IACV,EAAE,KAAK;IACP,MAAM,KAAK;IACX,KAAK,KAAK;IACV,GAAG,IAAI;IACP,KAAK,KAAK;IACV,OAAO,KAAK;IACZ,GAAG,KAAK;IACR,IAAI,KAAK;CACV"}
1
+ {"version":3,"file":"keycode.d.ts","sourceRoot":"","sources":["../../../src/internal/keycode.ts"],"names":[],"mappings":"AAKA,oBAAY,OAAO;IACjB,MAAM,KAAK;IACX,QAAQ,KAAK;IACb,GAAG,KAAK;IACR,IAAI,KAAK;IACT,SAAS,IAAI;IACb,KAAK,KAAK;IACV,IAAI,KAAK;IACT,IAAI,KAAK;IACT,KAAK,KAAK;IACV,EAAE,KAAK;IACP,MAAM,KAAK;IACX,KAAK,KAAK;IACV,GAAG,IAAI;CACR"}
@@ -18,9 +18,5 @@ export var KeyCode;
18
18
  KeyCode[KeyCode["escape"] = 27] = "escape";
19
19
  KeyCode[KeyCode["enter"] = 13] = "enter";
20
20
  KeyCode[KeyCode["tab"] = 9] = "tab";
21
- KeyCode[KeyCode["shift"] = 16] = "shift";
22
- KeyCode[KeyCode["control"] = 17] = "control";
23
- KeyCode[KeyCode["alt"] = 18] = "alt";
24
- KeyCode[KeyCode["meta"] = 91] = "meta";
25
21
  })(KeyCode || (KeyCode = {}));
26
22
  //# sourceMappingURL=keycode.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"keycode.js","sourceRoot":"","sources":["../../../src/internal/keycode.ts"],"names":[],"mappings":"AAAA,qEAAqE;AACrE,sCAAsC;AACtC,oDAAoD;AACpD,6CAA6C;AAC7C,8BAA8B;AAC9B,MAAM,CAAN,IAAY,OAkBX;AAlBD,WAAY,OAAO;IACjB,0CAAW,CAAA;IACX,8CAAa,CAAA;IACb,oCAAQ,CAAA;IACR,sCAAS,CAAA;IACT,+CAAa,CAAA;IACb,wCAAU,CAAA;IACV,sCAAS,CAAA;IACT,sCAAS,CAAA;IACT,wCAAU,CAAA;IACV,kCAAO,CAAA;IACP,0CAAW,CAAA;IACX,wCAAU,CAAA;IACV,mCAAO,CAAA;IACP,wCAAU,CAAA;IACV,4CAAY,CAAA;IACZ,oCAAQ,CAAA;IACR,sCAAS,CAAA;AACX,CAAC,EAlBW,OAAO,KAAP,OAAO,QAkBlB","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\n// When updating the list of key codes, don't forget\n// to modify corresponding list in test-utils\n// to avoid failing unit tests\nexport enum KeyCode {\n pageUp = 33,\n pageDown = 34,\n end = 35,\n home = 36,\n backspace = 8,\n space = 32,\n down = 40,\n left = 37,\n right = 39,\n up = 38,\n escape = 27,\n enter = 13,\n tab = 9,\n shift = 16,\n control = 17,\n alt = 18,\n meta = 91,\n}\n"]}
1
+ {"version":3,"file":"keycode.js","sourceRoot":"","sources":["../../../src/internal/keycode.ts"],"names":[],"mappings":"AAAA,qEAAqE;AACrE,sCAAsC;AACtC,oDAAoD;AACpD,6CAA6C;AAC7C,8BAA8B;AAC9B,MAAM,CAAN,IAAY,OAcX;AAdD,WAAY,OAAO;IACjB,0CAAW,CAAA;IACX,8CAAa,CAAA;IACb,oCAAQ,CAAA;IACR,sCAAS,CAAA;IACT,+CAAa,CAAA;IACb,wCAAU,CAAA;IACV,sCAAS,CAAA;IACT,sCAAS,CAAA;IACT,wCAAU,CAAA;IACV,kCAAO,CAAA;IACP,0CAAW,CAAA;IACX,wCAAU,CAAA;IACV,mCAAO,CAAA;AACT,CAAC,EAdW,OAAO,KAAP,OAAO,QAclB","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\n// When updating the list of key codes, don't forget\n// to modify corresponding list in test-utils\n// to avoid failing unit tests\nexport enum KeyCode {\n pageUp = 33,\n pageDown = 34,\n end = 35,\n home = 36,\n backspace = 8,\n space = 32,\n down = 40,\n left = 37,\n right = 39,\n up = 38,\n escape = 27,\n enter = 13,\n tab = 9,\n}\n"]}
@@ -1,3 +1,3 @@
1
1
  {
2
- "commit": "c04ca9ceaaa48f6ceb5dd0fb07234d60c9eb798a"
2
+ "commit": "2049c4ab587ff9fac4b311cf65911fb8e202c42d"
3
3
  }
@@ -12,7 +12,7 @@ export interface ActionConfig {
12
12
  mountContent: (container: HTMLElement, context: ActionContext) => void;
13
13
  unmountContent: (container: HTMLElement) => void;
14
14
  }
15
- export type ActionRegistrationListener = (action: Array<ActionConfig>) => void;
15
+ type ActionRegistrationListener = (action: Array<ActionConfig>) => void;
16
16
  export interface ActionsApiPublic {
17
17
  registerAction(config: ActionConfig): void;
18
18
  }
@@ -1 +1 @@
1
- {"version":3,"file":"action-buttons.d.ts","sourceRoot":"","sources":["../../../../../src/internal/plugins/controllers/action-buttons.ts"],"names":[],"mappings":"AAMA,UAAU,OAAO,CAAC,CAAC;IACjB,OAAO,EAAE,CAAC,GAAG,IAAI,CAAC;CACnB;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC;IAChC,UAAU,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC;CAClC;AAED,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,YAAY,EAAE,CAAC,SAAS,EAAE,WAAW,EAAE,OAAO,EAAE,aAAa,KAAK,IAAI,CAAC;IACvE,cAAc,EAAE,CAAC,SAAS,EAAE,WAAW,KAAK,IAAI,CAAC;CAClD;AAED,MAAM,MAAM,0BAA0B,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,YAAY,CAAC,KAAK,IAAI,CAAC;AAE/E,MAAM,WAAW,gBAAgB;IAC/B,cAAc,CAAC,MAAM,EAAE,YAAY,GAAG,IAAI,CAAC;CAC5C;AAED,MAAM,WAAW,kBAAkB;IACjC,sBAAsB,IAAI,IAAI,CAAC;IAC/B,kBAAkB,CAAC,QAAQ,EAAE,0BAA0B,GAAG,MAAM,IAAI,CAAC;CACtE;AAED,qBAAa,uBAAuB;IAClC,OAAO,CAAC,SAAS,CAAyC;IAC1D,OAAO,CAAC,OAAO,CAA2B;IAE1C,OAAO,CAAC,cAAc,CAEhB;IAEN,cAAc,WAAY,YAAY,UAIpC;IAEF,sBAAsB,aAEpB;IAEF,kBAAkB,aAAc,0BAA0B,gBAMxD;IAEF,aAAa,CAAC,GAAG,GAAE,OAAO,CAAC,gBAAgB,CAAM,GAAG,gBAAgB;IAKpE,eAAe,CAAC,WAAW,GAAE,OAAO,CAAC,kBAAkB,CAAM,GAAG,kBAAkB;CAKnF"}
1
+ {"version":3,"file":"action-buttons.d.ts","sourceRoot":"","sources":["../../../../../src/internal/plugins/controllers/action-buttons.ts"],"names":[],"mappings":"AAMA,UAAU,OAAO,CAAC,CAAC;IACjB,OAAO,EAAE,CAAC,GAAG,IAAI,CAAC;CACnB;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC;IAChC,UAAU,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC;CAClC;AAED,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,YAAY,EAAE,CAAC,SAAS,EAAE,WAAW,EAAE,OAAO,EAAE,aAAa,KAAK,IAAI,CAAC;IACvE,cAAc,EAAE,CAAC,SAAS,EAAE,WAAW,KAAK,IAAI,CAAC;CAClD;AAED,KAAK,0BAA0B,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,YAAY,CAAC,KAAK,IAAI,CAAC;AAExE,MAAM,WAAW,gBAAgB;IAC/B,cAAc,CAAC,MAAM,EAAE,YAAY,GAAG,IAAI,CAAC;CAC5C;AAED,MAAM,WAAW,kBAAkB;IACjC,sBAAsB,IAAI,IAAI,CAAC;IAC/B,kBAAkB,CAAC,QAAQ,EAAE,0BAA0B,GAAG,MAAM,IAAI,CAAC;CACtE;AAED,qBAAa,uBAAuB;IAClC,OAAO,CAAC,SAAS,CAAyC;IAC1D,OAAO,CAAC,OAAO,CAA2B;IAE1C,OAAO,CAAC,cAAc,CAEhB;IAEN,cAAc,WAAY,YAAY,UAIpC;IAEF,sBAAsB,aAEpB;IAEF,kBAAkB,aAAc,0BAA0B,gBAMxD;IAEF,aAAa,CAAC,GAAG,GAAE,OAAO,CAAC,gBAAgB,CAAM,GAAG,gBAAgB;IAKpE,eAAe,CAAC,WAAW,GAAE,OAAO,CAAC,kBAAkB,CAAM,GAAG,kBAAkB;CAKnF"}
@@ -1 +1 @@
1
- {"version":3,"file":"action-buttons.js","sourceRoot":"","sources":["../../../../../src/internal/plugins/controllers/action-buttons.ts"],"names":[],"mappings":"AAAA,qEAAqE;AACrE,sCAAsC;AACtC,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AACtC,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AA+BlD,MAAM,OAAO,uBAAuB;IAApC;QACU,cAAS,GAAsC,EAAE,CAAC;QAClD,YAAO,GAAwB,EAAE,CAAC;QAElC,mBAAc,GAAG,QAAQ,CAAC,GAAG,EAAE;YACrC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;QAC7D,CAAC,EAAE,CAAC,CAAC,CAAC;QAEN,mBAAc,GAAG,CAAC,MAAoB,EAAE,EAAE;YACxC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAC1B,IAAI,CAAC,OAAO,GAAG,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAC5C,IAAI,CAAC,cAAc,EAAE,CAAC;QACxB,CAAC,CAAC;QAEF,2BAAsB,GAAG,GAAG,EAAE;YAC5B,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;QACpB,CAAC,CAAC;QAEF,uBAAkB,GAAG,CAAC,QAAoC,EAAE,EAAE;YAC5D,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAC9B,IAAI,CAAC,cAAc,EAAE,CAAC;YACtB,OAAO,GAAG,EAAE;gBACV,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC;YACpE,CAAC,CAAC;QACJ,CAAC,CAAC;IAYJ,CAAC;IAVC,aAAa,CAAC,MAAiC,EAAE;;QAC/C,MAAA,GAAG,CAAC,cAAc,oCAAlB,GAAG,CAAC,cAAc,GAAK,IAAI,CAAC,cAAc,EAAC;QAC3C,OAAO,GAAuB,CAAC;IACjC,CAAC;IAED,eAAe,CAAC,cAA2C,EAAE;;QAC3D,MAAA,WAAW,CAAC,sBAAsB,oCAAlC,WAAW,CAAC,sBAAsB,GAAK,IAAI,CAAC,sBAAsB,EAAC;QACnE,MAAA,WAAW,CAAC,kBAAkB,oCAA9B,WAAW,CAAC,kBAAkB,GAAK,IAAI,CAAC,kBAAkB,EAAC;QAC3D,OAAO,WAAiC,CAAC;IAC3C,CAAC;CACF","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport debounce from '../../debounce';\nimport { sortByPriority } from '../helpers/utils';\n\n// this code should not depend on React typings, because it is portable between major versions\ninterface RefShim<T> {\n current: T | null;\n}\n\nexport interface ActionContext {\n type: string;\n headerRef: RefShim<HTMLElement>;\n contentRef: RefShim<HTMLElement>;\n}\n\nexport interface ActionConfig {\n id: string;\n orderPriority?: number;\n mountContent: (container: HTMLElement, context: ActionContext) => void;\n unmountContent: (container: HTMLElement) => void;\n}\n\nexport type ActionRegistrationListener = (action: Array<ActionConfig>) => void;\n\nexport interface ActionsApiPublic {\n registerAction(config: ActionConfig): void;\n}\n\nexport interface ActionsApiInternal {\n clearRegisteredActions(): void;\n onActionRegistered(listener: ActionRegistrationListener): () => void;\n}\n\nexport class ActionButtonsController {\n private listeners: Array<ActionRegistrationListener> = [];\n private actions: Array<ActionConfig> = [];\n\n private scheduleUpdate = debounce(() => {\n this.listeners.forEach(listener => listener(this.actions));\n }, 0);\n\n registerAction = (action: ActionConfig) => {\n this.actions.push(action);\n this.actions = sortByPriority(this.actions);\n this.scheduleUpdate();\n };\n\n clearRegisteredActions = () => {\n this.actions = [];\n };\n\n onActionRegistered = (listener: ActionRegistrationListener) => {\n this.listeners.push(listener);\n this.scheduleUpdate();\n return () => {\n this.listeners = this.listeners.filter(item => item !== listener);\n };\n };\n\n installPublic(api: Partial<ActionsApiPublic> = {}): ActionsApiPublic {\n api.registerAction ??= this.registerAction;\n return api as ActionsApiPublic;\n }\n\n installInternal(internalApi: Partial<ActionsApiInternal> = {}): ActionsApiInternal {\n internalApi.clearRegisteredActions ??= this.clearRegisteredActions;\n internalApi.onActionRegistered ??= this.onActionRegistered;\n return internalApi as ActionsApiInternal;\n }\n}\n"]}
1
+ {"version":3,"file":"action-buttons.js","sourceRoot":"","sources":["../../../../../src/internal/plugins/controllers/action-buttons.ts"],"names":[],"mappings":"AAAA,qEAAqE;AACrE,sCAAsC;AACtC,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AACtC,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AA+BlD,MAAM,OAAO,uBAAuB;IAApC;QACU,cAAS,GAAsC,EAAE,CAAC;QAClD,YAAO,GAAwB,EAAE,CAAC;QAElC,mBAAc,GAAG,QAAQ,CAAC,GAAG,EAAE;YACrC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;QAC7D,CAAC,EAAE,CAAC,CAAC,CAAC;QAEN,mBAAc,GAAG,CAAC,MAAoB,EAAE,EAAE;YACxC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAC1B,IAAI,CAAC,OAAO,GAAG,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAC5C,IAAI,CAAC,cAAc,EAAE,CAAC;QACxB,CAAC,CAAC;QAEF,2BAAsB,GAAG,GAAG,EAAE;YAC5B,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;QACpB,CAAC,CAAC;QAEF,uBAAkB,GAAG,CAAC,QAAoC,EAAE,EAAE;YAC5D,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAC9B,IAAI,CAAC,cAAc,EAAE,CAAC;YACtB,OAAO,GAAG,EAAE;gBACV,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC;YACpE,CAAC,CAAC;QACJ,CAAC,CAAC;IAYJ,CAAC;IAVC,aAAa,CAAC,MAAiC,EAAE;;QAC/C,MAAA,GAAG,CAAC,cAAc,oCAAlB,GAAG,CAAC,cAAc,GAAK,IAAI,CAAC,cAAc,EAAC;QAC3C,OAAO,GAAuB,CAAC;IACjC,CAAC;IAED,eAAe,CAAC,cAA2C,EAAE;;QAC3D,MAAA,WAAW,CAAC,sBAAsB,oCAAlC,WAAW,CAAC,sBAAsB,GAAK,IAAI,CAAC,sBAAsB,EAAC;QACnE,MAAA,WAAW,CAAC,kBAAkB,oCAA9B,WAAW,CAAC,kBAAkB,GAAK,IAAI,CAAC,kBAAkB,EAAC;QAC3D,OAAO,WAAiC,CAAC;IAC3C,CAAC;CACF","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport debounce from '../../debounce';\nimport { sortByPriority } from '../helpers/utils';\n\n// this code should not depend on React typings, because it is portable between major versions\ninterface RefShim<T> {\n current: T | null;\n}\n\nexport interface ActionContext {\n type: string;\n headerRef: RefShim<HTMLElement>;\n contentRef: RefShim<HTMLElement>;\n}\n\nexport interface ActionConfig {\n id: string;\n orderPriority?: number;\n mountContent: (container: HTMLElement, context: ActionContext) => void;\n unmountContent: (container: HTMLElement) => void;\n}\n\ntype ActionRegistrationListener = (action: Array<ActionConfig>) => void;\n\nexport interface ActionsApiPublic {\n registerAction(config: ActionConfig): void;\n}\n\nexport interface ActionsApiInternal {\n clearRegisteredActions(): void;\n onActionRegistered(listener: ActionRegistrationListener): () => void;\n}\n\nexport class ActionButtonsController {\n private listeners: Array<ActionRegistrationListener> = [];\n private actions: Array<ActionConfig> = [];\n\n private scheduleUpdate = debounce(() => {\n this.listeners.forEach(listener => listener(this.actions));\n }, 0);\n\n registerAction = (action: ActionConfig) => {\n this.actions.push(action);\n this.actions = sortByPriority(this.actions);\n this.scheduleUpdate();\n };\n\n clearRegisteredActions = () => {\n this.actions = [];\n };\n\n onActionRegistered = (listener: ActionRegistrationListener) => {\n this.listeners.push(listener);\n this.scheduleUpdate();\n return () => {\n this.listeners = this.listeners.filter(item => item !== listener);\n };\n };\n\n installPublic(api: Partial<ActionsApiPublic> = {}): ActionsApiPublic {\n api.registerAction ??= this.registerAction;\n return api as ActionsApiPublic;\n }\n\n installInternal(internalApi: Partial<ActionsApiInternal> = {}): ActionsApiInternal {\n internalApi.clearRegisteredActions ??= this.clearRegisteredActions;\n internalApi.onActionRegistered ??= this.onActionRegistered;\n return internalApi as ActionsApiInternal;\n }\n}\n"]}
@@ -2,7 +2,7 @@ import { ReactNode } from 'react';
2
2
  interface RefShim<T> {
3
3
  current: T | null;
4
4
  }
5
- export interface AlertFlashContentContext {
5
+ interface AlertFlashContentContext {
6
6
  type: string;
7
7
  headerRef: RefShim<HTMLElement>;
8
8
  contentRef: RefShim<HTMLElement>;
@@ -13,7 +13,7 @@ interface AlertFlashContentInitialContext {
13
13
  content?: ReactNode;
14
14
  }
15
15
  export type ReplacementType = 'original' | 'remove' | 'replaced';
16
- export interface ReplacementApi {
16
+ interface ReplacementApi {
17
17
  hideHeader(): void;
18
18
  restoreHeader(): void;
19
19
  replaceHeader(replacer: (container: HTMLElement) => void): void;
@@ -33,7 +33,7 @@ export interface AlertFlashContentConfig {
33
33
  runReplacer: (context: AlertFlashContentContext, replacementApi: ReplacementApi) => AlertFlashContentResult;
34
34
  initialCheck?: (context: AlertFlashContentInitialContext) => boolean;
35
35
  }
36
- export type AlertFlashContentRegistrationListener = (provider: AlertFlashContentConfig) => () => void;
36
+ type AlertFlashContentRegistrationListener = (provider: AlertFlashContentConfig) => () => void;
37
37
  export interface AlertFlashContentApiPublic {
38
38
  registerContentReplacer(config: AlertFlashContentConfig): void;
39
39
  }
@@ -1 +1 @@
1
- {"version":3,"file":"alert-flash-content.d.ts","sourceRoot":"","sources":["../../../../../src/internal/plugins/controllers/alert-flash-content.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAKlC,UAAU,OAAO,CAAC,CAAC;IACjB,OAAO,EAAE,CAAC,GAAG,IAAI,CAAC;CACnB;AAED,MAAM,WAAW,wBAAwB;IACvC,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC;IAChC,UAAU,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC;CAClC;AAED,UAAU,+BAA+B;IACvC,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB,OAAO,CAAC,EAAE,SAAS,CAAC;CACrB;AAED,MAAM,MAAM,eAAe,GAAG,UAAU,GAAG,QAAQ,GAAG,UAAU,CAAC;AAEjE,MAAM,WAAW,cAAc;IAC7B,UAAU,IAAI,IAAI,CAAC;IACnB,aAAa,IAAI,IAAI,CAAC;IACtB,aAAa,CAAC,QAAQ,EAAE,CAAC,SAAS,EAAE,WAAW,KAAK,IAAI,GAAG,IAAI,CAAC;IAChE,WAAW,IAAI,IAAI,CAAC;IACpB,cAAc,IAAI,IAAI,CAAC;IACvB,cAAc,CAAC,QAAQ,EAAE,CAAC,SAAS,EAAE,WAAW,KAAK,IAAI,GAAG,IAAI,CAAC;CAClE;AAED,MAAM,WAAW,uBAAuB;IACtC,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,OAAO,EAAE,CAAC,UAAU,EAAE;QAAE,0BAA0B,EAAE,WAAW,CAAC;QAAC,2BAA2B,EAAE,WAAW,CAAA;KAAE,KAAK,IAAI,CAAC;CACtH;AAED,MAAM,WAAW,uBAAuB;IACtC,EAAE,EAAE,MAAM,CAAC;IACX,WAAW,EAAE,CAAC,OAAO,EAAE,wBAAwB,EAAE,cAAc,EAAE,cAAc,KAAK,uBAAuB,CAAC;IAC5G,YAAY,CAAC,EAAE,CAAC,OAAO,EAAE,+BAA+B,KAAK,OAAO,CAAC;CACtE;AAED,MAAM,MAAM,qCAAqC,GAAG,CAAC,QAAQ,EAAE,uBAAuB,KAAK,MAAM,IAAI,CAAC;AAEtG,MAAM,WAAW,0BAA0B;IACzC,uBAAuB,CAAC,MAAM,EAAE,uBAAuB,GAAG,IAAI,CAAC;CAChE;AAED,MAAM,WAAW,4BAA4B;IAC3C,uBAAuB,IAAI,IAAI,CAAC;IAChC,mBAAmB,CAAC,QAAQ,EAAE,qCAAqC,GAAG,MAAM,IAAI,CAAC;IACjF,YAAY,CAAC,OAAO,EAAE,+BAA+B,GAAG,OAAO,CAAC;CACjE;AAED,qBAAa,2BAA2B;;IAgBtC,uBAAuB,YAAa,uBAAuB,UAWzD;IAEF,uBAAuB,aAErB;IAEF,YAAY,YAAa,+BAA+B,KAAG,OAAO,CAKhE;IAEF,mBAAmB,aAAc,qCAAqC,gBAapE;IAEF,aAAa,CAAC,GAAG,GAAE,OAAO,CAAC,0BAA0B,CAAM,GAAG,0BAA0B;IAKxF,eAAe,CAAC,WAAW,GAAE,OAAO,CAAC,4BAA4B,CAAM,GAAG,4BAA4B;CAMvG"}
1
+ {"version":3,"file":"alert-flash-content.d.ts","sourceRoot":"","sources":["../../../../../src/internal/plugins/controllers/alert-flash-content.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAKlC,UAAU,OAAO,CAAC,CAAC;IACjB,OAAO,EAAE,CAAC,GAAG,IAAI,CAAC;CACnB;AAED,UAAU,wBAAwB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC;IAChC,UAAU,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC;CAClC;AAED,UAAU,+BAA+B;IACvC,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB,OAAO,CAAC,EAAE,SAAS,CAAC;CACrB;AAED,MAAM,MAAM,eAAe,GAAG,UAAU,GAAG,QAAQ,GAAG,UAAU,CAAC;AAEjE,UAAU,cAAc;IACtB,UAAU,IAAI,IAAI,CAAC;IACnB,aAAa,IAAI,IAAI,CAAC;IACtB,aAAa,CAAC,QAAQ,EAAE,CAAC,SAAS,EAAE,WAAW,KAAK,IAAI,GAAG,IAAI,CAAC;IAChE,WAAW,IAAI,IAAI,CAAC;IACpB,cAAc,IAAI,IAAI,CAAC;IACvB,cAAc,CAAC,QAAQ,EAAE,CAAC,SAAS,EAAE,WAAW,KAAK,IAAI,GAAG,IAAI,CAAC;CAClE;AAED,MAAM,WAAW,uBAAuB;IACtC,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,OAAO,EAAE,CAAC,UAAU,EAAE;QAAE,0BAA0B,EAAE,WAAW,CAAC;QAAC,2BAA2B,EAAE,WAAW,CAAA;KAAE,KAAK,IAAI,CAAC;CACtH;AAED,MAAM,WAAW,uBAAuB;IACtC,EAAE,EAAE,MAAM,CAAC;IACX,WAAW,EAAE,CAAC,OAAO,EAAE,wBAAwB,EAAE,cAAc,EAAE,cAAc,KAAK,uBAAuB,CAAC;IAC5G,YAAY,CAAC,EAAE,CAAC,OAAO,EAAE,+BAA+B,KAAK,OAAO,CAAC;CACtE;AAED,KAAK,qCAAqC,GAAG,CAAC,QAAQ,EAAE,uBAAuB,KAAK,MAAM,IAAI,CAAC;AAE/F,MAAM,WAAW,0BAA0B;IACzC,uBAAuB,CAAC,MAAM,EAAE,uBAAuB,GAAG,IAAI,CAAC;CAChE;AAED,MAAM,WAAW,4BAA4B;IAC3C,uBAAuB,IAAI,IAAI,CAAC;IAChC,mBAAmB,CAAC,QAAQ,EAAE,qCAAqC,GAAG,MAAM,IAAI,CAAC;IACjF,YAAY,CAAC,OAAO,EAAE,+BAA+B,GAAG,OAAO,CAAC;CACjE;AAED,qBAAa,2BAA2B;;IAgBtC,uBAAuB,YAAa,uBAAuB,UAWzD;IAEF,uBAAuB,aAErB;IAEF,YAAY,YAAa,+BAA+B,KAAG,OAAO,CAKhE;IAEF,mBAAmB,aAAc,qCAAqC,gBAapE;IAEF,aAAa,CAAC,GAAG,GAAE,OAAO,CAAC,0BAA0B,CAAM,GAAG,0BAA0B;IAKxF,eAAe,CAAC,WAAW,GAAE,OAAO,CAAC,4BAA4B,CAAM,GAAG,4BAA4B;CAMvG"}
@@ -1 +1 @@
1
- {"version":3,"file":"alert-flash-content.js","sourceRoot":"","sources":["../../../../../src/internal/plugins/controllers/alert-flash-content.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { ReactNode } from 'react';\n\nimport debounce from '../../debounce';\n\n// this code should not depend on React typings, because it is portable between major versions\ninterface RefShim<T> {\n current: T | null;\n}\n\nexport interface AlertFlashContentContext {\n type: string;\n headerRef: RefShim<HTMLElement>;\n contentRef: RefShim<HTMLElement>;\n}\n\ninterface AlertFlashContentInitialContext {\n type: string;\n header?: ReactNode;\n content?: ReactNode;\n}\n\nexport type ReplacementType = 'original' | 'remove' | 'replaced';\n\nexport interface ReplacementApi {\n hideHeader(): void;\n restoreHeader(): void;\n replaceHeader(replacer: (container: HTMLElement) => void): void;\n hideContent(): void;\n restoreContent(): void;\n replaceContent(replacer: (container: HTMLElement) => void): void;\n}\n\nexport interface AlertFlashContentResult {\n update: () => void;\n unmount: (containers: { replacementHeaderContainer: HTMLElement; replacementContentContainer: HTMLElement }) => void;\n}\n\nexport interface AlertFlashContentConfig {\n id: string;\n runReplacer: (context: AlertFlashContentContext, replacementApi: ReplacementApi) => AlertFlashContentResult;\n initialCheck?: (context: AlertFlashContentInitialContext) => boolean;\n}\n\nexport type AlertFlashContentRegistrationListener = (provider: AlertFlashContentConfig) => () => void;\n\nexport interface AlertFlashContentApiPublic {\n registerContentReplacer(config: AlertFlashContentConfig): void;\n}\n\nexport interface AlertFlashContentApiInternal {\n clearRegisteredReplacer(): void;\n onContentRegistered(listener: AlertFlashContentRegistrationListener): () => void;\n initialCheck(context: AlertFlashContentInitialContext): boolean;\n}\n\nexport class AlertFlashContentController {\n #listeners: Array<AlertFlashContentRegistrationListener> = [];\n #cleanups = new Map<AlertFlashContentRegistrationListener, () => void>();\n #provider?: AlertFlashContentConfig;\n\n #scheduleUpdate = debounce(\n () =>\n this.#listeners.forEach(listener => {\n if (this.#provider) {\n const cleanup = listener(this.#provider);\n this.#cleanups.set(listener, cleanup);\n }\n }),\n 0\n );\n\n registerContentReplacer = (content: AlertFlashContentConfig) => {\n if (this.#provider) {\n console.warn(\n `Cannot call \\`registerContentReplacer\\` with new provider: provider with id \"${this.#provider.id}\" already registered.`\n );\n return;\n }\n this.#provider = content;\n\n // Notify existing components if registration happens after the components are rendered.\n this.#scheduleUpdate();\n };\n\n clearRegisteredReplacer = () => {\n this.#provider = undefined;\n };\n\n initialCheck = (context: AlertFlashContentInitialContext): boolean => {\n if (this.#provider?.initialCheck) {\n return this.#provider.initialCheck(context);\n }\n return false;\n };\n\n onContentRegistered = (listener: AlertFlashContentRegistrationListener) => {\n if (this.#provider) {\n const cleanup = listener(this.#provider);\n this.#listeners.push(listener);\n this.#cleanups.set(listener, cleanup);\n } else {\n this.#listeners.push(listener);\n }\n return () => {\n this.#cleanups.get(listener)?.();\n this.#listeners = this.#listeners.filter(item => item !== listener);\n this.#cleanups.delete(listener);\n };\n };\n\n installPublic(api: Partial<AlertFlashContentApiPublic> = {}): AlertFlashContentApiPublic {\n api.registerContentReplacer ??= this.registerContentReplacer;\n return api as AlertFlashContentApiPublic;\n }\n\n installInternal(internalApi: Partial<AlertFlashContentApiInternal> = {}): AlertFlashContentApiInternal {\n internalApi.clearRegisteredReplacer ??= this.clearRegisteredReplacer;\n internalApi.onContentRegistered ??= this.onContentRegistered;\n internalApi.initialCheck ??= this.initialCheck;\n return internalApi as AlertFlashContentApiInternal;\n }\n}\n"]}
1
+ {"version":3,"file":"alert-flash-content.js","sourceRoot":"","sources":["../../../../../src/internal/plugins/controllers/alert-flash-content.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { ReactNode } from 'react';\n\nimport debounce from '../../debounce';\n\n// this code should not depend on React typings, because it is portable between major versions\ninterface RefShim<T> {\n current: T | null;\n}\n\ninterface AlertFlashContentContext {\n type: string;\n headerRef: RefShim<HTMLElement>;\n contentRef: RefShim<HTMLElement>;\n}\n\ninterface AlertFlashContentInitialContext {\n type: string;\n header?: ReactNode;\n content?: ReactNode;\n}\n\nexport type ReplacementType = 'original' | 'remove' | 'replaced';\n\ninterface ReplacementApi {\n hideHeader(): void;\n restoreHeader(): void;\n replaceHeader(replacer: (container: HTMLElement) => void): void;\n hideContent(): void;\n restoreContent(): void;\n replaceContent(replacer: (container: HTMLElement) => void): void;\n}\n\nexport interface AlertFlashContentResult {\n update: () => void;\n unmount: (containers: { replacementHeaderContainer: HTMLElement; replacementContentContainer: HTMLElement }) => void;\n}\n\nexport interface AlertFlashContentConfig {\n id: string;\n runReplacer: (context: AlertFlashContentContext, replacementApi: ReplacementApi) => AlertFlashContentResult;\n initialCheck?: (context: AlertFlashContentInitialContext) => boolean;\n}\n\ntype AlertFlashContentRegistrationListener = (provider: AlertFlashContentConfig) => () => void;\n\nexport interface AlertFlashContentApiPublic {\n registerContentReplacer(config: AlertFlashContentConfig): void;\n}\n\nexport interface AlertFlashContentApiInternal {\n clearRegisteredReplacer(): void;\n onContentRegistered(listener: AlertFlashContentRegistrationListener): () => void;\n initialCheck(context: AlertFlashContentInitialContext): boolean;\n}\n\nexport class AlertFlashContentController {\n #listeners: Array<AlertFlashContentRegistrationListener> = [];\n #cleanups = new Map<AlertFlashContentRegistrationListener, () => void>();\n #provider?: AlertFlashContentConfig;\n\n #scheduleUpdate = debounce(\n () =>\n this.#listeners.forEach(listener => {\n if (this.#provider) {\n const cleanup = listener(this.#provider);\n this.#cleanups.set(listener, cleanup);\n }\n }),\n 0\n );\n\n registerContentReplacer = (content: AlertFlashContentConfig) => {\n if (this.#provider) {\n console.warn(\n `Cannot call \\`registerContentReplacer\\` with new provider: provider with id \"${this.#provider.id}\" already registered.`\n );\n return;\n }\n this.#provider = content;\n\n // Notify existing components if registration happens after the components are rendered.\n this.#scheduleUpdate();\n };\n\n clearRegisteredReplacer = () => {\n this.#provider = undefined;\n };\n\n initialCheck = (context: AlertFlashContentInitialContext): boolean => {\n if (this.#provider?.initialCheck) {\n return this.#provider.initialCheck(context);\n }\n return false;\n };\n\n onContentRegistered = (listener: AlertFlashContentRegistrationListener) => {\n if (this.#provider) {\n const cleanup = listener(this.#provider);\n this.#listeners.push(listener);\n this.#cleanups.set(listener, cleanup);\n } else {\n this.#listeners.push(listener);\n }\n return () => {\n this.#cleanups.get(listener)?.();\n this.#listeners = this.#listeners.filter(item => item !== listener);\n this.#cleanups.delete(listener);\n };\n };\n\n installPublic(api: Partial<AlertFlashContentApiPublic> = {}): AlertFlashContentApiPublic {\n api.registerContentReplacer ??= this.registerContentReplacer;\n return api as AlertFlashContentApiPublic;\n }\n\n installInternal(internalApi: Partial<AlertFlashContentApiInternal> = {}): AlertFlashContentApiInternal {\n internalApi.clearRegisteredReplacer ??= this.clearRegisteredReplacer;\n internalApi.onContentRegistered ??= this.onContentRegistered;\n internalApi.initialCheck ??= this.initialCheck;\n return internalApi as AlertFlashContentApiInternal;\n }\n}\n"]}