@cloudscape-design/components-themeable 3.0.1138 → 3.0.1139

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 (790) hide show
  1. package/lib/internal/manifest.json +1 -1
  2. package/lib/internal/scss/internal/generated/custom-css-properties/index.scss +127 -103
  3. package/lib/internal/scss/prompt-input/styles.scss +75 -13
  4. package/lib/internal/template/alert/actions-wrapper/index.js +3 -3
  5. package/lib/internal/template/alert/actions-wrapper/index.js.map +1 -1
  6. package/lib/internal/template/alert/index.js +2 -4
  7. package/lib/internal/template/alert/index.js.map +1 -1
  8. package/lib/internal/template/alert/internal.js +8 -10
  9. package/lib/internal/template/alert/internal.js.map +1 -1
  10. package/lib/internal/template/alert/style.js +12 -5
  11. package/lib/internal/template/alert/style.js.map +1 -1
  12. package/lib/internal/template/alert/styles.css.js +27 -27
  13. package/lib/internal/template/alert/styles.scoped.css +50 -50
  14. package/lib/internal/template/alert/styles.selectors.js +27 -27
  15. package/lib/internal/template/anchor-navigation/anchor-item/index.js +1 -1
  16. package/lib/internal/template/anchor-navigation/anchor-item/index.js.map +1 -1
  17. package/lib/internal/template/anchor-navigation/index.js +2 -4
  18. package/lib/internal/template/anchor-navigation/index.js.map +1 -1
  19. package/lib/internal/template/anchor-navigation/internal.js +2 -4
  20. package/lib/internal/template/anchor-navigation/internal.js.map +1 -1
  21. package/lib/internal/template/annotation-context/annotation/styles.css.js +24 -24
  22. package/lib/internal/template/annotation-context/annotation/styles.scoped.css +32 -32
  23. package/lib/internal/template/annotation-context/annotation/styles.selectors.js +24 -24
  24. package/lib/internal/template/annotation-context/index.js +3 -4
  25. package/lib/internal/template/annotation-context/index.js.map +1 -1
  26. package/lib/internal/template/app-layout/classic.js +20 -17
  27. package/lib/internal/template/app-layout/classic.js.map +1 -1
  28. package/lib/internal/template/app-layout/defaults.js +8 -3
  29. package/lib/internal/template/app-layout/defaults.js.map +1 -1
  30. package/lib/internal/template/app-layout/drawer/resizable-drawer.js +8 -10
  31. package/lib/internal/template/app-layout/drawer/resizable-drawer.js.map +1 -1
  32. package/lib/internal/template/app-layout/index.js +24 -21
  33. package/lib/internal/template/app-layout/index.js.map +1 -1
  34. package/lib/internal/template/app-layout/internal.js +3 -3
  35. package/lib/internal/template/app-layout/internal.js.map +1 -1
  36. package/lib/internal/template/app-layout/notifications/index.js +3 -5
  37. package/lib/internal/template/app-layout/notifications/index.js.map +1 -1
  38. package/lib/internal/template/app-layout/notifications/styles.css.js +3 -3
  39. package/lib/internal/template/app-layout/notifications/styles.scoped.css +7 -7
  40. package/lib/internal/template/app-layout/notifications/styles.selectors.js +3 -3
  41. package/lib/internal/template/app-layout/runtime-drawer/index.js +36 -18
  42. package/lib/internal/template/app-layout/runtime-drawer/index.js.map +1 -1
  43. package/lib/internal/template/app-layout/split-panel/provider.js +2 -4
  44. package/lib/internal/template/app-layout/split-panel/provider.js.map +1 -1
  45. package/lib/internal/template/app-layout/utils/use-app-layout-placement.js +1 -1
  46. package/lib/internal/template/app-layout/utils/use-app-layout-placement.js.map +1 -1
  47. package/lib/internal/template/app-layout/utils/use-drawers.js +9 -3
  48. package/lib/internal/template/app-layout/utils/use-drawers.js.map +1 -1
  49. package/lib/internal/template/app-layout/visual-refresh/context.js +28 -11
  50. package/lib/internal/template/app-layout/visual-refresh/context.js.map +1 -1
  51. package/lib/internal/template/app-layout/visual-refresh/drawers.js +3 -1
  52. package/lib/internal/template/app-layout/visual-refresh/drawers.js.map +1 -1
  53. package/lib/internal/template/app-layout/visual-refresh/index.js +1 -1
  54. package/lib/internal/template/app-layout/visual-refresh/index.js.map +1 -1
  55. package/lib/internal/template/app-layout/visual-refresh/layout.js +9 -1
  56. package/lib/internal/template/app-layout/visual-refresh/layout.js.map +1 -1
  57. package/lib/internal/template/app-layout/visual-refresh/main.js +4 -1
  58. package/lib/internal/template/app-layout/visual-refresh/main.js.map +1 -1
  59. package/lib/internal/template/app-layout/visual-refresh/split-panel.js +1 -1
  60. package/lib/internal/template/app-layout/visual-refresh/split-panel.js.map +1 -1
  61. package/lib/internal/template/app-layout/visual-refresh/styles.css.js +86 -86
  62. package/lib/internal/template/app-layout/visual-refresh/styles.scoped.css +258 -258
  63. package/lib/internal/template/app-layout/visual-refresh/styles.selectors.js +86 -86
  64. package/lib/internal/template/app-layout/visual-refresh/trigger-button.js +6 -3
  65. package/lib/internal/template/app-layout/visual-refresh/trigger-button.js.map +1 -1
  66. package/lib/internal/template/app-layout/visual-refresh-toolbar/compute-layout.js +5 -2
  67. package/lib/internal/template/app-layout/visual-refresh-toolbar/compute-layout.js.map +1 -1
  68. package/lib/internal/template/app-layout/visual-refresh-toolbar/drawer/global-ai-drawer.js +8 -4
  69. package/lib/internal/template/app-layout/visual-refresh-toolbar/drawer/global-ai-drawer.js.map +1 -1
  70. package/lib/internal/template/app-layout/visual-refresh-toolbar/drawer/global-bottom-drawer.js +9 -6
  71. package/lib/internal/template/app-layout/visual-refresh-toolbar/drawer/global-bottom-drawer.js.map +1 -1
  72. package/lib/internal/template/app-layout/visual-refresh-toolbar/drawer/global-drawer.js +7 -3
  73. package/lib/internal/template/app-layout/visual-refresh-toolbar/drawer/global-drawer.js.map +1 -1
  74. package/lib/internal/template/app-layout/visual-refresh-toolbar/drawer/local-drawer.js +8 -4
  75. package/lib/internal/template/app-layout/visual-refresh-toolbar/drawer/local-drawer.js.map +1 -1
  76. package/lib/internal/template/app-layout/visual-refresh-toolbar/drawer/styles.css.js +30 -30
  77. package/lib/internal/template/app-layout/visual-refresh-toolbar/drawer/styles.scoped.css +87 -87
  78. package/lib/internal/template/app-layout/visual-refresh-toolbar/drawer/styles.selectors.js +30 -30
  79. package/lib/internal/template/app-layout/visual-refresh-toolbar/navigation/styles.css.js +4 -4
  80. package/lib/internal/template/app-layout/visual-refresh-toolbar/navigation/styles.scoped.css +7 -7
  81. package/lib/internal/template/app-layout/visual-refresh-toolbar/navigation/styles.selectors.js +4 -4
  82. package/lib/internal/template/app-layout/visual-refresh-toolbar/skeleton/index.js +10 -10
  83. package/lib/internal/template/app-layout/visual-refresh-toolbar/skeleton/index.js.map +1 -1
  84. package/lib/internal/template/app-layout/visual-refresh-toolbar/skeleton/slots.js +5 -2
  85. package/lib/internal/template/app-layout/visual-refresh-toolbar/skeleton/slots.js.map +1 -1
  86. package/lib/internal/template/app-layout/visual-refresh-toolbar/skeleton/styles.css.js +27 -27
  87. package/lib/internal/template/app-layout/visual-refresh-toolbar/skeleton/styles.scoped.css +54 -54
  88. package/lib/internal/template/app-layout/visual-refresh-toolbar/skeleton/styles.selectors.js +27 -27
  89. package/lib/internal/template/app-layout/visual-refresh-toolbar/split-panel/index.js +2 -2
  90. package/lib/internal/template/app-layout/visual-refresh-toolbar/split-panel/index.js.map +1 -1
  91. package/lib/internal/template/app-layout/visual-refresh-toolbar/state/props-merger.js +7 -2
  92. package/lib/internal/template/app-layout/visual-refresh-toolbar/state/props-merger.js.map +1 -1
  93. package/lib/internal/template/app-layout/visual-refresh-toolbar/state/use-ai-drawer.js +1 -1
  94. package/lib/internal/template/app-layout/visual-refresh-toolbar/state/use-ai-drawer.js.map +1 -1
  95. package/lib/internal/template/app-layout/visual-refresh-toolbar/state/use-app-layout.js +19 -12
  96. package/lib/internal/template/app-layout/visual-refresh-toolbar/state/use-app-layout.js.map +1 -1
  97. package/lib/internal/template/app-layout/visual-refresh-toolbar/state/use-bottom-drawers.js +5 -2
  98. package/lib/internal/template/app-layout/visual-refresh-toolbar/state/use-bottom-drawers.js.map +1 -1
  99. package/lib/internal/template/app-layout/visual-refresh-toolbar/state/use-skeleton-slots-attributes.js +10 -6
  100. package/lib/internal/template/app-layout/visual-refresh-toolbar/state/use-skeleton-slots-attributes.js.map +1 -1
  101. package/lib/internal/template/app-layout/visual-refresh-toolbar/toolbar/drawer-triggers.js +4 -1
  102. package/lib/internal/template/app-layout/visual-refresh-toolbar/toolbar/drawer-triggers.js.map +1 -1
  103. package/lib/internal/template/app-layout/visual-refresh-toolbar/toolbar/index.js +1 -1
  104. package/lib/internal/template/app-layout/visual-refresh-toolbar/toolbar/index.js.map +1 -1
  105. package/lib/internal/template/app-layout/visual-refresh-toolbar/toolbar/trigger-button/index.js +8 -8
  106. package/lib/internal/template/app-layout/visual-refresh-toolbar/toolbar/trigger-button/index.js.map +1 -1
  107. package/lib/internal/template/app-layout-toolbar/index.js +24 -21
  108. package/lib/internal/template/app-layout-toolbar/index.js.map +1 -1
  109. package/lib/internal/template/area-chart/chart-container.js +1 -1
  110. package/lib/internal/template/area-chart/chart-container.js.map +1 -1
  111. package/lib/internal/template/area-chart/elements/chart-popover.js +1 -1
  112. package/lib/internal/template/area-chart/elements/chart-popover.js.map +1 -1
  113. package/lib/internal/template/area-chart/elements/threshold-series.js +1 -1
  114. package/lib/internal/template/area-chart/elements/threshold-series.js.map +1 -1
  115. package/lib/internal/template/area-chart/index.js +2 -4
  116. package/lib/internal/template/area-chart/index.js.map +1 -1
  117. package/lib/internal/template/area-chart/internal.js +2 -4
  118. package/lib/internal/template/area-chart/internal.js.map +1 -1
  119. package/lib/internal/template/area-chart/model/interactions-store.js +39 -9
  120. package/lib/internal/template/area-chart/model/interactions-store.js.map +1 -1
  121. package/lib/internal/template/attribute-editor/index.js +4 -6
  122. package/lib/internal/template/attribute-editor/index.js.map +1 -1
  123. package/lib/internal/template/attribute-editor/internal.js +6 -5
  124. package/lib/internal/template/attribute-editor/internal.js.map +1 -1
  125. package/lib/internal/template/attribute-editor/row.js +1 -1
  126. package/lib/internal/template/attribute-editor/row.js.map +1 -1
  127. package/lib/internal/template/attribute-editor/styles.css.js +15 -15
  128. package/lib/internal/template/attribute-editor/styles.scoped.css +28 -28
  129. package/lib/internal/template/attribute-editor/styles.selectors.js +15 -15
  130. package/lib/internal/template/autosuggest/autosuggest-option.js +3 -5
  131. package/lib/internal/template/autosuggest/autosuggest-option.js.map +1 -1
  132. package/lib/internal/template/autosuggest/index.js +2 -4
  133. package/lib/internal/template/autosuggest/index.js.map +1 -1
  134. package/lib/internal/template/autosuggest/internal.js +10 -5
  135. package/lib/internal/template/autosuggest/internal.js.map +1 -1
  136. package/lib/internal/template/autosuggest/options-controller.js +15 -8
  137. package/lib/internal/template/autosuggest/options-controller.js.map +1 -1
  138. package/lib/internal/template/autosuggest/plain-list.js +3 -3
  139. package/lib/internal/template/autosuggest/plain-list.js.map +1 -1
  140. package/lib/internal/template/autosuggest/virtual-list.js +2 -2
  141. package/lib/internal/template/autosuggest/virtual-list.js.map +1 -1
  142. package/lib/internal/template/badge/index.js +2 -4
  143. package/lib/internal/template/badge/index.js.map +1 -1
  144. package/lib/internal/template/bar-chart/index.js +2 -4
  145. package/lib/internal/template/bar-chart/index.js.map +1 -1
  146. package/lib/internal/template/box/index.js +2 -4
  147. package/lib/internal/template/box/index.js.map +1 -1
  148. package/lib/internal/template/box/internal.js +2 -4
  149. package/lib/internal/template/box/internal.js.map +1 -1
  150. package/lib/internal/template/breadcrumb-group/all-items-dropdown.js +3 -3
  151. package/lib/internal/template/breadcrumb-group/all-items-dropdown.js.map +1 -1
  152. package/lib/internal/template/breadcrumb-group/implementation.js +9 -8
  153. package/lib/internal/template/breadcrumb-group/implementation.js.map +1 -1
  154. package/lib/internal/template/breadcrumb-group/index.js +3 -5
  155. package/lib/internal/template/breadcrumb-group/index.js.map +1 -1
  156. package/lib/internal/template/breadcrumb-group/item/funnel.js +1 -1
  157. package/lib/internal/template/breadcrumb-group/item/funnel.js.map +1 -1
  158. package/lib/internal/template/breadcrumb-group/item/item.js +5 -7
  159. package/lib/internal/template/breadcrumb-group/item/item.js.map +1 -1
  160. package/lib/internal/template/breadcrumb-group/item/styles.css.js +7 -7
  161. package/lib/internal/template/breadcrumb-group/item/styles.scoped.css +28 -28
  162. package/lib/internal/template/breadcrumb-group/item/styles.selectors.js +7 -7
  163. package/lib/internal/template/button/icon-helper.js +3 -5
  164. package/lib/internal/template/button/icon-helper.js.map +1 -1
  165. package/lib/internal/template/button/index.js +2 -4
  166. package/lib/internal/template/button/index.js.map +1 -1
  167. package/lib/internal/template/button/internal.js +31 -14
  168. package/lib/internal/template/button/internal.js.map +1 -1
  169. package/lib/internal/template/button/style.js +38 -27
  170. package/lib/internal/template/button/style.js.map +1 -1
  171. package/lib/internal/template/button/styles.css.js +22 -22
  172. package/lib/internal/template/button/styles.scoped.css +256 -256
  173. package/lib/internal/template/button/styles.selectors.js +22 -22
  174. package/lib/internal/template/button-dropdown/category-elements/expandable-category-element.js +11 -11
  175. package/lib/internal/template/button-dropdown/category-elements/expandable-category-element.js.map +1 -1
  176. package/lib/internal/template/button-dropdown/category-elements/mobile-expandable-category-element.js +12 -12
  177. package/lib/internal/template/button-dropdown/category-elements/mobile-expandable-category-element.js.map +1 -1
  178. package/lib/internal/template/button-dropdown/index.js +4 -6
  179. package/lib/internal/template/button-dropdown/index.js.map +1 -1
  180. package/lib/internal/template/button-dropdown/internal.js +36 -25
  181. package/lib/internal/template/button-dropdown/internal.js.map +1 -1
  182. package/lib/internal/template/button-dropdown/item-element/index.js +25 -17
  183. package/lib/internal/template/button-dropdown/item-element/index.js.map +1 -1
  184. package/lib/internal/template/button-dropdown/item-element/styles.css.js +16 -16
  185. package/lib/internal/template/button-dropdown/item-element/styles.scoped.css +27 -27
  186. package/lib/internal/template/button-dropdown/item-element/styles.selectors.js +16 -16
  187. package/lib/internal/template/button-dropdown/tooltip.js +1 -1
  188. package/lib/internal/template/button-dropdown/tooltip.js.map +1 -1
  189. package/lib/internal/template/button-dropdown/utils/use-button-dropdown.js +1 -2
  190. package/lib/internal/template/button-dropdown/utils/use-button-dropdown.js.map +1 -1
  191. package/lib/internal/template/button-group/index.js +2 -4
  192. package/lib/internal/template/button-group/index.js.map +1 -1
  193. package/lib/internal/template/button-group/internal.js +2 -4
  194. package/lib/internal/template/button-group/internal.js.map +1 -1
  195. package/lib/internal/template/button-group/item-element.js +4 -4
  196. package/lib/internal/template/button-group/item-element.js.map +1 -1
  197. package/lib/internal/template/button-group/menu-dropdown-item.js +1 -1
  198. package/lib/internal/template/button-group/menu-dropdown-item.js.map +1 -1
  199. package/lib/internal/template/button-group/style.js +34 -20
  200. package/lib/internal/template/button-group/style.js.map +1 -1
  201. package/lib/internal/template/calendar/grid/index.js +2 -3
  202. package/lib/internal/template/calendar/grid/index.js.map +1 -1
  203. package/lib/internal/template/calendar/index.js +2 -4
  204. package/lib/internal/template/calendar/index.js.map +1 -1
  205. package/lib/internal/template/calendar/internal.js +2 -4
  206. package/lib/internal/template/calendar/internal.js.map +1 -1
  207. package/lib/internal/template/cards/index.js +17 -19
  208. package/lib/internal/template/cards/index.js.map +1 -1
  209. package/lib/internal/template/checkbox/index.js +2 -4
  210. package/lib/internal/template/checkbox/index.js.map +1 -1
  211. package/lib/internal/template/checkbox/internal.js +4 -6
  212. package/lib/internal/template/checkbox/internal.js.map +1 -1
  213. package/lib/internal/template/checkbox/styles.css.js +3 -3
  214. package/lib/internal/template/checkbox/styles.scoped.css +11 -11
  215. package/lib/internal/template/checkbox/styles.selectors.js +3 -3
  216. package/lib/internal/template/code-editor/index.js +2 -3
  217. package/lib/internal/template/code-editor/index.js.map +1 -1
  218. package/lib/internal/template/code-editor/use-editor.js +4 -1
  219. package/lib/internal/template/code-editor/use-editor.js.map +1 -1
  220. package/lib/internal/template/code-editor/util.js +4 -1
  221. package/lib/internal/template/code-editor/util.js.map +1 -1
  222. package/lib/internal/template/collection-preferences/content-display/index.js +1 -1
  223. package/lib/internal/template/collection-preferences/content-display/index.js.map +1 -1
  224. package/lib/internal/template/collection-preferences/content-display/utils.js +1 -1
  225. package/lib/internal/template/collection-preferences/content-display/utils.js.map +1 -1
  226. package/lib/internal/template/collection-preferences/index.js +20 -13
  227. package/lib/internal/template/collection-preferences/index.js.map +1 -1
  228. package/lib/internal/template/collection-preferences/utils.js +9 -9
  229. package/lib/internal/template/collection-preferences/utils.js.map +1 -1
  230. package/lib/internal/template/collection-preferences/visible-content.js +8 -8
  231. package/lib/internal/template/collection-preferences/visible-content.js.map +1 -1
  232. package/lib/internal/template/column-layout/index.js +2 -4
  233. package/lib/internal/template/column-layout/index.js.map +1 -1
  234. package/lib/internal/template/column-layout/internal.js +2 -4
  235. package/lib/internal/template/column-layout/internal.js.map +1 -1
  236. package/lib/internal/template/container/index.js +2 -4
  237. package/lib/internal/template/container/index.js.map +1 -1
  238. package/lib/internal/template/container/internal.js +11 -9
  239. package/lib/internal/template/container/internal.js.map +1 -1
  240. package/lib/internal/template/container/style.js +11 -2
  241. package/lib/internal/template/container/style.js.map +1 -1
  242. package/lib/internal/template/content-layout/index.js +1 -1
  243. package/lib/internal/template/content-layout/index.js.map +1 -1
  244. package/lib/internal/template/content-layout/internal.js +3 -5
  245. package/lib/internal/template/content-layout/internal.js.map +1 -1
  246. package/lib/internal/template/content-layout/styles.css.js +14 -14
  247. package/lib/internal/template/content-layout/styles.scoped.css +27 -27
  248. package/lib/internal/template/content-layout/styles.selectors.js +14 -14
  249. package/lib/internal/template/copy-to-clipboard/index.js +2 -4
  250. package/lib/internal/template/copy-to-clipboard/index.js.map +1 -1
  251. package/lib/internal/template/copy-to-clipboard/internal.js +2 -4
  252. package/lib/internal/template/copy-to-clipboard/internal.js.map +1 -1
  253. package/lib/internal/template/date-input/index.js +1 -1
  254. package/lib/internal/template/date-input/index.js.map +1 -1
  255. package/lib/internal/template/date-input/internal.js +6 -8
  256. package/lib/internal/template/date-input/internal.js.map +1 -1
  257. package/lib/internal/template/date-picker/index.js +9 -6
  258. package/lib/internal/template/date-picker/index.js.map +1 -1
  259. package/lib/internal/template/date-range-picker/calendar/grids/grid-cell.js +3 -4
  260. package/lib/internal/template/date-range-picker/calendar/grids/grid-cell.js.map +1 -1
  261. package/lib/internal/template/date-range-picker/calendar/grids/grid.js +8 -8
  262. package/lib/internal/template/date-range-picker/calendar/grids/grid.js.map +1 -1
  263. package/lib/internal/template/date-range-picker/calendar/grids/index.js +2 -2
  264. package/lib/internal/template/date-range-picker/calendar/grids/index.js.map +1 -1
  265. package/lib/internal/template/date-range-picker/calendar/index.js +5 -2
  266. package/lib/internal/template/date-range-picker/calendar/index.js.map +1 -1
  267. package/lib/internal/template/date-range-picker/index.js +8 -6
  268. package/lib/internal/template/date-range-picker/index.js.map +1 -1
  269. package/lib/internal/template/date-range-picker/utils.js +8 -2
  270. package/lib/internal/template/date-range-picker/utils.js.map +1 -1
  271. package/lib/internal/template/drawer/implementation.js +7 -6
  272. package/lib/internal/template/drawer/implementation.js.map +1 -1
  273. package/lib/internal/template/drawer/index.js +1 -1
  274. package/lib/internal/template/drawer/index.js.map +1 -1
  275. package/lib/internal/template/expandable-section/expandable-section-container.js +3 -5
  276. package/lib/internal/template/expandable-section/expandable-section-container.js.map +1 -1
  277. package/lib/internal/template/expandable-section/expandable-section-header.js +8 -8
  278. package/lib/internal/template/expandable-section/expandable-section-header.js.map +1 -1
  279. package/lib/internal/template/expandable-section/index.js +2 -4
  280. package/lib/internal/template/expandable-section/index.js.map +1 -1
  281. package/lib/internal/template/expandable-section/internal.js +2 -4
  282. package/lib/internal/template/expandable-section/internal.js.map +1 -1
  283. package/lib/internal/template/file-dropzone/index.js +1 -1
  284. package/lib/internal/template/file-dropzone/index.js.map +1 -1
  285. package/lib/internal/template/file-dropzone/internal.js +3 -5
  286. package/lib/internal/template/file-dropzone/internal.js.map +1 -1
  287. package/lib/internal/template/file-input/index.js +2 -4
  288. package/lib/internal/template/file-input/index.js.map +1 -1
  289. package/lib/internal/template/file-input/internal.js +11 -8
  290. package/lib/internal/template/file-input/internal.js.map +1 -1
  291. package/lib/internal/template/file-token-group/default-formatters.js +3 -3
  292. package/lib/internal/template/file-token-group/default-formatters.js.map +1 -1
  293. package/lib/internal/template/file-token-group/index.js +2 -4
  294. package/lib/internal/template/file-token-group/index.js.map +1 -1
  295. package/lib/internal/template/file-token-group/internal.js +2 -4
  296. package/lib/internal/template/file-token-group/internal.js.map +1 -1
  297. package/lib/internal/template/file-upload/index.js +2 -4
  298. package/lib/internal/template/file-upload/index.js.map +1 -1
  299. package/lib/internal/template/file-upload/internal.js +5 -7
  300. package/lib/internal/template/file-upload/internal.js.map +1 -1
  301. package/lib/internal/template/flashbar/collapsible-flashbar.js +33 -23
  302. package/lib/internal/template/flashbar/collapsible-flashbar.js.map +1 -1
  303. package/lib/internal/template/flashbar/common.js +1 -3
  304. package/lib/internal/template/flashbar/common.js.map +1 -1
  305. package/lib/internal/template/flashbar/flash.js +4 -6
  306. package/lib/internal/template/flashbar/flash.js.map +1 -1
  307. package/lib/internal/template/flashbar/implementation.js +2 -2
  308. package/lib/internal/template/flashbar/implementation.js.map +1 -1
  309. package/lib/internal/template/flashbar/index.js +1 -1
  310. package/lib/internal/template/flashbar/index.js.map +1 -1
  311. package/lib/internal/template/flashbar/non-collapsible-flashbar.js +10 -9
  312. package/lib/internal/template/flashbar/non-collapsible-flashbar.js.map +1 -1
  313. package/lib/internal/template/flashbar/style.js +50 -32
  314. package/lib/internal/template/flashbar/style.js.map +1 -1
  315. package/lib/internal/template/flashbar/styles.css.js +50 -50
  316. package/lib/internal/template/flashbar/styles.scoped.css +187 -187
  317. package/lib/internal/template/flashbar/styles.selectors.js +50 -50
  318. package/lib/internal/template/flashbar/utils.js +2 -2
  319. package/lib/internal/template/flashbar/utils.js.map +1 -1
  320. package/lib/internal/template/form/index.js +4 -7
  321. package/lib/internal/template/form/index.js.map +1 -1
  322. package/lib/internal/template/form/internal.js +2 -4
  323. package/lib/internal/template/form/internal.js.map +1 -1
  324. package/lib/internal/template/form-field/index.js +7 -9
  325. package/lib/internal/template/form-field/index.js.map +1 -1
  326. package/lib/internal/template/form-field/internal.js +6 -5
  327. package/lib/internal/template/form-field/internal.js.map +1 -1
  328. package/lib/internal/template/grid/index.js +2 -4
  329. package/lib/internal/template/grid/index.js.map +1 -1
  330. package/lib/internal/template/grid/internal.js +2 -4
  331. package/lib/internal/template/grid/internal.js.map +1 -1
  332. package/lib/internal/template/header/index.js +2 -4
  333. package/lib/internal/template/header/index.js.map +1 -1
  334. package/lib/internal/template/header/internal.js +4 -6
  335. package/lib/internal/template/header/internal.js.map +1 -1
  336. package/lib/internal/template/help-panel/implementation.js +7 -6
  337. package/lib/internal/template/help-panel/implementation.js.map +1 -1
  338. package/lib/internal/template/help-panel/index.js +1 -1
  339. package/lib/internal/template/help-panel/index.js.map +1 -1
  340. package/lib/internal/template/help-panel/styles.css.js +6 -6
  341. package/lib/internal/template/help-panel/styles.scoped.css +73 -73
  342. package/lib/internal/template/help-panel/styles.selectors.js +6 -6
  343. package/lib/internal/template/hotspot/index.js +3 -5
  344. package/lib/internal/template/hotspot/index.js.map +1 -1
  345. package/lib/internal/template/icon/index.js +2 -4
  346. package/lib/internal/template/icon/index.js.map +1 -1
  347. package/lib/internal/template/icon/internal.js +4 -6
  348. package/lib/internal/template/icon/internal.js.map +1 -1
  349. package/lib/internal/template/icon-provider/index.js +1 -1
  350. package/lib/internal/template/icon-provider/index.js.map +1 -1
  351. package/lib/internal/template/icon-provider/internal.js +2 -2
  352. package/lib/internal/template/icon-provider/internal.js.map +1 -1
  353. package/lib/internal/template/input/index.js +5 -5
  354. package/lib/internal/template/input/index.js.map +1 -1
  355. package/lib/internal/template/input/internal.js +10 -12
  356. package/lib/internal/template/input/internal.js.map +1 -1
  357. package/lib/internal/template/input/styles.css.js +13 -13
  358. package/lib/internal/template/input/styles.js +42 -30
  359. package/lib/internal/template/input/styles.js.map +1 -1
  360. package/lib/internal/template/input/styles.scoped.css +65 -65
  361. package/lib/internal/template/input/styles.selectors.js +13 -13
  362. package/lib/internal/template/internal/analytics/components/analytics-funnel.js +9 -12
  363. package/lib/internal/template/internal/analytics/components/analytics-funnel.js.map +1 -1
  364. package/lib/internal/template/internal/analytics/hooks/use-funnel.js +5 -6
  365. package/lib/internal/template/internal/analytics/hooks/use-funnel.js.map +1 -1
  366. package/lib/internal/template/internal/animate.js +1 -1
  367. package/lib/internal/template/internal/animate.js.map +1 -1
  368. package/lib/internal/template/internal/base-component/index.js +1 -1
  369. package/lib/internal/template/internal/base-component/index.js.map +1 -1
  370. package/lib/internal/template/internal/base-component/styles.scoped.css +1 -1
  371. package/lib/internal/template/internal/components/abstract-switch/index.js +21 -20
  372. package/lib/internal/template/internal/components/abstract-switch/index.js.map +1 -1
  373. package/lib/internal/template/internal/components/autosuggest-input/index.js +3 -5
  374. package/lib/internal/template/internal/components/autosuggest-input/index.js.map +1 -1
  375. package/lib/internal/template/internal/components/button-trigger/index.js +25 -6
  376. package/lib/internal/template/internal/components/button-trigger/index.js.map +1 -1
  377. package/lib/internal/template/internal/components/cartesian-chart/inline-start-labels.js +1 -1
  378. package/lib/internal/template/internal/components/cartesian-chart/inline-start-labels.js.map +1 -1
  379. package/lib/internal/template/internal/components/chart-filter/index.js +2 -4
  380. package/lib/internal/template/internal/components/chart-filter/index.js.map +1 -1
  381. package/lib/internal/template/internal/components/chart-plot/index.js +2 -2
  382. package/lib/internal/template/internal/components/chart-plot/index.js.map +1 -1
  383. package/lib/internal/template/internal/components/chart-popover/index.js +3 -5
  384. package/lib/internal/template/internal/components/chart-popover/index.js.map +1 -1
  385. package/lib/internal/template/internal/components/chart-series-details/index.js +2 -4
  386. package/lib/internal/template/internal/components/chart-series-details/index.js.map +1 -1
  387. package/lib/internal/template/internal/components/chart-wrapper/index.js +3 -5
  388. package/lib/internal/template/internal/components/chart-wrapper/index.js.map +1 -1
  389. package/lib/internal/template/internal/components/checkbox-icon/index.js +5 -7
  390. package/lib/internal/template/internal/components/checkbox-icon/index.js.map +1 -1
  391. package/lib/internal/template/internal/components/drag-handle/button.js +5 -5
  392. package/lib/internal/template/internal/components/drag-handle/button.js.map +1 -1
  393. package/lib/internal/template/internal/components/drag-handle/hooks/use-drag-handle-interaction-state.js +17 -4
  394. package/lib/internal/template/internal/components/drag-handle/hooks/use-drag-handle-interaction-state.js.map +1 -1
  395. package/lib/internal/template/internal/components/drag-handle/index.js +1 -3
  396. package/lib/internal/template/internal/components/drag-handle/index.js.map +1 -1
  397. package/lib/internal/template/internal/components/drag-handle-wrapper/styles.css.js +20 -20
  398. package/lib/internal/template/internal/components/drag-handle-wrapper/styles.scoped.css +48 -48
  399. package/lib/internal/template/internal/components/drag-handle-wrapper/styles.selectors.js +20 -20
  400. package/lib/internal/template/internal/components/dropdown/styles.css.js +20 -20
  401. package/lib/internal/template/internal/components/dropdown/styles.scoped.css +38 -38
  402. package/lib/internal/template/internal/components/dropdown/styles.selectors.js +20 -20
  403. package/lib/internal/template/internal/components/masked-input/index.js +12 -8
  404. package/lib/internal/template/internal/components/masked-input/index.js.map +1 -1
  405. package/lib/internal/template/internal/components/masked-input/utils/mask-format.js +6 -1
  406. package/lib/internal/template/internal/components/masked-input/utils/mask-format.js.map +1 -1
  407. package/lib/internal/template/internal/components/menu-dropdown/index.js +2 -4
  408. package/lib/internal/template/internal/components/menu-dropdown/index.js.map +1 -1
  409. package/lib/internal/template/internal/components/option/index.js +6 -8
  410. package/lib/internal/template/internal/components/option/index.js.map +1 -1
  411. package/lib/internal/template/internal/components/option/option-parts.js +1 -1
  412. package/lib/internal/template/internal/components/option/option-parts.js.map +1 -1
  413. package/lib/internal/template/internal/components/option/utils/flatten-options.js +1 -2
  414. package/lib/internal/template/internal/components/option/utils/flatten-options.js.map +1 -1
  415. package/lib/internal/template/internal/components/options-list/index.js +2 -4
  416. package/lib/internal/template/internal/components/options-list/index.js.map +1 -1
  417. package/lib/internal/template/internal/components/screenreader-only/index.js +1 -1
  418. package/lib/internal/template/internal/components/screenreader-only/index.js.map +1 -1
  419. package/lib/internal/template/internal/components/selectable-item/analytics-metadata/utils.js +1 -3
  420. package/lib/internal/template/internal/components/selectable-item/analytics-metadata/utils.js.map +1 -1
  421. package/lib/internal/template/internal/components/selectable-item/index.js +5 -7
  422. package/lib/internal/template/internal/components/selectable-item/index.js.map +1 -1
  423. package/lib/internal/template/internal/components/sortable-area/index.js +19 -6
  424. package/lib/internal/template/internal/components/sortable-area/index.js.map +1 -1
  425. package/lib/internal/template/internal/components/token-list/styles.css.js +10 -10
  426. package/lib/internal/template/internal/components/token-list/styles.scoped.css +25 -25
  427. package/lib/internal/template/internal/components/token-list/styles.selectors.js +10 -10
  428. package/lib/internal/template/internal/components/token-list/token-limit-toggle.js +1 -1
  429. package/lib/internal/template/internal/components/token-list/token-limit-toggle.js.map +1 -1
  430. package/lib/internal/template/internal/components/tooltip/index.js +1 -1
  431. package/lib/internal/template/internal/components/tooltip/index.js.map +1 -1
  432. package/lib/internal/template/internal/components/transition/index.js +3 -5
  433. package/lib/internal/template/internal/components/transition/index.js.map +1 -1
  434. package/lib/internal/template/internal/environment.js +2 -2
  435. package/lib/internal/template/internal/environment.json +2 -2
  436. package/lib/internal/template/internal/generated/custom-css-properties/index.d.ts +24 -0
  437. package/lib/internal/template/internal/generated/custom-css-properties/index.d.ts.map +1 -1
  438. package/lib/internal/template/internal/generated/custom-css-properties/index.js +126 -102
  439. package/lib/internal/template/internal/generated/custom-css-properties/index.js.map +1 -1
  440. package/lib/internal/template/internal/hooks/use-intersection-observer/index.js +1 -1
  441. package/lib/internal/template/internal/hooks/use-intersection-observer/index.js.map +1 -1
  442. package/lib/internal/template/internal/hooks/use-performance-marks/index.js +12 -2
  443. package/lib/internal/template/internal/hooks/use-performance-marks/index.js.map +1 -1
  444. package/lib/internal/template/internal/hooks/use-virtual/index.js +5 -2
  445. package/lib/internal/template/internal/hooks/use-virtual/index.js.map +1 -1
  446. package/lib/internal/template/internal/plugins/controllers/drawers.js +4 -6
  447. package/lib/internal/template/internal/plugins/controllers/drawers.js.map +1 -1
  448. package/lib/internal/template/internal/plugins/helpers/use-global-breadcrumbs.js +4 -6
  449. package/lib/internal/template/internal/plugins/helpers/use-global-breadcrumbs.js.map +1 -1
  450. package/lib/internal/template/internal/plugins/widget/index.js +1 -1
  451. package/lib/internal/template/internal/plugins/widget/index.js.map +1 -1
  452. package/lib/internal/template/internal/utils/with-native-attributes.js +4 -6
  453. package/lib/internal/template/internal/utils/with-native-attributes.js.map +1 -1
  454. package/lib/internal/template/internal/widgets/index.js +2 -2
  455. package/lib/internal/template/internal/widgets/index.js.map +1 -1
  456. package/lib/internal/template/internal/widgets/loader-mock.js +2 -2
  457. package/lib/internal/template/internal/widgets/loader-mock.js.map +1 -1
  458. package/lib/internal/template/key-value-pairs/index.js +2 -4
  459. package/lib/internal/template/key-value-pairs/index.js.map +1 -1
  460. package/lib/internal/template/key-value-pairs/internal.js +4 -6
  461. package/lib/internal/template/key-value-pairs/internal.js.map +1 -1
  462. package/lib/internal/template/line-chart/index.js +2 -4
  463. package/lib/internal/template/line-chart/index.js.map +1 -1
  464. package/lib/internal/template/link/index.js +2 -4
  465. package/lib/internal/template/link/index.js.map +1 -1
  466. package/lib/internal/template/link/internal.js +13 -6
  467. package/lib/internal/template/link/internal.js.map +1 -1
  468. package/lib/internal/template/link/style.js +12 -9
  469. package/lib/internal/template/link/style.js.map +1 -1
  470. package/lib/internal/template/link/styles.css.js +20 -20
  471. package/lib/internal/template/link/styles.scoped.css +103 -103
  472. package/lib/internal/template/link/styles.selectors.js +20 -20
  473. package/lib/internal/template/list/index.js +1 -1
  474. package/lib/internal/template/list/index.js.map +1 -1
  475. package/lib/internal/template/list/internal.js +6 -8
  476. package/lib/internal/template/list/internal.js.map +1 -1
  477. package/lib/internal/template/live-region/index.js +2 -4
  478. package/lib/internal/template/live-region/index.js.map +1 -1
  479. package/lib/internal/template/live-region/internal.js +2 -4
  480. package/lib/internal/template/live-region/internal.js.map +1 -1
  481. package/lib/internal/template/mixed-line-bar-chart/bar-series.js +3 -3
  482. package/lib/internal/template/mixed-line-bar-chart/bar-series.js.map +1 -1
  483. package/lib/internal/template/mixed-line-bar-chart/chart-container.js +7 -9
  484. package/lib/internal/template/mixed-line-bar-chart/chart-container.js.map +1 -1
  485. package/lib/internal/template/mixed-line-bar-chart/chart-popover.js +4 -1
  486. package/lib/internal/template/mixed-line-bar-chart/chart-popover.js.map +1 -1
  487. package/lib/internal/template/mixed-line-bar-chart/hooks/use-navigation.js +1 -1
  488. package/lib/internal/template/mixed-line-bar-chart/hooks/use-navigation.js.map +1 -1
  489. package/lib/internal/template/mixed-line-bar-chart/index.js +2 -4
  490. package/lib/internal/template/mixed-line-bar-chart/index.js.map +1 -1
  491. package/lib/internal/template/mixed-line-bar-chart/internal.js +2 -4
  492. package/lib/internal/template/mixed-line-bar-chart/internal.js.map +1 -1
  493. package/lib/internal/template/mixed-line-bar-chart/line-series.js +3 -3
  494. package/lib/internal/template/mixed-line-bar-chart/line-series.js.map +1 -1
  495. package/lib/internal/template/modal/index.js +5 -8
  496. package/lib/internal/template/modal/index.js.map +1 -1
  497. package/lib/internal/template/modal/internal.js +11 -14
  498. package/lib/internal/template/modal/internal.js.map +1 -1
  499. package/lib/internal/template/multiselect/embedded.js +15 -6
  500. package/lib/internal/template/multiselect/embedded.js.map +1 -1
  501. package/lib/internal/template/multiselect/index.js +2 -4
  502. package/lib/internal/template/multiselect/index.js.map +1 -1
  503. package/lib/internal/template/multiselect/internal.js +13 -12
  504. package/lib/internal/template/multiselect/internal.js.map +1 -1
  505. package/lib/internal/template/multiselect/use-multiselect.js +9 -5
  506. package/lib/internal/template/multiselect/use-multiselect.js.map +1 -1
  507. package/lib/internal/template/navigable-group/index.js +2 -4
  508. package/lib/internal/template/navigable-group/index.js.map +1 -1
  509. package/lib/internal/template/navigable-group/internal.js +2 -4
  510. package/lib/internal/template/navigable-group/internal.js.map +1 -1
  511. package/lib/internal/template/pagination/index.js +10 -10
  512. package/lib/internal/template/pagination/index.js.map +1 -1
  513. package/lib/internal/template/pagination/internal.js +36 -40
  514. package/lib/internal/template/pagination/internal.js.map +1 -1
  515. package/lib/internal/template/pie-chart/index.js +4 -6
  516. package/lib/internal/template/pie-chart/index.js.map +1 -1
  517. package/lib/internal/template/pie-chart/labels.js +2 -2
  518. package/lib/internal/template/pie-chart/labels.js.map +1 -1
  519. package/lib/internal/template/pie-chart/segments.js +1 -1
  520. package/lib/internal/template/pie-chart/segments.js.map +1 -1
  521. package/lib/internal/template/pie-chart/utils.js +17 -5
  522. package/lib/internal/template/pie-chart/utils.js.map +1 -1
  523. package/lib/internal/template/popover/body.js +3 -3
  524. package/lib/internal/template/popover/body.js.map +1 -1
  525. package/lib/internal/template/popover/container.js +1 -1
  526. package/lib/internal/template/popover/container.js.map +1 -1
  527. package/lib/internal/template/popover/index.js +2 -4
  528. package/lib/internal/template/popover/index.js.map +1 -1
  529. package/lib/internal/template/popover/internal.js +4 -6
  530. package/lib/internal/template/popover/internal.js.map +1 -1
  531. package/lib/internal/template/progress-bar/index.js +2 -4
  532. package/lib/internal/template/progress-bar/index.js.map +1 -1
  533. package/lib/internal/template/progress-bar/internal.js +4 -1
  534. package/lib/internal/template/progress-bar/internal.js.map +1 -1
  535. package/lib/internal/template/progress-bar/styles.css.js +19 -19
  536. package/lib/internal/template/progress-bar/styles.scoped.css +56 -56
  537. package/lib/internal/template/progress-bar/styles.selectors.js +19 -19
  538. package/lib/internal/template/prompt-input/index.js +2 -4
  539. package/lib/internal/template/prompt-input/index.js.map +1 -1
  540. package/lib/internal/template/prompt-input/interfaces.d.ts +48 -0
  541. package/lib/internal/template/prompt-input/interfaces.d.ts.map +1 -1
  542. package/lib/internal/template/prompt-input/interfaces.js.map +1 -1
  543. package/lib/internal/template/prompt-input/internal.d.ts.map +1 -1
  544. package/lib/internal/template/prompt-input/internal.js +5 -6
  545. package/lib/internal/template/prompt-input/internal.js.map +1 -1
  546. package/lib/internal/template/prompt-input/styles.css.js +17 -17
  547. package/lib/internal/template/prompt-input/styles.d.ts +5 -0
  548. package/lib/internal/template/prompt-input/styles.d.ts.map +1 -0
  549. package/lib/internal/template/prompt-input/styles.js +44 -0
  550. package/lib/internal/template/prompt-input/styles.js.map +1 -0
  551. package/lib/internal/template/prompt-input/styles.scoped.css +73 -61
  552. package/lib/internal/template/prompt-input/styles.selectors.js +17 -17
  553. package/lib/internal/template/property-filter/controller.js +6 -6
  554. package/lib/internal/template/property-filter/controller.js.map +1 -1
  555. package/lib/internal/template/property-filter/filter-options.js +1 -1
  556. package/lib/internal/template/property-filter/filter-options.js.map +1 -1
  557. package/lib/internal/template/property-filter/filtering-token/index.js +11 -14
  558. package/lib/internal/template/property-filter/filtering-token/index.js.map +1 -1
  559. package/lib/internal/template/property-filter/i18n-utils.js +48 -11
  560. package/lib/internal/template/property-filter/i18n-utils.js.map +1 -1
  561. package/lib/internal/template/property-filter/index.js +4 -6
  562. package/lib/internal/template/property-filter/index.js.map +1 -1
  563. package/lib/internal/template/property-filter/internal.js +15 -13
  564. package/lib/internal/template/property-filter/internal.js.map +1 -1
  565. package/lib/internal/template/property-filter/property-editor.js +1 -1
  566. package/lib/internal/template/property-filter/property-editor.js.map +1 -1
  567. package/lib/internal/template/property-filter/property-filter-autosuggest.js +8 -4
  568. package/lib/internal/template/property-filter/property-filter-autosuggest.js.map +1 -1
  569. package/lib/internal/template/property-filter/token-editor-inputs.js +10 -9
  570. package/lib/internal/template/property-filter/token-editor-inputs.js.map +1 -1
  571. package/lib/internal/template/property-filter/token-editor.js +10 -10
  572. package/lib/internal/template/property-filter/token-editor.js.map +1 -1
  573. package/lib/internal/template/property-filter/token.js +8 -8
  574. package/lib/internal/template/property-filter/token.js.map +1 -1
  575. package/lib/internal/template/property-filter/use-load-items.js +6 -1
  576. package/lib/internal/template/property-filter/use-load-items.js.map +1 -1
  577. package/lib/internal/template/radio-group/index.js +9 -9
  578. package/lib/internal/template/radio-group/index.js.map +1 -1
  579. package/lib/internal/template/radio-group/internal.js +10 -12
  580. package/lib/internal/template/radio-group/internal.js.map +1 -1
  581. package/lib/internal/template/radio-group/radio-button.js +4 -6
  582. package/lib/internal/template/radio-group/radio-button.js.map +1 -1
  583. package/lib/internal/template/radio-group/styles.css.js +10 -10
  584. package/lib/internal/template/radio-group/styles.scoped.css +22 -22
  585. package/lib/internal/template/radio-group/styles.selectors.js +10 -10
  586. package/lib/internal/template/s3-resource-selector/index.js +3 -5
  587. package/lib/internal/template/s3-resource-selector/index.js.map +1 -1
  588. package/lib/internal/template/s3-resource-selector/s3-in-context/index.js +1 -1
  589. package/lib/internal/template/s3-resource-selector/s3-in-context/index.js.map +1 -1
  590. package/lib/internal/template/s3-resource-selector/s3-in-context/search-input.js +1 -1
  591. package/lib/internal/template/s3-resource-selector/s3-in-context/search-input.js.map +1 -1
  592. package/lib/internal/template/s3-resource-selector/s3-modal/basic-table.js +4 -7
  593. package/lib/internal/template/s3-resource-selector/s3-modal/basic-table.js.map +1 -1
  594. package/lib/internal/template/s3-resource-selector/s3-modal/buckets-table.js +13 -1
  595. package/lib/internal/template/s3-resource-selector/s3-modal/buckets-table.js.map +1 -1
  596. package/lib/internal/template/s3-resource-selector/s3-modal/index.js +4 -1
  597. package/lib/internal/template/s3-resource-selector/s3-modal/index.js.map +1 -1
  598. package/lib/internal/template/s3-resource-selector/s3-modal/objects-table.js +14 -2
  599. package/lib/internal/template/s3-resource-selector/s3-modal/objects-table.js.map +1 -1
  600. package/lib/internal/template/s3-resource-selector/s3-modal/versions-table.js +13 -1
  601. package/lib/internal/template/s3-resource-selector/s3-modal/versions-table.js.map +1 -1
  602. package/lib/internal/template/segmented-control/index.js +1 -1
  603. package/lib/internal/template/segmented-control/index.js.map +1 -1
  604. package/lib/internal/template/segmented-control/internal.js +6 -8
  605. package/lib/internal/template/segmented-control/internal.js.map +1 -1
  606. package/lib/internal/template/segmented-control/segment.js +1 -1
  607. package/lib/internal/template/segmented-control/segment.js.map +1 -1
  608. package/lib/internal/template/select/index.js +2 -4
  609. package/lib/internal/template/select/index.js.map +1 -1
  610. package/lib/internal/template/select/internal.js +13 -10
  611. package/lib/internal/template/select/internal.js.map +1 -1
  612. package/lib/internal/template/select/parts/filter.js +9 -4
  613. package/lib/internal/template/select/parts/filter.js.map +1 -1
  614. package/lib/internal/template/select/parts/item.js +3 -5
  615. package/lib/internal/template/select/parts/item.js.map +1 -1
  616. package/lib/internal/template/select/parts/multiselect-item.js +3 -5
  617. package/lib/internal/template/select/parts/multiselect-item.js.map +1 -1
  618. package/lib/internal/template/select/parts/plain-list.js +1 -1
  619. package/lib/internal/template/select/parts/plain-list.js.map +1 -1
  620. package/lib/internal/template/select/parts/trigger.js +2 -2
  621. package/lib/internal/template/select/parts/trigger.js.map +1 -1
  622. package/lib/internal/template/select/parts/virtual-list.js +3 -3
  623. package/lib/internal/template/select/parts/virtual-list.js.map +1 -1
  624. package/lib/internal/template/select/utils/get-item-props.js +7 -1
  625. package/lib/internal/template/select/utils/get-item-props.js.map +1 -1
  626. package/lib/internal/template/select/utils/render-options.js +1 -1
  627. package/lib/internal/template/select/utils/render-options.js.map +1 -1
  628. package/lib/internal/template/side-navigation/implementation.js +2 -4
  629. package/lib/internal/template/side-navigation/implementation.js.map +1 -1
  630. package/lib/internal/template/side-navigation/index.js +2 -4
  631. package/lib/internal/template/side-navigation/index.js.map +1 -1
  632. package/lib/internal/template/side-navigation/parts.js +4 -4
  633. package/lib/internal/template/side-navigation/parts.js.map +1 -1
  634. package/lib/internal/template/slider/index.js +2 -4
  635. package/lib/internal/template/slider/index.js.map +1 -1
  636. package/lib/internal/template/slider/internal.js +2 -4
  637. package/lib/internal/template/slider/internal.js.map +1 -1
  638. package/lib/internal/template/slider/styles.css.js +26 -26
  639. package/lib/internal/template/slider/styles.scoped.css +86 -86
  640. package/lib/internal/template/slider/styles.selectors.js +26 -26
  641. package/lib/internal/template/slider/tick-marks.js +3 -3
  642. package/lib/internal/template/slider/tick-marks.js.map +1 -1
  643. package/lib/internal/template/space-between/index.js +2 -4
  644. package/lib/internal/template/space-between/index.js.map +1 -1
  645. package/lib/internal/template/space-between/internal.js +2 -4
  646. package/lib/internal/template/space-between/internal.js.map +1 -1
  647. package/lib/internal/template/spinner/index.js +2 -4
  648. package/lib/internal/template/spinner/index.js.map +1 -1
  649. package/lib/internal/template/spinner/internal.js +2 -4
  650. package/lib/internal/template/spinner/internal.js.map +1 -1
  651. package/lib/internal/template/spinner/styles.css.js +13 -13
  652. package/lib/internal/template/spinner/styles.scoped.css +39 -39
  653. package/lib/internal/template/spinner/styles.selectors.js +13 -13
  654. package/lib/internal/template/split-panel/bottom.js +2 -2
  655. package/lib/internal/template/split-panel/bottom.js.map +1 -1
  656. package/lib/internal/template/split-panel/implementation.js +2 -4
  657. package/lib/internal/template/split-panel/implementation.js.map +1 -1
  658. package/lib/internal/template/split-panel/index.js +16 -4
  659. package/lib/internal/template/split-panel/index.js.map +1 -1
  660. package/lib/internal/template/split-panel/side.js +6 -2
  661. package/lib/internal/template/split-panel/side.js.map +1 -1
  662. package/lib/internal/template/status-indicator/index.js +2 -4
  663. package/lib/internal/template/status-indicator/index.js.map +1 -1
  664. package/lib/internal/template/status-indicator/internal.js +3 -5
  665. package/lib/internal/template/status-indicator/internal.js.map +1 -1
  666. package/lib/internal/template/steps/index.js +2 -4
  667. package/lib/internal/template/steps/index.js.map +1 -1
  668. package/lib/internal/template/steps/internal.js +2 -4
  669. package/lib/internal/template/steps/internal.js.map +1 -1
  670. package/lib/internal/template/table/body-cell/disabled-inline-editor.js +4 -6
  671. package/lib/internal/template/table/body-cell/disabled-inline-editor.js.map +1 -1
  672. package/lib/internal/template/table/body-cell/index.js +9 -11
  673. package/lib/internal/template/table/body-cell/index.js.map +1 -1
  674. package/lib/internal/template/table/body-cell/inline-editor.js +18 -21
  675. package/lib/internal/template/table/body-cell/inline-editor.js.map +1 -1
  676. package/lib/internal/template/table/body-cell/td-element.js +3 -5
  677. package/lib/internal/template/table/body-cell/td-element.js.map +1 -1
  678. package/lib/internal/template/table/expandable-rows/expandable-rows-utils.js +1 -1
  679. package/lib/internal/template/table/expandable-rows/expandable-rows-utils.js.map +1 -1
  680. package/lib/internal/template/table/header-cell/index.js +20 -20
  681. package/lib/internal/template/table/header-cell/index.js.map +1 -1
  682. package/lib/internal/template/table/header-cell/th-element.js +3 -5
  683. package/lib/internal/template/table/header-cell/th-element.js.map +1 -1
  684. package/lib/internal/template/table/index.js +14 -10
  685. package/lib/internal/template/table/index.js.map +1 -1
  686. package/lib/internal/template/table/internal.js +47 -34
  687. package/lib/internal/template/table/internal.js.map +1 -1
  688. package/lib/internal/template/table/progressive-loading/loader-cell.js +2 -4
  689. package/lib/internal/template/table/progressive-loading/loader-cell.js.map +1 -1
  690. package/lib/internal/template/table/selection/selection-cell.js +8 -11
  691. package/lib/internal/template/table/selection/selection-cell.js.map +1 -1
  692. package/lib/internal/template/table/selection/selection-control.js +10 -12
  693. package/lib/internal/template/table/selection/selection-control.js.map +1 -1
  694. package/lib/internal/template/table/sticky-columns/use-sticky-columns.js +1 -1
  695. package/lib/internal/template/table/sticky-columns/use-sticky-columns.js.map +1 -1
  696. package/lib/internal/template/table/sticky-header.js +2 -2
  697. package/lib/internal/template/table/sticky-header.js.map +1 -1
  698. package/lib/internal/template/table/thead.js +5 -5
  699. package/lib/internal/template/table/thead.js.map +1 -1
  700. package/lib/internal/template/table/use-cell-editing.js +3 -4
  701. package/lib/internal/template/table/use-cell-editing.js.map +1 -1
  702. package/lib/internal/template/table/utils.js +1 -1
  703. package/lib/internal/template/table/utils.js.map +1 -1
  704. package/lib/internal/template/tabs/index.js +6 -8
  705. package/lib/internal/template/tabs/index.js.map +1 -1
  706. package/lib/internal/template/tabs/tab-header-bar.js +12 -5
  707. package/lib/internal/template/tabs/tab-header-bar.js.map +1 -1
  708. package/lib/internal/template/tag-editor/index.js +7 -9
  709. package/lib/internal/template/tag-editor/index.js.map +1 -1
  710. package/lib/internal/template/tag-editor/styles.css.js +3 -3
  711. package/lib/internal/template/tag-editor/styles.scoped.css +13 -13
  712. package/lib/internal/template/tag-editor/styles.selectors.js +3 -3
  713. package/lib/internal/template/text-content/index.js +2 -4
  714. package/lib/internal/template/text-content/index.js.map +1 -1
  715. package/lib/internal/template/text-content/styles.css.js +1 -1
  716. package/lib/internal/template/text-content/styles.scoped.css +66 -66
  717. package/lib/internal/template/text-content/styles.selectors.js +1 -1
  718. package/lib/internal/template/text-filter/index.js +1 -1
  719. package/lib/internal/template/text-filter/index.js.map +1 -1
  720. package/lib/internal/template/text-filter/internal.js +2 -4
  721. package/lib/internal/template/text-filter/internal.js.map +1 -1
  722. package/lib/internal/template/textarea/index.js +3 -5
  723. package/lib/internal/template/textarea/index.js.map +1 -1
  724. package/lib/internal/template/textarea/styles.css.js +5 -5
  725. package/lib/internal/template/textarea/styles.js +42 -30
  726. package/lib/internal/template/textarea/styles.js.map +1 -1
  727. package/lib/internal/template/textarea/styles.scoped.css +41 -41
  728. package/lib/internal/template/textarea/styles.selectors.js +5 -5
  729. package/lib/internal/template/tiles/index.js +3 -3
  730. package/lib/internal/template/tiles/index.js.map +1 -1
  731. package/lib/internal/template/tiles/internal.js +12 -14
  732. package/lib/internal/template/tiles/internal.js.map +1 -1
  733. package/lib/internal/template/tiles/tile.js +3 -5
  734. package/lib/internal/template/tiles/tile.js.map +1 -1
  735. package/lib/internal/template/time-input/index.js +2 -4
  736. package/lib/internal/template/time-input/index.js.map +1 -1
  737. package/lib/internal/template/time-input/internal.js +2 -4
  738. package/lib/internal/template/time-input/internal.js.map +1 -1
  739. package/lib/internal/template/toggle/index.js +1 -1
  740. package/lib/internal/template/toggle/index.js.map +1 -1
  741. package/lib/internal/template/toggle/internal.js +5 -7
  742. package/lib/internal/template/toggle/internal.js.map +1 -1
  743. package/lib/internal/template/toggle/styles.css.js +10 -10
  744. package/lib/internal/template/toggle/styles.scoped.css +23 -23
  745. package/lib/internal/template/toggle/styles.selectors.js +10 -10
  746. package/lib/internal/template/toggle-button/index.js +2 -4
  747. package/lib/internal/template/toggle-button/index.js.map +1 -1
  748. package/lib/internal/template/toggle-button/internal.js +3 -5
  749. package/lib/internal/template/toggle-button/internal.js.map +1 -1
  750. package/lib/internal/template/token/dismiss-button.js +2 -2
  751. package/lib/internal/template/token/dismiss-button.js.map +1 -1
  752. package/lib/internal/template/token/index.js +1 -1
  753. package/lib/internal/template/token/index.js.map +1 -1
  754. package/lib/internal/template/token/internal.js +20 -14
  755. package/lib/internal/template/token/internal.js.map +1 -1
  756. package/lib/internal/template/token-group/index.js +2 -4
  757. package/lib/internal/template/token-group/index.js.map +1 -1
  758. package/lib/internal/template/token-group/internal.js +6 -8
  759. package/lib/internal/template/token-group/internal.js.map +1 -1
  760. package/lib/internal/template/top-navigation/index.js +2 -4
  761. package/lib/internal/template/top-navigation/index.js.map +1 -1
  762. package/lib/internal/template/top-navigation/internal.js +2 -4
  763. package/lib/internal/template/top-navigation/internal.js.map +1 -1
  764. package/lib/internal/template/top-navigation/parts/overflow-menu/menu-item.js +7 -11
  765. package/lib/internal/template/top-navigation/parts/overflow-menu/menu-item.js.map +1 -1
  766. package/lib/internal/template/top-navigation/parts/overflow-menu/views/submenu.js +2 -2
  767. package/lib/internal/template/top-navigation/parts/overflow-menu/views/submenu.js.map +1 -1
  768. package/lib/internal/template/top-navigation/parts/overflow-menu/views/utilities.js +1 -1
  769. package/lib/internal/template/top-navigation/parts/overflow-menu/views/utilities.js.map +1 -1
  770. package/lib/internal/template/top-navigation/parts/utility.js +1 -1
  771. package/lib/internal/template/top-navigation/parts/utility.js.map +1 -1
  772. package/lib/internal/template/tree-view/index.js +1 -1
  773. package/lib/internal/template/tree-view/index.js.map +1 -1
  774. package/lib/internal/template/tree-view/internal.js +2 -4
  775. package/lib/internal/template/tree-view/internal.js.map +1 -1
  776. package/lib/internal/template/tutorial-panel/components/tutorial-detail-view/task-list.js +1 -1
  777. package/lib/internal/template/tutorial-panel/components/tutorial-detail-view/task-list.js.map +1 -1
  778. package/lib/internal/template/tutorial-panel/index.js +2 -4
  779. package/lib/internal/template/tutorial-panel/index.js.map +1 -1
  780. package/lib/internal/template/wizard/index.js +2 -4
  781. package/lib/internal/template/wizard/index.js.map +1 -1
  782. package/lib/internal/template/wizard/internal.js +23 -10
  783. package/lib/internal/template/wizard/internal.js.map +1 -1
  784. package/lib/internal/template/wizard/wizard-actions.js +3 -3
  785. package/lib/internal/template/wizard/wizard-actions.js.map +1 -1
  786. package/lib/internal/template/wizard/wizard-form.js +2 -2
  787. package/lib/internal/template/wizard/wizard-form.js.map +1 -1
  788. package/lib/internal/template/wizard/wizard-navigation.js +7 -7
  789. package/lib/internal/template/wizard/wizard-navigation.js.map +1 -1
  790. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"use-navigation.js","sourceRoot":"","sources":["../../../../src/mixed-line-bar-chart/hooks/use-navigation.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport React, { useCallback, useMemo, useState } from 'react';\n\nimport { ChartScale, NumericChartScale } from '../../internal/components/cartesian-chart/scales';\nimport { KeyCode } from '../../internal/keycode';\nimport { circleIndex } from '../../internal/utils/circle-index';\nimport { ChartContainerProps } from '../chart-container';\nimport { ChartDataTypes, MixedLineBarChartProps, VerticalMarkerX } from '../interfaces';\nimport { ScaledBarGroup } from '../make-scaled-bar-groups';\nimport { ScaledPoint } from '../make-scaled-series';\nimport { findNavigableSeries, isXThreshold, isYThreshold, nextValidDomainIndex } from '../utils';\n\nexport type UseNavigationProps<T extends ChartDataTypes> = Pick<\n ChartContainerProps<T>,\n 'highlightedSeries' | 'series' | 'visibleSeries'\n> & {\n xScale: ChartScale;\n yScale: NumericChartScale;\n barGroups: ScaledBarGroup<T>[];\n scaledSeries: ReadonlyArray<ScaledPoint<T>>;\n\n highlightedPoint: ScaledPoint<T> | null;\n highlightedGroupIndex: number | null;\n isHandlersDisabled: boolean;\n\n pinPopover(pinned?: boolean): void;\n highlightSeries(series: MixedLineBarChartProps.ChartSeries<T> | null): void;\n highlightGroup(groupIndex: number): void;\n highlightPoint(point: ScaledPoint<T> | null): void;\n highlightX: (verticalMarker: VerticalMarkerX<T> | null) => void;\n clearHighlightedSeries(): void;\n verticalMarkerX: VerticalMarkerX<T> | null;\n\n isRtl?: boolean;\n horizontalBars: boolean;\n};\n\nexport function useNavigation<T extends ChartDataTypes>({\n series,\n visibleSeries,\n scaledSeries,\n barGroups,\n xScale,\n yScale,\n highlightedPoint,\n highlightedGroupIndex,\n highlightedSeries,\n isHandlersDisabled,\n pinPopover,\n highlightSeries,\n highlightGroup,\n highlightPoint,\n highlightX,\n verticalMarkerX,\n isRtl,\n horizontalBars,\n}: UseNavigationProps<T>) {\n const [targetX, setTargetX] = useState<T | null>(null);\n const [xIndex, setXIndex] = useState(0);\n\n // There are two different types of navigation:\n // 1) Group navigation for any chart that contains a bar series\n // 2) Line navigation for any chart that only contains lines and thresholds\n const isGroupNavigation = useMemo(() => visibleSeries.some(({ series }) => series.type === 'bar'), [visibleSeries]);\n\n // Make a list of series that can be navigated between. Bar series are treated as one.\n const { navigableSeries } = useMemo(() => findNavigableSeries(visibleSeries), [visibleSeries]);\n const containsMultipleSeries = navigableSeries.length > 1;\n\n const onBarGroupFocus = () => {\n const groupIndex = highlightedGroupIndex ?? 0;\n setTargetX((xScale.domain as T[])[groupIndex]);\n highlightGroup(groupIndex);\n };\n\n const onLineFocus = () => {\n if (verticalMarkerX === null) {\n const index = !isRtl ? 0 : allUniqueX.length - 1;\n if (containsMultipleSeries) {\n moveToLineGroupIndex(index);\n } else {\n moveBetweenSeries(0, allUniqueX[index].datum?.x);\n }\n }\n };\n\n const onFocus = () => {\n if (isGroupNavigation) {\n onBarGroupFocus();\n } else {\n onLineFocus();\n }\n };\n\n // Returns all the unique X coordinates in scaledSeries.\n // Assumes scaledSeries is sorted by `x`.\n const allUniqueX = useMemo(() => {\n const result = [];\n for (let i = 0; i < scaledSeries.length; i += 1) {\n const point = scaledSeries[i];\n if (point !== undefined && (!result.length || result[result.length - 1].scaledX !== point.x)) {\n result.push({ scaledX: point.x, datum: point.datum });\n }\n }\n return result;\n }, [scaledSeries]);\n\n const moveBetweenSeries = useCallback(\n (direction: number, startFrom?: T) => {\n if (isGroupNavigation) {\n return;\n }\n\n const xOffset = xScale.isCategorical() ? Math.max(0, xScale.d3Scale.bandwidth() - 1) / 2 : 0;\n const MAX_SERIES_INDEX = navigableSeries.length - 1;\n\n // Find the index of the currently highlighted series (if any)\n let previousSeriesIndex = -1;\n if (highlightedSeries) {\n previousSeriesIndex = navigableSeries.indexOf(highlightedSeries);\n }\n\n // Move forwards or backwards to the new series\n // If index === -1, show all data points from all series at the given X instead of one single series\n const firstPossibleIndex = containsMultipleSeries ? -1 : 0;\n let nextSeriesIndex = 0;\n if (previousSeriesIndex !== null) {\n nextSeriesIndex = previousSeriesIndex + direction;\n if (nextSeriesIndex > MAX_SERIES_INDEX) {\n nextSeriesIndex = firstPossibleIndex;\n } else if (nextSeriesIndex < firstPossibleIndex) {\n nextSeriesIndex = MAX_SERIES_INDEX;\n }\n }\n if (nextSeriesIndex === -1) {\n highlightSeries(null);\n highlightPoint(null);\n return;\n }\n const nextSeries = navigableSeries[nextSeriesIndex];\n const nextInternalSeries = series.filter(({ series }) => series === nextSeries)[0];\n\n const actualTargetX = targetX ?? startFrom ?? null;\n\n // 2. Find point in the next series\n let targetXPoint = (xScale.d3Scale(actualTargetX as any) ?? NaN) + xOffset;\n if (!isFinite(targetXPoint)) {\n targetXPoint = 0;\n }\n\n if (nextSeries.type === 'line') {\n const nextScaledSeries = scaledSeries.filter(it => it.series === nextSeries);\n const closestNextSeriesPoint = nextScaledSeries.reduce(\n (prev, curr) => (Math.abs(curr.x - targetXPoint) < Math.abs(prev.x - targetXPoint) ? curr : prev),\n { x: -Infinity, y: -Infinity }\n );\n highlightPoint({ ...closestNextSeriesPoint, color: nextInternalSeries.color, series: nextSeries });\n } else if (isYThreshold(nextSeries)) {\n const scaledTargetIndex = scaledSeries.map(it => it.datum?.x || null).indexOf(actualTargetX);\n highlightPoint({\n x: targetXPoint,\n y: yScale.d3Scale(nextSeries.y) ?? NaN,\n color: nextInternalSeries.color,\n series: nextSeries,\n datum: scaledSeries[scaledTargetIndex]?.datum,\n });\n } else if (isXThreshold(nextSeries)) {\n highlightPoint({\n x: xScale.d3Scale(nextSeries.x as any) ?? NaN,\n y: yScale.d3Scale.range()[0],\n color: nextInternalSeries.color,\n series: nextSeries,\n datum: { x: nextSeries.x, y: NaN },\n });\n }\n },\n [\n isGroupNavigation,\n xScale,\n navigableSeries,\n highlightedSeries,\n containsMultipleSeries,\n highlightSeries,\n highlightPoint,\n series,\n targetX,\n scaledSeries,\n yScale,\n ]\n );\n\n const moveWithinSeries = useCallback(\n (direction: number) => {\n const series = highlightedSeries || visibleSeries[0].series;\n\n if (series.type === 'line' || isYThreshold(series)) {\n const targetScaledSeries = scaledSeries.filter(it => it.series === series);\n const previousPoint = highlightedPoint || targetScaledSeries[0];\n const indexOfPreviousPoint = targetScaledSeries.map(it => it.x).indexOf(previousPoint.x);\n const nextPointIndex = circleIndex(indexOfPreviousPoint + direction, [0, targetScaledSeries.length - 1]);\n const nextPoint = targetScaledSeries[nextPointIndex];\n\n setTargetX(nextPoint.datum?.x || null);\n setXIndex(nextPointIndex);\n highlightPoint(nextPoint);\n } else if (series.type === 'bar') {\n const xDomain = xScale.domain as T[];\n const MAX_GROUP_INDEX = xDomain.length - 1;\n\n let nextGroupIndex = 0;\n if (highlightedGroupIndex !== null) {\n if (isRtl && !horizontalBars) {\n direction = -direction;\n }\n\n // find next group\n nextGroupIndex = highlightedGroupIndex + direction;\n if (nextGroupIndex > MAX_GROUP_INDEX) {\n nextGroupIndex = 0;\n } else if (nextGroupIndex < 0) {\n nextGroupIndex = MAX_GROUP_INDEX;\n }\n }\n\n const nextDomainIndex = nextValidDomainIndex(nextGroupIndex, barGroups, direction);\n setTargetX(xDomain[nextDomainIndex]);\n highlightGroup(nextDomainIndex);\n }\n },\n [\n highlightedSeries,\n visibleSeries,\n scaledSeries,\n highlightedPoint,\n highlightPoint,\n xScale.domain,\n highlightedGroupIndex,\n barGroups,\n highlightGroup,\n isRtl,\n horizontalBars,\n ]\n );\n\n const moveToLineGroupIndex = useCallback(\n (index: number) => {\n const point = allUniqueX[index];\n setXIndex(index);\n setTargetX(point.datum?.x || null);\n highlightX({ scaledX: point?.scaledX ?? null, label: point.datum?.x ?? null });\n },\n [allUniqueX, highlightX]\n );\n\n const moveWithinXAxis = useCallback(\n (direction: number) => {\n if (highlightedSeries || isGroupNavigation) {\n moveWithinSeries(direction);\n } else {\n const nextPointGroupIndex = circleIndex(xIndex + direction, [0, allUniqueX.length - 1]);\n moveToLineGroupIndex(nextPointGroupIndex);\n }\n },\n [highlightedSeries, isGroupNavigation, moveWithinSeries, xIndex, allUniqueX.length, moveToLineGroupIndex]\n );\n\n const onKeyDown = useCallback(\n (event: React.KeyboardEvent) => {\n const keyCode = event.keyCode;\n if (\n keyCode !== KeyCode.up &&\n keyCode !== KeyCode.right &&\n keyCode !== KeyCode.down &&\n keyCode !== KeyCode.left &&\n keyCode !== KeyCode.space &&\n keyCode !== KeyCode.enter\n ) {\n return;\n }\n\n event.preventDefault();\n\n if (isHandlersDisabled) {\n return;\n }\n\n if (keyCode === KeyCode.down || keyCode === KeyCode.up) {\n moveBetweenSeries(keyCode === KeyCode.down ? 1 : -1);\n } else if (keyCode === KeyCode.left || keyCode === KeyCode.right) {\n moveWithinXAxis(keyCode === KeyCode.right ? 1 : -1);\n } else if (keyCode === KeyCode.enter || keyCode === KeyCode.space) {\n pinPopover();\n }\n },\n [isHandlersDisabled, moveBetweenSeries, moveWithinXAxis, pinPopover]\n );\n\n return { isGroupNavigation, onFocus, onKeyDown, xIndex };\n}\n"]}
