@cloudscape-design/components-themeable 3.0.226 → 3.0.228

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 (1001) hide show
  1. package/lib/internal/manifest.json +1 -1
  2. package/lib/internal/scss/internal/components/abstract-switch/styles.scss +3 -1
  3. package/lib/internal/template/alert/index.js +4 -4
  4. package/lib/internal/template/alert/index.js.map +1 -1
  5. package/lib/internal/template/alert/internal.js +14 -15
  6. package/lib/internal/template/alert/internal.js.map +1 -1
  7. package/lib/internal/template/annotation-context/annotation/annotation-icon.js +1 -2
  8. package/lib/internal/template/annotation-context/annotation/annotation-icon.js.map +1 -1
  9. package/lib/internal/template/annotation-context/annotation/annotation-popover.js +6 -7
  10. package/lib/internal/template/annotation-context/annotation/annotation-popover.js.map +1 -1
  11. package/lib/internal/template/annotation-context/annotation/annotation-trigger.js +4 -6
  12. package/lib/internal/template/annotation-context/annotation/annotation-trigger.js.map +1 -1
  13. package/lib/internal/template/annotation-context/annotation/closed-annotation.js +4 -5
  14. package/lib/internal/template/annotation-context/annotation/closed-annotation.js.map +1 -1
  15. package/lib/internal/template/annotation-context/annotation/open-annotation.js +2 -3
  16. package/lib/internal/template/annotation-context/annotation/open-annotation.js.map +1 -1
  17. package/lib/internal/template/annotation-context/context.js +7 -7
  18. package/lib/internal/template/annotation-context/context.js.map +1 -1
  19. package/lib/internal/template/annotation-context/index.js +62 -69
  20. package/lib/internal/template/annotation-context/index.js.map +1 -1
  21. package/lib/internal/template/app-layout/content-wrapper/index.js +2 -3
  22. package/lib/internal/template/app-layout/content-wrapper/index.js.map +1 -1
  23. package/lib/internal/template/app-layout/defaults.js +13 -14
  24. package/lib/internal/template/app-layout/defaults.js.map +1 -1
  25. package/lib/internal/template/app-layout/drawer.js +16 -18
  26. package/lib/internal/template/app-layout/drawer.js.map +1 -1
  27. package/lib/internal/template/app-layout/index.js +111 -113
  28. package/lib/internal/template/app-layout/index.js.map +1 -1
  29. package/lib/internal/template/app-layout/mobile-toolbar/index.js +7 -9
  30. package/lib/internal/template/app-layout/mobile-toolbar/index.js.map +1 -1
  31. package/lib/internal/template/app-layout/navigation-panel.js +5 -8
  32. package/lib/internal/template/app-layout/navigation-panel.js.map +1 -1
  33. package/lib/internal/template/app-layout/notifications/index.js +2 -2
  34. package/lib/internal/template/app-layout/notifications/index.js.map +1 -1
  35. package/lib/internal/template/app-layout/toggles/index.js +14 -22
  36. package/lib/internal/template/app-layout/toggles/index.js.map +1 -1
  37. package/lib/internal/template/app-layout/tools-and-split-panel.js +6 -9
  38. package/lib/internal/template/app-layout/tools-and-split-panel.js.map +1 -1
  39. package/lib/internal/template/app-layout/utils/use-content-height.js +14 -15
  40. package/lib/internal/template/app-layout/utils/use-content-height.js.map +1 -1
  41. package/lib/internal/template/app-layout/utils/use-content-width.js +8 -8
  42. package/lib/internal/template/app-layout/utils/use-content-width.js.map +1 -1
  43. package/lib/internal/template/app-layout/utils/use-focus-control.js +7 -8
  44. package/lib/internal/template/app-layout/utils/use-focus-control.js.map +1 -1
  45. package/lib/internal/template/app-layout/utils/use-observed-element.js +3 -3
  46. package/lib/internal/template/app-layout/utils/use-observed-element.js.map +1 -1
  47. package/lib/internal/template/app-layout/utils/use-window-width.js +4 -4
  48. package/lib/internal/template/app-layout/utils/use-window-width.js.map +1 -1
  49. package/lib/internal/template/app-layout/visual-refresh/app-bar.js +19 -20
  50. package/lib/internal/template/app-layout/visual-refresh/app-bar.js.map +1 -1
  51. package/lib/internal/template/app-layout/visual-refresh/background.js +9 -10
  52. package/lib/internal/template/app-layout/visual-refresh/background.js.map +1 -1
  53. package/lib/internal/template/app-layout/visual-refresh/context.js +101 -59
  54. package/lib/internal/template/app-layout/visual-refresh/context.js.map +1 -1
  55. package/lib/internal/template/app-layout/visual-refresh/header.js +6 -7
  56. package/lib/internal/template/app-layout/visual-refresh/header.js.map +1 -1
  57. package/lib/internal/template/app-layout/visual-refresh/index.js +3 -4
  58. package/lib/internal/template/app-layout/visual-refresh/index.js.map +1 -1
  59. package/lib/internal/template/app-layout/visual-refresh/layout.js +18 -21
  60. package/lib/internal/template/app-layout/visual-refresh/layout.js.map +1 -1
  61. package/lib/internal/template/app-layout/visual-refresh/main.js +17 -18
  62. package/lib/internal/template/app-layout/visual-refresh/main.js.map +1 -1
  63. package/lib/internal/template/app-layout/visual-refresh/navigation.js +22 -24
  64. package/lib/internal/template/app-layout/visual-refresh/navigation.js.map +1 -1
  65. package/lib/internal/template/app-layout/visual-refresh/notifications.js +6 -7
  66. package/lib/internal/template/app-layout/visual-refresh/notifications.js.map +1 -1
  67. package/lib/internal/template/app-layout/visual-refresh/split-panel.js +36 -43
  68. package/lib/internal/template/app-layout/visual-refresh/split-panel.js.map +1 -1
  69. package/lib/internal/template/app-layout/visual-refresh/tools.js +32 -34
  70. package/lib/internal/template/app-layout/visual-refresh/tools.js.map +1 -1
  71. package/lib/internal/template/app-layout/visual-refresh/trigger-button.js +5 -8
  72. package/lib/internal/template/app-layout/visual-refresh/trigger-button.js.map +1 -1
  73. package/lib/internal/template/area-chart/chart-container.js +18 -19
  74. package/lib/internal/template/area-chart/chart-container.js.map +1 -1
  75. package/lib/internal/template/area-chart/elements/area-chart-filter.js +7 -8
  76. package/lib/internal/template/area-chart/elements/area-chart-filter.js.map +1 -1
  77. package/lib/internal/template/area-chart/elements/area-chart-legend.js +6 -9
  78. package/lib/internal/template/area-chart/elements/area-chart-legend.js.map +1 -1
  79. package/lib/internal/template/area-chart/elements/area-series.js +12 -13
  80. package/lib/internal/template/area-chart/elements/area-series.js.map +1 -1
  81. package/lib/internal/template/area-chart/elements/chart-popover.js +4 -6
  82. package/lib/internal/template/area-chart/elements/chart-popover.js.map +1 -1
  83. package/lib/internal/template/area-chart/elements/data-series.js +14 -17
  84. package/lib/internal/template/area-chart/elements/data-series.js.map +1 -1
  85. package/lib/internal/template/area-chart/elements/highlighted-point.js +6 -7
  86. package/lib/internal/template/area-chart/elements/highlighted-point.js.map +1 -1
  87. package/lib/internal/template/area-chart/elements/threshold-series.js +5 -7
  88. package/lib/internal/template/area-chart/elements/threshold-series.js.map +1 -1
  89. package/lib/internal/template/area-chart/elements/use-highlight-details.js +28 -30
  90. package/lib/internal/template/area-chart/elements/use-highlight-details.js.map +1 -1
  91. package/lib/internal/template/area-chart/elements/vertical-marker.js +6 -7
  92. package/lib/internal/template/area-chart/elements/vertical-marker.js.map +1 -1
  93. package/lib/internal/template/area-chart/index.js +4 -4
  94. package/lib/internal/template/area-chart/index.js.map +1 -1
  95. package/lib/internal/template/area-chart/internal.js +40 -41
  96. package/lib/internal/template/area-chart/internal.js.map +1 -1
  97. package/lib/internal/template/area-chart/model/async-store.js +23 -30
  98. package/lib/internal/template/area-chart/model/async-store.js.map +1 -1
  99. package/lib/internal/template/area-chart/model/compute-chart-props.js +11 -12
  100. package/lib/internal/template/area-chart/model/compute-chart-props.js.map +1 -1
  101. package/lib/internal/template/area-chart/model/create-series-decorator.js +11 -13
  102. package/lib/internal/template/area-chart/model/create-series-decorator.js.map +1 -1
  103. package/lib/internal/template/area-chart/model/interactions-store.js +47 -54
  104. package/lib/internal/template/area-chart/model/interactions-store.js.map +1 -1
  105. package/lib/internal/template/area-chart/model/use-chart-model.js +85 -89
  106. package/lib/internal/template/area-chart/model/use-chart-model.js.map +1 -1
  107. package/lib/internal/template/area-chart/model/use-filter-props.js +6 -6
  108. package/lib/internal/template/area-chart/model/use-filter-props.js.map +1 -1
  109. package/lib/internal/template/area-chart/model/use-highlight-props.js +6 -6
  110. package/lib/internal/template/area-chart/model/use-highlight-props.js.map +1 -1
  111. package/lib/internal/template/area-chart/model/utils.js +46 -59
  112. package/lib/internal/template/area-chart/model/utils.js.map +1 -1
  113. package/lib/internal/template/attribute-editor/additional-info.js +2 -5
  114. package/lib/internal/template/attribute-editor/additional-info.js.map +1 -1
  115. package/lib/internal/template/attribute-editor/index.js +5 -5
  116. package/lib/internal/template/attribute-editor/index.js.map +1 -1
  117. package/lib/internal/template/attribute-editor/internal.js +20 -20
  118. package/lib/internal/template/attribute-editor/internal.js.map +1 -1
  119. package/lib/internal/template/attribute-editor/row.js +17 -25
  120. package/lib/internal/template/attribute-editor/row.js.map +1 -1
  121. package/lib/internal/template/autosuggest/autosuggest-option.js +12 -12
  122. package/lib/internal/template/autosuggest/autosuggest-option.js.map +1 -1
  123. package/lib/internal/template/autosuggest/index.js +6 -6
  124. package/lib/internal/template/autosuggest/index.js.map +1 -1
  125. package/lib/internal/template/autosuggest/internal.js +39 -39
  126. package/lib/internal/template/autosuggest/internal.js.map +1 -1
  127. package/lib/internal/template/autosuggest/load-more-controller.js +10 -14
  128. package/lib/internal/template/autosuggest/load-more-controller.js.map +1 -1
  129. package/lib/internal/template/autosuggest/options-controller.js +31 -32
  130. package/lib/internal/template/autosuggest/options-controller.js.map +1 -1
  131. package/lib/internal/template/autosuggest/options-list.js +12 -13
  132. package/lib/internal/template/autosuggest/options-list.js.map +1 -1
  133. package/lib/internal/template/autosuggest/plain-list.js +15 -17
  134. package/lib/internal/template/autosuggest/plain-list.js.map +1 -1
  135. package/lib/internal/template/autosuggest/utils/utils.js +12 -12
  136. package/lib/internal/template/autosuggest/utils/utils.js.map +1 -1
  137. package/lib/internal/template/autosuggest/virtual-list.js +14 -16
  138. package/lib/internal/template/autosuggest/virtual-list.js.map +1 -1
  139. package/lib/internal/template/badge/index.js +6 -6
  140. package/lib/internal/template/badge/index.js.map +1 -1
  141. package/lib/internal/template/bar-chart/index.js +6 -6
  142. package/lib/internal/template/bar-chart/index.js.map +1 -1
  143. package/lib/internal/template/box/index.js +4 -4
  144. package/lib/internal/template/box/index.js.map +1 -1
  145. package/lib/internal/template/box/internal.js +12 -12
  146. package/lib/internal/template/box/internal.js.map +1 -1
  147. package/lib/internal/template/breadcrumb-group/index.js +4 -4
  148. package/lib/internal/template/breadcrumb-group/index.js.map +1 -1
  149. package/lib/internal/template/breadcrumb-group/internal.js +24 -25
  150. package/lib/internal/template/breadcrumb-group/internal.js.map +1 -1
  151. package/lib/internal/template/breadcrumb-group/item/item.js +32 -34
  152. package/lib/internal/template/breadcrumb-group/item/item.js.map +1 -1
  153. package/lib/internal/template/button/icon-helper.js +6 -6
  154. package/lib/internal/template/button/icon-helper.js.map +1 -1
  155. package/lib/internal/template/button/index.js +6 -6
  156. package/lib/internal/template/button/index.js.map +1 -1
  157. package/lib/internal/template/button/internal.js +32 -33
  158. package/lib/internal/template/button/internal.js.map +1 -1
  159. package/lib/internal/template/button-dropdown/category-elements/category-element.js +3 -5
  160. package/lib/internal/template/button-dropdown/category-elements/category-element.js.map +1 -1
  161. package/lib/internal/template/button-dropdown/category-elements/expandable-category-element.js +23 -26
  162. package/lib/internal/template/button-dropdown/category-elements/expandable-category-element.js.map +1 -1
  163. package/lib/internal/template/button-dropdown/category-elements/mobile-expandable-category-element.js +27 -30
  164. package/lib/internal/template/button-dropdown/category-elements/mobile-expandable-category-element.js.map +1 -1
  165. package/lib/internal/template/button-dropdown/index.js +6 -6
  166. package/lib/internal/template/button-dropdown/index.js.map +1 -1
  167. package/lib/internal/template/button-dropdown/internal.js +28 -29
  168. package/lib/internal/template/button-dropdown/internal.js.map +1 -1
  169. package/lib/internal/template/button-dropdown/item-element/index.js +30 -36
  170. package/lib/internal/template/button-dropdown/item-element/index.js.map +1 -1
  171. package/lib/internal/template/button-dropdown/items-list.js +3 -4
  172. package/lib/internal/template/button-dropdown/items-list.js.map +1 -1
  173. package/lib/internal/template/button-dropdown/mobile-expandable-group/mobile-expandable-group.js +2 -4
  174. package/lib/internal/template/button-dropdown/mobile-expandable-group/mobile-expandable-group.js.map +1 -1
  175. package/lib/internal/template/button-dropdown/tooltip.js +22 -24
  176. package/lib/internal/template/button-dropdown/tooltip.js.map +1 -1
  177. package/lib/internal/template/button-dropdown/utils/create-items-tree.js +21 -23
  178. package/lib/internal/template/button-dropdown/utils/create-items-tree.js.map +1 -1
  179. package/lib/internal/template/button-dropdown/utils/menu-item.js +6 -9
  180. package/lib/internal/template/button-dropdown/utils/menu-item.js.map +1 -1
  181. package/lib/internal/template/button-dropdown/utils/move-highlight.js +3 -4
  182. package/lib/internal/template/button-dropdown/utils/move-highlight.js.map +1 -1
  183. package/lib/internal/template/button-dropdown/utils/use-button-dropdown.js +31 -33
  184. package/lib/internal/template/button-dropdown/utils/use-button-dropdown.js.map +1 -1
  185. package/lib/internal/template/button-dropdown/utils/use-hidden-description.js +3 -3
  186. package/lib/internal/template/button-dropdown/utils/use-hidden-description.js.map +1 -1
  187. package/lib/internal/template/button-dropdown/utils/use-highlighted-menu.js +40 -42
  188. package/lib/internal/template/button-dropdown/utils/use-highlighted-menu.js.map +1 -1
  189. package/lib/internal/template/button-dropdown/utils/utils.js +5 -9
  190. package/lib/internal/template/button-dropdown/utils/utils.js.map +1 -1
  191. package/lib/internal/template/calendar/grid/index.js +25 -28
  192. package/lib/internal/template/calendar/grid/index.js.map +1 -1
  193. package/lib/internal/template/calendar/header/header-button.js +4 -6
  194. package/lib/internal/template/calendar/header/header-button.js.map +1 -1
  195. package/lib/internal/template/calendar/header/index.js +1 -2
  196. package/lib/internal/template/calendar/header/index.js.map +1 -1
  197. package/lib/internal/template/calendar/index.js +4 -4
  198. package/lib/internal/template/calendar/index.js.map +1 -1
  199. package/lib/internal/template/calendar/internal.js +27 -27
  200. package/lib/internal/template/calendar/internal.js.map +1 -1
  201. package/lib/internal/template/calendar/utils/intl.js +12 -13
  202. package/lib/internal/template/calendar/utils/intl.js.map +1 -1
  203. package/lib/internal/template/calendar/utils/navigation.js +3 -3
  204. package/lib/internal/template/calendar/utils/navigation.js.map +1 -1
  205. package/lib/internal/template/cards/cards-layout-helper.js +12 -12
  206. package/lib/internal/template/cards/cards-layout-helper.js.map +1 -1
  207. package/lib/internal/template/cards/index.js +53 -63
  208. package/lib/internal/template/cards/index.js.map +1 -1
  209. package/lib/internal/template/checkbox/index.js +4 -4
  210. package/lib/internal/template/checkbox/index.js.map +1 -1
  211. package/lib/internal/template/checkbox/internal.d.ts +1 -0
  212. package/lib/internal/template/checkbox/internal.d.ts.map +1 -1
  213. package/lib/internal/template/checkbox/internal.js +9 -9
  214. package/lib/internal/template/checkbox/internal.js.map +1 -1
  215. package/lib/internal/template/code-editor/ace-modes.js +1 -1
  216. package/lib/internal/template/code-editor/ace-modes.js.map +1 -1
  217. package/lib/internal/template/code-editor/ace-themes.js +2 -2
  218. package/lib/internal/template/code-editor/ace-themes.js.map +1 -1
  219. package/lib/internal/template/code-editor/error-screen.js +3 -4
  220. package/lib/internal/template/code-editor/error-screen.js.map +1 -1
  221. package/lib/internal/template/code-editor/index.js +61 -65
  222. package/lib/internal/template/code-editor/index.js.map +1 -1
  223. package/lib/internal/template/code-editor/listeners.js +5 -5
  224. package/lib/internal/template/code-editor/listeners.js.map +1 -1
  225. package/lib/internal/template/code-editor/loading-screen.js +2 -2
  226. package/lib/internal/template/code-editor/loading-screen.js.map +1 -1
  227. package/lib/internal/template/code-editor/pane.js +21 -25
  228. package/lib/internal/template/code-editor/pane.js.map +1 -1
  229. package/lib/internal/template/code-editor/preferences-modal.js +12 -13
  230. package/lib/internal/template/code-editor/preferences-modal.js.map +1 -1
  231. package/lib/internal/template/code-editor/resizable-box/index.js +14 -15
  232. package/lib/internal/template/code-editor/resizable-box/index.js.map +1 -1
  233. package/lib/internal/template/code-editor/setup-editor.js +20 -20
  234. package/lib/internal/template/code-editor/setup-editor.js.map +1 -1
  235. package/lib/internal/template/code-editor/status-bar.js +19 -22
  236. package/lib/internal/template/code-editor/status-bar.js.map +1 -1
  237. package/lib/internal/template/code-editor/tab-button.js +7 -10
  238. package/lib/internal/template/code-editor/tab-button.js.map +1 -1
  239. package/lib/internal/template/code-editor/util.js +6 -6
  240. package/lib/internal/template/code-editor/util.js.map +1 -1
  241. package/lib/internal/template/collection-preferences/index.js +21 -23
  242. package/lib/internal/template/collection-preferences/index.js.map +1 -1
  243. package/lib/internal/template/collection-preferences/utils.js +25 -57
  244. package/lib/internal/template/collection-preferences/utils.js.map +1 -1
  245. package/lib/internal/template/collection-preferences/visible-content.js +23 -27
  246. package/lib/internal/template/collection-preferences/visible-content.js.map +1 -1
  247. package/lib/internal/template/column-layout/index.js +6 -6
  248. package/lib/internal/template/column-layout/index.js.map +1 -1
  249. package/lib/internal/template/column-layout/internal.js +20 -21
  250. package/lib/internal/template/column-layout/internal.js.map +1 -1
  251. package/lib/internal/template/column-layout/util.js +2 -2
  252. package/lib/internal/template/column-layout/util.js.map +1 -1
  253. package/lib/internal/template/container/index.js +5 -5
  254. package/lib/internal/template/container/index.js.map +1 -1
  255. package/lib/internal/template/container/internal.js +30 -31
  256. package/lib/internal/template/container/internal.js.map +1 -1
  257. package/lib/internal/template/container/use-sticky-header.js +25 -25
  258. package/lib/internal/template/container/use-sticky-header.js.map +1 -1
  259. package/lib/internal/template/content-layout/index.js +2 -3
  260. package/lib/internal/template/content-layout/index.js.map +1 -1
  261. package/lib/internal/template/content-layout/internal.js +15 -16
  262. package/lib/internal/template/content-layout/internal.js.map +1 -1
  263. package/lib/internal/template/date-input/index.js +3 -4
  264. package/lib/internal/template/date-input/index.js.map +1 -1
  265. package/lib/internal/template/date-input/internal.js +8 -8
  266. package/lib/internal/template/date-input/internal.js.map +1 -1
  267. package/lib/internal/template/date-picker/index.js +28 -28
  268. package/lib/internal/template/date-picker/index.js.map +1 -1
  269. package/lib/internal/template/date-range-picker/calendar/grids/grid.js +54 -57
  270. package/lib/internal/template/date-range-picker/calendar/grids/grid.js.map +1 -1
  271. package/lib/internal/template/date-range-picker/calendar/grids/index.js +27 -28
  272. package/lib/internal/template/date-range-picker/calendar/grids/index.js.map +1 -1
  273. package/lib/internal/template/date-range-picker/calendar/header/header-button.js +4 -6
  274. package/lib/internal/template/date-range-picker/calendar/header/header-button.js.map +1 -1
  275. package/lib/internal/template/date-range-picker/calendar/header/index.js +6 -7
  276. package/lib/internal/template/date-range-picker/calendar/header/index.js.map +1 -1
  277. package/lib/internal/template/date-range-picker/calendar/index.js +40 -45
  278. package/lib/internal/template/date-range-picker/calendar/index.js.map +1 -1
  279. package/lib/internal/template/date-range-picker/calendar/range-inputs.js +5 -6
  280. package/lib/internal/template/date-range-picker/calendar/range-inputs.js.map +1 -1
  281. package/lib/internal/template/date-range-picker/calendar/utils.js +2 -2
  282. package/lib/internal/template/date-range-picker/calendar/utils.js.map +1 -1
  283. package/lib/internal/template/date-range-picker/dropdown.js +29 -34
  284. package/lib/internal/template/date-range-picker/dropdown.js.map +1 -1
  285. package/lib/internal/template/date-range-picker/index.js +40 -43
  286. package/lib/internal/template/date-range-picker/index.js.map +1 -1
  287. package/lib/internal/template/date-range-picker/mode-switcher.js +2 -3
  288. package/lib/internal/template/date-range-picker/mode-switcher.js.map +1 -1
  289. package/lib/internal/template/date-range-picker/relative-range/index.js +36 -40
  290. package/lib/internal/template/date-range-picker/relative-range/index.js.map +1 -1
  291. package/lib/internal/template/date-range-picker/time-offset.js +5 -5
  292. package/lib/internal/template/date-range-picker/time-offset.js.map +1 -1
  293. package/lib/internal/template/date-range-picker/utils.js +4 -5
  294. package/lib/internal/template/date-range-picker/utils.js.map +1 -1
  295. package/lib/internal/template/expandable-section/expandable-section-container.js +5 -5
  296. package/lib/internal/template/expandable-section/expandable-section-container.js.map +1 -1
  297. package/lib/internal/template/expandable-section/expandable-section-header.js +18 -23
  298. package/lib/internal/template/expandable-section/expandable-section-header.js.map +1 -1
  299. package/lib/internal/template/expandable-section/index.js +4 -4
  300. package/lib/internal/template/expandable-section/index.js.map +1 -1
  301. package/lib/internal/template/expandable-section/internal.js +22 -22
  302. package/lib/internal/template/expandable-section/internal.js.map +1 -1
  303. package/lib/internal/template/flashbar/collapsible-flashbar.js +103 -118
  304. package/lib/internal/template/flashbar/collapsible-flashbar.js.map +1 -1
  305. package/lib/internal/template/flashbar/common.js +26 -35
  306. package/lib/internal/template/flashbar/common.js.map +1 -1
  307. package/lib/internal/template/flashbar/constant.js +1 -1
  308. package/lib/internal/template/flashbar/constant.js.map +1 -1
  309. package/lib/internal/template/flashbar/flash.js +23 -26
  310. package/lib/internal/template/flashbar/flash.js.map +1 -1
  311. package/lib/internal/template/flashbar/index.js +3 -4
  312. package/lib/internal/template/flashbar/index.js.map +1 -1
  313. package/lib/internal/template/flashbar/internal/analytics.js +12 -12
  314. package/lib/internal/template/flashbar/internal/analytics.js.map +1 -1
  315. package/lib/internal/template/flashbar/non-collapsible-flashbar.js +10 -10
  316. package/lib/internal/template/flashbar/non-collapsible-flashbar.js.map +1 -1
  317. package/lib/internal/template/flashbar/utils.js +25 -27
  318. package/lib/internal/template/flashbar/utils.js.map +1 -1
  319. package/lib/internal/template/form/index.js +4 -4
  320. package/lib/internal/template/form/index.js.map +1 -1
  321. package/lib/internal/template/form/internal.js +5 -6
  322. package/lib/internal/template/form/internal.js.map +1 -1
  323. package/lib/internal/template/form-field/index.js +4 -4
  324. package/lib/internal/template/form-field/index.js.map +1 -1
  325. package/lib/internal/template/form-field/internal.js +20 -23
  326. package/lib/internal/template/form-field/internal.js.map +1 -1
  327. package/lib/internal/template/form-field/util.js +9 -10
  328. package/lib/internal/template/form-field/util.js.map +1 -1
  329. package/lib/internal/template/grid/index.js +6 -6
  330. package/lib/internal/template/grid/index.js.map +1 -1
  331. package/lib/internal/template/grid/internal.js +14 -15
  332. package/lib/internal/template/grid/internal.js.map +1 -1
  333. package/lib/internal/template/header/index.js +4 -4
  334. package/lib/internal/template/header/index.js.map +1 -1
  335. package/lib/internal/template/header/internal.js +15 -15
  336. package/lib/internal/template/header/internal.js.map +1 -1
  337. package/lib/internal/template/help-panel/index.js +7 -7
  338. package/lib/internal/template/help-panel/index.js.map +1 -1
  339. package/lib/internal/template/hotspot/index.js +12 -12
  340. package/lib/internal/template/hotspot/index.js.map +1 -1
  341. package/lib/internal/template/icon/icons.js +1 -1
  342. package/lib/internal/template/icon/index.js +4 -4
  343. package/lib/internal/template/icon/index.js.map +1 -1
  344. package/lib/internal/template/icon/internal.js +18 -18
  345. package/lib/internal/template/icon/internal.js.map +1 -1
  346. package/lib/internal/template/input/index.js +36 -17
  347. package/lib/internal/template/input/index.js.map +1 -1
  348. package/lib/internal/template/input/internal.js +30 -25
  349. package/lib/internal/template/input/internal.js.map +1 -1
  350. package/lib/internal/template/input/utils.js +4 -5
  351. package/lib/internal/template/input/utils.js.map +1 -1
  352. package/lib/internal/template/internal/animate.js +27 -32
  353. package/lib/internal/template/internal/animate.js.map +1 -1
  354. package/lib/internal/template/internal/base-component/index.js +2 -2
  355. package/lib/internal/template/internal/base-component/index.js.map +1 -1
  356. package/lib/internal/template/internal/breakpoints.js +7 -12
  357. package/lib/internal/template/internal/breakpoints.js.map +1 -1
  358. package/lib/internal/template/internal/components/abstract-switch/index.d.ts +2 -1
  359. package/lib/internal/template/internal/components/abstract-switch/index.d.ts.map +1 -1
  360. package/lib/internal/template/internal/components/abstract-switch/index.js +19 -19
  361. package/lib/internal/template/internal/components/abstract-switch/index.js.map +1 -1
  362. package/lib/internal/template/internal/components/abstract-switch/styles.css.js +13 -12
  363. package/lib/internal/template/internal/components/abstract-switch/styles.scoped.css +21 -21
  364. package/lib/internal/template/internal/components/abstract-switch/styles.selectors.js +13 -12
  365. package/lib/internal/template/internal/components/autosuggest-input/index.js +38 -38
  366. package/lib/internal/template/internal/components/autosuggest-input/index.js.map +1 -1
  367. package/lib/internal/template/internal/components/button-trigger/index.js +7 -7
  368. package/lib/internal/template/internal/components/button-trigger/index.js.map +1 -1
  369. package/lib/internal/template/internal/components/cartesian-chart/axis-label.js +1 -2
  370. package/lib/internal/template/internal/components/cartesian-chart/axis-label.js.map +1 -1
  371. package/lib/internal/template/internal/components/cartesian-chart/bottom-labels.js +20 -26
  372. package/lib/internal/template/internal/components/cartesian-chart/bottom-labels.js.map +1 -1
  373. package/lib/internal/template/internal/components/cartesian-chart/constants.js +5 -5
  374. package/lib/internal/template/internal/components/cartesian-chart/constants.js.map +1 -1
  375. package/lib/internal/template/internal/components/cartesian-chart/emphasized-baseline.js +4 -5
  376. package/lib/internal/template/internal/components/cartesian-chart/emphasized-baseline.js.map +1 -1
  377. package/lib/internal/template/internal/components/cartesian-chart/highlighted-point.js +1 -2
  378. package/lib/internal/template/internal/components/cartesian-chart/highlighted-point.js.map +1 -1
  379. package/lib/internal/template/internal/components/cartesian-chart/label-utils.js +20 -24
  380. package/lib/internal/template/internal/components/cartesian-chart/label-utils.js.map +1 -1
  381. package/lib/internal/template/internal/components/cartesian-chart/labels-measure.js +6 -7
  382. package/lib/internal/template/internal/components/cartesian-chart/labels-measure.js.map +1 -1
  383. package/lib/internal/template/internal/components/cartesian-chart/left-labels.js +13 -17
  384. package/lib/internal/template/internal/components/cartesian-chart/left-labels.js.map +1 -1
  385. package/lib/internal/template/internal/components/cartesian-chart/scales.js +21 -26
  386. package/lib/internal/template/internal/components/cartesian-chart/scales.js.map +1 -1
  387. package/lib/internal/template/internal/components/cartesian-chart/ticks.js +9 -10
  388. package/lib/internal/template/internal/components/cartesian-chart/ticks.js.map +1 -1
  389. package/lib/internal/template/internal/components/cartesian-chart/vertical-grid-lines.js +3 -4
  390. package/lib/internal/template/internal/components/cartesian-chart/vertical-grid-lines.js.map +1 -1
  391. package/lib/internal/template/internal/components/cartesian-chart/vertical-marker.js +3 -4
  392. package/lib/internal/template/internal/components/cartesian-chart/vertical-marker.js.map +1 -1
  393. package/lib/internal/template/internal/components/chart-filter/index.js +13 -14
  394. package/lib/internal/template/internal/components/chart-filter/index.js.map +1 -1
  395. package/lib/internal/template/internal/components/chart-legend/index.js +26 -29
  396. package/lib/internal/template/internal/components/chart-legend/index.js.map +1 -1
  397. package/lib/internal/template/internal/components/chart-plot/application-controller.js +21 -25
  398. package/lib/internal/template/internal/components/chart-plot/application-controller.js.map +1 -1
  399. package/lib/internal/template/internal/components/chart-plot/focus-outline.js +7 -8
  400. package/lib/internal/template/internal/components/chart-plot/focus-outline.js.map +1 -1
  401. package/lib/internal/template/internal/components/chart-plot/index.js +33 -34
  402. package/lib/internal/template/internal/components/chart-plot/index.js.map +1 -1
  403. package/lib/internal/template/internal/components/chart-popover/index.js +11 -12
  404. package/lib/internal/template/internal/components/chart-popover/index.js.map +1 -1
  405. package/lib/internal/template/internal/components/chart-series-details/index.js +13 -17
  406. package/lib/internal/template/internal/components/chart-series-details/index.js.map +1 -1
  407. package/lib/internal/template/internal/components/chart-series-marker/index.js +2 -3
  408. package/lib/internal/template/internal/components/chart-series-marker/index.js.map +1 -1
  409. package/lib/internal/template/internal/components/chart-status-container/index.js +8 -10
  410. package/lib/internal/template/internal/components/chart-status-container/index.js.map +1 -1
  411. package/lib/internal/template/internal/components/checkbox-icon/index.js +18 -19
  412. package/lib/internal/template/internal/components/checkbox-icon/index.js.map +1 -1
  413. package/lib/internal/template/internal/components/dark-ribbon/index.js +13 -14
  414. package/lib/internal/template/internal/components/dark-ribbon/index.js.map +1 -1
  415. package/lib/internal/template/internal/components/dropdown/context.js +4 -5
  416. package/lib/internal/template/internal/components/dropdown/context.js.map +1 -1
  417. package/lib/internal/template/internal/components/dropdown/dropdown-fit-handler.js +74 -81
  418. package/lib/internal/template/internal/components/dropdown/dropdown-fit-handler.js.map +1 -1
  419. package/lib/internal/template/internal/components/dropdown/index.js +57 -65
  420. package/lib/internal/template/internal/components/dropdown/index.js.map +1 -1
  421. package/lib/internal/template/internal/components/dropdown-footer/index.js +2 -6
  422. package/lib/internal/template/internal/components/dropdown-footer/index.js.map +1 -1
  423. package/lib/internal/template/internal/components/dropdown-status/index.js +5 -7
  424. package/lib/internal/template/internal/components/dropdown-status/index.js.map +1 -1
  425. package/lib/internal/template/internal/components/filtering-token/index.js +4 -6
  426. package/lib/internal/template/internal/components/filtering-token/index.js.map +1 -1
  427. package/lib/internal/template/internal/components/focus-lock/index.js +10 -11
  428. package/lib/internal/template/internal/components/focus-lock/index.js.map +1 -1
  429. package/lib/internal/template/internal/components/focus-lock/utils.js +4 -4
  430. package/lib/internal/template/internal/components/focus-lock/utils.js.map +1 -1
  431. package/lib/internal/template/internal/components/live-region/index.js +10 -10
  432. package/lib/internal/template/internal/components/live-region/index.js.map +1 -1
  433. package/lib/internal/template/internal/components/masked-input/index.js +22 -24
  434. package/lib/internal/template/internal/components/masked-input/index.js.map +1 -1
  435. package/lib/internal/template/internal/components/masked-input/keyboard-handler.js +18 -18
  436. package/lib/internal/template/internal/components/masked-input/keyboard-handler.js.map +1 -1
  437. package/lib/internal/template/internal/components/masked-input/use-mask.js +24 -28
  438. package/lib/internal/template/internal/components/masked-input/use-mask.js.map +1 -1
  439. package/lib/internal/template/internal/components/masked-input/utils/keys.js +4 -6
  440. package/lib/internal/template/internal/components/masked-input/utils/keys.js.map +1 -1
  441. package/lib/internal/template/internal/components/masked-input/utils/mask-format.js +103 -113
  442. package/lib/internal/template/internal/components/masked-input/utils/mask-format.js.map +1 -1
  443. package/lib/internal/template/internal/components/masked-input/utils/strings.js +1 -4
  444. package/lib/internal/template/internal/components/masked-input/utils/strings.js.map +1 -1
  445. package/lib/internal/template/internal/components/menu-dropdown/index.js +10 -12
  446. package/lib/internal/template/internal/components/menu-dropdown/index.js.map +1 -1
  447. package/lib/internal/template/internal/components/option/highlight-match.js +14 -18
  448. package/lib/internal/template/internal/components/option/highlight-match.js.map +1 -1
  449. package/lib/internal/template/internal/components/option/index.js +13 -13
  450. package/lib/internal/template/internal/components/option/index.js.map +1 -1
  451. package/lib/internal/template/internal/components/option/option-announcer.js +1 -1
  452. package/lib/internal/template/internal/components/option/option-announcer.js.map +1 -1
  453. package/lib/internal/template/internal/components/option/option-parts.js +28 -45
  454. package/lib/internal/template/internal/components/option/option-parts.js.map +1 -1
  455. package/lib/internal/template/internal/components/option/utils/filter-options.js +16 -19
  456. package/lib/internal/template/internal/components/option/utils/filter-options.js.map +1 -1
  457. package/lib/internal/template/internal/components/option/utils/flatten-options.js +15 -15
  458. package/lib/internal/template/internal/components/option/utils/flatten-options.js.map +1 -1
  459. package/lib/internal/template/internal/components/option/utils/prepare-options.js +3 -3
  460. package/lib/internal/template/internal/components/option/utils/prepare-options.js.map +1 -1
  461. package/lib/internal/template/internal/components/options-list/index.js +19 -20
  462. package/lib/internal/template/internal/components/options-list/index.js.map +1 -1
  463. package/lib/internal/template/internal/components/options-list/utils/test-indexes.js +11 -11
  464. package/lib/internal/template/internal/components/options-list/utils/test-indexes.js.map +1 -1
  465. package/lib/internal/template/internal/components/options-list/utils/use-highlight-option.js +17 -21
  466. package/lib/internal/template/internal/components/options-list/utils/use-highlight-option.js.map +1 -1
  467. package/lib/internal/template/internal/components/options-list/utils/use-ids.js +2 -2
  468. package/lib/internal/template/internal/components/options-list/utils/use-ids.js.map +1 -1
  469. package/lib/internal/template/internal/components/options-list/utils/use-keyboard.js +6 -8
  470. package/lib/internal/template/internal/components/options-list/utils/use-keyboard.js.map +1 -1
  471. package/lib/internal/template/internal/components/options-list/utils/use-open-state.js +6 -7
  472. package/lib/internal/template/internal/components/options-list/utils/use-open-state.js.map +1 -1
  473. package/lib/internal/template/internal/components/portal/index.js +5 -6
  474. package/lib/internal/template/internal/components/portal/index.js.map +1 -1
  475. package/lib/internal/template/internal/components/screenreader-only/index.js +1 -2
  476. package/lib/internal/template/internal/components/screenreader-only/index.js.map +1 -1
  477. package/lib/internal/template/internal/components/selectable-item/index.js +25 -26
  478. package/lib/internal/template/internal/components/selectable-item/index.js.map +1 -1
  479. package/lib/internal/template/internal/components/tab-trap/index.js +1 -2
  480. package/lib/internal/template/internal/components/tab-trap/index.js.map +1 -1
  481. package/lib/internal/template/internal/components/transition/index.js +16 -16
  482. package/lib/internal/template/internal/components/transition/index.js.map +1 -1
  483. package/lib/internal/template/internal/components/visual-context/index.js +6 -7
  484. package/lib/internal/template/internal/components/visual-context/index.js.map +1 -1
  485. package/lib/internal/template/internal/context/app-layout-context.js +2 -2
  486. package/lib/internal/template/internal/context/app-layout-context.js.map +1 -1
  487. package/lib/internal/template/internal/context/form-field-context.js +4 -4
  488. package/lib/internal/template/internal/context/form-field-context.js.map +1 -1
  489. package/lib/internal/template/internal/context/split-panel-context.js +3 -3
  490. package/lib/internal/template/internal/context/split-panel-context.js.map +1 -1
  491. package/lib/internal/template/internal/debounce.js +6 -11
  492. package/lib/internal/template/internal/debounce.js.map +1 -1
  493. package/lib/internal/template/internal/environment.js +1 -1
  494. package/lib/internal/template/internal/events/index.js +12 -16
  495. package/lib/internal/template/internal/events/index.js.map +1 -1
  496. package/lib/internal/template/internal/focus-tracker.js +22 -27
  497. package/lib/internal/template/internal/focus-tracker.js.map +1 -1
  498. package/lib/internal/template/internal/generated/custom-css-properties/index.js +2 -2
  499. package/lib/internal/template/internal/generated/custom-css-properties/index.js.map +1 -1
  500. package/lib/internal/template/internal/hooks/check-controlled/index.js +1 -1
  501. package/lib/internal/template/internal/hooks/check-controlled/index.js.map +1 -1
  502. package/lib/internal/template/internal/hooks/container-queries/use-container-breakpoints.js +2 -2
  503. package/lib/internal/template/internal/hooks/container-queries/use-container-breakpoints.js.map +1 -1
  504. package/lib/internal/template/internal/hooks/container-queries/use-container-query.js +5 -6
  505. package/lib/internal/template/internal/hooks/container-queries/use-container-query.js.map +1 -1
  506. package/lib/internal/template/internal/hooks/container-queries/use-resize-observer.js +13 -13
  507. package/lib/internal/template/internal/hooks/container-queries/use-resize-observer.js.map +1 -1
  508. package/lib/internal/template/internal/hooks/focus-visible/index.js +8 -8
  509. package/lib/internal/template/internal/hooks/focus-visible/index.js.map +1 -1
  510. package/lib/internal/template/internal/hooks/forward-focus/index.js +5 -9
  511. package/lib/internal/template/internal/hooks/forward-focus/index.js.map +1 -1
  512. package/lib/internal/template/internal/hooks/forward-focus/radio-group.js +7 -7
  513. package/lib/internal/template/internal/hooks/forward-focus/radio-group.js.map +1 -1
  514. package/lib/internal/template/internal/hooks/use-base-component/component-metadata.js +5 -5
  515. package/lib/internal/template/internal/hooks/use-base-component/component-metadata.js.map +1 -1
  516. package/lib/internal/template/internal/hooks/use-base-component/index.js +1 -1
  517. package/lib/internal/template/internal/hooks/use-base-component/index.js.map +1 -1
  518. package/lib/internal/template/internal/hooks/use-controllable/index.js +16 -17
  519. package/lib/internal/template/internal/hooks/use-controllable/index.js.map +1 -1
  520. package/lib/internal/template/internal/hooks/use-date-cache/index.js +2 -2
  521. package/lib/internal/template/internal/hooks/use-date-cache/index.js.map +1 -1
  522. package/lib/internal/template/internal/hooks/use-debounce-callback/index.js +3 -7
  523. package/lib/internal/template/internal/hooks/use-debounce-callback/index.js.map +1 -1
  524. package/lib/internal/template/internal/hooks/use-dynamic-overlap/index.js +4 -4
  525. package/lib/internal/template/internal/hooks/use-dynamic-overlap/index.js.map +1 -1
  526. package/lib/internal/template/internal/hooks/use-effect-on-update.js +2 -2
  527. package/lib/internal/template/internal/hooks/use-effect-on-update.js.map +1 -1
  528. package/lib/internal/template/internal/hooks/use-focus-tracker.js +7 -8
  529. package/lib/internal/template/internal/hooks/use-focus-tracker.js.map +1 -1
  530. package/lib/internal/template/internal/hooks/use-has-rendered/index.js +6 -6
  531. package/lib/internal/template/internal/hooks/use-has-rendered/index.js.map +1 -1
  532. package/lib/internal/template/internal/hooks/use-merge-refs/index.js +5 -9
  533. package/lib/internal/template/internal/hooks/use-merge-refs/index.js.map +1 -1
  534. package/lib/internal/template/internal/hooks/use-mobile/index.js +7 -7
  535. package/lib/internal/template/internal/hooks/use-mobile/index.js.map +1 -1
  536. package/lib/internal/template/internal/hooks/use-mouse-down-target.js +5 -5
  537. package/lib/internal/template/internal/hooks/use-mouse-down-target.js.map +1 -1
  538. package/lib/internal/template/internal/hooks/use-mutation-observer/index.js +5 -5
  539. package/lib/internal/template/internal/hooks/use-mutation-observer/index.js.map +1 -1
  540. package/lib/internal/template/internal/hooks/use-portal-mode-classes/index.js +10 -12
  541. package/lib/internal/template/internal/hooks/use-portal-mode-classes/index.js.map +1 -1
  542. package/lib/internal/template/internal/hooks/use-previous/index.js +3 -3
  543. package/lib/internal/template/internal/hooks/use-previous/index.js.map +1 -1
  544. package/lib/internal/template/internal/hooks/use-scroll-sync/index.js +8 -9
  545. package/lib/internal/template/internal/hooks/use-scroll-sync/index.js.map +1 -1
  546. package/lib/internal/template/internal/hooks/use-singleton-handler/index.js +12 -14
  547. package/lib/internal/template/internal/hooks/use-singleton-handler/index.js.map +1 -1
  548. package/lib/internal/template/internal/hooks/use-stable-event-handler/index.js +3 -10
  549. package/lib/internal/template/internal/hooks/use-stable-event-handler/index.js.map +1 -1
  550. package/lib/internal/template/internal/hooks/use-telemetry/index.js +2 -2
  551. package/lib/internal/template/internal/hooks/use-telemetry/index.js.map +1 -1
  552. package/lib/internal/template/internal/hooks/use-telemetry/telemetry.js +3 -4
  553. package/lib/internal/template/internal/hooks/use-telemetry/telemetry.js.map +1 -1
  554. package/lib/internal/template/internal/hooks/use-unique-id/index.js +3 -3
  555. package/lib/internal/template/internal/hooks/use-unique-id/index.js.map +1 -1
  556. package/lib/internal/template/internal/hooks/use-visual-mode/index.js +11 -11
  557. package/lib/internal/template/internal/hooks/use-visual-mode/index.js.map +1 -1
  558. package/lib/internal/template/internal/is-development.js +1 -1
  559. package/lib/internal/template/internal/is-development.js.map +1 -1
  560. package/lib/internal/template/internal/logging.js +2 -2
  561. package/lib/internal/template/internal/logging.js.map +1 -1
  562. package/lib/internal/template/internal/metrics/log-clients.js +18 -27
  563. package/lib/internal/template/internal/metrics/log-clients.js.map +1 -1
  564. package/lib/internal/template/internal/metrics/metrics-formatters.js +11 -14
  565. package/lib/internal/template/internal/metrics/metrics-formatters.js.map +1 -1
  566. package/lib/internal/template/internal/metrics/metrics.js +27 -33
  567. package/lib/internal/template/internal/metrics/metrics.js.map +1 -1
  568. package/lib/internal/template/internal/motion.js +2 -2
  569. package/lib/internal/template/internal/motion.js.map +1 -1
  570. package/lib/internal/template/internal/styles/colors.js +1 -1
  571. package/lib/internal/template/internal/styles/colors.js.map +1 -1
  572. package/lib/internal/template/internal/utils/browser-scrollbar-size.js +5 -5
  573. package/lib/internal/template/internal/utils/browser-scrollbar-size.js.map +1 -1
  574. package/lib/internal/template/internal/utils/calculate-once.js +2 -2
  575. package/lib/internal/template/internal/utils/calculate-once.js.map +1 -1
  576. package/lib/internal/template/internal/utils/check-safe-url.js +4 -4
  577. package/lib/internal/template/internal/utils/check-safe-url.js.map +1 -1
  578. package/lib/internal/template/internal/utils/create-category-color-scale.js +6 -9
  579. package/lib/internal/template/internal/utils/create-category-color-scale.js.map +1 -1
  580. package/lib/internal/template/internal/utils/date-time/format-date-range.js +3 -3
  581. package/lib/internal/template/internal/utils/date-time/format-date-range.js.map +1 -1
  582. package/lib/internal/template/internal/utils/date-time/format-date.js +4 -4
  583. package/lib/internal/template/internal/utils/date-time/format-date.js.map +1 -1
  584. package/lib/internal/template/internal/utils/date-time/format-time.js +5 -5
  585. package/lib/internal/template/internal/utils/date-time/format-time.js.map +1 -1
  586. package/lib/internal/template/internal/utils/date-time/format-timezone-offset.js +4 -4
  587. package/lib/internal/template/internal/utils/date-time/format-timezone-offset.js.map +1 -1
  588. package/lib/internal/template/internal/utils/date-time/is-iso-date-only.js +1 -1
  589. package/lib/internal/template/internal/utils/date-time/is-iso-date-only.js.map +1 -1
  590. package/lib/internal/template/internal/utils/date-time/join-date-time.js +3 -3
  591. package/lib/internal/template/internal/utils/date-time/join-date-time.js.map +1 -1
  592. package/lib/internal/template/internal/utils/date-time/parse-date.js +5 -6
  593. package/lib/internal/template/internal/utils/date-time/parse-date.js.map +1 -1
  594. package/lib/internal/template/internal/utils/date-time/parse-timezone-offset.js +5 -5
  595. package/lib/internal/template/internal/utils/date-time/parse-timezone-offset.js.map +1 -1
  596. package/lib/internal/template/internal/utils/date-time/shift-timezone-offset.js +6 -6
  597. package/lib/internal/template/internal/utils/date-time/shift-timezone-offset.js.map +1 -1
  598. package/lib/internal/template/internal/utils/dom.js +12 -12
  599. package/lib/internal/template/internal/utils/dom.js.map +1 -1
  600. package/lib/internal/template/internal/utils/external-props.js +3 -3
  601. package/lib/internal/template/internal/utils/external-props.js.map +1 -1
  602. package/lib/internal/template/internal/utils/focus-svg-element.js +1 -1
  603. package/lib/internal/template/internal/utils/focus-svg-element.js.map +1 -1
  604. package/lib/internal/template/internal/utils/locale/merge-locales.js +1 -1
  605. package/lib/internal/template/internal/utils/locale/merge-locales.js.map +1 -1
  606. package/lib/internal/template/internal/utils/locale/normalize-locale.js +3 -3
  607. package/lib/internal/template/internal/utils/locale/normalize-locale.js.map +1 -1
  608. package/lib/internal/template/internal/utils/promises.js +7 -11
  609. package/lib/internal/template/internal/utils/promises.js.map +1 -1
  610. package/lib/internal/template/internal/utils/scrollable-containers.js +14 -18
  611. package/lib/internal/template/internal/utils/scrollable-containers.js.map +1 -1
  612. package/lib/internal/template/internal/utils/strings/join-strings.js +1 -5
  613. package/lib/internal/template/internal/utils/strings/join-strings.js.map +1 -1
  614. package/lib/internal/template/internal/utils/strings/pad-left-zeros.js +1 -1
  615. package/lib/internal/template/internal/utils/strings/pad-left-zeros.js.map +1 -1
  616. package/lib/internal/template/internal/utils/throttle.js +10 -15
  617. package/lib/internal/template/internal/utils/throttle.js.map +1 -1
  618. package/lib/internal/template/internal/utils/use-container-width.js +3 -5
  619. package/lib/internal/template/internal/utils/use-container-width.js.map +1 -1
  620. package/lib/internal/template/line-chart/index.js +6 -6
  621. package/lib/internal/template/line-chart/index.js.map +1 -1
  622. package/lib/internal/template/link/index.js +5 -5
  623. package/lib/internal/template/link/index.js.map +1 -1
  624. package/lib/internal/template/link/internal.js +25 -25
  625. package/lib/internal/template/link/internal.js.map +1 -1
  626. package/lib/internal/template/mixed-line-bar-chart/bar-groups.js +3 -4
  627. package/lib/internal/template/mixed-line-bar-chart/bar-groups.js.map +1 -1
  628. package/lib/internal/template/mixed-line-bar-chart/bar-series.js +24 -33
  629. package/lib/internal/template/mixed-line-bar-chart/bar-series.js.map +1 -1
  630. package/lib/internal/template/mixed-line-bar-chart/chart-container.js +123 -138
  631. package/lib/internal/template/mixed-line-bar-chart/chart-container.js.map +1 -1
  632. package/lib/internal/template/mixed-line-bar-chart/chart-filters.js +10 -17
  633. package/lib/internal/template/mixed-line-bar-chart/chart-filters.js.map +1 -1
  634. package/lib/internal/template/mixed-line-bar-chart/chart-legend.js +9 -13
  635. package/lib/internal/template/mixed-line-bar-chart/chart-legend.js.map +1 -1
  636. package/lib/internal/template/mixed-line-bar-chart/chart-popover.js +3 -4
  637. package/lib/internal/template/mixed-line-bar-chart/chart-popover.js.map +1 -1
  638. package/lib/internal/template/mixed-line-bar-chart/data-series.js +13 -17
  639. package/lib/internal/template/mixed-line-bar-chart/data-series.js.map +1 -1
  640. package/lib/internal/template/mixed-line-bar-chart/domain.js +32 -39
  641. package/lib/internal/template/mixed-line-bar-chart/domain.js.map +1 -1
  642. package/lib/internal/template/mixed-line-bar-chart/format-highlighted.js +13 -14
  643. package/lib/internal/template/mixed-line-bar-chart/format-highlighted.js.map +1 -1
  644. package/lib/internal/template/mixed-line-bar-chart/hooks/use-mouse-hover.js +32 -34
  645. package/lib/internal/template/mixed-line-bar-chart/hooks/use-mouse-hover.js.map +1 -1
  646. package/lib/internal/template/mixed-line-bar-chart/hooks/use-navigation.js +48 -57
  647. package/lib/internal/template/mixed-line-bar-chart/hooks/use-navigation.js.map +1 -1
  648. package/lib/internal/template/mixed-line-bar-chart/hooks/use-popover.js +7 -7
  649. package/lib/internal/template/mixed-line-bar-chart/hooks/use-popover.js.map +1 -1
  650. package/lib/internal/template/mixed-line-bar-chart/index.js +4 -4
  651. package/lib/internal/template/mixed-line-bar-chart/index.js.map +1 -1
  652. package/lib/internal/template/mixed-line-bar-chart/internal.js +47 -49
  653. package/lib/internal/template/mixed-line-bar-chart/internal.js.map +1 -1
  654. package/lib/internal/template/mixed-line-bar-chart/line-series.js +19 -24
  655. package/lib/internal/template/mixed-line-bar-chart/line-series.js.map +1 -1
  656. package/lib/internal/template/mixed-line-bar-chart/make-scaled-bar-groups.js +10 -11
  657. package/lib/internal/template/mixed-line-bar-chart/make-scaled-bar-groups.js.map +1 -1
  658. package/lib/internal/template/mixed-line-bar-chart/make-scaled-series.js +30 -38
  659. package/lib/internal/template/mixed-line-bar-chart/make-scaled-series.js.map +1 -1
  660. package/lib/internal/template/mixed-line-bar-chart/utils.js +18 -21
  661. package/lib/internal/template/mixed-line-bar-chart/utils.js.map +1 -1
  662. package/lib/internal/template/modal/body-scroll.js +4 -4
  663. package/lib/internal/template/modal/body-scroll.js.map +1 -1
  664. package/lib/internal/template/modal/index.js +4 -4
  665. package/lib/internal/template/modal/index.js.map +1 -1
  666. package/lib/internal/template/modal/internal.js +24 -25
  667. package/lib/internal/template/modal/internal.js.map +1 -1
  668. package/lib/internal/template/multiselect/index.js +5 -5
  669. package/lib/internal/template/multiselect/index.js.map +1 -1
  670. package/lib/internal/template/multiselect/internal.js +81 -88
  671. package/lib/internal/template/multiselect/internal.js.map +1 -1
  672. package/lib/internal/template/pagination/index.js +2 -3
  673. package/lib/internal/template/pagination/index.js.map +1 -1
  674. package/lib/internal/template/pagination/internal.js +16 -17
  675. package/lib/internal/template/pagination/internal.js.map +1 -1
  676. package/lib/internal/template/pagination/utils.js +12 -12
  677. package/lib/internal/template/pagination/utils.js.map +1 -1
  678. package/lib/internal/template/pie-chart/index.js +38 -39
  679. package/lib/internal/template/pie-chart/index.js.map +1 -1
  680. package/lib/internal/template/pie-chart/labels.js +38 -42
  681. package/lib/internal/template/pie-chart/labels.js.map +1 -1
  682. package/lib/internal/template/pie-chart/pie-chart.js +65 -67
  683. package/lib/internal/template/pie-chart/pie-chart.js.map +1 -1
  684. package/lib/internal/template/pie-chart/responsive-text.js +9 -10
  685. package/lib/internal/template/pie-chart/responsive-text.js.map +1 -1
  686. package/lib/internal/template/pie-chart/segments.js +27 -31
  687. package/lib/internal/template/pie-chart/segments.js.map +1 -1
  688. package/lib/internal/template/pie-chart/utils.js +32 -35
  689. package/lib/internal/template/pie-chart/utils.js.map +1 -1
  690. package/lib/internal/template/popover/arrow.js +2 -2
  691. package/lib/internal/template/popover/arrow.js.map +1 -1
  692. package/lib/internal/template/popover/body.js +16 -19
  693. package/lib/internal/template/popover/body.js.map +1 -1
  694. package/lib/internal/template/popover/container.js +52 -55
  695. package/lib/internal/template/popover/container.js.map +1 -1
  696. package/lib/internal/template/popover/index.js +6 -6
  697. package/lib/internal/template/popover/index.js.map +1 -1
  698. package/lib/internal/template/popover/internal.js +28 -28
  699. package/lib/internal/template/popover/internal.js.map +1 -1
  700. package/lib/internal/template/popover/utils/positions.js +54 -66
  701. package/lib/internal/template/popover/utils/positions.js.map +1 -1
  702. package/lib/internal/template/progress-bar/index.js +17 -17
  703. package/lib/internal/template/progress-bar/index.js.map +1 -1
  704. package/lib/internal/template/progress-bar/internal.js +12 -16
  705. package/lib/internal/template/progress-bar/internal.js.map +1 -1
  706. package/lib/internal/template/property-filter/controller.js +117 -125
  707. package/lib/internal/template/property-filter/controller.js.map +1 -1
  708. package/lib/internal/template/property-filter/filter-options.js +8 -11
  709. package/lib/internal/template/property-filter/filter-options.js.map +1 -1
  710. package/lib/internal/template/property-filter/index.js +50 -50
  711. package/lib/internal/template/property-filter/index.js.map +1 -1
  712. package/lib/internal/template/property-filter/property-editor.js +4 -5
  713. package/lib/internal/template/property-filter/property-editor.js.map +1 -1
  714. package/lib/internal/template/property-filter/property-filter-autosuggest.js +39 -39
  715. package/lib/internal/template/property-filter/property-filter-autosuggest.js.map +1 -1
  716. package/lib/internal/template/property-filter/token-editor.js +55 -66
  717. package/lib/internal/template/property-filter/token-editor.js.map +1 -1
  718. package/lib/internal/template/property-filter/token.js +9 -11
  719. package/lib/internal/template/property-filter/token.js.map +1 -1
  720. package/lib/internal/template/property-filter/use-load-items.js +8 -12
  721. package/lib/internal/template/property-filter/use-load-items.js.map +1 -1
  722. package/lib/internal/template/property-filter/utils.js +13 -18
  723. package/lib/internal/template/property-filter/utils.js.map +1 -1
  724. package/lib/internal/template/radio-group/index.js +3 -4
  725. package/lib/internal/template/radio-group/index.js.map +1 -1
  726. package/lib/internal/template/radio-group/internal.js +9 -9
  727. package/lib/internal/template/radio-group/internal.js.map +1 -1
  728. package/lib/internal/template/radio-group/radio-button.js +12 -15
  729. package/lib/internal/template/radio-group/radio-button.js.map +1 -1
  730. package/lib/internal/template/s3-resource-selector/index.js +29 -29
  731. package/lib/internal/template/s3-resource-selector/index.js.map +1 -1
  732. package/lib/internal/template/s3-resource-selector/s3-in-context/index.js +16 -18
  733. package/lib/internal/template/s3-resource-selector/s3-in-context/index.js.map +1 -1
  734. package/lib/internal/template/s3-resource-selector/s3-in-context/search-input.js +3 -4
  735. package/lib/internal/template/s3-resource-selector/s3-in-context/search-input.js.map +1 -1
  736. package/lib/internal/template/s3-resource-selector/s3-in-context/use-versions-fetch.js +16 -16
  737. package/lib/internal/template/s3-resource-selector/s3-in-context/use-versions-fetch.js.map +1 -1
  738. package/lib/internal/template/s3-resource-selector/s3-in-context/validation.js +6 -6
  739. package/lib/internal/template/s3-resource-selector/s3-in-context/validation.js.map +1 -1
  740. package/lib/internal/template/s3-resource-selector/s3-modal/basic-table.js +19 -20
  741. package/lib/internal/template/s3-resource-selector/s3-modal/basic-table.js.map +1 -1
  742. package/lib/internal/template/s3-resource-selector/s3-modal/buckets-table.js +11 -13
  743. package/lib/internal/template/s3-resource-selector/s3-modal/buckets-table.js.map +1 -1
  744. package/lib/internal/template/s3-resource-selector/s3-modal/column-formats.js +5 -5
  745. package/lib/internal/template/s3-resource-selector/s3-modal/column-formats.js.map +1 -1
  746. package/lib/internal/template/s3-resource-selector/s3-modal/empty-state.js +1 -2
  747. package/lib/internal/template/s3-resource-selector/s3-modal/empty-state.js.map +1 -1
  748. package/lib/internal/template/s3-resource-selector/s3-modal/index.js +37 -43
  749. package/lib/internal/template/s3-resource-selector/s3-modal/index.js.map +1 -1
  750. package/lib/internal/template/s3-resource-selector/s3-modal/objects-table.js +12 -14
  751. package/lib/internal/template/s3-resource-selector/s3-modal/objects-table.js.map +1 -1
  752. package/lib/internal/template/s3-resource-selector/s3-modal/table-utils.js +9 -12
  753. package/lib/internal/template/s3-resource-selector/s3-modal/table-utils.js.map +1 -1
  754. package/lib/internal/template/s3-resource-selector/s3-modal/versions-table.js +10 -12
  755. package/lib/internal/template/s3-resource-selector/s3-modal/versions-table.js.map +1 -1
  756. package/lib/internal/template/s3-resource-selector/utils.js +1 -1
  757. package/lib/internal/template/s3-resource-selector/utils.js.map +1 -1
  758. package/lib/internal/template/segmented-control/index.js +2 -3
  759. package/lib/internal/template/segmented-control/index.js.map +1 -1
  760. package/lib/internal/template/segmented-control/internal-segmented-control.js +16 -17
  761. package/lib/internal/template/segmented-control/internal-segmented-control.js.map +1 -1
  762. package/lib/internal/template/segmented-control/internal.js +14 -14
  763. package/lib/internal/template/segmented-control/internal.js.map +1 -1
  764. package/lib/internal/template/segmented-control/segment.js +3 -6
  765. package/lib/internal/template/segmented-control/segment.js.map +1 -1
  766. package/lib/internal/template/select/index.js +6 -6
  767. package/lib/internal/template/select/index.js.map +1 -1
  768. package/lib/internal/template/select/internal.js +58 -58
  769. package/lib/internal/template/select/internal.js.map +1 -1
  770. package/lib/internal/template/select/parts/filter.js +4 -4
  771. package/lib/internal/template/select/parts/filter.js.map +1 -1
  772. package/lib/internal/template/select/parts/item.js +10 -10
  773. package/lib/internal/template/select/parts/item.js.map +1 -1
  774. package/lib/internal/template/select/parts/multiselect-item.js +13 -14
  775. package/lib/internal/template/select/parts/multiselect-item.js.map +1 -1
  776. package/lib/internal/template/select/parts/plain-list.js +13 -15
  777. package/lib/internal/template/select/parts/plain-list.js.map +1 -1
  778. package/lib/internal/template/select/parts/trigger.js +7 -9
  779. package/lib/internal/template/select/parts/trigger.js.map +1 -1
  780. package/lib/internal/template/select/parts/virtual-list.js +27 -33
  781. package/lib/internal/template/select/parts/virtual-list.js.map +1 -1
  782. package/lib/internal/template/select/utils/check-option-value-field.js +2 -2
  783. package/lib/internal/template/select/utils/check-option-value-field.js.map +1 -1
  784. package/lib/internal/template/select/utils/connect-options.js +6 -7
  785. package/lib/internal/template/select/utils/connect-options.js.map +1 -1
  786. package/lib/internal/template/select/utils/get-item-props.js +4 -7
  787. package/lib/internal/template/select/utils/get-item-props.js.map +1 -1
  788. package/lib/internal/template/select/utils/render-options.js +13 -15
  789. package/lib/internal/template/select/utils/render-options.js.map +1 -1
  790. package/lib/internal/template/select/utils/use-announcement.js +10 -11
  791. package/lib/internal/template/select/utils/use-announcement.js.map +1 -1
  792. package/lib/internal/template/select/utils/use-load-items.js +16 -19
  793. package/lib/internal/template/select/utils/use-load-items.js.map +1 -1
  794. package/lib/internal/template/select/utils/use-native-search.js +20 -29
  795. package/lib/internal/template/select/utils/use-native-search.js.map +1 -1
  796. package/lib/internal/template/select/utils/use-select.js +89 -96
  797. package/lib/internal/template/select/utils/use-select.js.map +1 -1
  798. package/lib/internal/template/side-navigation/index.js +10 -10
  799. package/lib/internal/template/side-navigation/index.js.map +1 -1
  800. package/lib/internal/template/side-navigation/internal.js +35 -46
  801. package/lib/internal/template/side-navigation/internal.js.map +1 -1
  802. package/lib/internal/template/side-navigation/util.js +9 -12
  803. package/lib/internal/template/side-navigation/util.js.map +1 -1
  804. package/lib/internal/template/space-between/index.js +4 -4
  805. package/lib/internal/template/space-between/index.js.map +1 -1
  806. package/lib/internal/template/space-between/internal.js +7 -7
  807. package/lib/internal/template/space-between/internal.js.map +1 -1
  808. package/lib/internal/template/spinner/index.js +4 -4
  809. package/lib/internal/template/spinner/index.js.map +1 -1
  810. package/lib/internal/template/spinner/internal.js +4 -4
  811. package/lib/internal/template/spinner/internal.js.map +1 -1
  812. package/lib/internal/template/split-panel/bottom.js +22 -25
  813. package/lib/internal/template/split-panel/bottom.js.map +1 -1
  814. package/lib/internal/template/split-panel/icons/bottom-icon-refresh.js +11 -13
  815. package/lib/internal/template/split-panel/icons/bottom-icon-refresh.js.map +1 -1
  816. package/lib/internal/template/split-panel/icons/bottom-icon.js +1 -1
  817. package/lib/internal/template/split-panel/icons/bottom-icon.js.map +1 -1
  818. package/lib/internal/template/split-panel/icons/resize-handler.js +3 -6
  819. package/lib/internal/template/split-panel/icons/resize-handler.js.map +1 -1
  820. package/lib/internal/template/split-panel/icons/side-position-refresh.js +12 -14
  821. package/lib/internal/template/split-panel/icons/side-position-refresh.js.map +1 -1
  822. package/lib/internal/template/split-panel/icons/side-position.js +1 -1
  823. package/lib/internal/template/split-panel/icons/side-position.js.map +1 -1
  824. package/lib/internal/template/split-panel/index.js +65 -65
  825. package/lib/internal/template/split-panel/index.js.map +1 -1
  826. package/lib/internal/template/split-panel/preferences-modal.js +9 -9
  827. package/lib/internal/template/split-panel/preferences-modal.js.map +1 -1
  828. package/lib/internal/template/split-panel/side.js +12 -15
  829. package/lib/internal/template/split-panel/side.js.map +1 -1
  830. package/lib/internal/template/split-panel/utils/size-utils.js +3 -3
  831. package/lib/internal/template/split-panel/utils/size-utils.js.map +1 -1
  832. package/lib/internal/template/split-panel/utils/use-keyboard-events.js +13 -17
  833. package/lib/internal/template/split-panel/utils/use-keyboard-events.js.map +1 -1
  834. package/lib/internal/template/split-panel/utils/use-pointer-events.js +12 -13
  835. package/lib/internal/template/split-panel/utils/use-pointer-events.js.map +1 -1
  836. package/lib/internal/template/status-indicator/index.js +4 -4
  837. package/lib/internal/template/status-indicator/index.js.map +1 -1
  838. package/lib/internal/template/status-indicator/internal.js +9 -10
  839. package/lib/internal/template/status-indicator/internal.js.map +1 -1
  840. package/lib/internal/template/table/body-cell/click-away.js +9 -10
  841. package/lib/internal/template/table/body-cell/click-away.js.map +1 -1
  842. package/lib/internal/template/table/body-cell/index.js +18 -18
  843. package/lib/internal/template/table/body-cell/index.js.map +1 -1
  844. package/lib/internal/template/table/body-cell/inline-editor.js +32 -46
  845. package/lib/internal/template/table/body-cell/inline-editor.js.map +1 -1
  846. package/lib/internal/template/table/body-cell/td-element.js +2 -4
  847. package/lib/internal/template/table/body-cell/td-element.js.map +1 -1
  848. package/lib/internal/template/table/body-cell/use-stable-scroll-position.js +10 -13
  849. package/lib/internal/template/table/body-cell/use-stable-scroll-position.js.map +1 -1
  850. package/lib/internal/template/table/header-cell/index.d.ts +4 -2
  851. package/lib/internal/template/table/header-cell/index.d.ts.map +1 -1
  852. package/lib/internal/template/table/header-cell/index.js +33 -34
  853. package/lib/internal/template/table/header-cell/index.js.map +1 -1
  854. package/lib/internal/template/table/header-cell/utils.js +10 -12
  855. package/lib/internal/template/table/header-cell/utils.js.map +1 -1
  856. package/lib/internal/template/table/index.js +5 -5
  857. package/lib/internal/template/table/index.js.map +1 -1
  858. package/lib/internal/template/table/internal.d.ts.map +1 -1
  859. package/lib/internal/template/table/internal.js +94 -118
  860. package/lib/internal/template/table/internal.js.map +1 -1
  861. package/lib/internal/template/table/resizer/index.d.ts +5 -1
  862. package/lib/internal/template/table/resizer/index.d.ts.map +1 -1
  863. package/lib/internal/template/table/resizer/index.js +40 -39
  864. package/lib/internal/template/table/resizer/index.js.map +1 -1
  865. package/lib/internal/template/table/selection-control/index.d.ts +4 -1
  866. package/lib/internal/template/table/selection-control/index.d.ts.map +1 -1
  867. package/lib/internal/template/table/selection-control/index.js +11 -11
  868. package/lib/internal/template/table/selection-control/index.js.map +1 -1
  869. package/lib/internal/template/table/sticky-header.d.ts +2 -2
  870. package/lib/internal/template/table/sticky-header.d.ts.map +1 -1
  871. package/lib/internal/template/table/sticky-header.js +16 -15
  872. package/lib/internal/template/table/sticky-header.js.map +1 -1
  873. package/lib/internal/template/table/sticky-scrollbar.js +5 -6
  874. package/lib/internal/template/table/sticky-scrollbar.js.map +1 -1
  875. package/lib/internal/template/table/sticky-scrolling.js +10 -10
  876. package/lib/internal/template/table/sticky-scrolling.js.map +1 -1
  877. package/lib/internal/template/table/thead.d.ts +11 -3
  878. package/lib/internal/template/table/thead.d.ts.map +1 -1
  879. package/lib/internal/template/table/thead.js +13 -13
  880. package/lib/internal/template/table/thead.js.map +1 -1
  881. package/lib/internal/template/table/tools-header.js +4 -5
  882. package/lib/internal/template/table/tools-header.js.map +1 -1
  883. package/lib/internal/template/table/use-column-widths.js +34 -44
  884. package/lib/internal/template/table/use-column-widths.js.map +1 -1
  885. package/lib/internal/template/table/use-row-events.js +10 -11
  886. package/lib/internal/template/table/use-row-events.js.map +1 -1
  887. package/lib/internal/template/table/use-selection.js +75 -81
  888. package/lib/internal/template/table/use-selection.js.map +1 -1
  889. package/lib/internal/template/table/use-sticky-header.js +16 -16
  890. package/lib/internal/template/table/use-sticky-header.js.map +1 -1
  891. package/lib/internal/template/table/use-sticky-scrollbar.js +42 -42
  892. package/lib/internal/template/table/use-sticky-scrollbar.js.map +1 -1
  893. package/lib/internal/template/table/use-table-focus-navigation.js +27 -28
  894. package/lib/internal/template/table/use-table-focus-navigation.js.map +1 -1
  895. package/lib/internal/template/table/utils.js +7 -7
  896. package/lib/internal/template/table/utils.js.map +1 -1
  897. package/lib/internal/template/tabs/index.js +30 -33
  898. package/lib/internal/template/tabs/index.js.map +1 -1
  899. package/lib/internal/template/tabs/scroll-utils.js +12 -13
  900. package/lib/internal/template/tabs/scroll-utils.js.map +1 -1
  901. package/lib/internal/template/tabs/smooth-scroll.js +17 -17
  902. package/lib/internal/template/tabs/smooth-scroll.js.map +1 -1
  903. package/lib/internal/template/tabs/tab-header-bar.js +61 -66
  904. package/lib/internal/template/tabs/tab-header-bar.js.map +1 -1
  905. package/lib/internal/template/tag-editor/index.js +59 -72
  906. package/lib/internal/template/tag-editor/index.js.map +1 -1
  907. package/lib/internal/template/tag-editor/internal.js +21 -29
  908. package/lib/internal/template/tag-editor/internal.js.map +1 -1
  909. package/lib/internal/template/tag-editor/utils.js +7 -8
  910. package/lib/internal/template/tag-editor/utils.js.map +1 -1
  911. package/lib/internal/template/tag-editor/validation.js +16 -18
  912. package/lib/internal/template/tag-editor/validation.js.map +1 -1
  913. package/lib/internal/template/text-content/index.js +6 -6
  914. package/lib/internal/template/text-content/index.js.map +1 -1
  915. package/lib/internal/template/text-filter/index.js +3 -4
  916. package/lib/internal/template/text-filter/index.js.map +1 -1
  917. package/lib/internal/template/text-filter/internal.js +10 -10
  918. package/lib/internal/template/text-filter/internal.js.map +1 -1
  919. package/lib/internal/template/textarea/index.js +23 -24
  920. package/lib/internal/template/textarea/index.js.map +1 -1
  921. package/lib/internal/template/theming/index.js +2 -3
  922. package/lib/internal/template/theming/index.js.map +1 -1
  923. package/lib/internal/template/tiles/index.js +3 -4
  924. package/lib/internal/template/tiles/index.js.map +1 -1
  925. package/lib/internal/template/tiles/internal.js +17 -17
  926. package/lib/internal/template/tiles/internal.js.map +1 -1
  927. package/lib/internal/template/tiles/tile.js +7 -9
  928. package/lib/internal/template/tiles/tile.js.map +1 -1
  929. package/lib/internal/template/time-input/index.js +5 -5
  930. package/lib/internal/template/time-input/index.js.map +1 -1
  931. package/lib/internal/template/time-input/internal.js +9 -9
  932. package/lib/internal/template/time-input/internal.js.map +1 -1
  933. package/lib/internal/template/toggle/index.js +3 -4
  934. package/lib/internal/template/toggle/index.js.map +1 -1
  935. package/lib/internal/template/toggle/internal.js +15 -16
  936. package/lib/internal/template/toggle/internal.js.map +1 -1
  937. package/lib/internal/template/token-group/dismiss-button.js +5 -7
  938. package/lib/internal/template/token-group/dismiss-button.js.map +1 -1
  939. package/lib/internal/template/token-group/index.js +4 -4
  940. package/lib/internal/template/token-group/index.js.map +1 -1
  941. package/lib/internal/template/token-group/internal.js +14 -14
  942. package/lib/internal/template/token-group/internal.js.map +1 -1
  943. package/lib/internal/template/token-group/toggle.js +7 -9
  944. package/lib/internal/template/token-group/toggle.js.map +1 -1
  945. package/lib/internal/template/top-navigation/1.0-beta/index.js +4 -4
  946. package/lib/internal/template/top-navigation/1.0-beta/index.js.map +1 -1
  947. package/lib/internal/template/top-navigation/1.0-beta/internal.js +43 -46
  948. package/lib/internal/template/top-navigation/1.0-beta/internal.js.map +1 -1
  949. package/lib/internal/template/top-navigation/1.0-beta/parts/overflow-menu.js +16 -17
  950. package/lib/internal/template/top-navigation/1.0-beta/parts/overflow-menu.js.map +1 -1
  951. package/lib/internal/template/top-navigation/1.0-beta/parts/utility.js +9 -12
  952. package/lib/internal/template/top-navigation/1.0-beta/parts/utility.js.map +1 -1
  953. package/lib/internal/template/top-navigation/1.0-beta/use-top-navigation.js +46 -54
  954. package/lib/internal/template/top-navigation/1.0-beta/use-top-navigation.js.map +1 -1
  955. package/lib/internal/template/top-navigation/index.js +4 -4
  956. package/lib/internal/template/top-navigation/index.js.map +1 -1
  957. package/lib/internal/template/top-navigation/internal.js +64 -71
  958. package/lib/internal/template/top-navigation/internal.js.map +1 -1
  959. package/lib/internal/template/top-navigation/parts/overflow-menu/header.js +3 -4
  960. package/lib/internal/template/top-navigation/parts/overflow-menu/header.js.map +1 -1
  961. package/lib/internal/template/top-navigation/parts/overflow-menu/index.js +4 -5
  962. package/lib/internal/template/top-navigation/parts/overflow-menu/index.js.map +1 -1
  963. package/lib/internal/template/top-navigation/parts/overflow-menu/menu-item.js +56 -61
  964. package/lib/internal/template/top-navigation/parts/overflow-menu/menu-item.js.map +1 -1
  965. package/lib/internal/template/top-navigation/parts/overflow-menu/router.js +11 -13
  966. package/lib/internal/template/top-navigation/parts/overflow-menu/router.js.map +1 -1
  967. package/lib/internal/template/top-navigation/parts/overflow-menu/views/submenu.js +6 -8
  968. package/lib/internal/template/top-navigation/parts/overflow-menu/views/submenu.js.map +1 -1
  969. package/lib/internal/template/top-navigation/parts/overflow-menu/views/utilities.js +5 -7
  970. package/lib/internal/template/top-navigation/parts/overflow-menu/views/utilities.js.map +1 -1
  971. package/lib/internal/template/top-navigation/parts/utility.js +12 -15
  972. package/lib/internal/template/top-navigation/parts/utility.js.map +1 -1
  973. package/lib/internal/template/top-navigation/use-top-navigation.js +52 -59
  974. package/lib/internal/template/top-navigation/use-top-navigation.js.map +1 -1
  975. package/lib/internal/template/tutorial-panel/components/tutorial-detail-view/congratulation-screen.js +5 -7
  976. package/lib/internal/template/tutorial-panel/components/tutorial-detail-view/congratulation-screen.js.map +1 -1
  977. package/lib/internal/template/tutorial-panel/components/tutorial-detail-view/index.js +6 -7
  978. package/lib/internal/template/tutorial-panel/components/tutorial-detail-view/index.js.map +1 -1
  979. package/lib/internal/template/tutorial-panel/components/tutorial-detail-view/task-list.js +8 -15
  980. package/lib/internal/template/tutorial-panel/components/tutorial-detail-view/task-list.js.map +1 -1
  981. package/lib/internal/template/tutorial-panel/components/tutorial-detail-view/task.js +5 -6
  982. package/lib/internal/template/tutorial-panel/components/tutorial-detail-view/task.js.map +1 -1
  983. package/lib/internal/template/tutorial-panel/components/tutorial-list/index.js +19 -22
  984. package/lib/internal/template/tutorial-panel/components/tutorial-list/index.js.map +1 -1
  985. package/lib/internal/template/tutorial-panel/index.js +8 -8
  986. package/lib/internal/template/tutorial-panel/index.js.map +1 -1
  987. package/lib/internal/template/wizard/index.js +28 -28
  988. package/lib/internal/template/wizard/index.js.map +1 -1
  989. package/lib/internal/template/wizard/internal/analytics.js +32 -42
  990. package/lib/internal/template/wizard/internal/analytics.js.map +1 -1
  991. package/lib/internal/template/wizard/unmount.js +6 -13
  992. package/lib/internal/template/wizard/unmount.js.map +1 -1
  993. package/lib/internal/template/wizard/wizard-actions.js +7 -8
  994. package/lib/internal/template/wizard/wizard-actions.js.map +1 -1
  995. package/lib/internal/template/wizard/wizard-form-header.js +2 -3
  996. package/lib/internal/template/wizard/wizard-form-header.js.map +1 -1
  997. package/lib/internal/template/wizard/wizard-form.js +14 -16
  998. package/lib/internal/template/wizard/wizard-form.js.map +1 -1
  999. package/lib/internal/template/wizard/wizard-navigation.js +19 -25
  1000. package/lib/internal/template/wizard/wizard-navigation.js.map +1 -1
  1001. package/package.json +1 -1