1
+ {"version":3,"file":"use-navigation.js","sourceRoot":"","sources":["../../../../src/mixed-line-bar-chart/hooks/use-navigation.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport React, { useCallback, useMemo, useState } from 'react';\n\nimport { ChartScale, NumericChartScale } from '../../internal/components/cartesian-chart/scales';\nimport { KeyCode } from '../../internal/keycode';\nimport { circleIndex } from '../../internal/utils/circle-index';\nimport { ChartContainerProps } from '../chart-container';\nimport { ChartDataTypes, MixedLineBarChartProps, VerticalMarkerX } from '../interfaces';\nimport { ScaledBarGroup } from '../make-scaled-bar-groups';\nimport { ScaledPoint } from '../make-scaled-series';\nimport { findNavigableSeries, isXThreshold, isYThreshold, nextValidDomainIndex } from '../utils';\n\nexport type UseNavigationProps<T extends ChartDataTypes> = Pick<\n ChartContainerProps<T>,\n 'highlightedSeries' | 'series' | 'visibleSeries'\n> & {\n xScale: ChartScale;\n yScale: NumericChartScale;\n barGroups: ScaledBarGroup<T>[];\n scaledSeries: ReadonlyArray<ScaledPoint<T>>;\n\n highlightedPoint: ScaledPoint<T> | null;\n highlightedGroupIndex: number | null;\n isHandlersDisabled: boolean;\n\n pinPopover(pinned?: boolean): void;\n highlightSeries(series: MixedLineBarChartProps.ChartSeries<T> | null): void;\n highlightGroup(groupIndex: number): void;\n highlightPoint(point: ScaledPoint<T> | null): void;\n highlightX: (verticalMarker: VerticalMarkerX<T> | null) => void;\n clearHighlightedSeries(): void;\n verticalMarkerX: VerticalMarkerX<T> | null;\n\n isRtl?: boolean;\n horizontalBars: boolean;\n};\n\nexport function useNavigation<T extends ChartDataTypes>({\n series,\n visibleSeries,\n scaledSeries,\n barGroups,\n xScale,\n yScale,\n highlightedPoint,\n highlightedGroupIndex,\n highlightedSeries,\n isHandlersDisabled,\n pinPopover,\n highlightSeries,\n highlightGroup,\n highlightPoint,\n highlightX,\n verticalMarkerX,\n isRtl,\n horizontalBars,\n}: UseNavigationProps<T>) {\n const [targetX, setTargetX] = useState<T | null>(null);\n const [xIndex, setXIndex] = useState(0);\n\n // There are two different types of navigation:\n // 1) Group navigation for any chart that contains a bar series\n // 2) Line navigation for any chart that only contains lines and thresholds\n const isGroupNavigation = useMemo(() => visibleSeries.some(({ series }) => series.type === 'bar'), [visibleSeries]);\n\n // Make a list of series that can be navigated between. Bar series are treated as one.\n const { navigableSeries } = useMemo(() => findNavigableSeries(visibleSeries), [visibleSeries]);\n const containsMultipleSeries = navigableSeries.length > 1;\n\n const onBarGroupFocus = () => {\n const groupIndex = highlightedGroupIndex ?? 0;\n setTargetX((xScale.domain as T[])[groupIndex]);\n highlightGroup(groupIndex);\n };\n\n const onLineFocus = () => {\n if (verticalMarkerX === null) {\n const index = !isRtl ? 0 : allUniqueX.length - 1;\n if (containsMultipleSeries) {\n moveToLineGroupIndex(index);\n } else {\n moveBetweenSeries(0, allUniqueX[index].datum?.x);\n }\n }\n };\n\n const onFocus = () => {\n if (isGroupNavigation) {\n onBarGroupFocus();\n } else {\n onLineFocus();\n }\n };\n\n // Returns all the unique X coordinates in scaledSeries.\n // Assumes scaledSeries is sorted by `x`.\n const allUniqueX = useMemo(() => {\n const result = [];\n for (let i = 0; i < scaledSeries.length; i += 1) {\n const point = scaledSeries[i];\n if (point !== undefined && (!result.length || result[result.length - 1].scaledX !== point.x)) {\n result.push({ scaledX: point.x, datum: point.datum });\n }\n }\n return result;\n }, [scaledSeries]);\n\n const moveBetweenSeries = useCallback(\n (direction: number, startFrom?: T) => {\n if (isGroupNavigation) {\n return;\n }\n\n const xOffset = xScale.isCategorical() ? Math.max(0, xScale.d3Scale.bandwidth() - 1) / 2 : 0;\n const MAX_SERIES_INDEX = navigableSeries.length - 1;\n\n // Find the index of the currently highlighted series (if any)\n let previousSeriesIndex = -1;\n if (highlightedSeries) {\n previousSeriesIndex = navigableSeries.indexOf(highlightedSeries);\n }\n\n // Move forwards or backwards to the new series\n // If index === -1, show all data points from all series at the given X instead of one single series\n const firstPossibleIndex = containsMultipleSeries ? -1 : 0;\n let nextSeriesIndex = 0;\n if (previousSeriesIndex !== null) {\n nextSeriesIndex = previousSeriesIndex + direction;\n if (nextSeriesIndex > MAX_SERIES_INDEX) {\n nextSeriesIndex = firstPossibleIndex;\n } else if (nextSeriesIndex < firstPossibleIndex) {\n nextSeriesIndex = MAX_SERIES_INDEX;\n }\n }\n if (nextSeriesIndex === -1) {\n highlightSeries(null);\n highlightPoint(null);\n return;\n }\n const nextSeries = navigableSeries[nextSeriesIndex];\n const nextInternalSeries = series.filter(({ series }) => series === nextSeries)[0];\n\n const actualTargetX = targetX ?? startFrom ?? null;\n\n // 2. Find point in the next series\n let targetXPoint = (xScale.d3Scale(actualTargetX as any) ?? NaN) + xOffset;\n if (!isFinite(targetXPoint)) {\n targetXPoint = 0;\n }\n\n if (nextSeries.type === 'line') {\n const nextScaledSeries = scaledSeries.filter(it => it.series === nextSeries);\n const closestNextSeriesPoint = nextScaledSeries.reduce(\n (prev, curr) => (Math.abs(curr.x - targetXPoint) < Math.abs(prev.x - targetXPoint) ? curr : prev),\n { x: -Infinity, y: -Infinity }\n );\n highlightPoint({ ...closestNextSeriesPoint, color: nextInternalSeries.color, series: nextSeries });\n } else if (isYThreshold(nextSeries)) {\n const scaledTargetIndex = scaledSeries.map(it => it.datum?.x || null).indexOf(actualTargetX);\n highlightPoint({\n x: targetXPoint,\n y: yScale.d3Scale(nextSeries.y) ?? NaN,\n color: nextInternalSeries.color,\n series: nextSeries,\n datum: scaledSeries[scaledTargetIndex]?.datum,\n });\n } else if (isXThreshold(nextSeries)) {\n highlightPoint({\n x: xScale.d3Scale(nextSeries.x as any) ?? NaN,\n y: yScale.d3Scale.range()[0],\n color: nextInternalSeries.color,\n series: nextSeries,\n datum: { x: nextSeries.x, y: NaN },\n });\n }\n },\n [\n isGroupNavigation,\n xScale,\n navigableSeries,\n highlightedSeries,\n containsMultipleSeries,\n highlightSeries,\n highlightPoint,\n series,\n targetX,\n scaledSeries,\n yScale,\n ]\n );\n\n const moveWithinSeries = useCallback(\n (direction: number) => {\n const series = highlightedSeries || visibleSeries[0].series;\n\n if (series.type === 'line' || isYThreshold(series)) {\n const targetScaledSeries = scaledSeries.filter(it => it.series === series);\n const previousPoint = highlightedPoint || targetScaledSeries[0];\n const indexOfPreviousPoint = targetScaledSeries.map(it => it.x).indexOf(previousPoint.x);\n const nextPointIndex = circleIndex(indexOfPreviousPoint + direction, [0, targetScaledSeries.length - 1]);\n const nextPoint = targetScaledSeries[nextPointIndex];\n\n setTargetX(nextPoint.datum?.x || null);\n setXIndex(nextPointIndex);\n highlightPoint(nextPoint);\n } else if (series.type === 'bar') {\n const xDomain = xScale.domain as T[];\n const MAX_GROUP_INDEX = xDomain.length - 1;\n\n let nextGroupIndex = 0;\n if (highlightedGroupIndex !== null) {\n if (isRtl && !horizontalBars) {\n direction = -direction;\n }\n\n // find next group\n nextGroupIndex = highlightedGroupIndex + direction;\n if (nextGroupIndex > MAX_GROUP_INDEX) {\n nextGroupIndex = 0;\n } else if (nextGroupIndex < 0) {\n nextGroupIndex = MAX_GROUP_INDEX;\n }\n }\n\n const nextDomainIndex = nextValidDomainIndex(nextGroupIndex, barGroups, direction);\n setTargetX(xDomain[nextDomainIndex]);\n highlightGroup(nextDomainIndex);\n }\n },\n [\n highlightedSeries,\n visibleSeries,\n scaledSeries,\n highlightedPoint,\n highlightPoint,\n xScale.domain,\n highlightedGroupIndex,\n barGroups,\n highlightGroup,\n isRtl,\n horizontalBars,\n ]\n );\n\n const moveToLineGroupIndex = useCallback(\n (index: number) => {\n const point = allUniqueX[index];\n setXIndex(index);\n setTargetX(point.datum?.x || null);\n highlightX({ scaledX: point?.scaledX ?? null, label: point.datum?.x ?? null });\n },\n [allUniqueX, highlightX]\n );\n\n const moveWithinXAxis = useCallback(\n (direction: number) => {\n if (highlightedSeries || isGroupNavigation) {\n moveWithinSeries(direction);\n } else {\n const nextPointGroupIndex = circleIndex(xIndex + direction, [0, allUniqueX.length - 1]);\n moveToLineGroupIndex(nextPointGroupIndex);\n }\n },\n [highlightedSeries, isGroupNavigation, moveWithinSeries, xIndex, allUniqueX.length, moveToLineGroupIndex]\n );\n\n const onKeyDown = useCallback(\n (event: React.KeyboardEvent) => {\n const keyCode = event.keyCode;\n if (\n keyCode !== KeyCode.up &&\n keyCode !== KeyCode.right &&\n keyCode !== KeyCode.down &&\n keyCode !== KeyCode.left &&\n keyCode !== KeyCode.space &&\n keyCode !== KeyCode.enter\n ) {\n return;\n }\n\n event.preventDefault();\n\n if (isHandlersDisabled) {\n return;\n }\n\n if (keyCode === KeyCode.down || keyCode === KeyCode.up) {\n moveBetweenSeries(keyCode === KeyCode.down ? 1 : -1);\n } else if (keyCode === KeyCode.left || keyCode === KeyCode.right) {\n moveWithinXAxis(keyCode === KeyCode.right ? 1 : -1);\n } else if (keyCode === KeyCode.enter || keyCode === KeyCode.space) {\n pinPopover();\n }\n },\n [isHandlersDisabled, moveBetweenSeries, moveWithinXAxis, pinPopover]\n );\n\n return { isGroupNavigation, onFocus, onKeyDown, xIndex };\n}\n"]}
@@ -1,13 +1,11 @@
1
1
  // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
2
2
  // SPDX-License-Identifier: Apache-2.0
3
3
  'use client';
4
- import { __rest } from "tslib";
5
4
  import React from 'react';
6
5
  import useBaseComponent from '../internal/hooks/use-base-component';
7
6
  import { applyDisplayName } from '../internal/utils/apply-display-name';
8
7
  import InternalMixedLineBarChart from './internal';
9
- function MixedLineBarChart(_a) {
10
- var { series = [], height = 500, xScaleType = 'linear', yScaleType = 'linear', stackedBars = false, horizontalBars = false, statusType = 'finished', detailPopoverSize = 'medium', emphasizeBaselineAxis = true } = _a, props = __rest(_a, ["series", "height", "xScaleType", "yScaleType", "stackedBars", "horizontalBars", "statusType", "detailPopoverSize", "emphasizeBaselineAxis"]);
8
+ function MixedLineBarChart({ series = [], height = 500, xScaleType = 'linear', yScaleType = 'linear', stackedBars = false, horizontalBars = false, statusType = 'finished', detailPopoverSize = 'medium', emphasizeBaselineAxis = true, ...props }) {
11
9
  const baseComponentProps = useBaseComponent('MixedLineBarChart', {
12
10
  props: {
13
11
  detailPopoverSize,
@@ -21,7 +19,7 @@ function MixedLineBarChart(_a) {
21
19
  yScaleType,
22
20
  },
23
21
  });
24
- return (React.createElement(InternalMixedLineBarChart, Object.assign({ series: series, height: height, xScaleType: xScaleType, yScaleType: yScaleType, stackedBars: stackedBars, horizontalBars: horizontalBars, statusType: statusType, detailPopoverSize: detailPopoverSize, emphasizeBaselineAxis: emphasizeBaselineAxis }, props, baseComponentProps)));
22
+ return (React.createElement(InternalMixedLineBarChart, { series: series, height: height, xScaleType: xScaleType, yScaleType: yScaleType, stackedBars: stackedBars, horizontalBars: horizontalBars, statusType: statusType, detailPopoverSize: detailPopoverSize, emphasizeBaselineAxis: emphasizeBaselineAxis, ...props, ...baseComponentProps }));
25
23
  }
26
24
  applyDisplayName(MixedLineBarChart, 'MixedLineBarChart');
27
25
  export default MixedLineBarChart;
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/mixed-line-bar-chart/index.tsx"],"names":[],"mappings":"AAAA,qEAAqE;AACrE,sCAAsC;AACtC,YAAY,CAAC;;AACb,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,gBAAgB,MAAM,sCAAsC,CAAC;AACpE,OAAO,EAAE,gBAAgB,EAAE,MAAM,sCAAsC,CAAC;AAExE,OAAO,yBAAyB,MAAM,YAAY,CAAC;AAInD,SAAS,iBAAiB,CAAmC,EAWjC;QAXiC,EAC3D,MAAM,GAAG,EAAE,EACX,MAAM,GAAG,GAAG,EACZ,UAAU,GAAG,QAAQ,EACrB,UAAU,GAAG,QAAQ,EACrB,WAAW,GAAG,KAAK,EACnB,cAAc,GAAG,KAAK,EACtB,UAAU,GAAG,UAAU,EACvB,iBAAiB,GAAG,QAAQ,EAC5B,qBAAqB,GAAG,IAAI,OAEF,EADvB,KAAK,cAVmD,6IAW5D,CADS;IAER,MAAM,kBAAkB,GAAG,gBAAgB,CAAC,mBAAmB,EAAE;QAC/D,KAAK,EAAE;YACL,iBAAiB;YACjB,qBAAqB;YACrB,SAAS,EAAE,KAAK,CAAC,SAAS;YAC1B,UAAU,EAAE,KAAK,CAAC,UAAU;YAC5B,UAAU,EAAE,KAAK,CAAC,UAAU;YAC5B,cAAc;YACd,WAAW;YACX,UAAU;YACV,UAAU;SACX;KACF,CAAC,CAAC;IACH,OAAO,CACL,oBAAC,yBAAyB,kBACxB,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,UAAU,EACtB,UAAU,EAAE,UAAU,EACtB,WAAW,EAAE,WAAW,EACxB,cAAc,EAAE,cAAc,EAC9B,UAAU,EAAE,UAAU,EACtB,iBAAiB,EAAE,iBAAiB,EACpC,qBAAqB,EAAE,qBAAqB,IACxC,KAAK,EACL,kBAAkB,EACtB,CACH,CAAC;AACJ,CAAC;AAED,gBAAgB,CAAC,iBAAiB,EAAE,mBAAmB,CAAC,CAAC;AAEzD,eAAe,iBAAiB,CAAC","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\n'use client';\nimport React from 'react';\n\nimport useBaseComponent from '../internal/hooks/use-base-component';\nimport { applyDisplayName } from '../internal/utils/apply-display-name';\nimport { MixedLineBarChartProps } from './interfaces';\nimport InternalMixedLineBarChart from './internal';\n\nexport { MixedLineBarChartProps };\n\nfunction MixedLineBarChart<T extends number | string | Date>({\n series = [],\n height = 500,\n xScaleType = 'linear',\n yScaleType = 'linear',\n stackedBars = false,\n horizontalBars = false,\n statusType = 'finished',\n detailPopoverSize = 'medium',\n emphasizeBaselineAxis = true,\n ...props\n}: MixedLineBarChartProps<T>) {\n const baseComponentProps = useBaseComponent('MixedLineBarChart', {\n props: {\n detailPopoverSize,\n emphasizeBaselineAxis,\n fitHeight: props.fitHeight,\n hideFilter: props.hideFilter,\n hideLegend: props.hideLegend,\n horizontalBars,\n stackedBars,\n xScaleType,\n yScaleType,\n },\n });\n return (\n <InternalMixedLineBarChart\n series={series}\n height={height}\n xScaleType={xScaleType}\n yScaleType={yScaleType}\n stackedBars={stackedBars}\n horizontalBars={horizontalBars}\n statusType={statusType}\n detailPopoverSize={detailPopoverSize}\n emphasizeBaselineAxis={emphasizeBaselineAxis}\n {...props}\n {...baseComponentProps}\n />\n );\n}\n\napplyDisplayName(MixedLineBarChart, 'MixedLineBarChart');\n\nexport default MixedLineBarChart;\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/mixed-line-bar-chart/index.tsx"],"names":[],"mappings":"AAAA,qEAAqE;AACrE,sCAAsC;AACtC,YAAY,CAAC;AACb,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,gBAAgB,MAAM,sCAAsC,CAAC;AACpE,OAAO,EAAE,gBAAgB,EAAE,MAAM,sCAAsC,CAAC;AAExE,OAAO,yBAAyB,MAAM,YAAY,CAAC;AAInD,SAAS,iBAAiB,CAAmC,EAC3D,MAAM,GAAG,EAAE,EACX,MAAM,GAAG,GAAG,EACZ,UAAU,GAAG,QAAQ,EACrB,UAAU,GAAG,QAAQ,EACrB,WAAW,GAAG,KAAK,EACnB,cAAc,GAAG,KAAK,EACtB,UAAU,GAAG,UAAU,EACvB,iBAAiB,GAAG,QAAQ,EAC5B,qBAAqB,GAAG,IAAI,EAC5B,GAAG,KAAK,EACkB;IAC1B,MAAM,kBAAkB,GAAG,gBAAgB,CAAC,mBAAmB,EAAE;QAC/D,KAAK,EAAE;YACL,iBAAiB;YACjB,qBAAqB;YACrB,SAAS,EAAE,KAAK,CAAC,SAAS;YAC1B,UAAU,EAAE,KAAK,CAAC,UAAU;YAC5B,UAAU,EAAE,KAAK,CAAC,UAAU;YAC5B,cAAc;YACd,WAAW;YACX,UAAU;YACV,UAAU;SACX;KACF,CAAC,CAAC;IACH,OAAO,CACL,oBAAC,yBAAyB,IACxB,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,UAAU,EACtB,UAAU,EAAE,UAAU,EACtB,WAAW,EAAE,WAAW,EACxB,cAAc,EAAE,cAAc,EAC9B,UAAU,EAAE,UAAU,EACtB,iBAAiB,EAAE,iBAAiB,EACpC,qBAAqB,EAAE,qBAAqB,KACxC,KAAK,KACL,kBAAkB,GACtB,CACH,CAAC;AACJ,CAAC;AAED,gBAAgB,CAAC,iBAAiB,EAAE,mBAAmB,CAAC,CAAC;AAEzD,eAAe,iBAAiB,CAAC","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\n'use client';\nimport React from 'react';\n\nimport useBaseComponent from '../internal/hooks/use-base-component';\nimport { applyDisplayName } from '../internal/utils/apply-display-name';\nimport { MixedLineBarChartProps } from './interfaces';\nimport InternalMixedLineBarChart from './internal';\n\nexport { MixedLineBarChartProps };\n\nfunction MixedLineBarChart<T extends number | string | Date>({\n series = [],\n height = 500,\n xScaleType = 'linear',\n yScaleType = 'linear',\n stackedBars = false,\n horizontalBars = false,\n statusType = 'finished',\n detailPopoverSize = 'medium',\n emphasizeBaselineAxis = true,\n ...props\n}: MixedLineBarChartProps<T>) {\n const baseComponentProps = useBaseComponent('MixedLineBarChart', {\n props: {\n detailPopoverSize,\n emphasizeBaselineAxis,\n fitHeight: props.fitHeight,\n hideFilter: props.hideFilter,\n hideLegend: props.hideLegend,\n horizontalBars,\n stackedBars,\n xScaleType,\n yScaleType,\n },\n });\n return (\n <InternalMixedLineBarChart\n series={series}\n height={height}\n xScaleType={xScaleType}\n yScaleType={yScaleType}\n stackedBars={stackedBars}\n horizontalBars={horizontalBars}\n statusType={statusType}\n detailPopoverSize={detailPopoverSize}\n emphasizeBaselineAxis={emphasizeBaselineAxis}\n {...props}\n {...baseComponentProps}\n />\n );\n}\n\napplyDisplayName(MixedLineBarChart, 'MixedLineBarChart');\n\nexport default MixedLineBarChart;\n"]}
@@ -1,4 +1,3 @@
1
- import { __rest } 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 React, { useEffect, useMemo, useRef, useState } from 'react';
@@ -19,8 +18,7 @@ import ChartContainer from './chart-container';
19
18
  import InternalChartLegend from './chart-legend';
20
19
  import { chartLegendMap, isXThreshold, isYThreshold } from './utils';
21
20
  import styles from './styles.css.js';
22
- export default function InternalMixedLineBarChart(_a) {
23
- var { fitHeight, height, xScaleType, yScaleType, xDomain, yDomain, xTickFormatter, yTickFormatter, highlightedSeries: controlledHighlightedSeries, visibleSeries: controlledVisibleSeries, series: externalSeries, onFilterChange, onHighlightChange: controlledOnHighlightChange, i18nStrings, ariaLabel, ariaLabelledby, ariaDescription, xTitle, yTitle, stackedBars, horizontalBars, hideFilter, additionalFilters, hideLegend, legendTitle, statusType, detailPopoverSize, detailPopoverFooter, detailPopoverSeriesContent, emphasizeBaselineAxis, empty, noMatch, errorText, loadingText, recoveryText, onRecoveryClick, __internalRootRef } = _a, props = __rest(_a, ["fitHeight", "height", "xScaleType", "yScaleType", "xDomain", "yDomain", "xTickFormatter", "yTickFormatter", "highlightedSeries", "visibleSeries", "series", "onFilterChange", "onHighlightChange", "i18nStrings", "ariaLabel", "ariaLabelledby", "ariaDescription", "xTitle", "yTitle", "stackedBars", "horizontalBars", "hideFilter", "additionalFilters", "hideLegend", "legendTitle", "statusType", "detailPopoverSize", "detailPopoverFooter", "detailPopoverSeriesContent", "emphasizeBaselineAxis", "empty", "noMatch", "errorText", "loadingText", "recoveryText", "onRecoveryClick", "__internalRootRef"]);
21
+ export default function InternalMixedLineBarChart({ fitHeight, height, xScaleType, yScaleType, xDomain, yDomain, xTickFormatter, yTickFormatter, highlightedSeries: controlledHighlightedSeries, visibleSeries: controlledVisibleSeries, series: externalSeries, onFilterChange, onHighlightChange: controlledOnHighlightChange, i18nStrings, ariaLabel, ariaLabelledby, ariaDescription, xTitle, yTitle, stackedBars, horizontalBars, hideFilter, additionalFilters, hideLegend, legendTitle, statusType, detailPopoverSize, detailPopoverFooter, detailPopoverSeriesContent, emphasizeBaselineAxis, empty, noMatch, errorText, loadingText, recoveryText, onRecoveryClick, __internalRootRef, ...props }) {
24
22
  const baseProps = getBaseProps(props);
25
23
  const containerRef = useRef(null);
26
24
  useEffect(() => {
@@ -113,6 +111,6 @@ export default function InternalMixedLineBarChart(_a) {
113
111
  marker: React.createElement(ChartSeriesMarker, { type: chartLegendMap[series.type], color: color }),
114
112
  datum: series,
115
113
  }));
116
- return (React.createElement(ChartWrapper, Object.assign({ ref: mergedRef }, baseProps, { className: clsx(baseProps.className, styles.root), fitHeight: !!fitHeight, contentMinHeight: height, defaultFilter: showFilters && !hideFilter ? (React.createElement(Filter, { series: filterItems, onChange: filterChange, selectedSeries: externalVisibleSeries || [], i18nStrings: i18nStrings })) : null, additionalFilters: showFilters ? additionalFilters : null, reserveFilterSpace: !!reserveFilterSpace, reserveLegendSpace: !!reserveLegendSpace, chartStatus: React.createElement(ChartStatusContainer, { isEmpty: isEmpty, isNoMatch: isNoMatch, showChart: showChart, statusType: statusType, empty: empty, noMatch: noMatch, loadingText: loadingText, errorText: errorText, recoveryText: recoveryText, onRecoveryClick: onRecoveryClick }), chart: showChart ? (React.createElement(ChartContainer, { fitHeight: fitHeight, hasFilters: !!showFilters, height: height, xScaleType: xScaleType, yScaleType: yScaleType, xDomain: xDomain, yDomain: yDomain, xTickFormatter: xTickFormatter !== null && xTickFormatter !== void 0 ? xTickFormatter : i18nStrings === null || i18nStrings === void 0 ? void 0 : i18nStrings.xTickFormatter, yTickFormatter: yTickFormatter !== null && yTickFormatter !== void 0 ? yTickFormatter : i18nStrings === null || i18nStrings === void 0 ? void 0 : i18nStrings.yTickFormatter, emphasizeBaselineAxis: emphasizeBaselineAxis, stackedBars: stackedBars, horizontalBars: horizontalBars, series: series, visibleSeries: visibleSeries, highlightedSeries: highlightedSeries, onHighlightChange: onHighlightChange, highlightedPoint: highlightedPoint, setHighlightedPoint: setHighlightedPoint, highlightedGroupIndex: highlightedGroupIndex, setHighlightedGroupIndex: setHighlightedGroupIndex, detailPopoverSize: detailPopoverSize, detailPopoverFooter: detailPopoverFooter, detailPopoverSeriesContent: detailPopoverSeriesContent, xTitle: xTitle, yTitle: yTitle, ariaLabel: ariaLabel, ariaLabelledby: ariaLabelledby, ariaDescription: ariaDescription, i18nStrings: i18nStrings })) : null, legend: showLegend ? (React.createElement(InternalChartLegend, { series: series, visibleSeries: externalVisibleSeries || [], highlightedSeries: legendSeries, onHighlightChange: onHighlightChange, legendTitle: legendTitle, ariaLabel: i18nStrings === null || i18nStrings === void 0 ? void 0 : i18nStrings.legendAriaLabel, plotContainerRef: containerRef })) : null, onBlur: onBlur })));
114
+ return (React.createElement(ChartWrapper, { ref: mergedRef, ...baseProps, className: clsx(baseProps.className, styles.root), fitHeight: !!fitHeight, contentMinHeight: height, defaultFilter: showFilters && !hideFilter ? (React.createElement(Filter, { series: filterItems, onChange: filterChange, selectedSeries: externalVisibleSeries || [], i18nStrings: i18nStrings })) : null, additionalFilters: showFilters ? additionalFilters : null, reserveFilterSpace: !!reserveFilterSpace, reserveLegendSpace: !!reserveLegendSpace, chartStatus: React.createElement(ChartStatusContainer, { isEmpty: isEmpty, isNoMatch: isNoMatch, showChart: showChart, statusType: statusType, empty: empty, noMatch: noMatch, loadingText: loadingText, errorText: errorText, recoveryText: recoveryText, onRecoveryClick: onRecoveryClick }), chart: showChart ? (React.createElement(ChartContainer, { fitHeight: fitHeight, hasFilters: !!showFilters, height: height, xScaleType: xScaleType, yScaleType: yScaleType, xDomain: xDomain, yDomain: yDomain, xTickFormatter: xTickFormatter !== null && xTickFormatter !== void 0 ? xTickFormatter : i18nStrings === null || i18nStrings === void 0 ? void 0 : i18nStrings.xTickFormatter, yTickFormatter: yTickFormatter !== null && yTickFormatter !== void 0 ? yTickFormatter : i18nStrings === null || i18nStrings === void 0 ? void 0 : i18nStrings.yTickFormatter, emphasizeBaselineAxis: emphasizeBaselineAxis, stackedBars: stackedBars, horizontalBars: horizontalBars, series: series, visibleSeries: visibleSeries, highlightedSeries: highlightedSeries, onHighlightChange: onHighlightChange, highlightedPoint: highlightedPoint, setHighlightedPoint: setHighlightedPoint, highlightedGroupIndex: highlightedGroupIndex, setHighlightedGroupIndex: setHighlightedGroupIndex, detailPopoverSize: detailPopoverSize, detailPopoverFooter: detailPopoverFooter, detailPopoverSeriesContent: detailPopoverSeriesContent, xTitle: xTitle, yTitle: yTitle, ariaLabel: ariaLabel, ariaLabelledby: ariaLabelledby, ariaDescription: ariaDescription, i18nStrings: i18nStrings })) : null, legend: showLegend ? (React.createElement(InternalChartLegend, { series: series, visibleSeries: externalVisibleSeries || [], highlightedSeries: legendSeries, onHighlightChange: onHighlightChange, legendTitle: legendTitle, ariaLabel: i18nStrings === null || i18nStrings === void 0 ? void 0 : i18nStrings.legendAriaLabel, plotContainerRef: containerRef })) : null, onBlur: onBlur }));
117
115
  }
118
116
  //# sourceMappingURL=internal.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"internal.js","sourceRoot":"","sources":["../../../src/mixed-line-bar-chart/internal.tsx"],"names":[],"mappings":"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","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport React, { useEffect, useMemo, useRef, useState } from 'react';\nimport clsx from 'clsx';\n\nimport { useMergeRefs, warnOnce } from '@cloudscape-design/component-toolkit/internal';\n\nimport { getBaseProps } from '../internal/base-component';\nimport Filter from '../internal/components/chart-filter';\nimport ChartSeriesMarker from '../internal/components/chart-series-marker';\nimport ChartStatusContainer, { getChartStatus } from '../internal/components/chart-status-container';\nimport { ChartWrapper } from '../internal/components/chart-wrapper';\nimport { fireNonCancelableEvent } from '../internal/events';\nimport { InternalBaseComponentProps } from '../internal/hooks/use-base-component';\nimport { useControllable } from '../internal/hooks/use-controllable';\nimport { usePrevious } from '../internal/hooks/use-previous';\nimport { isDevelopment } from '../internal/is-development';\nimport { SomeRequired } from '../internal/types';\nimport createCategoryColorScale from '../internal/utils/create-category-color-scale';\nimport { nodeBelongs } from '../internal/utils/node-belongs';\nimport ChartContainer from './chart-container';\nimport InternalChartLegend from './chart-legend';\nimport { ChartDataTypes, MixedLineBarChartProps } from './interfaces';\nimport { ScaledPoint } from './make-scaled-series';\nimport { chartLegendMap, isXThreshold, isYThreshold } from './utils';\n\nimport styles from './styles.css.js';\n\ntype InternalMixedLineBarChartProps<T extends ChartDataTypes> = SomeRequired<\n MixedLineBarChartProps<T>,\n | 'series'\n | 'height'\n | 'xScaleType'\n | 'yScaleType'\n | 'stackedBars'\n | 'horizontalBars'\n | 'statusType'\n | 'detailPopoverSize'\n | 'emphasizeBaselineAxis'\n> &\n InternalBaseComponentProps;\n\nexport default function InternalMixedLineBarChart<T extends number | string | Date>({\n fitHeight,\n height,\n xScaleType,\n yScaleType,\n xDomain,\n yDomain,\n xTickFormatter,\n yTickFormatter,\n highlightedSeries: controlledHighlightedSeries,\n visibleSeries: controlledVisibleSeries,\n series: externalSeries,\n onFilterChange,\n onHighlightChange: controlledOnHighlightChange,\n i18nStrings,\n ariaLabel,\n ariaLabelledby,\n ariaDescription,\n xTitle,\n yTitle,\n stackedBars,\n horizontalBars,\n hideFilter,\n additionalFilters,\n hideLegend,\n legendTitle,\n statusType,\n detailPopoverSize,\n detailPopoverFooter,\n detailPopoverSeriesContent,\n emphasizeBaselineAxis,\n empty,\n noMatch,\n errorText,\n loadingText,\n recoveryText,\n onRecoveryClick,\n __internalRootRef,\n ...props\n}: InternalMixedLineBarChartProps<T>) {\n const baseProps = getBaseProps(props);\n const containerRef = useRef<HTMLDivElement>(null);\n\n useEffect(() => {\n const gotBarSeries = externalSeries.some(s => s.type === 'bar');\n const gotLineSeries = externalSeries.some(s => s.type === 'line');\n\n if (xScaleType !== 'categorical' && gotBarSeries) {\n warnOnce(\n 'MixedLineBarChart',\n `Bar series cannot be used with a ${xScaleType} scale. Use a categorical x axis instead.`\n );\n }\n\n if (horizontalBars && gotLineSeries) {\n warnOnce(\n 'MixedLineBarChart',\n `Property horizontalBars can only be used with charts that contain only bar or threshold series.`\n );\n }\n\n for (const s of externalSeries) {\n if (s.type === 'threshold' && s.x !== undefined && s.y !== undefined) {\n warnOnce('MixedLineBarChart', `Series of type \"threshold\" must contain either x or y property.`);\n }\n if (s.type === 'threshold' && s.x === undefined && s.y === undefined) {\n warnOnce('MixedLineBarChart', `Series of type \"threshold\" must contain either x or y property.`);\n }\n }\n }, [xScaleType, horizontalBars, externalSeries]);\n\n const series = useMemo(() => {\n // Generate series colors if not explicitly provided.\n // The thresholds use a dedicated colour scale.\n const colors = createCategoryColorScale(\n externalSeries,\n it => isYThreshold(it) || isXThreshold(it),\n it => it.color || null\n );\n\n return externalSeries.map((s, i) => ({ index: i, color: colors[i], series: s }));\n }, [externalSeries]);\n\n const [highlightedPoint, setHighlightedPoint] = useState<ScaledPoint<T> | null>(null);\n const [highlightedGroupIndex, setHighlightedGroupIndex] = useState<number | null>(null);\n const [highlightedSeries = null, setHighlightedSeries] = useControllable(\n controlledHighlightedSeries,\n controlledOnHighlightChange,\n null,\n {\n componentName: 'MixedLineBarChart',\n controlledProp: 'highlightedSeries',\n changeHandler: 'onHighlightChange',\n }\n );\n const [legendSeries, setLegendSeries] = useState<MixedLineBarChartProps.ChartSeries<T> | null>(highlightedSeries);\n useEffect(() => {\n setLegendSeries(controlledHighlightedSeries || null);\n }, [controlledHighlightedSeries]);\n\n const [externalVisibleSeries, setExternalVisibleSeries] = useControllable(\n controlledVisibleSeries,\n onFilterChange,\n externalSeries,\n {\n componentName: 'MixedLineBarChart',\n controlledProp: 'visibleSeries',\n changeHandler: 'onFilterChange',\n }\n );\n\n if (isDevelopment) {\n // eslint-disable-next-line react-hooks/rules-of-hooks\n const previousSeries = usePrevious(externalSeries);\n\n const hasPrevious = !!(previousSeries && previousSeries.length);\n const hasCurrent = !!externalSeries.length;\n\n if (hasPrevious && hasCurrent && externalSeries !== previousSeries && !controlledVisibleSeries && !hideFilter) {\n warnOnce(\n 'MixedLineBarChart',\n 'The `series` value passed into the component changed. ' +\n 'This may cause problems with filtering - we recommend that you make the `series` value constant, ' +\n 'or provide a `visibleSeries` value that derives from the current `series` value.'\n );\n }\n }\n\n const visibleSeries = useMemo(\n () => series.filter(s => externalVisibleSeries?.indexOf(s.series) !== -1),\n [series, externalVisibleSeries]\n );\n\n const filterChange = (selectedSeries: ReadonlyArray<MixedLineBarChartProps.ChartSeries<T>>) => {\n setExternalVisibleSeries(selectedSeries);\n fireNonCancelableEvent(onFilterChange, {\n visibleSeries: selectedSeries,\n });\n };\n\n const onHighlightChange = (series: MixedLineBarChartProps.ChartSeries<T> | null) => {\n setHighlightedSeries(series);\n fireNonCancelableEvent(controlledOnHighlightChange, {\n highlightedSeries: series,\n });\n setLegendSeries(series);\n };\n\n const onBlur = (event: React.FocusEvent) => {\n if (event.relatedTarget && !nodeBelongs(containerRef.current, event.relatedTarget)) {\n if (highlightedSeries) {\n onHighlightChange(highlightedSeries);\n }\n setHighlightedPoint(null);\n setHighlightedGroupIndex(null);\n setLegendSeries(null);\n }\n };\n\n const { isEmpty, isNoMatch, showChart } = getChartStatus({\n externalData: externalSeries,\n visibleData: visibleSeries || [],\n statusType,\n });\n const showFilters = statusType === 'finished' && (!isEmpty || isNoMatch) && (additionalFilters || !hideFilter);\n const showLegend = !hideLegend && !isEmpty && statusType === 'finished';\n const reserveLegendSpace = !showChart && !hideLegend;\n const reserveFilterSpace = !showChart && !isNoMatch && (!hideFilter || additionalFilters);\n const mergedRef = useMergeRefs(containerRef, __internalRootRef);\n\n const filterItems = series.map(({ series, color }) => ({\n label: series.title,\n marker: <ChartSeriesMarker type={chartLegendMap[series.type]} color={color} />,\n datum: series,\n }));\n\n return (\n <ChartWrapper\n ref={mergedRef}\n {...baseProps}\n className={clsx(baseProps.className, styles.root)}\n fitHeight={!!fitHeight}\n contentMinHeight={height}\n defaultFilter={\n showFilters && !hideFilter ? (\n <Filter\n series={filterItems}\n onChange={filterChange}\n selectedSeries={externalVisibleSeries || []}\n i18nStrings={i18nStrings}\n />\n ) : null\n }\n additionalFilters={showFilters ? additionalFilters : null}\n reserveFilterSpace={!!reserveFilterSpace}\n reserveLegendSpace={!!reserveLegendSpace}\n chartStatus={\n <ChartStatusContainer\n isEmpty={isEmpty}\n isNoMatch={isNoMatch}\n showChart={showChart}\n statusType={statusType}\n empty={empty}\n noMatch={noMatch}\n loadingText={loadingText}\n errorText={errorText}\n recoveryText={recoveryText}\n onRecoveryClick={onRecoveryClick}\n />\n }\n chart={\n showChart ? (\n <ChartContainer\n fitHeight={fitHeight}\n hasFilters={!!showFilters}\n height={height}\n xScaleType={xScaleType}\n yScaleType={yScaleType}\n xDomain={xDomain}\n yDomain={yDomain}\n xTickFormatter={xTickFormatter ?? i18nStrings?.xTickFormatter}\n yTickFormatter={yTickFormatter ?? i18nStrings?.yTickFormatter}\n emphasizeBaselineAxis={emphasizeBaselineAxis}\n stackedBars={stackedBars}\n horizontalBars={horizontalBars}\n series={series}\n visibleSeries={visibleSeries}\n highlightedSeries={highlightedSeries}\n onHighlightChange={onHighlightChange}\n highlightedPoint={highlightedPoint}\n setHighlightedPoint={setHighlightedPoint}\n highlightedGroupIndex={highlightedGroupIndex}\n setHighlightedGroupIndex={setHighlightedGroupIndex}\n detailPopoverSize={detailPopoverSize}\n detailPopoverFooter={detailPopoverFooter}\n detailPopoverSeriesContent={detailPopoverSeriesContent}\n xTitle={xTitle}\n yTitle={yTitle}\n ariaLabel={ariaLabel}\n ariaLabelledby={ariaLabelledby}\n ariaDescription={ariaDescription}\n i18nStrings={i18nStrings}\n />\n ) : null\n }\n legend={\n showLegend ? (\n <InternalChartLegend\n series={series}\n visibleSeries={externalVisibleSeries || []}\n highlightedSeries={legendSeries}\n onHighlightChange={onHighlightChange}\n legendTitle={legendTitle}\n ariaLabel={i18nStrings?.legendAriaLabel}\n plotContainerRef={containerRef}\n />\n ) : null\n }\n onBlur={onBlur}\n />\n );\n}\n"]}
1
+ {"version":3,"file":"internal.js","sourceRoot":"","sources":["../../../src/mixed-line-bar-chart/internal.tsx"],"names":[],"mappings":"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","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport React, { useEffect, useMemo, useRef, useState } from 'react';\nimport clsx from 'clsx';\n\nimport { useMergeRefs, warnOnce } from '@cloudscape-design/component-toolkit/internal';\n\nimport { getBaseProps } from '../internal/base-component';\nimport Filter from '../internal/components/chart-filter';\nimport ChartSeriesMarker from '../internal/components/chart-series-marker';\nimport ChartStatusContainer, { getChartStatus } from '../internal/components/chart-status-container';\nimport { ChartWrapper } from '../internal/components/chart-wrapper';\nimport { fireNonCancelableEvent } from '../internal/events';\nimport { InternalBaseComponentProps } from '../internal/hooks/use-base-component';\nimport { useControllable } from '../internal/hooks/use-controllable';\nimport { usePrevious } from '../internal/hooks/use-previous';\nimport { isDevelopment } from '../internal/is-development';\nimport { SomeRequired } from '../internal/types';\nimport createCategoryColorScale from '../internal/utils/create-category-color-scale';\nimport { nodeBelongs } from '../internal/utils/node-belongs';\nimport ChartContainer from './chart-container';\nimport InternalChartLegend from './chart-legend';\nimport { ChartDataTypes, MixedLineBarChartProps } from './interfaces';\nimport { ScaledPoint } from './make-scaled-series';\nimport { chartLegendMap, isXThreshold, isYThreshold } from './utils';\n\nimport styles from './styles.css.js';\n\ntype InternalMixedLineBarChartProps<T extends ChartDataTypes> = SomeRequired<\n MixedLineBarChartProps<T>,\n | 'series'\n | 'height'\n | 'xScaleType'\n | 'yScaleType'\n | 'stackedBars'\n | 'horizontalBars'\n | 'statusType'\n | 'detailPopoverSize'\n | 'emphasizeBaselineAxis'\n> &\n InternalBaseComponentProps;\n\nexport default function InternalMixedLineBarChart<T extends number | string | Date>({\n fitHeight,\n height,\n xScaleType,\n yScaleType,\n xDomain,\n yDomain,\n xTickFormatter,\n yTickFormatter,\n highlightedSeries: controlledHighlightedSeries,\n visibleSeries: controlledVisibleSeries,\n series: externalSeries,\n onFilterChange,\n onHighlightChange: controlledOnHighlightChange,\n i18nStrings,\n ariaLabel,\n ariaLabelledby,\n ariaDescription,\n xTitle,\n yTitle,\n stackedBars,\n horizontalBars,\n hideFilter,\n additionalFilters,\n hideLegend,\n legendTitle,\n statusType,\n detailPopoverSize,\n detailPopoverFooter,\n detailPopoverSeriesContent,\n emphasizeBaselineAxis,\n empty,\n noMatch,\n errorText,\n loadingText,\n recoveryText,\n onRecoveryClick,\n __internalRootRef,\n ...props\n}: InternalMixedLineBarChartProps<T>) {\n const baseProps = getBaseProps(props);\n const containerRef = useRef<HTMLDivElement>(null);\n\n useEffect(() => {\n const gotBarSeries = externalSeries.some(s => s.type === 'bar');\n const gotLineSeries = externalSeries.some(s => s.type === 'line');\n\n if (xScaleType !== 'categorical' && gotBarSeries) {\n warnOnce(\n 'MixedLineBarChart',\n `Bar series cannot be used with a ${xScaleType} scale. Use a categorical x axis instead.`\n );\n }\n\n if (horizontalBars && gotLineSeries) {\n warnOnce(\n 'MixedLineBarChart',\n `Property horizontalBars can only be used with charts that contain only bar or threshold series.`\n );\n }\n\n for (const s of externalSeries) {\n if (s.type === 'threshold' && s.x !== undefined && s.y !== undefined) {\n warnOnce('MixedLineBarChart', `Series of type \"threshold\" must contain either x or y property.`);\n }\n if (s.type === 'threshold' && s.x === undefined && s.y === undefined) {\n warnOnce('MixedLineBarChart', `Series of type \"threshold\" must contain either x or y property.`);\n }\n }\n }, [xScaleType, horizontalBars, externalSeries]);\n\n const series = useMemo(() => {\n // Generate series colors if not explicitly provided.\n // The thresholds use a dedicated colour scale.\n const colors = createCategoryColorScale(\n externalSeries,\n it => isYThreshold(it) || isXThreshold(it),\n it => it.color || null\n );\n\n return externalSeries.map((s, i) => ({ index: i, color: colors[i], series: s }));\n }, [externalSeries]);\n\n const [highlightedPoint, setHighlightedPoint] = useState<ScaledPoint<T> | null>(null);\n const [highlightedGroupIndex, setHighlightedGroupIndex] = useState<number | null>(null);\n const [highlightedSeries = null, setHighlightedSeries] = useControllable(\n controlledHighlightedSeries,\n controlledOnHighlightChange,\n null,\n {\n componentName: 'MixedLineBarChart',\n controlledProp: 'highlightedSeries',\n changeHandler: 'onHighlightChange',\n }\n );\n const [legendSeries, setLegendSeries] = useState<MixedLineBarChartProps.ChartSeries<T> | null>(highlightedSeries);\n useEffect(() => {\n setLegendSeries(controlledHighlightedSeries || null);\n }, [controlledHighlightedSeries]);\n\n const [externalVisibleSeries, setExternalVisibleSeries] = useControllable(\n controlledVisibleSeries,\n onFilterChange,\n externalSeries,\n {\n componentName: 'MixedLineBarChart',\n controlledProp: 'visibleSeries',\n changeHandler: 'onFilterChange',\n }\n );\n\n if (isDevelopment) {\n // eslint-disable-next-line react-hooks/rules-of-hooks\n const previousSeries = usePrevious(externalSeries);\n\n const hasPrevious = !!(previousSeries && previousSeries.length);\n const hasCurrent = !!externalSeries.length;\n\n if (hasPrevious && hasCurrent && externalSeries !== previousSeries && !controlledVisibleSeries && !hideFilter) {\n warnOnce(\n 'MixedLineBarChart',\n 'The `series` value passed into the component changed. ' +\n 'This may cause problems with filtering - we recommend that you make the `series` value constant, ' +\n 'or provide a `visibleSeries` value that derives from the current `series` value.'\n );\n }\n }\n\n const visibleSeries = useMemo(\n () => series.filter(s => externalVisibleSeries?.indexOf(s.series) !== -1),\n [series, externalVisibleSeries]\n );\n\n const filterChange = (selectedSeries: ReadonlyArray<MixedLineBarChartProps.ChartSeries<T>>) => {\n setExternalVisibleSeries(selectedSeries);\n fireNonCancelableEvent(onFilterChange, {\n visibleSeries: selectedSeries,\n });\n };\n\n const onHighlightChange = (series: MixedLineBarChartProps.ChartSeries<T> | null) => {\n setHighlightedSeries(series);\n fireNonCancelableEvent(controlledOnHighlightChange, {\n highlightedSeries: series,\n });\n setLegendSeries(series);\n };\n\n const onBlur = (event: React.FocusEvent) => {\n if (event.relatedTarget && !nodeBelongs(containerRef.current, event.relatedTarget)) {\n if (highlightedSeries) {\n onHighlightChange(highlightedSeries);\n }\n setHighlightedPoint(null);\n setHighlightedGroupIndex(null);\n setLegendSeries(null);\n }\n };\n\n const { isEmpty, isNoMatch, showChart } = getChartStatus({\n externalData: externalSeries,\n visibleData: visibleSeries || [],\n statusType,\n });\n const showFilters = statusType === 'finished' && (!isEmpty || isNoMatch) && (additionalFilters || !hideFilter);\n const showLegend = !hideLegend && !isEmpty && statusType === 'finished';\n const reserveLegendSpace = !showChart && !hideLegend;\n const reserveFilterSpace = !showChart && !isNoMatch && (!hideFilter || additionalFilters);\n const mergedRef = useMergeRefs(containerRef, __internalRootRef);\n\n const filterItems = series.map(({ series, color }) => ({\n label: series.title,\n marker: <ChartSeriesMarker type={chartLegendMap[series.type]} color={color} />,\n datum: series,\n }));\n\n return (\n <ChartWrapper\n ref={mergedRef}\n {...baseProps}\n className={clsx(baseProps.className, styles.root)}\n fitHeight={!!fitHeight}\n contentMinHeight={height}\n defaultFilter={\n showFilters && !hideFilter ? (\n <Filter\n series={filterItems}\n onChange={filterChange}\n selectedSeries={externalVisibleSeries || []}\n i18nStrings={i18nStrings}\n />\n ) : null\n }\n additionalFilters={showFilters ? additionalFilters : null}\n reserveFilterSpace={!!reserveFilterSpace}\n reserveLegendSpace={!!reserveLegendSpace}\n chartStatus={\n <ChartStatusContainer\n isEmpty={isEmpty}\n isNoMatch={isNoMatch}\n showChart={showChart}\n statusType={statusType}\n empty={empty}\n noMatch={noMatch}\n loadingText={loadingText}\n errorText={errorText}\n recoveryText={recoveryText}\n onRecoveryClick={onRecoveryClick}\n />\n }\n chart={\n showChart ? (\n <ChartContainer\n fitHeight={fitHeight}\n hasFilters={!!showFilters}\n height={height}\n xScaleType={xScaleType}\n yScaleType={yScaleType}\n xDomain={xDomain}\n yDomain={yDomain}\n xTickFormatter={xTickFormatter ?? i18nStrings?.xTickFormatter}\n yTickFormatter={yTickFormatter ?? i18nStrings?.yTickFormatter}\n emphasizeBaselineAxis={emphasizeBaselineAxis}\n stackedBars={stackedBars}\n horizontalBars={horizontalBars}\n series={series}\n visibleSeries={visibleSeries}\n highlightedSeries={highlightedSeries}\n onHighlightChange={onHighlightChange}\n highlightedPoint={highlightedPoint}\n setHighlightedPoint={setHighlightedPoint}\n highlightedGroupIndex={highlightedGroupIndex}\n setHighlightedGroupIndex={setHighlightedGroupIndex}\n detailPopoverSize={detailPopoverSize}\n detailPopoverFooter={detailPopoverFooter}\n detailPopoverSeriesContent={detailPopoverSeriesContent}\n xTitle={xTitle}\n yTitle={yTitle}\n ariaLabel={ariaLabel}\n ariaLabelledby={ariaLabelledby}\n ariaDescription={ariaDescription}\n i18nStrings={i18nStrings}\n />\n ) : null\n }\n legend={\n showLegend ? (\n <InternalChartLegend\n series={series}\n visibleSeries={externalVisibleSeries || []}\n highlightedSeries={legendSeries}\n onHighlightChange={onHighlightChange}\n legendTitle={legendTitle}\n ariaLabel={i18nStrings?.legendAriaLabel}\n plotContainerRef={containerRef}\n />\n ) : null\n }\n onBlur={onBlur}\n />\n );\n}\n"]}
@@ -20,14 +20,14 @@ export default function LineSeries({ axis, series, color, xScale, yScale, chartA
20
20
  .y((d) => yScale.d3Scale(d.y) || 0);
21
21
  // Filter out any data that is not part of the xScale
22
22
  const visibleData = series.data.filter(({ x }) => xScale.d3Scale(x) !== undefined);
23
- return (React.createElement("path", Object.assign({}, commonProps, { d: lineGenerator(visibleData) || '' })));
23
+ return (React.createElement("path", { ...commonProps, d: lineGenerator(visibleData) || '' }));
24
24
  }
25
25
  // Render a horizontal line (vertical if chart orientation is inverted).
26
26
  else if (isYThreshold(series)) {
27
27
  const [x1, x2] = xScale.d3Scale.range();
28
28
  const y = yScale.d3Scale(series.y);
29
29
  const coordinates = axis === 'x' ? { x1, x2, y1: y, y2: y } : { x1: y, x2: y, y1: x1, y2: x2 };
30
- return React.createElement("line", Object.assign({}, commonProps, coordinates));
30
+ return React.createElement("line", { ...commonProps, ...coordinates });
31
31
  }
32
32
  // Render a vertical line (horizontal if chart orientation is inverted).
33
33
  // The offset is necessary for categorical scale to render the line in the middle of the category bar.
@@ -36,7 +36,7 @@ export default function LineSeries({ axis, series, color, xScale, yScale, chartA
36
36
  const xOffset = xScale.isCategorical() ? Math.max(0, xScale.d3Scale.bandwidth() - 1) / 2 : 0;
37
37
  const x = ((_a = xScale.d3Scale(series.x)) !== null && _a !== void 0 ? _a : NaN) + xOffset;
38
38
  const coordinates = axis === 'x' ? { x1: x, x2: x, y1, y2 } : { x1: y1, x2: y2, y1: x, y2: x };
39
- return React.createElement("line", Object.assign({}, commonProps, coordinates));
39
+ return React.createElement("line", { ...commonProps, ...coordinates });
40
40
  }
41
41
  // Bar series are handled separately.
42
42
  else {
@@ -1 +1 @@
1
- {"version":3,"file":"line-series.js","sourceRoot":"","sources":["../../../src/mixed-line-bar-chart/line-series.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 from 'react';\nimport { line } from 'd3-shape';\n\nimport { ChartScale, NumericChartScale } from '../internal/components/cartesian-chart/scales';\nimport { MixedLineBarChartProps } from './interfaces';\nimport { isXThreshold, isYThreshold } from './utils';\n\ninterface LineSeriesProps<T> {\n axis: 'x' | 'y';\n series: MixedLineBarChartProps.LineDataSeries<T> | MixedLineBarChartProps.ThresholdSeries<T>;\n\n color: string;\n chartAreaClipPath: string;\n\n xScale: ChartScale;\n yScale: NumericChartScale;\n}\n\nexport default function LineSeries<T>({ axis, series, color, xScale, yScale, chartAreaClipPath }: LineSeriesProps<T>) {\n const commonProps = { 'aria-hidden': true, stroke: color, clipPath: `url(#${chartAreaClipPath})` };\n\n // Render data path. The chart orientation is ignored as only horizontally-oriented lines are supported.\n if (series.type === 'line') {\n const lineGenerator = line<MixedLineBarChartProps.Datum<T>>()\n .x((d: MixedLineBarChartProps.Datum<T>) => {\n let x = xScale.d3Scale(d.x as any) || 0;\n if (xScale.isCategorical()) {\n const offset = Math.max(0, xScale.d3Scale.bandwidth() - 1) / 2;\n x += offset;\n }\n return x;\n })\n .y((d: MixedLineBarChartProps.Datum<T>) => yScale.d3Scale(d.y) || 0);\n\n // Filter out any data that is not part of the xScale\n const visibleData = series.data.filter(({ x }) => xScale.d3Scale(x as any) !== undefined);\n\n return (\n <path\n {...commonProps}\n d={lineGenerator(visibleData as unknown as Array<MixedLineBarChartProps.Datum<T>>) || ''}\n />\n );\n }\n // Render a horizontal line (vertical if chart orientation is inverted).\n else if (isYThreshold(series)) {\n const [x1, x2] = xScale.d3Scale.range();\n const y = yScale.d3Scale(series.y);\n const coordinates = axis === 'x' ? { x1, x2, y1: y, y2: y } : { x1: y, x2: y, y1: x1, y2: x2 };\n return <line {...commonProps} {...coordinates} />;\n }\n // Render a vertical line (horizontal if chart orientation is inverted).\n // The offset is necessary for categorical scale to render the line in the middle of the category bar.\n else if (isXThreshold(series)) {\n const [y1, y2] = yScale.d3Scale.range();\n const xOffset = xScale.isCategorical() ? Math.max(0, xScale.d3Scale.bandwidth() - 1) / 2 : 0;\n const x = (xScale.d3Scale(series.x as any) ?? NaN) + xOffset;\n const coordinates = axis === 'x' ? { x1: x, x2: x, y1, y2 } : { x1: y1, x2: y2, y1: x, y2: x };\n return <line {...commonProps} {...coordinates} />;\n }\n // Bar series are handled separately.\n else {\n return null;\n }\n}\n"]}
1
+ {"version":3,"file":"line-series.js","sourceRoot":"","sources":["../../../src/mixed-line-bar-chart/line-series.tsx"],"names":[],"mappings":"AAAA,qEAAqE;AACrE,sCAAsC;AACtC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AAIhC,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAarD,MAAM,CAAC,OAAO,UAAU,UAAU,CAAI,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,iBAAiB,EAAsB;;IAClH,MAAM,WAAW,GAAG,EAAE,aAAa,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,iBAAiB,GAAG,EAAE,CAAC;IAEnG,wGAAwG;IACxG,IAAI,MAAM,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;QAC3B,MAAM,aAAa,GAAG,IAAI,EAAmC;aAC1D,CAAC,CAAC,CAAC,CAAkC,EAAE,EAAE;YACxC,IAAI,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAQ,CAAC,IAAI,CAAC,CAAC;YACxC,IAAI,MAAM,CAAC,aAAa,EAAE,EAAE,CAAC;gBAC3B,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,OAAO,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;gBAC/D,CAAC,IAAI,MAAM,CAAC;YACd,CAAC;YACD,OAAO,CAAC,CAAC;QACX,CAAC,CAAC;aACD,CAAC,CAAC,CAAC,CAAkC,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;QAEvE,qDAAqD;QACrD,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,CAAQ,CAAC,KAAK,SAAS,CAAC,CAAC;QAE1F,OAAO,CACL,iCACM,WAAW,EACf,CAAC,EAAE,aAAa,CAAC,WAAgE,CAAC,IAAI,EAAE,GACxF,CACH,CAAC;IACJ,CAAC;IACD,wEAAwE;SACnE,IAAI,YAAY,CAAC,MAAM,CAAC,EAAE,CAAC;QAC9B,MAAM,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;QACxC,MAAM,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QACnC,MAAM,WAAW,GAAG,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;QAC/F,OAAO,iCAAU,WAAW,KAAM,WAAW,GAAI,CAAC;IACpD,CAAC;IACD,wEAAwE;IACxE,sGAAsG;SACjG,IAAI,YAAY,CAAC,MAAM,CAAC,EAAE,CAAC;QAC9B,MAAM,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;QACxC,MAAM,OAAO,GAAG,MAAM,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,OAAO,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC7F,MAAM,CAAC,GAAG,CAAC,MAAA,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAQ,CAAC,mCAAI,GAAG,CAAC,GAAG,OAAO,CAAC;QAC7D,MAAM,WAAW,GAAG,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC;QAC/F,OAAO,iCAAU,WAAW,KAAM,WAAW,GAAI,CAAC;IACpD,CAAC;IACD,qCAAqC;SAChC,CAAC;QACJ,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport React from 'react';\nimport { line } from 'd3-shape';\n\nimport { ChartScale, NumericChartScale } from '../internal/components/cartesian-chart/scales';\nimport { MixedLineBarChartProps } from './interfaces';\nimport { isXThreshold, isYThreshold } from './utils';\n\ninterface LineSeriesProps<T> {\n axis: 'x' | 'y';\n series: MixedLineBarChartProps.LineDataSeries<T> | MixedLineBarChartProps.ThresholdSeries<T>;\n\n color: string;\n chartAreaClipPath: string;\n\n xScale: ChartScale;\n yScale: NumericChartScale;\n}\n\nexport default function LineSeries<T>({ axis, series, color, xScale, yScale, chartAreaClipPath }: LineSeriesProps<T>) {\n const commonProps = { 'aria-hidden': true, stroke: color, clipPath: `url(#${chartAreaClipPath})` };\n\n // Render data path. The chart orientation is ignored as only horizontally-oriented lines are supported.\n if (series.type === 'line') {\n const lineGenerator = line<MixedLineBarChartProps.Datum<T>>()\n .x((d: MixedLineBarChartProps.Datum<T>) => {\n let x = xScale.d3Scale(d.x as any) || 0;\n if (xScale.isCategorical()) {\n const offset = Math.max(0, xScale.d3Scale.bandwidth() - 1) / 2;\n x += offset;\n }\n return x;\n })\n .y((d: MixedLineBarChartProps.Datum<T>) => yScale.d3Scale(d.y) || 0);\n\n // Filter out any data that is not part of the xScale\n const visibleData = series.data.filter(({ x }) => xScale.d3Scale(x as any) !== undefined);\n\n return (\n <path\n {...commonProps}\n d={lineGenerator(visibleData as unknown as Array<MixedLineBarChartProps.Datum<T>>) || ''}\n />\n );\n }\n // Render a horizontal line (vertical if chart orientation is inverted).\n else if (isYThreshold(series)) {\n const [x1, x2] = xScale.d3Scale.range();\n const y = yScale.d3Scale(series.y);\n const coordinates = axis === 'x' ? { x1, x2, y1: y, y2: y } : { x1: y, x2: y, y1: x1, y2: x2 };\n return <line {...commonProps} {...coordinates} />;\n }\n // Render a vertical line (horizontal if chart orientation is inverted).\n // The offset is necessary for categorical scale to render the line in the middle of the category bar.\n else if (isXThreshold(series)) {\n const [y1, y2] = yScale.d3Scale.range();\n const xOffset = xScale.isCategorical() ? Math.max(0, xScale.d3Scale.bandwidth() - 1) / 2 : 0;\n const x = (xScale.d3Scale(series.x as any) ?? NaN) + xOffset;\n const coordinates = axis === 'x' ? { x1: x, x2: x, y1, y2 } : { x1: y1, x2: y2, y1: x, y2: x };\n return <line {...commonProps} {...coordinates} />;\n }\n // Bar series are handled separately.\n else {\n return null;\n }\n}\n"]}
@@ -1,7 +1,6 @@
1
1
  // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
2
2
  // SPDX-License-Identifier: Apache-2.0
3
3
  'use client';
4
- import { __rest } from "tslib";
5
4
  import React from 'react';
6
5
  import { useUniqueId } from '@cloudscape-design/component-toolkit/internal';
7
6
  import { AnalyticsFunnel, AnalyticsFunnelStep, AnalyticsFunnelSubStep, } from '../internal/analytics/components/analytics-funnel';
@@ -12,8 +11,7 @@ import useBaseComponent from '../internal/hooks/use-base-component';
12
11
  import { applyDisplayName } from '../internal/utils/apply-display-name';
13
12
  import InternalModal, { InternalModalAsFunnel } from './internal';
14
13
  import styles from './styles.css.js';
15
- function ModalWithAnalyticsFunnel(_a) {
16
- var { analyticsMetadata, baseComponentProps, size = 'medium' } = _a, props = __rest(_a, ["analyticsMetadata", "baseComponentProps", "size"]);
14
+ function ModalWithAnalyticsFunnel({ analyticsMetadata, baseComponentProps, size = 'medium', ...props }) {
17
15
  const modalId = useUniqueId();
18
16
  const dataAttributes = {
19
17
  [DATA_ATTR_MODAL_ID]: modalId,
@@ -26,10 +24,9 @@ function ModalWithAnalyticsFunnel(_a) {
26
24
  } },
27
25
  React.createElement(AnalyticsFunnelStep, { mounted: props.visible, stepIdentifier: analyticsMetadata === null || analyticsMetadata === void 0 ? void 0 : analyticsMetadata.instanceIdentifier, stepErrorContext: analyticsMetadata === null || analyticsMetadata === void 0 ? void 0 : analyticsMetadata.errorContext, stepNumber: 1 },
28
26
  React.createElement(AnalyticsFunnelSubStep, { subStepIdentifier: analyticsMetadata === null || analyticsMetadata === void 0 ? void 0 : analyticsMetadata.instanceIdentifier, subStepErrorContext: analyticsMetadata === null || analyticsMetadata === void 0 ? void 0 : analyticsMetadata.errorContext },
29
- React.createElement(InternalModalAsFunnel, Object.assign({ size: size }, props, baseComponentProps, dataAttributes, { __injectAnalyticsComponentMetadata: true }))))));
27
+ React.createElement(InternalModalAsFunnel, { size: size, ...props, ...baseComponentProps, ...dataAttributes, __injectAnalyticsComponentMetadata: true })))));
30
28
  }