@@ -1,4 +1,3 @@
1
- import { __assign } from "tslib";
2
1
  // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
3
2
  // SPDX-License-Identifier: Apache-2.0
4
3
  import clsx from 'clsx';
@@ -9,25 +8,24 @@ import { KeyCode } from '../../keycode';
9
8
  import SeriesMarker from '../chart-series-marker';
10
9
  import styles from './styles.css.js';
11
10
  export default memo(ChartLegend);
12
- function ChartLegend(_a) {
13
- var series = _a.series, onHighlightChange = _a.onHighlightChange, highlightedSeries = _a.highlightedSeries, legendTitle = _a.legendTitle, ariaLabel = _a.ariaLabel, plotContainerRef = _a.plotContainerRef;
14
- var focusVisible = useFocusVisible();
15
- var containerRef = useRef(null);
16
- var segmentsRef = useRef([]);
17
- var highlightedSeriesIndex = findSeriesIndex(series, highlightedSeries);
18
- var highlightLeft = function () {
11
+ function ChartLegend({ series, onHighlightChange, highlightedSeries, legendTitle, ariaLabel, plotContainerRef, }) {
12
+ const focusVisible = useFocusVisible();
13
+ const containerRef = useRef(null);
14
+ const segmentsRef = useRef([]);
15
+ const highlightedSeriesIndex = findSeriesIndex(series, highlightedSeries);
16
+ const highlightLeft = () => {
19
17
  var _a;
20
- var currentIndex = highlightedSeriesIndex !== null && highlightedSeriesIndex !== void 0 ? highlightedSeriesIndex : 0;
21
- var nextIndex = currentIndex - 1 >= 0 ? currentIndex - 1 : series.length - 1;
18
+ const currentIndex = highlightedSeriesIndex !== null && highlightedSeriesIndex !== void 0 ? highlightedSeriesIndex : 0;
19
+ const nextIndex = currentIndex - 1 >= 0 ? currentIndex - 1 : series.length - 1;
22
20
  (_a = segmentsRef.current[nextIndex]) === null || _a === void 0 ? void 0 : _a.focus();
23
21
  };
24
- var highlightRight = function () {
22
+ const highlightRight = () => {
25
23
  var _a;
26
- var currentIndex = highlightedSeriesIndex !== null && highlightedSeriesIndex !== void 0 ? highlightedSeriesIndex : 0;
27
- var nextIndex = currentIndex + 1 < series.length ? currentIndex + 1 : 0;
24
+ const currentIndex = highlightedSeriesIndex !== null && highlightedSeriesIndex !== void 0 ? highlightedSeriesIndex : 0;
25
+ const nextIndex = currentIndex + 1 < series.length ? currentIndex + 1 : 0;
28
26
  (_a = segmentsRef.current[nextIndex]) === null || _a === void 0 ? void 0 : _a.focus();
29
27
  };
30
- var handleKeyPress = function (event) {
28
+ const handleKeyPress = (event) => {
31
29
  if (event.keyCode === KeyCode.right || event.keyCode === KeyCode.left) {
32
30
  // Preventing default fixes an issue in Safari+VO when VO additionally interprets arrow keys as its commands.
33
31
  event.preventDefault();
@@ -41,12 +39,12 @@ function ChartLegend(_a) {
41
39
  }
42
40
  }
43
41
  };
44
- var handleSelection = function (index) {
42
+ const handleSelection = (index) => {
45
43
  if (series[index].datum !== highlightedSeries) {
46
44
  onHighlightChange(series[index].datum);
47
45
  }
48
46
  };
49
- var handleBlur = function (event) {
47
+ const handleBlur = (event) => {
50
48
  var _a;
51
49
  // We need to check if the next element to be focused inside the plot container or not
52
50
  // so we don't clear the selected legend in case we are still focusing elements ( legend elements )
@@ -58,40 +56,39 @@ function ChartLegend(_a) {
58
56
  onHighlightChange(null);
59
57
  }
60
58
  };
61
- var handleMouseOver = function (s) {
59
+ const handleMouseOver = (s) => {
62
60
  if (s !== highlightedSeries) {
63
61
  onHighlightChange(s);
64
62
  }
65
63
  };
66
- var handleMouseLeave = function () {
64
+ const handleMouseLeave = () => {
67
65
  onHighlightChange(null);
68
66
  };
69
67
  return (React.createElement(React.Fragment, null,
70
68
  React.createElement("div", { ref: containerRef, role: "toolbar", "aria-label": legendTitle || ariaLabel, className: styles.root, onKeyDown: handleKeyPress, onBlur: handleBlur },
71
69
  legendTitle && (React.createElement(InternalBox, { fontWeight: "bold", className: styles.title }, legendTitle)),
72
- React.createElement("div", { className: styles.list }, series.map(function (s, index) {
73
- var _a;
74
- var someHighlighted = highlightedSeries !== null;
75
- var isHighlighted = highlightedSeries === s.datum;
76
- var isDimmed = someHighlighted && !isHighlighted;
77
- return (React.createElement("div", __assign({}, focusVisible, { role: "button", key: index, "aria-pressed": isHighlighted, className: clsx(styles.marker, (_a = {},
78
- _a[styles['marker--dimmed']] = isDimmed,
79
- _a[styles['marker--highlighted']] = isHighlighted,
80
- _a)), ref: function (elem) {
70
+ React.createElement("div", { className: styles.list }, series.map((s, index) => {
71
+ const someHighlighted = highlightedSeries !== null;
72
+ const isHighlighted = highlightedSeries === s.datum;
73
+ const isDimmed = someHighlighted && !isHighlighted;
74
+ return (React.createElement("div", Object.assign({}, focusVisible, { role: "button", key: index, "aria-pressed": isHighlighted, className: clsx(styles.marker, {
75
+ [styles['marker--dimmed']]: isDimmed,
76
+ [styles['marker--highlighted']]: isHighlighted,
77
+ }), ref: elem => {
81
78
  if (elem) {
82
79
  segmentsRef.current[index] = elem;
83
80
  }
84
81
  else {
85
82
  delete segmentsRef.current[index];
86
83
  }
87
- }, tabIndex: index === highlightedSeriesIndex || (highlightedSeriesIndex === undefined && index === 0) ? 0 : -1, onFocus: function () { return handleSelection(index); }, onClick: function () { return handleSelection(index); }, onMouseOver: function () { return handleMouseOver(s.datum); }, onMouseLeave: handleMouseLeave }),
84
+ }, tabIndex: index === highlightedSeriesIndex || (highlightedSeriesIndex === undefined && index === 0) ? 0 : -1, onFocus: () => handleSelection(index), onClick: () => handleSelection(index), onMouseOver: () => handleMouseOver(s.datum), onMouseLeave: handleMouseLeave }),
88
85
  React.createElement(SeriesMarker, { color: s.color, type: s.type }),
89
86
  " ",
90
87
  s.label));
91
88
  })))));
92
89
  }
93
90
  function findSeriesIndex(series, targetSeries) {
94
- for (var index = 0; index < series.length; index++) {
91
+ for (let index = 0; index < series.length; index++) {
95
92
  if (series[index].datum === targetSeries) {
96
93
  return index;
97
94
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/internal/components/chart-legend/index.tsx"],"names":[],"mappings":"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","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport clsx from 'clsx';\nimport React, { useRef, memo } from 'react';\n\nimport useFocusVisible from '../../hooks/focus-visible';\nimport InternalBox from '../../../box/internal';\nimport { KeyCode } from '../../keycode';\nimport SeriesMarker, { ChartSeriesMarkerType } from '../chart-series-marker';\nimport styles from './styles.css.js';\n\nexport interface ChartLegendItem<T> {\n label: string;\n color: string;\n type: ChartSeriesMarkerType;\n datum: T;\n}\n\nexport interface ChartLegendProps<T> {\n series: ReadonlyArray<ChartLegendItem<T>>;\n highlightedSeries: T | null;\n legendTitle?: string;\n ariaLabel?: string;\n plotContainerRef?: React.RefObject<HTMLDivElement>;\n onHighlightChange: (series: T | null) => void;\n}\n\nexport default memo(ChartLegend) as typeof ChartLegend;\n\nfunction ChartLegend<T>({\n series,\n onHighlightChange,\n highlightedSeries,\n legendTitle,\n ariaLabel,\n plotContainerRef,\n}: ChartLegendProps<T>) {\n const focusVisible = useFocusVisible();\n const containerRef = useRef<HTMLDivElement>(null);\n const segmentsRef = useRef<Record<number, HTMLElement>>([]);\n\n const highlightedSeriesIndex = findSeriesIndex(series, highlightedSeries);\n\n const highlightLeft = () => {\n const currentIndex = highlightedSeriesIndex ?? 0;\n const nextIndex = currentIndex - 1 >= 0 ? currentIndex - 1 : series.length - 1;\n segmentsRef.current[nextIndex]?.focus();\n };\n\n const highlightRight = () => {\n const currentIndex = highlightedSeriesIndex ?? 0;\n const nextIndex = currentIndex + 1 < series.length ? currentIndex + 1 : 0;\n segmentsRef.current[nextIndex]?.focus();\n };\n\n const handleKeyPress = (event: React.KeyboardEvent) => {\n if (event.keyCode === KeyCode.right || event.keyCode === KeyCode.left) {\n // Preventing default fixes an issue in Safari+VO when VO additionally interprets arrow keys as its commands.\n event.preventDefault();\n\n switch (event.keyCode) {\n case KeyCode.left:\n return highlightLeft();\n\n case KeyCode.right:\n return highlightRight();\n\n default:\n return;\n }\n }\n };\n\n const handleSelection = (index: number) => {\n if (series[index].datum !== highlightedSeries) {\n onHighlightChange(series[index].datum);\n }\n };\n\n const handleBlur = (event: React.FocusEvent<Element>) => {\n // We need to check if the next element to be focused inside the plot container or not\n // so we don't clear the selected legend in case we are still focusing elements ( legend elements )\n // inside the plot container\n if (\n event.relatedTarget === null ||\n (containerRef.current &&\n !containerRef.current.contains(event.relatedTarget) &&\n !plotContainerRef?.current?.contains(event.relatedTarget))\n ) {\n onHighlightChange(null);\n }\n };\n\n const handleMouseOver = (s: T) => {\n if (s !== highlightedSeries) {\n onHighlightChange(s);\n }\n };\n\n const handleMouseLeave = () => {\n onHighlightChange(null);\n };\n\n return (\n <>\n <div\n ref={containerRef}\n role=\"toolbar\"\n aria-label={legendTitle || ariaLabel}\n className={styles.root}\n onKeyDown={handleKeyPress}\n onBlur={handleBlur}\n >\n {legendTitle && (\n <InternalBox fontWeight=\"bold\" className={styles.title}>\n {legendTitle}\n </InternalBox>\n )}\n\n <div className={styles.list}>\n {series.map((s, index) => {\n const someHighlighted = highlightedSeries !== null;\n const isHighlighted = highlightedSeries === s.datum;\n const isDimmed = someHighlighted && !isHighlighted;\n return (\n <div\n {...focusVisible}\n role=\"button\"\n key={index}\n aria-pressed={isHighlighted}\n className={clsx(styles.marker, {\n [styles['marker--dimmed']]: isDimmed,\n [styles['marker--highlighted']]: isHighlighted,\n })}\n ref={elem => {\n if (elem) {\n segmentsRef.current[index] = elem;\n } else {\n delete segmentsRef.current[index];\n }\n }}\n tabIndex={\n index === highlightedSeriesIndex || (highlightedSeriesIndex === undefined && index === 0) ? 0 : -1\n }\n onFocus={() => handleSelection(index)}\n onClick={() => handleSelection(index)}\n onMouseOver={() => handleMouseOver(s.datum)}\n onMouseLeave={handleMouseLeave}\n >\n <SeriesMarker color={s.color} type={s.type} /> {s.label}\n </div>\n );\n })}\n </div>\n </div>\n </>\n );\n}\n\nfunction findSeriesIndex<T>(series: ReadonlyArray<ChartLegendItem<T>>, targetSeries: null | T): undefined | number {\n for (let index = 0; index < series.length; index++) {\n if (series[index].datum === targetSeries) {\n return index;\n }\n }\n return undefined;\n}\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/internal/components/chart-legend/index.tsx"],"names":[],"mappings":"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","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport clsx from 'clsx';\nimport React, { useRef, memo } from 'react';\n\nimport useFocusVisible from '../../hooks/focus-visible';\nimport InternalBox from '../../../box/internal';\nimport { KeyCode } from '../../keycode';\nimport SeriesMarker, { ChartSeriesMarkerType } from '../chart-series-marker';\nimport styles from './styles.css.js';\n\nexport interface ChartLegendItem<T> {\n label: string;\n color: string;\n type: ChartSeriesMarkerType;\n datum: T;\n}\n\nexport interface ChartLegendProps<T> {\n series: ReadonlyArray<ChartLegendItem<T>>;\n highlightedSeries: T | null;\n legendTitle?: string;\n ariaLabel?: string;\n plotContainerRef?: React.RefObject<HTMLDivElement>;\n onHighlightChange: (series: T | null) => void;\n}\n\nexport default memo(ChartLegend) as typeof ChartLegend;\n\nfunction ChartLegend<T>({\n series,\n onHighlightChange,\n highlightedSeries,\n legendTitle,\n ariaLabel,\n plotContainerRef,\n}: ChartLegendProps<T>) {\n const focusVisible = useFocusVisible();\n const containerRef = useRef<HTMLDivElement>(null);\n const segmentsRef = useRef<Record<number, HTMLElement>>([]);\n\n const highlightedSeriesIndex = findSeriesIndex(series, highlightedSeries);\n\n const highlightLeft = () => {\n const currentIndex = highlightedSeriesIndex ?? 0;\n const nextIndex = currentIndex - 1 >= 0 ? currentIndex - 1 : series.length - 1;\n segmentsRef.current[nextIndex]?.focus();\n };\n\n const highlightRight = () => {\n const currentIndex = highlightedSeriesIndex ?? 0;\n const nextIndex = currentIndex + 1 < series.length ? currentIndex + 1 : 0;\n segmentsRef.current[nextIndex]?.focus();\n };\n\n const handleKeyPress = (event: React.KeyboardEvent) => {\n if (event.keyCode === KeyCode.right || event.keyCode === KeyCode.left) {\n // Preventing default fixes an issue in Safari+VO when VO additionally interprets arrow keys as its commands.\n event.preventDefault();\n\n switch (event.keyCode) {\n case KeyCode.left:\n return highlightLeft();\n\n case KeyCode.right:\n return highlightRight();\n\n default:\n return;\n }\n }\n };\n\n const handleSelection = (index: number) => {\n if (series[index].datum !== highlightedSeries) {\n onHighlightChange(series[index].datum);\n }\n };\n\n const handleBlur = (event: React.FocusEvent<Element>) => {\n // We need to check if the next element to be focused inside the plot container or not\n // so we don't clear the selected legend in case we are still focusing elements ( legend elements )\n // inside the plot container\n if (\n event.relatedTarget === null ||\n (containerRef.current &&\n !containerRef.current.contains(event.relatedTarget) &&\n !plotContainerRef?.current?.contains(event.relatedTarget))\n ) {\n onHighlightChange(null);\n }\n };\n\n const handleMouseOver = (s: T) => {\n if (s !== highlightedSeries) {\n onHighlightChange(s);\n }\n };\n\n const handleMouseLeave = () => {\n onHighlightChange(null);\n };\n\n return (\n <>\n <div\n ref={containerRef}\n role=\"toolbar\"\n aria-label={legendTitle || ariaLabel}\n className={styles.root}\n onKeyDown={handleKeyPress}\n onBlur={handleBlur}\n >\n {legendTitle && (\n <InternalBox fontWeight=\"bold\" className={styles.title}>\n {legendTitle}\n </InternalBox>\n )}\n\n <div className={styles.list}>\n {series.map((s, index) => {\n const someHighlighted = highlightedSeries !== null;\n const isHighlighted = highlightedSeries === s.datum;\n const isDimmed = someHighlighted && !isHighlighted;\n return (\n <div\n {...focusVisible}\n role=\"button\"\n key={index}\n aria-pressed={isHighlighted}\n className={clsx(styles.marker, {\n [styles['marker--dimmed']]: isDimmed,\n [styles['marker--highlighted']]: isHighlighted,\n })}\n ref={elem => {\n if (elem) {\n segmentsRef.current[index] = elem;\n } else {\n delete segmentsRef.current[index];\n }\n }}\n tabIndex={\n index === highlightedSeriesIndex || (highlightedSeriesIndex === undefined && index === 0) ? 0 : -1\n }\n onFocus={() => handleSelection(index)}\n onClick={() => handleSelection(index)}\n onMouseOver={() => handleMouseOver(s.datum)}\n onMouseLeave={handleMouseLeave}\n >\n <SeriesMarker color={s.color} type={s.type} /> {s.label}\n </div>\n );\n })}\n </div>\n </div>\n </>\n );\n}\n\nfunction findSeriesIndex<T>(series: ReadonlyArray<ChartLegendItem<T>>, targetSeries: null | T): undefined | number {\n for (let index = 0; index < series.length; index++) {\n if (series[index].datum === targetSeries) {\n return index;\n }\n }\n return undefined;\n}\n"]}
@@ -4,14 +4,13 @@ import React, { forwardRef, useCallback, useEffect, useImperativeHandle, useRef,
4
4
  import focusSvgElement from '../../utils/focus-svg-element';
5
5
  import styles from './styles.css.js';
6
6
  export default forwardRef(ApplicationController);
7
- function ApplicationController(_a, ref) {
8
- var activeElementKey = _a.activeElementKey, activeElementRef = _a.activeElementRef, onFocus = _a.onFocus, onBlur = _a.onBlur, onKeyDown = _a.onKeyDown;
9
- var containerRef = useRef(null);
10
- var applicationRef = useRef(null);
11
- var focusTransitionRef = useRef(false);
12
- var _b = useState(false), isFocused = _b[0], setFocused = _b[1];
7
+ function ApplicationController({ activeElementKey, activeElementRef, onFocus, onBlur, onKeyDown }, ref) {
8
+ const containerRef = useRef(null);
9
+ const applicationRef = useRef(null);
10
+ const focusTransitionRef = useRef(false);
11
+ const [isFocused, setFocused] = useState(false);
13
12
  // Calls provided onFocus handler when the application obtains focus, ignoring internal focus juggling.
14
- var onApplicationFocus = useCallback(function (event) {
13
+ const onApplicationFocus = useCallback((event) => {
15
14
  if (focusTransitionRef.current === false) {
16
15
  setFocused(true);
17
16
  onFocus && onFocus(event);
@@ -21,7 +20,7 @@ function ApplicationController(_a, ref) {
21
20
  }
22
21
  }, [onFocus]);
23
22
  // Calls provided onBlur handler when the application loses focus, ignoring internal focus juggling.
24
- var onApplicationBlur = useCallback(function (event) {
23
+ const onApplicationBlur = useCallback((event) => {
25
24
  if (focusTransitionRef.current === false) {
26
25
  setFocused(false);
27
26
  onBlur && onBlur(event);
@@ -29,25 +28,25 @@ function ApplicationController(_a, ref) {
29
28
  muteApplication(applicationRef.current);
30
29
  }
31
30
  }, [onBlur]);
32
- var onApplicationKeyDown = onKeyDown;
33
- useImperativeHandle(ref, function () { return ({
34
- focus: function () { return focusApplication(applicationRef.current, (activeElementRef === null || activeElementRef === void 0 ? void 0 : activeElementRef.current) || null); }
35
- }); }, [activeElementRef]);
31
+ const onApplicationKeyDown = onKeyDown;
32
+ useImperativeHandle(ref, () => ({
33
+ focus: () => focusApplication(applicationRef.current, (activeElementRef === null || activeElementRef === void 0 ? void 0 : activeElementRef.current) || null),
34
+ }), [activeElementRef]);
36
35
  // Re-attaches and re-focuses the application for screen readers to treat it as an update.
37
- useEffect(function () {
36
+ useEffect(() => {
38
37
  // Skip if not focused or if the transition is already happening.
39
38
  if (!isFocused || focusTransitionRef.current === true) {
40
39
  return;
41
40
  }
42
41
  // Delay focus juggle to let the last focus event settle in Firefox.
43
42
  // Without the delay the focus is getting lost.
44
- var timeoutId = setTimeout(function () {
43
+ const timeoutId = setTimeout(() => {
45
44
  focusTransitionRef.current = true;
46
45
  containerRef.current.removeChild(applicationRef.current);
47
46
  containerRef.current.appendChild(applicationRef.current);
48
47
  focusApplication(applicationRef.current, (activeElementRef === null || activeElementRef === void 0 ? void 0 : activeElementRef.current) || null);
49
48
  }, 0);
50
- return function () { return clearTimeout(timeoutId); };
49
+ return () => clearTimeout(timeoutId);
51
50
  }, [isFocused, activeElementKey, activeElementRef]);
52
51
  return (React.createElement("g", { ref: containerRef },
53
52
  React.createElement("g", { tabIndex: -1, ref: applicationRef, onFocus: onApplicationFocus, onBlur: onApplicationBlur, onKeyDown: onApplicationKeyDown, className: styles.application })));
@@ -55,18 +54,16 @@ function ApplicationController(_a, ref) {
55
54
  // Focuses application but before copies aria-attributes from the target.
56
55
  function focusApplication(app, target) {
57
56
  // Remove prev attributes.
58
- for (var _i = 0, _a = getAttributeNames(app); _i < _a.length; _i++) {
59
- var attributeName = _a[_i];
57
+ for (const attributeName of getAttributeNames(app)) {
60
58
  if (attributeName === 'role' || attributeName.slice(0, 4) === 'aria') {
61
59
  app.removeAttribute(attributeName);
62
60
  }
63
61
  }
64
62
  // Copy new attributes.
65
63
  if (target) {
66
- for (var _b = 0, _c = getAttributeNames(target); _b < _c.length; _b++) {
67
- var attributeName = _c[_b];
64
+ for (const attributeName of getAttributeNames(target)) {
68
65
  if (attributeName === 'role' || attributeName.slice(0, 4) === 'aria') {
69
- var attributeValue = target.getAttribute(attributeName);
66
+ const attributeValue = target.getAttribute(attributeName);
70
67
  attributeValue && app.setAttribute(attributeName, attributeValue);
71
68
  }
72
69
  }
@@ -81,8 +78,7 @@ function focusApplication(app, target) {
81
78
  // The application is to be only focused programmatically.
82
79
  function muteApplication(app) {
83
80
  // Remove prev attributes.
84
- for (var _i = 0, _a = getAttributeNames(app); _i < _a.length; _i++) {
85
- var attributeName = _a[_i];
81
+ for (const attributeName of getAttributeNames(app)) {
86
82
  if (attributeName === 'role' || attributeName.slice(0, 4) === 'aria') {
87
83
  app.removeAttribute(attributeName);
88
84
  }
@@ -95,9 +91,9 @@ function muteApplication(app) {
95
91
  // Polyfill for element.getAttributeNames(), IE11
96
92
  // https://developer.mozilla.org/en-US/docs/Web/API/Element/getAttributeNames#polyfill
97
93
  function getAttributeNames(element) {
98
- var attributes = element.attributes;
99
- var result = new Array(attributes.length);
100
- for (var i = 0; i < attributes.length; i++) {
94
+ const attributes = element.attributes;
95
+ const result = new Array(attributes.length);
96
+ for (let i = 0; i < attributes.length; i++) {
101
97
  result[i] = attributes[i].name;
102
98
  }
103
99
  return result;
@@ -1 +1 @@
1
- {"version":3,"file":"application-controller.js","sourceRoot":"","sources":["../../../../../src/internal/components/chart-plot/application-controller.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, { forwardRef, useCallback, useEffect, useImperativeHandle, useRef, useState } from 'react';\nimport focusSvgElement from '../../utils/focus-svg-element';\nimport styles from './styles.css.js';\n\nexport interface ApplicationRef {\n focus(): void;\n}\n\nexport interface ApplicationControllerProps {\n activeElementKey: null | string | number | boolean;\n activeElementRef?: React.RefObject<SVGGElement>;\n onFocus?: (event: React.FocusEvent<SVGGElement>) => void;\n onBlur?: (event: React.FocusEvent<SVGGElement>) => void;\n onKeyDown?: (event: React.KeyboardEvent<SVGGElement>) => void;\n}\n\nexport default forwardRef(ApplicationController);\n\nfunction ApplicationController(\n { activeElementKey, activeElementRef, onFocus, onBlur, onKeyDown }: ApplicationControllerProps,\n ref: React.Ref<ApplicationRef>\n) {\n const containerRef = useRef<SVGGElement>(null);\n const applicationRef = useRef<SVGGElement>(null);\n const focusTransitionRef = useRef(false);\n const [isFocused, setFocused] = useState(false);\n\n // Calls provided onFocus handler when the application obtains focus, ignoring internal focus juggling.\n const onApplicationFocus = useCallback(\n (event: React.FocusEvent<SVGGElement>) => {\n if (focusTransitionRef.current === false) {\n setFocused(true);\n onFocus && onFocus(event);\n } else {\n focusTransitionRef.current = false;\n }\n },\n [onFocus]\n );\n // Calls provided onBlur handler when the application loses focus, ignoring internal focus juggling.\n const onApplicationBlur = useCallback(\n (event: React.FocusEvent<SVGGElement>) => {\n if (focusTransitionRef.current === false) {\n setFocused(false);\n onBlur && onBlur(event);\n // The application controller can only be focused programmatically.\n muteApplication(applicationRef.current!);\n }\n },\n [onBlur]\n );\n const onApplicationKeyDown = onKeyDown;\n\n useImperativeHandle(\n ref,\n () => ({\n focus: () => focusApplication(applicationRef.current!, activeElementRef?.current || null),\n }),\n [activeElementRef]\n );\n\n // Re-attaches and re-focuses the application for screen readers to treat it as an update.\n useEffect(() => {\n // Skip if not focused or if the transition is already happening.\n if (!isFocused || focusTransitionRef.current === true) {\n return;\n }\n\n // Delay focus juggle to let the last focus event settle in Firefox.\n // Without the delay the focus is getting lost.\n const timeoutId = setTimeout(() => {\n focusTransitionRef.current = true;\n containerRef.current!.removeChild(applicationRef.current!);\n containerRef.current!.appendChild(applicationRef.current!);\n focusApplication(applicationRef.current!, activeElementRef?.current || null);\n }, 0);\n\n return () => clearTimeout(timeoutId);\n }, [isFocused, activeElementKey, activeElementRef]);\n\n return (\n <g ref={containerRef}>\n <g\n tabIndex={-1}\n ref={applicationRef}\n onFocus={onApplicationFocus}\n onBlur={onApplicationBlur}\n onKeyDown={onApplicationKeyDown}\n className={styles.application}\n ></g>\n </g>\n );\n}\n\n// Focuses application but before copies aria-attributes from the target.\nfunction focusApplication(app: SVGGElement, target: null | SVGGElement) {\n // Remove prev attributes.\n for (const attributeName of getAttributeNames(app)) {\n if (attributeName === 'role' || attributeName.slice(0, 4) === 'aria') {\n app.removeAttribute(attributeName);\n }\n }\n\n // Copy new attributes.\n if (target) {\n for (const attributeName of getAttributeNames(target)) {\n if (attributeName === 'role' || attributeName.slice(0, 4) === 'aria') {\n const attributeValue = target.getAttribute(attributeName);\n attributeValue && app.setAttribute(attributeName, attributeValue);\n }\n }\n }\n\n // Make app focusable.\n app.tabIndex = 0;\n app.setAttribute('focusable', 'true');\n app.setAttribute('aria-hidden', 'false');\n\n // Focus app.\n focusSvgElement(app);\n}\n\n// The application is to be only focused programmatically.\nfunction muteApplication(app: SVGGElement) {\n // Remove prev attributes.\n for (const attributeName of getAttributeNames(app)) {\n if (attributeName === 'role' || attributeName.slice(0, 4) === 'aria') {\n app.removeAttribute(attributeName);\n }\n }\n\n // Make app non-focusable.\n app.tabIndex = -1;\n app.setAttribute('focusable', 'false');\n app.setAttribute('aria-hidden', 'true');\n}\n\n// Polyfill for element.getAttributeNames(), IE11\n// https://developer.mozilla.org/en-US/docs/Web/API/Element/getAttributeNames#polyfill\nfunction getAttributeNames(element: Element) {\n const attributes = element.attributes;\n const result = new Array(attributes.length);\n for (let i = 0; i < attributes.length; i++) {\n result[i] = attributes[i].name;\n }\n return result;\n}\n"]}
1
+ {"version":3,"file":"application-controller.js","sourceRoot":"","sources":["../../../../../src/internal/components/chart-plot/application-controller.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, { forwardRef, useCallback, useEffect, useImperativeHandle, useRef, useState } from 'react';\nimport focusSvgElement from '../../utils/focus-svg-element';\nimport styles from './styles.css.js';\n\nexport interface ApplicationRef {\n focus(): void;\n}\n\nexport interface ApplicationControllerProps {\n activeElementKey: null | string | number | boolean;\n activeElementRef?: React.RefObject<SVGGElement>;\n onFocus?: (event: React.FocusEvent<SVGGElement>) => void;\n onBlur?: (event: React.FocusEvent<SVGGElement>) => void;\n onKeyDown?: (event: React.KeyboardEvent<SVGGElement>) => void;\n}\n\nexport default forwardRef(ApplicationController);\n\nfunction ApplicationController(\n { activeElementKey, activeElementRef, onFocus, onBlur, onKeyDown }: ApplicationControllerProps,\n ref: React.Ref<ApplicationRef>\n) {\n const containerRef = useRef<SVGGElement>(null);\n const applicationRef = useRef<SVGGElement>(null);\n const focusTransitionRef = useRef(false);\n const [isFocused, setFocused] = useState(false);\n\n // Calls provided onFocus handler when the application obtains focus, ignoring internal focus juggling.\n const onApplicationFocus = useCallback(\n (event: React.FocusEvent<SVGGElement>) => {\n if (focusTransitionRef.current === false) {\n setFocused(true);\n onFocus && onFocus(event);\n } else {\n focusTransitionRef.current = false;\n }\n },\n [onFocus]\n );\n // Calls provided onBlur handler when the application loses focus, ignoring internal focus juggling.\n const onApplicationBlur = useCallback(\n (event: React.FocusEvent<SVGGElement>) => {\n if (focusTransitionRef.current === false) {\n setFocused(false);\n onBlur && onBlur(event);\n // The application controller can only be focused programmatically.\n muteApplication(applicationRef.current!);\n }\n },\n [onBlur]\n );\n const onApplicationKeyDown = onKeyDown;\n\n useImperativeHandle(\n ref,\n () => ({\n focus: () => focusApplication(applicationRef.current!, activeElementRef?.current || null),\n }),\n [activeElementRef]\n );\n\n // Re-attaches and re-focuses the application for screen readers to treat it as an update.\n useEffect(() => {\n // Skip if not focused or if the transition is already happening.\n if (!isFocused || focusTransitionRef.current === true) {\n return;\n }\n\n // Delay focus juggle to let the last focus event settle in Firefox.\n // Without the delay the focus is getting lost.\n const timeoutId = setTimeout(() => {\n focusTransitionRef.current = true;\n containerRef.current!.removeChild(applicationRef.current!);\n containerRef.current!.appendChild(applicationRef.current!);\n focusApplication(applicationRef.current!, activeElementRef?.current || null);\n }, 0);\n\n return () => clearTimeout(timeoutId);\n }, [isFocused, activeElementKey, activeElementRef]);\n\n return (\n <g ref={containerRef}>\n <g\n tabIndex={-1}\n ref={applicationRef}\n onFocus={onApplicationFocus}\n onBlur={onApplicationBlur}\n onKeyDown={onApplicationKeyDown}\n className={styles.application}\n ></g>\n </g>\n );\n}\n\n// Focuses application but before copies aria-attributes from the target.\nfunction focusApplication(app: SVGGElement, target: null | SVGGElement) {\n // Remove prev attributes.\n for (const attributeName of getAttributeNames(app)) {\n if (attributeName === 'role' || attributeName.slice(0, 4) === 'aria') {\n app.removeAttribute(attributeName);\n }\n }\n\n // Copy new attributes.\n if (target) {\n for (const attributeName of getAttributeNames(target)) {\n if (attributeName === 'role' || attributeName.slice(0, 4) === 'aria') {\n const attributeValue = target.getAttribute(attributeName);\n attributeValue && app.setAttribute(attributeName, attributeValue);\n }\n }\n }\n\n // Make app focusable.\n app.tabIndex = 0;\n app.setAttribute('focusable', 'true');\n app.setAttribute('aria-hidden', 'false');\n\n // Focus app.\n focusSvgElement(app);\n}\n\n// The application is to be only focused programmatically.\nfunction muteApplication(app: SVGGElement) {\n // Remove prev attributes.\n for (const attributeName of getAttributeNames(app)) {\n if (attributeName === 'role' || attributeName.slice(0, 4) === 'aria') {\n app.removeAttribute(attributeName);\n }\n }\n\n // Make app non-focusable.\n app.tabIndex = -1;\n app.setAttribute('focusable', 'false');\n app.setAttribute('aria-hidden', 'true');\n}\n\n// Polyfill for element.getAttributeNames(), IE11\n// https://developer.mozilla.org/en-US/docs/Web/API/Element/getAttributeNames#polyfill\nfunction getAttributeNames(element: Element) {\n const attributes = element.attributes;\n const result = new Array(attributes.length);\n for (let i = 0; i < attributes.length; i++) {\n result[i] = attributes[i].name;\n }\n return result;\n}\n"]}
@@ -3,16 +3,15 @@
3
3
  import React, { useEffect, useRef } from 'react';
4
4
  import styles from './styles.css.js';
5
5
  import useFocusVisible from '../../hooks/focus-visible/index';
6
- export default function FocusOutline(_a) {
7
- var elementKey = _a.elementKey, elementRef = _a.elementRef, _b = _a.offset, offset = _b === void 0 ? 0 : _b;
8
- var ref = useRef(null);
9
- var focusVisible = useFocusVisible()["data-awsui-focus-visible"];
10
- useEffect(function () {
6
+ export default function FocusOutline({ elementKey, elementRef, offset = 0 }) {
7
+ const ref = useRef(null);
8
+ const { 'data-awsui-focus-visible': focusVisible } = useFocusVisible();
9
+ useEffect(() => {
11
10
  if (!ref.current) {
12
11
  return;
13
12
  }
14
13
  if (focusVisible && elementKey && elementRef && elementRef.current && elementRef.current.getBBox) {
15
- var element = elementRef.current.getBBox();
14
+ const element = elementRef.current.getBBox();
16
15
  showOutline(ref.current, element, offset);
17
16
  }
18
17
  else {
@@ -22,8 +21,8 @@ export default function FocusOutline(_a) {
22
21
  return React.createElement("rect", { ref: ref, "aria-hidden": "true", className: styles['focus-outline'], rx: "2" });
23
22
  }
24
23
  function showOutline(el, position, offset) {
25
- var offsetX = typeof offset === 'number' ? offset : offset.x;
26
- var offsetY = typeof offset === 'number' ? offset : offset.y;
24
+ const offsetX = typeof offset === 'number' ? offset : offset.x;
25
+ const offsetY = typeof offset === 'number' ? offset : offset.y;
27
26
  el.setAttribute('x', (position.x - offsetX).toString());
28
27
  el.setAttribute('y', (position.y - offsetY).toString());
29
28
  el.setAttribute('width', (position.width + 2 * offsetX).toString());
@@ -1 +1 @@
1
- {"version":3,"file":"focus-outline.js","sourceRoot":"","sources":["../../../../../src/internal/components/chart-plot/focus-outline.tsx"],"names":[],"mappings":"AAAA,qEAAqE;AACrE,sCAAsC;AACtC,OAAO,KAAK,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AAEjD,OAAO,MAAM,MAAM,iBAAiB,CAAC;AACrC,OAAO,eAAe,MAAM,iCAAiC,CAAC;AAS9D,MAAM,CAAC,OAAO,UAAU,YAAY,CAAC,EAAyD;QAAvD,UAAU,gBAAA,EAAE,UAAU,gBAAA,EAAE,cAAU,EAAV,MAAM,mBAAG,CAAC,KAAA;IACvE,IAAM,GAAG,GAAG,MAAM,CAAiB,IAAI,CAAC,CAAC;IACjC,IAA4B,YAAY,GAAK,eAAe,EAAE,4BAAtB,CAAuB;IAEvE,SAAS,CAAC;QACR,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE;YAChB,OAAO;SACR;QAED,IAAI,YAAY,IAAI,UAAU,IAAI,UAAU,IAAI,UAAU,CAAC,OAAO,IAAI,UAAU,CAAC,OAAO,CAAC,OAAO,EAAE;YAChG,IAAM,OAAO,GAAG,UAAU,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;YAC7C,WAAW,CAAC,GAAG,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;SAC3C;aAAM;YACL,WAAW,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;SAC1B;IACH,CAAC,EAAE,CAAC,YAAY,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,CAAC,CAAC,CAAC;IAEnD,OAAO,8BAAM,GAAG,EAAE,GAAG,iBAAc,MAAM,EAAC,SAAS,EAAE,MAAM,CAAC,eAAe,CAAC,EAAE,EAAE,EAAC,GAAG,GAAG,CAAC;AAC1F,CAAC;AAED,SAAS,WAAW,CAClB,EAAkB,EAClB,QAAiE,EACjE,MAAc;IAEd,IAAM,OAAO,GAAG,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;IAC/D,IAAM,OAAO,GAAG,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;IAC/D,EAAE,CAAC,YAAY,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;IACxD,EAAE,CAAC,YAAY,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;IACxD,EAAE,CAAC,YAAY,CAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,KAAK,GAAG,CAAC,GAAG,OAAO,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;IACpE,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,GAAG,OAAO,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;IACtE,EAAE,CAAC,KAAK,CAAC,UAAU,GAAG,SAAS,CAAC;AAClC,CAAC;AAED,SAAS,WAAW,CAAC,EAAkB;IACrC,EAAE,CAAC,KAAK,CAAC,UAAU,GAAG,QAAQ,CAAC;IAC/B,EAAE,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC;IACxB,EAAE,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC;IACxB,EAAE,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;IAC5B,EAAE,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC;AAC/B,CAAC","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport React, { useEffect, useRef } from 'react';\n\nimport styles from './styles.css.js';\nimport useFocusVisible from '../../hooks/focus-visible/index';\nimport { Offset } from '../interfaces';\n\nexport interface FocusOutlineProps {\n elementKey?: null | string | number | boolean;\n elementRef?: React.RefObject<SVGSVGElement | SVGGElement>;\n offset?: Offset;\n}\n\nexport default function FocusOutline({ elementKey, elementRef, offset = 0 }: FocusOutlineProps) {\n const ref = useRef<SVGRectElement>(null);\n const { 'data-awsui-focus-visible': focusVisible } = useFocusVisible();\n\n useEffect(() => {\n if (!ref.current) {\n return;\n }\n\n if (focusVisible && elementKey && elementRef && elementRef.current && elementRef.current.getBBox) {\n const element = elementRef.current.getBBox();\n showOutline(ref.current, element, offset);\n } else {\n hideOutline(ref.current);\n }\n }, [focusVisible, elementKey, elementRef, offset]);\n\n return <rect ref={ref} aria-hidden=\"true\" className={styles['focus-outline']} rx=\"2\" />;\n}\n\nfunction showOutline(\n el: SVGRectElement,\n position: { x: number; y: number; width: number; height: number },\n offset: Offset\n) {\n const offsetX = typeof offset === 'number' ? offset : offset.x;\n const offsetY = typeof offset === 'number' ? offset : offset.y;\n el.setAttribute('x', (position.x - offsetX).toString());\n el.setAttribute('y', (position.y - offsetY).toString());\n el.setAttribute('width', (position.width + 2 * offsetX).toString());\n el.setAttribute('height', (position.height + 2 * offsetY).toString());\n el.style.visibility = 'visible';\n}\n\nfunction hideOutline(el: SVGRectElement) {\n el.style.visibility = 'hidden';\n el.removeAttribute('x');\n el.removeAttribute('y');\n el.removeAttribute('width');\n el.removeAttribute('height');\n}\n"]}
1
+ {"version":3,"file":"focus-outline.js","sourceRoot":"","sources":["../../../../../src/internal/components/chart-plot/focus-outline.tsx"],"names":[],"mappings":"AAAA,qEAAqE;AACrE,sCAAsC;AACtC,OAAO,KAAK,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AAEjD,OAAO,MAAM,MAAM,iBAAiB,CAAC;AACrC,OAAO,eAAe,MAAM,iCAAiC,CAAC;AAS9D,MAAM,CAAC,OAAO,UAAU,YAAY,CAAC,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,GAAG,CAAC,EAAqB;IAC5F,MAAM,GAAG,GAAG,MAAM,CAAiB,IAAI,CAAC,CAAC;IACzC,MAAM,EAAE,0BAA0B,EAAE,YAAY,EAAE,GAAG,eAAe,EAAE,CAAC;IAEvE,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE;YAChB,OAAO;SACR;QAED,IAAI,YAAY,IAAI,UAAU,IAAI,UAAU,IAAI,UAAU,CAAC,OAAO,IAAI,UAAU,CAAC,OAAO,CAAC,OAAO,EAAE;YAChG,MAAM,OAAO,GAAG,UAAU,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;YAC7C,WAAW,CAAC,GAAG,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;SAC3C;aAAM;YACL,WAAW,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;SAC1B;IACH,CAAC,EAAE,CAAC,YAAY,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,CAAC,CAAC,CAAC;IAEnD,OAAO,8BAAM,GAAG,EAAE,GAAG,iBAAc,MAAM,EAAC,SAAS,EAAE,MAAM,CAAC,eAAe,CAAC,EAAE,EAAE,EAAC,GAAG,GAAG,CAAC;AAC1F,CAAC;AAED,SAAS,WAAW,CAClB,EAAkB,EAClB,QAAiE,EACjE,MAAc;IAEd,MAAM,OAAO,GAAG,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;IAC/D,MAAM,OAAO,GAAG,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;IAC/D,EAAE,CAAC,YAAY,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;IACxD,EAAE,CAAC,YAAY,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;IACxD,EAAE,CAAC,YAAY,CAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,KAAK,GAAG,CAAC,GAAG,OAAO,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;IACpE,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,GAAG,OAAO,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;IACtE,EAAE,CAAC,KAAK,CAAC,UAAU,GAAG,SAAS,CAAC;AAClC,CAAC;AAED,SAAS,WAAW,CAAC,EAAkB;IACrC,EAAE,CAAC,KAAK,CAAC,UAAU,GAAG,QAAQ,CAAC;IAC/B,EAAE,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC;IACxB,EAAE,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC;IACxB,EAAE,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;IAC5B,EAAE,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC;AAC/B,CAAC","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport React, { useEffect, useRef } from 'react';\n\nimport styles from './styles.css.js';\nimport useFocusVisible from '../../hooks/focus-visible/index';\nimport { Offset } from '../interfaces';\n\nexport interface FocusOutlineProps {\n elementKey?: null | string | number | boolean;\n elementRef?: React.RefObject<SVGSVGElement | SVGGElement>;\n offset?: Offset;\n}\n\nexport default function FocusOutline({ elementKey, elementRef, offset = 0 }: FocusOutlineProps) {\n const ref = useRef<SVGRectElement>(null);\n const { 'data-awsui-focus-visible': focusVisible } = useFocusVisible();\n\n useEffect(() => {\n if (!ref.current) {\n return;\n }\n\n if (focusVisible && elementKey && elementRef && elementRef.current && elementRef.current.getBBox) {\n const element = elementRef.current.getBBox();\n showOutline(ref.current, element, offset);\n } else {\n hideOutline(ref.current);\n }\n }, [focusVisible, elementKey, elementRef, offset]);\n\n return <rect ref={ref} aria-hidden=\"true\" className={styles['focus-outline']} rx=\"2\" />;\n}\n\nfunction showOutline(\n el: SVGRectElement,\n position: { x: number; y: number; width: number; height: number },\n offset: Offset\n) {\n const offsetX = typeof offset === 'number' ? offset : offset.x;\n const offsetY = typeof offset === 'number' ? offset : offset.y;\n el.setAttribute('x', (position.x - offsetX).toString());\n el.setAttribute('y', (position.y - offsetY).toString());\n el.setAttribute('width', (position.width + 2 * offsetX).toString());\n el.setAttribute('height', (position.height + 2 * offsetY).toString());\n el.style.visibility = 'visible';\n}\n\nfunction hideOutline(el: SVGRectElement) {\n el.style.visibility = 'hidden';\n el.removeAttribute('x');\n el.removeAttribute('y');\n el.removeAttribute('width');\n el.removeAttribute('height');\n}\n"]}
@@ -1,4 +1,4 @@
1
- import { __assign, __rest } from "tslib";
1
+ import { __rest } from "tslib";
2
2
  // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
3
3
  // SPDX-License-Identifier: Apache-2.0
4
4
  import React, { forwardRef, useImperativeHandle, useRef, useState } from 'react';
@@ -10,8 +10,8 @@ import LiveRegion from '../live-region/index';
10
10
  import ApplicationController from './application-controller';
11
11
  import FocusOutline from './focus-outline';
12
12
  import focusSvgElement from '../../utils/focus-svg-element';
13
- var DEFAULT_PLOT_FOCUS_OFFSET = 3;
14
- var DEFAULT_ELEMENT_FOCUS_OFFSET = 3;
13
+ const DEFAULT_PLOT_FOCUS_OFFSET = 3;
14
+ const DEFAULT_ELEMENT_FOCUS_OFFSET = 3;
15
15
  /**
16
16
  An extension for the SVG to be used for charts. It includes a controller element to
17
17
  handle the focus and keyboard interactions in a way that is supported by screen readers.
@@ -24,26 +24,25 @@ var DEFAULT_ELEMENT_FOCUS_OFFSET = 3;
24
24
  */
25
25
  export default forwardRef(ChartPlot);
26
26
  function ChartPlot(_a, ref) {
27
- var _b;
28
- var width = _a.width, height = _a.height, transform = _a.transform, offsetTop = _a.offsetTop, offsetBottom = _a.offsetBottom, offsetLeft = _a.offsetLeft, offsetRight = _a.offsetRight, ariaLabel = _a.ariaLabel, ariaLabelledby = _a.ariaLabelledby, ariaRoleDescription = _a.ariaRoleDescription, ariaDescription = _a.ariaDescription, ariaDescribedby = _a.ariaDescribedby, activeElementKey = _a.activeElementKey, activeElementRef = _a.activeElementRef, ariaLiveRegion = _a.ariaLiveRegion, isClickable = _a.isClickable, isPrecise = _a.isPrecise, children = _a.children, onMouseDown = _a.onMouseDown, onKeyDown = _a.onKeyDown, onFocus = _a.onFocus, onBlur = _a.onBlur, _c = _a.focusOffset, focusOffset = _c === void 0 ? DEFAULT_PLOT_FOCUS_OFFSET : _c, _d = _a.activeElementFocusOffset, activeElementFocusOffset = _d === void 0 ? DEFAULT_ELEMENT_FOCUS_OFFSET : _d, restProps = __rest(_a, ["width", "height", "transform", "offsetTop", "offsetBottom", "offsetLeft", "offsetRight", "ariaLabel", "ariaLabelledby", "ariaRoleDescription", "ariaDescription", "ariaDescribedby", "activeElementKey", "activeElementRef", "ariaLiveRegion", "isClickable", "isPrecise", "children", "onMouseDown", "onKeyDown", "onFocus", "onBlur", "focusOffset", "activeElementFocusOffset"]);
29
- var svgRef = useRef(null);
30
- var applicationRef = useRef(null);
31
- var plotClickedRef = useRef(false);
32
- var _e = useState(false), isPlotFocused = _e[0], setPlotFocused = _e[1];
33
- var _f = useState(false), isApplicationFocused = _f[0], setApplicationFocused = _f[1];
34
- var internalDescriptionId = useUniqueId('awsui-chart-plot__description');
35
- var ariaDescriptionId = [ariaDescription && internalDescriptionId, ariaDescribedby].filter(Boolean).join(' ');
36
- useImperativeHandle(ref, function () { return ({
27
+ var { width, height, transform, offsetTop, offsetBottom, offsetLeft, offsetRight, ariaLabel, ariaLabelledby, ariaRoleDescription, ariaDescription, ariaDescribedby, activeElementKey, activeElementRef, ariaLiveRegion, isClickable, isPrecise, children, onMouseDown, onKeyDown, onFocus, onBlur, focusOffset = DEFAULT_PLOT_FOCUS_OFFSET, activeElementFocusOffset = DEFAULT_ELEMENT_FOCUS_OFFSET } = _a, restProps = __rest(_a, ["width", "height", "transform", "offsetTop", "offsetBottom", "offsetLeft", "offsetRight", "ariaLabel", "ariaLabelledby", "ariaRoleDescription", "ariaDescription", "ariaDescribedby", "activeElementKey", "activeElementRef", "ariaLiveRegion", "isClickable", "isPrecise", "children", "onMouseDown", "onKeyDown", "onFocus", "onBlur", "focusOffset", "activeElementFocusOffset"]);
28
+ const svgRef = useRef(null);
29
+ const applicationRef = useRef(null);
30
+ const plotClickedRef = useRef(false);
31
+ const [isPlotFocused, setPlotFocused] = useState(false);
32
+ const [isApplicationFocused, setApplicationFocused] = useState(false);
33
+ const internalDescriptionId = useUniqueId('awsui-chart-plot__description');
34
+ const ariaDescriptionId = [ariaDescription && internalDescriptionId, ariaDescribedby].filter(Boolean).join(' ');
35
+ useImperativeHandle(ref, () => ({
37
36
  svg: svgRef.current,
38
- focusPlot: function () { return focusSvgElement(svgRef.current); },
39
- focusApplication: function () { return applicationRef.current.focus(); }
40
- }); });
41
- var onPlotMouseDown = function (event) {
37
+ focusPlot: () => focusSvgElement(svgRef.current),
38
+ focusApplication: () => applicationRef.current.focus(),
39
+ }));
40
+ const onPlotMouseDown = (event) => {
42
41
  onMouseDown && onMouseDown(event);
43
42
  // Record the click was made for the application focus handler.
44
43
  plotClickedRef.current = true;
45
44
  };
46
- var onPlotFocus = function (event) {
45
+ const onPlotFocus = (event) => {
47
46
  if (event.target === svgRef.current && !plotClickedRef.current) {
48
47
  setPlotFocused(true);
49
48
  }
@@ -52,52 +51,52 @@ function ChartPlot(_a, ref) {
52
51
  applicationRef.current.focus();
53
52
  }
54
53
  };
55
- var onPlotBlur = function (event) {
54
+ const onPlotBlur = (event) => {
56
55
  if (event.target === svgRef.current) {
57
56
  setPlotFocused(false);
58
57
  }
59
58
  };
60
59
  // Once one of the expected keys is pressed the focus is delegated to the application controller.
61
- var onPlotKeyDown = function (event) {
60
+ const onPlotKeyDown = (event) => {
62
61
  if (isPlotFocused) {
63
62
  // Delegate the focus to the application if one of the expected keys was pressed.
64
- var codes = [KeyCode.space, KeyCode.enter, KeyCode.up, KeyCode.left, KeyCode.right, KeyCode.down];
63
+ const codes = [KeyCode.space, KeyCode.enter, KeyCode.up, KeyCode.left, KeyCode.right, KeyCode.down];
65
64
  if (codes.indexOf(event.keyCode) !== -1) {
66
65
  applicationRef.current.focus();
67
66
  }
68
67
  }
69
68
  };
70
- var onApplicationFocus = function (event) {
69
+ const onApplicationFocus = (event) => {
71
70
  onFocus && onFocus(event, plotClickedRef.current ? 'mouse' : 'keyboard');
72
71
  // "Release" the click reference to not affect the next call of this handler.
73
72
  plotClickedRef.current = false;
74
73
  setApplicationFocused(true);
75
74
  };
76
- var onApplicationBlur = function (event) {
75
+ const onApplicationBlur = (event) => {
77
76
  onBlur && onBlur(event);
78
77
  setApplicationFocused(false);
79
78
  };
80
- var onApplicationKeyDown = onKeyDown;
81
- var plotFocusable = !isApplicationFocused;
82
- var plotTabIndex = plotFocusable ? 0 : -1;
83
- var plotAria = !isApplicationFocused
79
+ const onApplicationKeyDown = onKeyDown;
80
+ const plotFocusable = !isApplicationFocused;
81
+ const plotTabIndex = plotFocusable ? 0 : -1;
82
+ const plotAria = !isApplicationFocused
84
83
  ? {
85
84
  'aria-label': ariaLabel,
86
85
  'aria-labelledby': ariaLabelledby,
87
86
  'aria-describedby': ariaDescriptionId,
88
- 'aria-roledescription': ariaRoleDescription
87
+ 'aria-roledescription': ariaRoleDescription,
89
88
  }
90
89
  : {};
91
90
  return (React.createElement(React.Fragment, null,
92
- React.createElement("svg", __assign({}, restProps, { focusable: plotFocusable, tabIndex: plotTabIndex, role: "application", "aria-hidden": "false" }, plotAria, { ref: svgRef, width: width, height: height, style: {
91
+ React.createElement("svg", Object.assign({}, restProps, { focusable: plotFocusable, tabIndex: plotTabIndex, role: "application", "aria-hidden": "false" }, plotAria, { ref: svgRef, width: width, height: height, style: {
93
92
  marginTop: offsetTop,
94
93
  marginBottom: offsetBottom,
95
94
  marginLeft: offsetLeft,
96
- marginRight: offsetRight
97
- }, className: clsx(styles.root, (_b = {},
98
- _b[styles.clickable] = isClickable,
99
- _b[styles.precise] = isPrecise,
100
- _b)), onMouseDown: onPlotMouseDown, onFocus: onPlotFocus, onBlur: onPlotBlur, onKeyDown: onPlotKeyDown }),
95
+ marginRight: offsetRight,
96
+ }, className: clsx(styles.root, {
97
+ [styles.clickable]: isClickable,
98
+ [styles.precise]: isPrecise,
99
+ }), onMouseDown: onPlotMouseDown, onFocus: onPlotFocus, onBlur: onPlotBlur, onKeyDown: onPlotKeyDown }),
101
100
  React.createElement(FocusOutline, { elementRef: svgRef, elementKey: isPlotFocused, offset: focusOffset }),
102
101
  React.createElement("g", { transform: transform, role: "group" },
103
102
  React.createElement(ApplicationController, { activeElementKey: activeElementKey || null, activeElementRef: activeElementRef, ref: applicationRef, onFocus: onApplicationFocus, onBlur: onApplicationBlur, onKeyDown: onApplicationKeyDown }),
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/internal/components/chart-plot/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, { forwardRef, useImperativeHandle, useRef, useState } from 'react';\nimport clsx from 'clsx';\n\nimport styles from './styles.css.js';\nimport { useUniqueId } from '../../hooks/use-unique-id';\n\nimport { KeyCode } from '../../keycode';\nimport LiveRegion from '../live-region/index';\nimport ApplicationController, { ApplicationRef } from './application-controller';\nimport FocusOutline from './focus-outline';\nimport focusSvgElement from '../../utils/focus-svg-element';\nimport { Offset } from '../interfaces';\n\nconst DEFAULT_PLOT_FOCUS_OFFSET = 3;\nconst DEFAULT_ELEMENT_FOCUS_OFFSET = 3;\n\nexport interface ChartPlotRef {\n svg: SVGSVGElement;\n focusPlot(): void;\n focusApplication(): void;\n}\n\nexport interface ChartPlotProps {\n width: number;\n height: number;\n transform?: string;\n offsetTop?: number;\n offsetBottom?: number;\n offsetLeft?: number;\n offsetRight?: number;\n focusOffset?: number;\n ariaLabel?: string;\n ariaLabelledby?: string;\n ariaDescription?: string;\n ariaDescribedby?: string;\n ariaRoleDescription?: string;\n activeElementKey?: null | string | number | boolean;\n activeElementRef?: React.RefObject<SVGGElement>;\n activeElementFocusOffset?: Offset;\n ariaLiveRegion?: React.ReactNode;\n isClickable?: boolean;\n isPrecise?: boolean;\n onMouseDown?: (event: React.MouseEvent<SVGSVGElement>) => void;\n onMouseMove?: (event: React.MouseEvent<SVGSVGElement>) => void;\n onMouseOut?: (event: React.MouseEvent<SVGSVGElement>) => void;\n onFocus?: (event: React.FocusEvent<SVGGElement>, trigger: 'mouse' | 'keyboard') => void;\n onBlur?: (event: React.FocusEvent<SVGGElement>) => void;\n onKeyDown?: (event: React.KeyboardEvent<SVGGElement>) => void;\n children: React.ReactNode;\n}\n\n/**\n An extension for the SVG to be used for charts. It includes a controller element to\n handle the focus and keyboard interactions in a way that is supported by screen readers.\n\n The application mimics the aria-activedescendant behavior which is unsupported by Safari. The\n activeElementRef is the pointer to the secondary-focus element and activeElementKey denotes when\n the focus transition was made.\n\n Alternatively, ariaLiveRegion can be used to make announcements.\n*/\nexport default forwardRef(ChartPlot);\n\nfunction ChartPlot(\n {\n width,\n height,\n transform,\n offsetTop,\n offsetBottom,\n offsetLeft,\n offsetRight,\n ariaLabel,\n ariaLabelledby,\n ariaRoleDescription,\n ariaDescription,\n ariaDescribedby,\n activeElementKey,\n activeElementRef,\n ariaLiveRegion,\n isClickable,\n isPrecise,\n children,\n onMouseDown,\n onKeyDown,\n onFocus,\n onBlur,\n focusOffset = DEFAULT_PLOT_FOCUS_OFFSET,\n activeElementFocusOffset = DEFAULT_ELEMENT_FOCUS_OFFSET,\n ...restProps\n }: ChartPlotProps,\n ref: React.Ref<ChartPlotRef>\n) {\n const svgRef = useRef<SVGSVGElement>(null);\n const applicationRef = useRef<ApplicationRef>(null);\n const plotClickedRef = useRef(false);\n const [isPlotFocused, setPlotFocused] = useState(false);\n const [isApplicationFocused, setApplicationFocused] = useState(false);\n\n const internalDescriptionId = useUniqueId('awsui-chart-plot__description');\n const ariaDescriptionId = [ariaDescription && internalDescriptionId, ariaDescribedby].filter(Boolean).join(' ');\n\n useImperativeHandle(ref, () => ({\n svg: svgRef.current!,\n focusPlot: () => focusSvgElement(svgRef.current!),\n focusApplication: () => applicationRef.current!.focus(),\n }));\n\n const onPlotMouseDown = (event: React.MouseEvent<SVGSVGElement, MouseEvent>) => {\n onMouseDown && onMouseDown(event);\n // Record the click was made for the application focus handler.\n plotClickedRef.current = true;\n };\n const onPlotFocus = (event: React.FocusEvent<SVGSVGElement>) => {\n if (event.target === svgRef.current && !plotClickedRef.current) {\n setPlotFocused(true);\n }\n // The click should focus the underling application bypassing the svg.\n else if (plotClickedRef.current) {\n applicationRef.current!.focus();\n }\n };\n const onPlotBlur = (event: React.FocusEvent<SVGSVGElement>) => {\n if (event.target === svgRef.current) {\n setPlotFocused(false);\n }\n };\n // Once one of the expected keys is pressed the focus is delegated to the application controller.\n const onPlotKeyDown = (event: React.KeyboardEvent) => {\n if (isPlotFocused) {\n // Delegate the focus to the application if one of the expected keys was pressed.\n const codes = [KeyCode.space, KeyCode.enter, KeyCode.up, KeyCode.left, KeyCode.right, KeyCode.down];\n if (codes.indexOf(event.keyCode) !== -1) {\n applicationRef.current!.focus();\n }\n }\n };\n\n const onApplicationFocus = (event: React.FocusEvent<SVGGElement>) => {\n onFocus && onFocus(event, plotClickedRef.current ? 'mouse' : 'keyboard');\n // \"Release\" the click reference to not affect the next call of this handler.\n plotClickedRef.current = false;\n setApplicationFocused(true);\n };\n const onApplicationBlur = (event: React.FocusEvent<SVGGElement>) => {\n onBlur && onBlur(event);\n setApplicationFocused(false);\n };\n const onApplicationKeyDown = onKeyDown;\n\n const plotFocusable = !isApplicationFocused;\n const plotTabIndex = plotFocusable ? 0 : -1;\n const plotAria = !isApplicationFocused\n ? {\n 'aria-label': ariaLabel,\n 'aria-labelledby': ariaLabelledby,\n 'aria-describedby': ariaDescriptionId,\n 'aria-roledescription': ariaRoleDescription,\n }\n : {};\n\n return (\n <>\n <svg\n {...restProps}\n focusable={plotFocusable}\n tabIndex={plotTabIndex}\n role=\"application\"\n aria-hidden=\"false\"\n {...plotAria}\n ref={svgRef}\n width={width}\n height={height}\n style={{\n marginTop: offsetTop,\n marginBottom: offsetBottom,\n marginLeft: offsetLeft,\n marginRight: offsetRight,\n }}\n className={clsx(styles.root, {\n [styles.clickable]: isClickable,\n [styles.precise]: isPrecise,\n })}\n onMouseDown={onPlotMouseDown}\n onFocus={onPlotFocus}\n onBlur={onPlotBlur}\n onKeyDown={onPlotKeyDown}\n >\n <FocusOutline elementRef={svgRef} elementKey={isPlotFocused} offset={focusOffset} />\n\n <g transform={transform} role=\"group\">\n <ApplicationController\n activeElementKey={activeElementKey || null}\n activeElementRef={activeElementRef}\n ref={applicationRef}\n onFocus={onApplicationFocus}\n onBlur={onApplicationBlur}\n onKeyDown={onApplicationKeyDown}\n />\n\n {/* Only show description when plot is focusable to avoid repetition in Safari and Firefox */}\n {ariaDescription && plotFocusable && (\n <desc aria-hidden=\"true\" id={internalDescriptionId}>\n {ariaDescription}\n </desc>\n )}\n\n {children}\n\n <FocusOutline\n elementRef={activeElementRef}\n elementKey={isApplicationFocused && activeElementKey}\n offset={activeElementFocusOffset}\n />\n </g>\n </svg>\n\n <LiveRegion>{ariaLiveRegion}</LiveRegion>\n </>\n );\n}\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/internal/components/chart-plot/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, { forwardRef, useImperativeHandle, useRef, useState } from 'react';\nimport clsx from 'clsx';\n\nimport styles from './styles.css.js';\nimport { useUniqueId } from '../../hooks/use-unique-id';\n\nimport { KeyCode } from '../../keycode';\nimport LiveRegion from '../live-region/index';\nimport ApplicationController, { ApplicationRef } from './application-controller';\nimport FocusOutline from './focus-outline';\nimport focusSvgElement from '../../utils/focus-svg-element';\nimport { Offset } from '../interfaces';\n\nconst DEFAULT_PLOT_FOCUS_OFFSET = 3;\nconst DEFAULT_ELEMENT_FOCUS_OFFSET = 3;\n\nexport interface ChartPlotRef {\n svg: SVGSVGElement;\n focusPlot(): void;\n focusApplication(): void;\n}\n\nexport interface ChartPlotProps {\n width: number;\n height: number;\n transform?: string;\n offsetTop?: number;\n offsetBottom?: number;\n offsetLeft?: number;\n offsetRight?: number;\n focusOffset?: number;\n ariaLabel?: string;\n ariaLabelledby?: string;\n ariaDescription?: string;\n ariaDescribedby?: string;\n ariaRoleDescription?: string;\n activeElementKey?: null | string | number | boolean;\n activeElementRef?: React.RefObject<SVGGElement>;\n activeElementFocusOffset?: Offset;\n ariaLiveRegion?: React.ReactNode;\n isClickable?: boolean;\n isPrecise?: boolean;\n onMouseDown?: (event: React.MouseEvent<SVGSVGElement>) => void;\n onMouseMove?: (event: React.MouseEvent<SVGSVGElement>) => void;\n onMouseOut?: (event: React.MouseEvent<SVGSVGElement>) => void;\n onFocus?: (event: React.FocusEvent<SVGGElement>, trigger: 'mouse' | 'keyboard') => void;\n onBlur?: (event: React.FocusEvent<SVGGElement>) => void;\n onKeyDown?: (event: React.KeyboardEvent<SVGGElement>) => void;\n children: React.ReactNode;\n}\n\n/**\n An extension for the SVG to be used for charts. It includes a controller element to\n handle the focus and keyboard interactions in a way that is supported by screen readers.\n\n The application mimics the aria-activedescendant behavior which is unsupported by Safari. The\n activeElementRef is the pointer to the secondary-focus element and activeElementKey denotes when\n the focus transition was made.\n\n Alternatively, ariaLiveRegion can be used to make announcements.\n*/\nexport default forwardRef(ChartPlot);\n\nfunction ChartPlot(\n {\n width,\n height,\n transform,\n offsetTop,\n offsetBottom,\n offsetLeft,\n offsetRight,\n ariaLabel,\n ariaLabelledby,\n ariaRoleDescription,\n ariaDescription,\n ariaDescribedby,\n activeElementKey,\n activeElementRef,\n ariaLiveRegion,\n isClickable,\n isPrecise,\n children,\n onMouseDown,\n onKeyDown,\n onFocus,\n onBlur,\n focusOffset = DEFAULT_PLOT_FOCUS_OFFSET,\n activeElementFocusOffset = DEFAULT_ELEMENT_FOCUS_OFFSET,\n ...restProps\n }: ChartPlotProps,\n ref: React.Ref<ChartPlotRef>\n) {\n const svgRef = useRef<SVGSVGElement>(null);\n const applicationRef = useRef<ApplicationRef>(null);\n const plotClickedRef = useRef(false);\n const [isPlotFocused, setPlotFocused] = useState(false);\n const [isApplicationFocused, setApplicationFocused] = useState(false);\n\n const internalDescriptionId = useUniqueId('awsui-chart-plot__description');\n const ariaDescriptionId = [ariaDescription && internalDescriptionId, ariaDescribedby].filter(Boolean).join(' ');\n\n useImperativeHandle(ref, () => ({\n svg: svgRef.current!,\n focusPlot: () => focusSvgElement(svgRef.current!),\n focusApplication: () => applicationRef.current!.focus(),\n }));\n\n const onPlotMouseDown = (event: React.MouseEvent<SVGSVGElement, MouseEvent>) => {\n onMouseDown && onMouseDown(event);\n // Record the click was made for the application focus handler.\n plotClickedRef.current = true;\n };\n const onPlotFocus = (event: React.FocusEvent<SVGSVGElement>) => {\n if (event.target === svgRef.current && !plotClickedRef.current) {\n setPlotFocused(true);\n }\n // The click should focus the underling application bypassing the svg.\n else if (plotClickedRef.current) {\n applicationRef.current!.focus();\n }\n };\n const onPlotBlur = (event: React.FocusEvent<SVGSVGElement>) => {\n if (event.target === svgRef.current) {\n setPlotFocused(false);\n }\n };\n // Once one of the expected keys is pressed the focus is delegated to the application controller.\n const onPlotKeyDown = (event: React.KeyboardEvent) => {\n if (isPlotFocused) {\n // Delegate the focus to the application if one of the expected keys was pressed.\n const codes = [KeyCode.space, KeyCode.enter, KeyCode.up, KeyCode.left, KeyCode.right, KeyCode.down];\n if (codes.indexOf(event.keyCode) !== -1) {\n applicationRef.current!.focus();\n }\n }\n };\n\n const onApplicationFocus = (event: React.FocusEvent<SVGGElement>) => {\n onFocus && onFocus(event, plotClickedRef.current ? 'mouse' : 'keyboard');\n // \"Release\" the click reference to not affect the next call of this handler.\n plotClickedRef.current = false;\n setApplicationFocused(true);\n };\n const onApplicationBlur = (event: React.FocusEvent<SVGGElement>) => {\n onBlur && onBlur(event);\n setApplicationFocused(false);\n };\n const onApplicationKeyDown = onKeyDown;\n\n const plotFocusable = !isApplicationFocused;\n const plotTabIndex = plotFocusable ? 0 : -1;\n const plotAria = !isApplicationFocused\n ? {\n 'aria-label': ariaLabel,\n 'aria-labelledby': ariaLabelledby,\n 'aria-describedby': ariaDescriptionId,\n 'aria-roledescription': ariaRoleDescription,\n }\n : {};\n\n return (\n <>\n <svg\n {...restProps}\n focusable={plotFocusable}\n tabIndex={plotTabIndex}\n role=\"application\"\n aria-hidden=\"false\"\n {...plotAria}\n ref={svgRef}\n width={width}\n height={height}\n style={{\n marginTop: offsetTop,\n marginBottom: offsetBottom,\n marginLeft: offsetLeft,\n marginRight: offsetRight,\n }}\n className={clsx(styles.root, {\n [styles.clickable]: isClickable,\n [styles.precise]: isPrecise,\n })}\n onMouseDown={onPlotMouseDown}\n onFocus={onPlotFocus}\n onBlur={onPlotBlur}\n onKeyDown={onPlotKeyDown}\n >\n <FocusOutline elementRef={svgRef} elementKey={isPlotFocused} offset={focusOffset} />\n\n <g transform={transform} role=\"group\">\n <ApplicationController\n activeElementKey={activeElementKey || null}\n activeElementRef={activeElementRef}\n ref={applicationRef}\n onFocus={onApplicationFocus}\n onBlur={onApplicationBlur}\n onKeyDown={onApplicationKeyDown}\n />\n\n {/* Only show description when plot is focusable to avoid repetition in Safari and Firefox */}\n {ariaDescription && plotFocusable && (\n <desc aria-hidden=\"true\" id={internalDescriptionId}>\n {ariaDescription}\n </desc>\n )}\n\n {children}\n\n <FocusOutline\n elementRef={activeElementRef}\n elementKey={isApplicationFocused && activeElementKey}\n offset={activeElementFocusOffset}\n />\n </g>\n </svg>\n\n <LiveRegion>{ariaLiveRegion}</LiveRegion>\n </>\n );\n}\n"]}