31
- export default function Modal(_a) {
32
- var { size = 'medium' } = _a, props = __rest(_a, ["size"]);
29
+ export default function Modal({ size = 'medium', ...props }) {
33
30
  const { isInFunnel } = useFunnel();
34
31
  const analyticsMetadata = getAnalyticsMetadataProps(props);
35
32
  const baseComponentProps = useBaseComponent('Modal', {
@@ -44,9 +41,9 @@ export default function Modal(_a) {
44
41
  },
45
42
  }, analyticsMetadata);
46
43
  if (!isInFunnel) {
47
- return (React.createElement(ModalWithAnalyticsFunnel, Object.assign({ analyticsMetadata: analyticsMetadata, baseComponentProps: baseComponentProps, size: size }, props)));
44
+ return (React.createElement(ModalWithAnalyticsFunnel, { analyticsMetadata: analyticsMetadata, baseComponentProps: baseComponentProps, size: size, ...props }));
48
45
  }
49
- return React.createElement(InternalModal, Object.assign({ size: size }, props, baseComponentProps, { __injectAnalyticsComponentMetadata: true }));
46
+ return React.createElement(InternalModal, { size: size, ...props, ...baseComponentProps, __injectAnalyticsComponentMetadata: true });
50
47
  }
51
48
  applyDisplayName(Modal, 'Modal');
52
49
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/modal/index.tsx"],"names":[],"mappings":"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","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\n'use client';\nimport React from 'react';\n\nimport { useUniqueId } from '@cloudscape-design/component-toolkit/internal';\n\nimport {\n AnalyticsFunnel,\n AnalyticsFunnelStep,\n AnalyticsFunnelSubStep,\n} from '../internal/analytics/components/analytics-funnel';\nimport { useFunnel } from '../internal/analytics/hooks/use-funnel';\nimport { DATA_ATTR_MODAL_ID } from '../internal/analytics/selectors';\nimport { BasePropsWithAnalyticsMetadata, getAnalyticsMetadataProps } from '../internal/base-component';\nimport useBaseComponent from '../internal/hooks/use-base-component';\nimport { applyDisplayName } from '../internal/utils/apply-display-name';\nimport { ModalProps } from './interfaces';\nimport InternalModal, { InternalModalAsFunnel } from './internal';\n\nimport styles from './styles.css.js';\n\nexport { ModalProps };\n\nfunction ModalWithAnalyticsFunnel({\n analyticsMetadata,\n baseComponentProps,\n size = 'medium',\n ...props\n}: ModalProps & { analyticsMetadata: any; baseComponentProps: ReturnType<typeof useBaseComponent> }) {\n const modalId = useUniqueId();\n const dataAttributes = {\n [DATA_ATTR_MODAL_ID]: modalId,\n };\n\n return (\n <AnalyticsFunnel\n mounted={props.visible}\n funnelIdentifier={analyticsMetadata?.instanceIdentifier}\n funnelFlowType={analyticsMetadata?.flowType}\n funnelErrorContext={analyticsMetadata?.errorContext}\n funnelResourceType={analyticsMetadata?.resourceType}\n funnelType=\"modal\"\n optionalStepNumbers={[]}\n totalFunnelSteps={1}\n funnelNameSelectors={() => [\n `[${DATA_ATTR_MODAL_ID}=\"${window?.CSS?.escape(modalId)}\"] .${styles['header--text']}`,\n ]}\n >\n <AnalyticsFunnelStep\n mounted={props.visible}\n stepIdentifier={analyticsMetadata?.instanceIdentifier}\n stepErrorContext={analyticsMetadata?.errorContext}\n stepNumber={1}\n >\n <AnalyticsFunnelSubStep\n subStepIdentifier={analyticsMetadata?.instanceIdentifier}\n subStepErrorContext={analyticsMetadata?.errorContext}\n >\n <InternalModalAsFunnel\n size={size}\n {...props}\n {...baseComponentProps}\n {...dataAttributes}\n __injectAnalyticsComponentMetadata={true}\n />\n </AnalyticsFunnelSubStep>\n </AnalyticsFunnelStep>\n </AnalyticsFunnel>\n );\n}\n\nexport default function Modal({ size = 'medium', ...props }: ModalProps) {\n const { isInFunnel } = useFunnel();\n const analyticsMetadata = getAnalyticsMetadataProps(props as BasePropsWithAnalyticsMetadata);\n const baseComponentProps = useBaseComponent(\n 'Modal',\n {\n props: {\n size,\n disableContentPaddings: props.disableContentPaddings,\n flowType: analyticsMetadata.flowType,\n },\n metadata: {\n hasResourceType: Boolean(analyticsMetadata?.resourceType),\n hasInstanceIdentifier: Boolean(analyticsMetadata?.instanceIdentifier),\n },\n },\n analyticsMetadata\n );\n\n if (!isInFunnel) {\n return (\n <ModalWithAnalyticsFunnel\n analyticsMetadata={analyticsMetadata}\n baseComponentProps={baseComponentProps}\n size={size}\n {...props}\n />\n );\n }\n\n return <InternalModal size={size} {...props} {...baseComponentProps} __injectAnalyticsComponentMetadata={true} />;\n}\n\napplyDisplayName(Modal, 'Modal');\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/modal/index.tsx"],"names":[],"mappings":"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","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\n'use client';\nimport React from 'react';\n\nimport { useUniqueId } from '@cloudscape-design/component-toolkit/internal';\n\nimport {\n AnalyticsFunnel,\n AnalyticsFunnelStep,\n AnalyticsFunnelSubStep,\n} from '../internal/analytics/components/analytics-funnel';\nimport { useFunnel } from '../internal/analytics/hooks/use-funnel';\nimport { DATA_ATTR_MODAL_ID } from '../internal/analytics/selectors';\nimport { BasePropsWithAnalyticsMetadata, getAnalyticsMetadataProps } from '../internal/base-component';\nimport useBaseComponent from '../internal/hooks/use-base-component';\nimport { applyDisplayName } from '../internal/utils/apply-display-name';\nimport { ModalProps } from './interfaces';\nimport InternalModal, { InternalModalAsFunnel } from './internal';\n\nimport styles from './styles.css.js';\n\nexport { ModalProps };\n\nfunction ModalWithAnalyticsFunnel({\n analyticsMetadata,\n baseComponentProps,\n size = 'medium',\n ...props\n}: ModalProps & { analyticsMetadata: any; baseComponentProps: ReturnType<typeof useBaseComponent> }) {\n const modalId = useUniqueId();\n const dataAttributes = {\n [DATA_ATTR_MODAL_ID]: modalId,\n };\n\n return (\n <AnalyticsFunnel\n mounted={props.visible}\n funnelIdentifier={analyticsMetadata?.instanceIdentifier}\n funnelFlowType={analyticsMetadata?.flowType}\n funnelErrorContext={analyticsMetadata?.errorContext}\n funnelResourceType={analyticsMetadata?.resourceType}\n funnelType=\"modal\"\n optionalStepNumbers={[]}\n totalFunnelSteps={1}\n funnelNameSelectors={() => [\n `[${DATA_ATTR_MODAL_ID}=\"${window?.CSS?.escape(modalId)}\"] .${styles['header--text']}`,\n ]}\n >\n <AnalyticsFunnelStep\n mounted={props.visible}\n stepIdentifier={analyticsMetadata?.instanceIdentifier}\n stepErrorContext={analyticsMetadata?.errorContext}\n stepNumber={1}\n >\n <AnalyticsFunnelSubStep\n subStepIdentifier={analyticsMetadata?.instanceIdentifier}\n subStepErrorContext={analyticsMetadata?.errorContext}\n >\n <InternalModalAsFunnel\n size={size}\n {...props}\n {...baseComponentProps}\n {...dataAttributes}\n __injectAnalyticsComponentMetadata={true}\n />\n </AnalyticsFunnelSubStep>\n </AnalyticsFunnelStep>\n </AnalyticsFunnel>\n );\n}\n\nexport default function Modal({ size = 'medium', ...props }: ModalProps) {\n const { isInFunnel } = useFunnel();\n const analyticsMetadata = getAnalyticsMetadataProps(props as BasePropsWithAnalyticsMetadata);\n const baseComponentProps = useBaseComponent(\n 'Modal',\n {\n props: {\n size,\n disableContentPaddings: props.disableContentPaddings,\n flowType: analyticsMetadata.flowType,\n },\n metadata: {\n hasResourceType: Boolean(analyticsMetadata?.resourceType),\n hasInstanceIdentifier: Boolean(analyticsMetadata?.instanceIdentifier),\n },\n },\n analyticsMetadata\n );\n\n if (!isInFunnel) {\n return (\n <ModalWithAnalyticsFunnel\n analyticsMetadata={analyticsMetadata}\n baseComponentProps={baseComponentProps}\n size={size}\n {...props}\n />\n );\n }\n\n return <InternalModal size={size} {...props} {...baseComponentProps} __injectAnalyticsComponentMetadata={true} />;\n}\n\napplyDisplayName(Modal, 'Modal');\n"]}
@@ -1,4 +1,3 @@
1
- import { __rest } 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 React, { useEffect, useRef } from 'react';
@@ -35,18 +34,16 @@ export function InternalModalAsFunnel(props) {
35
34
  funnelSubmit();
36
35
  }
37
36
  };
38
- return (React.createElement(InternalModal, Object.assign({ __funnelProps: funnelProps, __funnelStepProps: funnelStepProps, __subStepRef: subStepRef, __subStepFunnelProps: funnelSubStepProps, onButtonClick: onButtonClick }, props)));
37
+ return (React.createElement(InternalModal, { __funnelProps: funnelProps, __funnelStepProps: funnelStepProps, __subStepRef: subStepRef, __subStepFunnelProps: funnelSubStepProps, onButtonClick: onButtonClick, ...props }));
39
38
  }
40
- export default function InternalModal(_a) {
41
- var { modalRoot, getModalRoot, removeModalRoot } = _a, rest = __rest(_a, ["modalRoot", "getModalRoot", "removeModalRoot"]);
39
+ export default function InternalModal({ modalRoot, getModalRoot, removeModalRoot, ...rest }) {
42
40
  return (React.createElement(Portal, { container: modalRoot, getContainer: getModalRoot, removeContainer: removeModalRoot },
43
- React.createElement(PortaledModal, Object.assign({}, rest))));
41
+ React.createElement(PortaledModal, { ...rest })));
44
42
  }
45
43
  // Separate component to prevent the Portal from getting in the way of refs, as it needs extra cycles to render the inner components.
46
44
  // useContainerQuery needs its targeted element to exist on the first render in order to work properly.
47
- function PortaledModal(_a) {
48
- var _b;
49
- var { size, visible, header, children, footer, disableContentPaddings, onButtonClick = () => { }, onDismiss, __internalRootRef, __injectAnalyticsComponentMetadata, __funnelProps, __funnelStepProps, __subStepRef, __subStepFunnelProps, referrerId } = _a, rest = __rest(_a, ["size", "visible", "header", "children", "footer", "disableContentPaddings", "onButtonClick", "onDismiss", "__internalRootRef", "__injectAnalyticsComponentMetadata", "__funnelProps", "__funnelStepProps", "__subStepRef", "__subStepFunnelProps", "referrerId"]);
45
+ function PortaledModal({ size, visible, header, children, footer, disableContentPaddings, onButtonClick = () => { }, onDismiss, __internalRootRef, __injectAnalyticsComponentMetadata, __funnelProps, __funnelStepProps, __subStepRef, __subStepFunnelProps, referrerId, ...rest }) {
46
+ var _a;
50
47
  const instanceUniqueId = useUniqueId();
51
48
  const headerId = `${rest.id || instanceUniqueId}-header`;
52
49
  const lastMouseDownElementRef = useRef(null);
@@ -152,17 +149,17 @@ function PortaledModal(_a) {
152
149
  componentLoadingCount,
153
150
  emitTimeToContentReadyInModal,
154
151
  } },
155
- React.createElement("div", Object.assign({}, baseProps, __funnelProps, __funnelStepProps, { className: clsx(styles.root, { [styles.hidden]: !visible }, baseProps.className, isRefresh && styles.refresh), role: "dialog", "aria-labelledby": headerId, onMouseDown: onOverlayMouseDown, onClick: onOverlayClick, ref: mergedRef, style: footerHeight ? { scrollPaddingBottom: footerHeight } : undefined, "data-awsui-referrer-id": ((_b = subStepRef.current) === null || _b === void 0 ? void 0 : _b.id) || referrerId }),
152
+ React.createElement("div", { ...baseProps, ...__funnelProps, ...__funnelStepProps, className: clsx(styles.root, { [styles.hidden]: !visible }, baseProps.className, isRefresh && styles.refresh), role: "dialog", "aria-labelledby": headerId, onMouseDown: onOverlayMouseDown, onClick: onOverlayClick, ref: mergedRef, style: footerHeight ? { scrollPaddingBottom: footerHeight } : undefined, "data-awsui-referrer-id": ((_a = subStepRef.current) === null || _a === void 0 ? void 0 : _a.id) || referrerId },
156
153
  React.createElement(FocusLock, { disabled: !visible, autoFocus: true, restoreFocus: true, className: styles['focus-lock'] },
157
- React.createElement("div", Object.assign({ className: clsx(styles.dialog, styles[size], styles[`breakpoint-${breakpoint}`], isRefresh && styles.refresh), onKeyDown: escKeyHandler }, metadataAttribute),
154
+ React.createElement("div", { className: clsx(styles.dialog, styles[size], styles[`breakpoint-${breakpoint}`], isRefresh && styles.refresh), onKeyDown: escKeyHandler, ...metadataAttribute },
158
155
  React.createElement("div", { className: styles.container },
159
156
  React.createElement("div", { className: clsx(styles.header, analyticsSelectors.header) },
160
- React.createElement(InternalHeader, { variant: "h2", __disableActionsWrapping: true, actions: React.createElement("div", Object.assign({}, getAnalyticsMetadataAttribute({
161
- action: 'dismiss',
162
- })),
157
+ React.createElement(InternalHeader, { variant: "h2", __disableActionsWrapping: true, actions: React.createElement("div", { ...getAnalyticsMetadataAttribute({
158
+ action: 'dismiss',
159
+ }) },
163
160
  React.createElement(InternalButton, { ariaLabel: closeAriaLabel, className: styles['dismiss-control'], variant: "modal-dismiss", iconName: "close", formAction: "none", onClick: onCloseButtonClick })) },
164
161
  React.createElement("span", { ref: headerRef, id: headerId, className: styles['header--text'] }, header))),
165
- React.createElement("div", Object.assign({ ref: __subStepRef }, __subStepFunnelProps, { className: clsx(styles.content, { [styles['no-paddings']]: disableContentPaddings }) }),
162
+ React.createElement("div", { ref: __subStepRef, ...__subStepFunnelProps, className: clsx(styles.content, { [styles['no-paddings']]: disableContentPaddings }) },
166
163
  children,
167
164
  React.createElement("div", { ref: stickySentinelRef })),
168
165
  footer && (React.createElement(ButtonContext.Provider, { value: { onClick: onButtonClick } },
@@ -1 +1 @@
1
- {"version":3,"file":"internal.js","sourceRoot":"","sources":["../../../src/modal/internal.tsx"],"names":[],"mappings":"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","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport React, { useEffect, useRef } from 'react';\nimport clsx from 'clsx';\n\nimport { useContainerQuery } from '@cloudscape-design/component-toolkit';\nimport { Portal, useMergeRefs, useUniqueId } from '@cloudscape-design/component-toolkit/internal';\nimport { getAnalyticsMetadataAttribute } from '@cloudscape-design/component-toolkit/internal/analytics-metadata';\n\nimport { InternalButton } from '../button/internal';\nimport InternalHeader from '../header/internal';\nimport { useInternalI18n } from '../i18n/context';\nimport { PerformanceMetrics } from '../internal/analytics';\nimport {\n FunnelNameSelectorContext,\n FunnelStepContextValue,\n FunnelSubStepContextValue,\n} from '../internal/analytics/context/analytics-context';\nimport { FunnelProps, useFunnel, useFunnelStep, useFunnelSubStep } from '../internal/analytics/hooks/use-funnel';\nimport { getBaseProps } from '../internal/base-component';\nimport FocusLock from '../internal/components/focus-lock';\nimport { ButtonContext, ButtonContextProps } from '../internal/context/button-context';\nimport { ModalContext } from '../internal/context/modal-context';\nimport ResetContextsForModal from '../internal/context/reset-contexts-for-modal';\nimport { fireNonCancelableEvent } from '../internal/events';\nimport { useContainerBreakpoints } from '../internal/hooks/container-queries';\nimport { InternalBaseComponentProps } from '../internal/hooks/use-base-component';\nimport { useIntersectionObserver } from '../internal/hooks/use-intersection-observer';\nimport { useVisualRefresh } from '../internal/hooks/use-visual-mode';\nimport { KeyCode } from '../internal/keycode';\nimport { SomeRequired } from '../internal/types';\nimport {\n GeneratedAnalyticsMetadataModalComponent,\n GeneratedAnalyticsMetadataModalDismiss,\n} from './analytics-metadata/interfaces';\nimport { disableBodyScrolling, enableBodyScrolling } from './body-scroll';\nimport { ModalProps } from './interfaces';\n\nimport analyticsSelectors from './analytics-metadata/styles.css.js';\nimport styles from './styles.css.js';\n\nexport function InternalModalAsFunnel(props: InternalModalProps) {\n const { funnelProps, funnelSubmit, funnelNextOrSubmitAttempt } = useFunnel();\n const { funnelStepProps } = useFunnelStep();\n const { subStepRef, funnelSubStepProps } = useFunnelSubStep();\n const onButtonClick: ButtonContextProps['onClick'] = ({ variant }) => {\n if (variant === 'primary') {\n funnelNextOrSubmitAttempt();\n funnelSubmit();\n }\n };\n\n return (\n <InternalModal\n __funnelProps={funnelProps}\n __funnelStepProps={funnelStepProps}\n __subStepRef={subStepRef}\n __subStepFunnelProps={funnelSubStepProps}\n onButtonClick={onButtonClick}\n {...props}\n />\n );\n}\n\ntype InternalModalProps = SomeRequired<ModalProps, 'size'> &\n InternalBaseComponentProps & {\n __funnelProps?: FunnelProps;\n __funnelStepProps?: FunnelStepContextValue['funnelStepProps'];\n __subStepRef?: FunnelSubStepContextValue['subStepRef'];\n __subStepFunnelProps?: FunnelSubStepContextValue['funnelSubStepProps'];\n __injectAnalyticsComponentMetadata?: boolean;\n onButtonClick?: ButtonContextProps['onClick'];\n referrerId?: string;\n };\n\nexport default function InternalModal({ modalRoot, getModalRoot, removeModalRoot, ...rest }: InternalModalProps) {\n return (\n <Portal container={modalRoot} getContainer={getModalRoot} removeContainer={removeModalRoot}>\n <PortaledModal {...rest} />\n </Portal>\n );\n}\n\ntype PortaledModalProps = Omit<InternalModalProps, 'modalRoot' | 'getModalRoot' | 'removeModalRoot'>;\n\n// Separate component to prevent the Portal from getting in the way of refs, as it needs extra cycles to render the inner components.\n// useContainerQuery needs its targeted element to exist on the first render in order to work properly.\nfunction PortaledModal({\n size,\n visible,\n header,\n children,\n footer,\n disableContentPaddings,\n onButtonClick = () => {},\n onDismiss,\n __internalRootRef,\n __injectAnalyticsComponentMetadata,\n __funnelProps,\n __funnelStepProps,\n __subStepRef,\n __subStepFunnelProps,\n referrerId,\n ...rest\n}: PortaledModalProps) {\n const instanceUniqueId = useUniqueId();\n const headerId = `${rest.id || instanceUniqueId}-header`;\n const lastMouseDownElementRef = useRef<HTMLElement | null>(null);\n const [breakpoint, breakpointsRef] = useContainerBreakpoints(['xs']);\n\n const i18n = useInternalI18n('modal');\n const closeAriaLabel = i18n('closeAriaLabel', rest.closeAriaLabel);\n\n const refObject = useRef<HTMLDivElement>(null);\n const mergedRef = useMergeRefs(breakpointsRef, refObject, __internalRootRef);\n\n const isRefresh = useVisualRefresh();\n\n const baseProps = getBaseProps(rest);\n\n const analyticsComponentMetadata: GeneratedAnalyticsMetadataModalComponent = {\n name: 'awsui.Modal',\n label: `.${analyticsSelectors.header} h2`,\n };\n const metadataAttribute = __injectAnalyticsComponentMetadata\n ? getAnalyticsMetadataAttribute({ component: analyticsComponentMetadata })\n : {};\n const loadStartTime = useRef<number>(0);\n const loadCompleteTime = useRef<number>(0);\n const componentLoadingCount = useRef<number>(0);\n const performanceMetricLogged = useRef<boolean>(false);\n\n // enable body scroll and restore focus if unmounting while visible\n useEffect(() => {\n return () => {\n enableBodyScrolling();\n };\n }, []);\n\n const resetModalPerformanceData = () => {\n loadStartTime.current = performance.now();\n loadCompleteTime.current = 0;\n performanceMetricLogged.current = false;\n };\n\n const emitTimeToContentReadyInModal = (loadCompleteTime: number) => {\n if (\n componentLoadingCount.current === 0 &&\n loadStartTime.current &&\n loadStartTime.current !== 0 &&\n !performanceMetricLogged.current\n ) {\n const timeToContentReadyInModal = loadCompleteTime - loadStartTime.current;\n PerformanceMetrics.modalPerformanceData({\n timeToContentReadyInModal,\n instanceIdentifier: instanceUniqueId,\n componentIdentifier: headerRef.current?.textContent || '',\n });\n performanceMetricLogged.current = true;\n }\n };\n\n const MODAL_READY_TIMEOUT = 100;\n /**\n * This useEffect is triggered when the visible attribute of modal changes.\n * When modal becomes visible, modal performance metrics are reset marking the beginning loading process.\n * To ensure that the modal component ready metric is always emitted, a setTimeout is implemented.\n * This setTimeout automatically emits the component ready metric after a specified duration.\n */\n useEffect(() => {\n if (visible) {\n disableBodyScrolling();\n resetModalPerformanceData();\n setTimeout(() => {\n emitTimeToContentReadyInModal(loadStartTime.current);\n }, MODAL_READY_TIMEOUT);\n } else {\n enableBodyScrolling();\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [visible]);\n\n // Because we hide the element with styles (and not actually detach it from DOM), we need to scroll to top\n useEffect(() => {\n if (visible && refObject.current) {\n refObject.current.scrollTop = 0;\n }\n }, [visible]);\n\n const dismiss = (reason: string) => fireNonCancelableEvent(onDismiss, { reason });\n\n const onOverlayMouseDown = (event: React.MouseEvent) => {\n lastMouseDownElementRef.current = event.target as HTMLElement;\n };\n const onOverlayClick = (event: React.MouseEvent) => {\n const overlay = refObject.current;\n const lastClicked = lastMouseDownElementRef.current;\n\n if (event.target === overlay && lastClicked === overlay) {\n dismiss('overlay');\n }\n };\n const onCloseButtonClick = () => dismiss('closeButton');\n const escKeyHandler = (event: React.KeyboardEvent) => {\n if (event.keyCode === KeyCode.escape) {\n dismiss('keyboard');\n }\n };\n\n // We use an empty div element at the end of the content slot as a sentinel\n // to detect when the user has scrolled to the bottom.\n const { ref: stickySentinelRef, isIntersecting: footerStuck } = useIntersectionObserver();\n\n // Add extra scroll padding to account for the height of the sticky footer,\n // to prevent it from covering focused elements.\n const [footerHeight, footerRef] = useContainerQuery(rect => rect.borderBoxHeight);\n const headerRef = useRef<HTMLDivElement>(null);\n const { subStepRef } = useFunnelSubStep();\n\n return (\n <FunnelNameSelectorContext.Provider value={`.${styles['header--text']}`}>\n <ResetContextsForModal>\n <ModalContext.Provider\n value={{\n isInModal: true,\n componentLoadingCount,\n emitTimeToContentReadyInModal,\n }}\n >\n <div\n {...baseProps}\n {...__funnelProps}\n {...__funnelStepProps}\n className={clsx(\n styles.root,\n { [styles.hidden]: !visible },\n baseProps.className,\n isRefresh && styles.refresh\n )}\n role=\"dialog\"\n aria-labelledby={headerId}\n onMouseDown={onOverlayMouseDown}\n onClick={onOverlayClick}\n ref={mergedRef}\n style={footerHeight ? { scrollPaddingBottom: footerHeight } : undefined}\n data-awsui-referrer-id={subStepRef.current?.id || referrerId}\n >\n <FocusLock disabled={!visible} autoFocus={true} restoreFocus={true} className={styles['focus-lock']}>\n <div\n className={clsx(\n styles.dialog,\n styles[size],\n styles[`breakpoint-${breakpoint}`],\n isRefresh && styles.refresh\n )}\n onKeyDown={escKeyHandler}\n {...metadataAttribute}\n >\n <div className={styles.container}>\n <div className={clsx(styles.header, analyticsSelectors.header)}>\n <InternalHeader\n variant=\"h2\"\n __disableActionsWrapping={true}\n actions={\n <div\n {...getAnalyticsMetadataAttribute({\n action: 'dismiss',\n } as Partial<GeneratedAnalyticsMetadataModalDismiss>)}\n >\n <InternalButton\n ariaLabel={closeAriaLabel}\n className={styles['dismiss-control']}\n variant=\"modal-dismiss\"\n iconName=\"close\"\n formAction=\"none\"\n onClick={onCloseButtonClick}\n />\n </div>\n }\n >\n <span ref={headerRef} id={headerId} className={styles['header--text']}>\n {header}\n </span>\n </InternalHeader>\n </div>\n <div\n ref={__subStepRef}\n {...__subStepFunnelProps}\n className={clsx(styles.content, { [styles['no-paddings']]: disableContentPaddings })}\n >\n {children}\n <div ref={stickySentinelRef} />\n </div>\n {footer && (\n <ButtonContext.Provider value={{ onClick: onButtonClick }}>\n <div ref={footerRef} className={clsx(styles.footer, footerStuck && styles['footer--stuck'])}>\n {footer}\n </div>\n </ButtonContext.Provider>\n )}\n </div>\n </div>\n </FocusLock>\n </div>\n </ModalContext.Provider>\n </ResetContextsForModal>\n </FunnelNameSelectorContext.Provider>\n );\n}\n"]}
1
+ {"version":3,"file":"internal.js","sourceRoot":"","sources":["../../../src/modal/internal.tsx"],"names":[],"mappings":"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","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport React, { useEffect, useRef } from 'react';\nimport clsx from 'clsx';\n\nimport { useContainerQuery } from '@cloudscape-design/component-toolkit';\nimport { Portal, useMergeRefs, useUniqueId } from '@cloudscape-design/component-toolkit/internal';\nimport { getAnalyticsMetadataAttribute } from '@cloudscape-design/component-toolkit/internal/analytics-metadata';\n\nimport { InternalButton } from '../button/internal';\nimport InternalHeader from '../header/internal';\nimport { useInternalI18n } from '../i18n/context';\nimport { PerformanceMetrics } from '../internal/analytics';\nimport {\n FunnelNameSelectorContext,\n FunnelStepContextValue,\n FunnelSubStepContextValue,\n} from '../internal/analytics/context/analytics-context';\nimport { FunnelProps, useFunnel, useFunnelStep, useFunnelSubStep } from '../internal/analytics/hooks/use-funnel';\nimport { getBaseProps } from '../internal/base-component';\nimport FocusLock from '../internal/components/focus-lock';\nimport { ButtonContext, ButtonContextProps } from '../internal/context/button-context';\nimport { ModalContext } from '../internal/context/modal-context';\nimport ResetContextsForModal from '../internal/context/reset-contexts-for-modal';\nimport { fireNonCancelableEvent } from '../internal/events';\nimport { useContainerBreakpoints } from '../internal/hooks/container-queries';\nimport { InternalBaseComponentProps } from '../internal/hooks/use-base-component';\nimport { useIntersectionObserver } from '../internal/hooks/use-intersection-observer';\nimport { useVisualRefresh } from '../internal/hooks/use-visual-mode';\nimport { KeyCode } from '../internal/keycode';\nimport { SomeRequired } from '../internal/types';\nimport {\n GeneratedAnalyticsMetadataModalComponent,\n GeneratedAnalyticsMetadataModalDismiss,\n} from './analytics-metadata/interfaces';\nimport { disableBodyScrolling, enableBodyScrolling } from './body-scroll';\nimport { ModalProps } from './interfaces';\n\nimport analyticsSelectors from './analytics-metadata/styles.css.js';\nimport styles from './styles.css.js';\n\nexport function InternalModalAsFunnel(props: InternalModalProps) {\n const { funnelProps, funnelSubmit, funnelNextOrSubmitAttempt } = useFunnel();\n const { funnelStepProps } = useFunnelStep();\n const { subStepRef, funnelSubStepProps } = useFunnelSubStep();\n const onButtonClick: ButtonContextProps['onClick'] = ({ variant }) => {\n if (variant === 'primary') {\n funnelNextOrSubmitAttempt();\n funnelSubmit();\n }\n };\n\n return (\n <InternalModal\n __funnelProps={funnelProps}\n __funnelStepProps={funnelStepProps}\n __subStepRef={subStepRef}\n __subStepFunnelProps={funnelSubStepProps}\n onButtonClick={onButtonClick}\n {...props}\n />\n );\n}\n\ntype InternalModalProps = SomeRequired<ModalProps, 'size'> &\n InternalBaseComponentProps & {\n __funnelProps?: FunnelProps;\n __funnelStepProps?: FunnelStepContextValue['funnelStepProps'];\n __subStepRef?: FunnelSubStepContextValue['subStepRef'];\n __subStepFunnelProps?: FunnelSubStepContextValue['funnelSubStepProps'];\n __injectAnalyticsComponentMetadata?: boolean;\n onButtonClick?: ButtonContextProps['onClick'];\n referrerId?: string;\n };\n\nexport default function InternalModal({ modalRoot, getModalRoot, removeModalRoot, ...rest }: InternalModalProps) {\n return (\n <Portal container={modalRoot} getContainer={getModalRoot} removeContainer={removeModalRoot}>\n <PortaledModal {...rest} />\n </Portal>\n );\n}\n\ntype PortaledModalProps = Omit<InternalModalProps, 'modalRoot' | 'getModalRoot' | 'removeModalRoot'>;\n\n// Separate component to prevent the Portal from getting in the way of refs, as it needs extra cycles to render the inner components.\n// useContainerQuery needs its targeted element to exist on the first render in order to work properly.\nfunction PortaledModal({\n size,\n visible,\n header,\n children,\n footer,\n disableContentPaddings,\n onButtonClick = () => {},\n onDismiss,\n __internalRootRef,\n __injectAnalyticsComponentMetadata,\n __funnelProps,\n __funnelStepProps,\n __subStepRef,\n __subStepFunnelProps,\n referrerId,\n ...rest\n}: PortaledModalProps) {\n const instanceUniqueId = useUniqueId();\n const headerId = `${rest.id || instanceUniqueId}-header`;\n const lastMouseDownElementRef = useRef<HTMLElement | null>(null);\n const [breakpoint, breakpointsRef] = useContainerBreakpoints(['xs']);\n\n const i18n = useInternalI18n('modal');\n const closeAriaLabel = i18n('closeAriaLabel', rest.closeAriaLabel);\n\n const refObject = useRef<HTMLDivElement>(null);\n const mergedRef = useMergeRefs(breakpointsRef, refObject, __internalRootRef);\n\n const isRefresh = useVisualRefresh();\n\n const baseProps = getBaseProps(rest);\n\n const analyticsComponentMetadata: GeneratedAnalyticsMetadataModalComponent = {\n name: 'awsui.Modal',\n label: `.${analyticsSelectors.header} h2`,\n };\n const metadataAttribute = __injectAnalyticsComponentMetadata\n ? getAnalyticsMetadataAttribute({ component: analyticsComponentMetadata })\n : {};\n const loadStartTime = useRef<number>(0);\n const loadCompleteTime = useRef<number>(0);\n const componentLoadingCount = useRef<number>(0);\n const performanceMetricLogged = useRef<boolean>(false);\n\n // enable body scroll and restore focus if unmounting while visible\n useEffect(() => {\n return () => {\n enableBodyScrolling();\n };\n }, []);\n\n const resetModalPerformanceData = () => {\n loadStartTime.current = performance.now();\n loadCompleteTime.current = 0;\n performanceMetricLogged.current = false;\n };\n\n const emitTimeToContentReadyInModal = (loadCompleteTime: number) => {\n if (\n componentLoadingCount.current === 0 &&\n loadStartTime.current &&\n loadStartTime.current !== 0 &&\n !performanceMetricLogged.current\n ) {\n const timeToContentReadyInModal = loadCompleteTime - loadStartTime.current;\n PerformanceMetrics.modalPerformanceData({\n timeToContentReadyInModal,\n instanceIdentifier: instanceUniqueId,\n componentIdentifier: headerRef.current?.textContent || '',\n });\n performanceMetricLogged.current = true;\n }\n };\n\n const MODAL_READY_TIMEOUT = 100;\n /**\n * This useEffect is triggered when the visible attribute of modal changes.\n * When modal becomes visible, modal performance metrics are reset marking the beginning loading process.\n * To ensure that the modal component ready metric is always emitted, a setTimeout is implemented.\n * This setTimeout automatically emits the component ready metric after a specified duration.\n */\n useEffect(() => {\n if (visible) {\n disableBodyScrolling();\n resetModalPerformanceData();\n setTimeout(() => {\n emitTimeToContentReadyInModal(loadStartTime.current);\n }, MODAL_READY_TIMEOUT);\n } else {\n enableBodyScrolling();\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [visible]);\n\n // Because we hide the element with styles (and not actually detach it from DOM), we need to scroll to top\n useEffect(() => {\n if (visible && refObject.current) {\n refObject.current.scrollTop = 0;\n }\n }, [visible]);\n\n const dismiss = (reason: string) => fireNonCancelableEvent(onDismiss, { reason });\n\n const onOverlayMouseDown = (event: React.MouseEvent) => {\n lastMouseDownElementRef.current = event.target as HTMLElement;\n };\n const onOverlayClick = (event: React.MouseEvent) => {\n const overlay = refObject.current;\n const lastClicked = lastMouseDownElementRef.current;\n\n if (event.target === overlay && lastClicked === overlay) {\n dismiss('overlay');\n }\n };\n const onCloseButtonClick = () => dismiss('closeButton');\n const escKeyHandler = (event: React.KeyboardEvent) => {\n if (event.keyCode === KeyCode.escape) {\n dismiss('keyboard');\n }\n };\n\n // We use an empty div element at the end of the content slot as a sentinel\n // to detect when the user has scrolled to the bottom.\n const { ref: stickySentinelRef, isIntersecting: footerStuck } = useIntersectionObserver();\n\n // Add extra scroll padding to account for the height of the sticky footer,\n // to prevent it from covering focused elements.\n const [footerHeight, footerRef] = useContainerQuery(rect => rect.borderBoxHeight);\n const headerRef = useRef<HTMLDivElement>(null);\n const { subStepRef } = useFunnelSubStep();\n\n return (\n <FunnelNameSelectorContext.Provider value={`.${styles['header--text']}`}>\n <ResetContextsForModal>\n <ModalContext.Provider\n value={{\n isInModal: true,\n componentLoadingCount,\n emitTimeToContentReadyInModal,\n }}\n >\n <div\n {...baseProps}\n {...__funnelProps}\n {...__funnelStepProps}\n className={clsx(\n styles.root,\n { [styles.hidden]: !visible },\n baseProps.className,\n isRefresh && styles.refresh\n )}\n role=\"dialog\"\n aria-labelledby={headerId}\n onMouseDown={onOverlayMouseDown}\n onClick={onOverlayClick}\n ref={mergedRef}\n style={footerHeight ? { scrollPaddingBottom: footerHeight } : undefined}\n data-awsui-referrer-id={subStepRef.current?.id || referrerId}\n >\n <FocusLock disabled={!visible} autoFocus={true} restoreFocus={true} className={styles['focus-lock']}>\n <div\n className={clsx(\n styles.dialog,\n styles[size],\n styles[`breakpoint-${breakpoint}`],\n isRefresh && styles.refresh\n )}\n onKeyDown={escKeyHandler}\n {...metadataAttribute}\n >\n <div className={styles.container}>\n <div className={clsx(styles.header, analyticsSelectors.header)}>\n <InternalHeader\n variant=\"h2\"\n __disableActionsWrapping={true}\n actions={\n <div\n {...getAnalyticsMetadataAttribute({\n action: 'dismiss',\n } as Partial<GeneratedAnalyticsMetadataModalDismiss>)}\n >\n <InternalButton\n ariaLabel={closeAriaLabel}\n className={styles['dismiss-control']}\n variant=\"modal-dismiss\"\n iconName=\"close\"\n formAction=\"none\"\n onClick={onCloseButtonClick}\n />\n </div>\n }\n >\n <span ref={headerRef} id={headerId} className={styles['header--text']}>\n {header}\n </span>\n </InternalHeader>\n </div>\n <div\n ref={__subStepRef}\n {...__subStepFunnelProps}\n className={clsx(styles.content, { [styles['no-paddings']]: disableContentPaddings })}\n >\n {children}\n <div ref={stickySentinelRef} />\n </div>\n {footer && (\n <ButtonContext.Provider value={{ onClick: onButtonClick }}>\n <div ref={footerRef} className={clsx(styles.footer, footerStuck && styles['footer--stuck'])}>\n {footer}\n </div>\n </ButtonContext.Provider>\n )}\n </div>\n </div>\n </FocusLock>\n </div>\n </ModalContext.Provider>\n </ResetContextsForModal>\n </FunnelNameSelectorContext.Provider>\n );\n}\n"]}