@cloudscape-design/components-themeable 3.0.1137 → 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 (827) hide show
  1. package/lib/internal/manifest.json +1 -1
  2. package/lib/internal/scss/internal/generated/custom-css-properties/index.scss +127 -99
  3. package/lib/internal/scss/progress-bar/styles.scss +39 -25
  4. package/lib/internal/scss/prompt-input/styles.scss +75 -13
  5. package/lib/internal/scss/radio-group/analytics-metadata/styles.scss +8 -0
  6. package/lib/internal/template/alert/actions-wrapper/index.js +3 -3
  7. package/lib/internal/template/alert/actions-wrapper/index.js.map +1 -1
  8. package/lib/internal/template/alert/index.js +2 -4
  9. package/lib/internal/template/alert/index.js.map +1 -1
  10. package/lib/internal/template/alert/internal.js +8 -10
  11. package/lib/internal/template/alert/internal.js.map +1 -1
  12. package/lib/internal/template/alert/style.js +12 -5
  13. package/lib/internal/template/alert/style.js.map +1 -1
  14. package/lib/internal/template/alert/styles.css.js +27 -27
  15. package/lib/internal/template/alert/styles.scoped.css +50 -50
  16. package/lib/internal/template/alert/styles.selectors.js +27 -27
  17. package/lib/internal/template/anchor-navigation/anchor-item/index.js +1 -1
  18. package/lib/internal/template/anchor-navigation/anchor-item/index.js.map +1 -1
  19. package/lib/internal/template/anchor-navigation/index.js +2 -4
  20. package/lib/internal/template/anchor-navigation/index.js.map +1 -1
  21. package/lib/internal/template/anchor-navigation/internal.js +2 -4
  22. package/lib/internal/template/anchor-navigation/internal.js.map +1 -1
  23. package/lib/internal/template/annotation-context/annotation/styles.css.js +24 -24
  24. package/lib/internal/template/annotation-context/annotation/styles.scoped.css +32 -32
  25. package/lib/internal/template/annotation-context/annotation/styles.selectors.js +24 -24
  26. package/lib/internal/template/annotation-context/index.js +3 -4
  27. package/lib/internal/template/annotation-context/index.js.map +1 -1
  28. package/lib/internal/template/app-layout/classic.js +20 -17
  29. package/lib/internal/template/app-layout/classic.js.map +1 -1
  30. package/lib/internal/template/app-layout/defaults.js +8 -3
  31. package/lib/internal/template/app-layout/defaults.js.map +1 -1
  32. package/lib/internal/template/app-layout/drawer/resizable-drawer.js +8 -10
  33. package/lib/internal/template/app-layout/drawer/resizable-drawer.js.map +1 -1
  34. package/lib/internal/template/app-layout/index.js +24 -21
  35. package/lib/internal/template/app-layout/index.js.map +1 -1
  36. package/lib/internal/template/app-layout/internal.js +3 -3
  37. package/lib/internal/template/app-layout/internal.js.map +1 -1
  38. package/lib/internal/template/app-layout/notifications/index.js +3 -5
  39. package/lib/internal/template/app-layout/notifications/index.js.map +1 -1
  40. package/lib/internal/template/app-layout/notifications/styles.css.js +3 -3
  41. package/lib/internal/template/app-layout/notifications/styles.scoped.css +7 -7
  42. package/lib/internal/template/app-layout/notifications/styles.selectors.js +3 -3
  43. package/lib/internal/template/app-layout/runtime-drawer/index.js +36 -18
  44. package/lib/internal/template/app-layout/runtime-drawer/index.js.map +1 -1
  45. package/lib/internal/template/app-layout/split-panel/provider.js +2 -4
  46. package/lib/internal/template/app-layout/split-panel/provider.js.map +1 -1
  47. package/lib/internal/template/app-layout/utils/use-app-layout-placement.js +1 -1
  48. package/lib/internal/template/app-layout/utils/use-app-layout-placement.js.map +1 -1
  49. package/lib/internal/template/app-layout/utils/use-drawers.js +9 -3
  50. package/lib/internal/template/app-layout/utils/use-drawers.js.map +1 -1
  51. package/lib/internal/template/app-layout/visual-refresh/context.js +28 -11
  52. package/lib/internal/template/app-layout/visual-refresh/context.js.map +1 -1
  53. package/lib/internal/template/app-layout/visual-refresh/drawers.js +3 -1
  54. package/lib/internal/template/app-layout/visual-refresh/drawers.js.map +1 -1
  55. package/lib/internal/template/app-layout/visual-refresh/index.js +1 -1
  56. package/lib/internal/template/app-layout/visual-refresh/index.js.map +1 -1
  57. package/lib/internal/template/app-layout/visual-refresh/layout.js +9 -1
  58. package/lib/internal/template/app-layout/visual-refresh/layout.js.map +1 -1
  59. package/lib/internal/template/app-layout/visual-refresh/main.js +4 -1
  60. package/lib/internal/template/app-layout/visual-refresh/main.js.map +1 -1
  61. package/lib/internal/template/app-layout/visual-refresh/split-panel.js +1 -1
  62. package/lib/internal/template/app-layout/visual-refresh/split-panel.js.map +1 -1
  63. package/lib/internal/template/app-layout/visual-refresh/styles.css.js +86 -86
  64. package/lib/internal/template/app-layout/visual-refresh/styles.scoped.css +258 -258
  65. package/lib/internal/template/app-layout/visual-refresh/styles.selectors.js +86 -86
  66. package/lib/internal/template/app-layout/visual-refresh/trigger-button.js +6 -3
  67. package/lib/internal/template/app-layout/visual-refresh/trigger-button.js.map +1 -1
  68. package/lib/internal/template/app-layout/visual-refresh-toolbar/compute-layout.js +5 -2
  69. package/lib/internal/template/app-layout/visual-refresh-toolbar/compute-layout.js.map +1 -1
  70. package/lib/internal/template/app-layout/visual-refresh-toolbar/drawer/global-ai-drawer.js +8 -4
  71. package/lib/internal/template/app-layout/visual-refresh-toolbar/drawer/global-ai-drawer.js.map +1 -1
  72. package/lib/internal/template/app-layout/visual-refresh-toolbar/drawer/global-bottom-drawer.js +9 -6
  73. package/lib/internal/template/app-layout/visual-refresh-toolbar/drawer/global-bottom-drawer.js.map +1 -1
  74. package/lib/internal/template/app-layout/visual-refresh-toolbar/drawer/global-drawer.js +7 -3
  75. package/lib/internal/template/app-layout/visual-refresh-toolbar/drawer/global-drawer.js.map +1 -1
  76. package/lib/internal/template/app-layout/visual-refresh-toolbar/drawer/local-drawer.js +8 -4
  77. package/lib/internal/template/app-layout/visual-refresh-toolbar/drawer/local-drawer.js.map +1 -1
  78. package/lib/internal/template/app-layout/visual-refresh-toolbar/drawer/styles.css.js +30 -30
  79. package/lib/internal/template/app-layout/visual-refresh-toolbar/drawer/styles.scoped.css +87 -87
  80. package/lib/internal/template/app-layout/visual-refresh-toolbar/drawer/styles.selectors.js +30 -30
  81. package/lib/internal/template/app-layout/visual-refresh-toolbar/navigation/styles.css.js +4 -4
  82. package/lib/internal/template/app-layout/visual-refresh-toolbar/navigation/styles.scoped.css +7 -7
  83. package/lib/internal/template/app-layout/visual-refresh-toolbar/navigation/styles.selectors.js +4 -4
  84. package/lib/internal/template/app-layout/visual-refresh-toolbar/skeleton/index.js +10 -10
  85. package/lib/internal/template/app-layout/visual-refresh-toolbar/skeleton/index.js.map +1 -1
  86. package/lib/internal/template/app-layout/visual-refresh-toolbar/skeleton/slots.js +5 -2
  87. package/lib/internal/template/app-layout/visual-refresh-toolbar/skeleton/slots.js.map +1 -1
  88. package/lib/internal/template/app-layout/visual-refresh-toolbar/skeleton/styles.css.js +27 -27
  89. package/lib/internal/template/app-layout/visual-refresh-toolbar/skeleton/styles.scoped.css +54 -54
  90. package/lib/internal/template/app-layout/visual-refresh-toolbar/skeleton/styles.selectors.js +27 -27
  91. package/lib/internal/template/app-layout/visual-refresh-toolbar/split-panel/index.js +2 -2
  92. package/lib/internal/template/app-layout/visual-refresh-toolbar/split-panel/index.js.map +1 -1
  93. package/lib/internal/template/app-layout/visual-refresh-toolbar/state/props-merger.js +7 -2
  94. package/lib/internal/template/app-layout/visual-refresh-toolbar/state/props-merger.js.map +1 -1
  95. package/lib/internal/template/app-layout/visual-refresh-toolbar/state/use-ai-drawer.js +1 -1
  96. package/lib/internal/template/app-layout/visual-refresh-toolbar/state/use-ai-drawer.js.map +1 -1
  97. package/lib/internal/template/app-layout/visual-refresh-toolbar/state/use-app-layout.js +19 -12
  98. package/lib/internal/template/app-layout/visual-refresh-toolbar/state/use-app-layout.js.map +1 -1
  99. package/lib/internal/template/app-layout/visual-refresh-toolbar/state/use-bottom-drawers.js +5 -2
  100. package/lib/internal/template/app-layout/visual-refresh-toolbar/state/use-bottom-drawers.js.map +1 -1
  101. package/lib/internal/template/app-layout/visual-refresh-toolbar/state/use-skeleton-slots-attributes.js +10 -6
  102. package/lib/internal/template/app-layout/visual-refresh-toolbar/state/use-skeleton-slots-attributes.js.map +1 -1
  103. package/lib/internal/template/app-layout/visual-refresh-toolbar/toolbar/drawer-triggers.js +4 -1
  104. package/lib/internal/template/app-layout/visual-refresh-toolbar/toolbar/drawer-triggers.js.map +1 -1
  105. package/lib/internal/template/app-layout/visual-refresh-toolbar/toolbar/index.js +1 -1
  106. package/lib/internal/template/app-layout/visual-refresh-toolbar/toolbar/index.js.map +1 -1
  107. package/lib/internal/template/app-layout/visual-refresh-toolbar/toolbar/trigger-button/index.js +8 -8
  108. package/lib/internal/template/app-layout/visual-refresh-toolbar/toolbar/trigger-button/index.js.map +1 -1
  109. package/lib/internal/template/app-layout-toolbar/index.js +24 -21
  110. package/lib/internal/template/app-layout-toolbar/index.js.map +1 -1
  111. package/lib/internal/template/area-chart/chart-container.js +1 -1
  112. package/lib/internal/template/area-chart/chart-container.js.map +1 -1
  113. package/lib/internal/template/area-chart/elements/chart-popover.js +1 -1
  114. package/lib/internal/template/area-chart/elements/chart-popover.js.map +1 -1
  115. package/lib/internal/template/area-chart/elements/threshold-series.js +1 -1
  116. package/lib/internal/template/area-chart/elements/threshold-series.js.map +1 -1
  117. package/lib/internal/template/area-chart/index.js +2 -4
  118. package/lib/internal/template/area-chart/index.js.map +1 -1
  119. package/lib/internal/template/area-chart/internal.js +2 -4
  120. package/lib/internal/template/area-chart/internal.js.map +1 -1
  121. package/lib/internal/template/area-chart/model/interactions-store.js +39 -9
  122. package/lib/internal/template/area-chart/model/interactions-store.js.map +1 -1
  123. package/lib/internal/template/attribute-editor/index.d.ts.map +1 -1
  124. package/lib/internal/template/attribute-editor/index.js +4 -6
  125. package/lib/internal/template/attribute-editor/index.js.map +1 -1
  126. package/lib/internal/template/attribute-editor/interfaces.d.ts +8 -0
  127. package/lib/internal/template/attribute-editor/interfaces.d.ts.map +1 -1
  128. package/lib/internal/template/attribute-editor/interfaces.js.map +1 -1
  129. package/lib/internal/template/attribute-editor/internal.d.ts.map +1 -1
  130. package/lib/internal/template/attribute-editor/internal.js +14 -10
  131. package/lib/internal/template/attribute-editor/internal.js.map +1 -1
  132. package/lib/internal/template/attribute-editor/row.js +1 -1
  133. package/lib/internal/template/attribute-editor/row.js.map +1 -1
  134. package/lib/internal/template/attribute-editor/styles.css.js +15 -15
  135. package/lib/internal/template/attribute-editor/styles.scoped.css +28 -28
  136. package/lib/internal/template/attribute-editor/styles.selectors.js +15 -15
  137. package/lib/internal/template/autosuggest/autosuggest-option.js +3 -5
  138. package/lib/internal/template/autosuggest/autosuggest-option.js.map +1 -1
  139. package/lib/internal/template/autosuggest/index.js +2 -4
  140. package/lib/internal/template/autosuggest/index.js.map +1 -1
  141. package/lib/internal/template/autosuggest/internal.js +10 -5
  142. package/lib/internal/template/autosuggest/internal.js.map +1 -1
  143. package/lib/internal/template/autosuggest/options-controller.js +15 -8
  144. package/lib/internal/template/autosuggest/options-controller.js.map +1 -1
  145. package/lib/internal/template/autosuggest/plain-list.js +3 -3
  146. package/lib/internal/template/autosuggest/plain-list.js.map +1 -1
  147. package/lib/internal/template/autosuggest/virtual-list.js +2 -2
  148. package/lib/internal/template/autosuggest/virtual-list.js.map +1 -1
  149. package/lib/internal/template/badge/index.js +2 -4
  150. package/lib/internal/template/badge/index.js.map +1 -1
  151. package/lib/internal/template/bar-chart/index.js +2 -4
  152. package/lib/internal/template/bar-chart/index.js.map +1 -1
  153. package/lib/internal/template/box/index.js +2 -4
  154. package/lib/internal/template/box/index.js.map +1 -1
  155. package/lib/internal/template/box/internal.js +2 -4
  156. package/lib/internal/template/box/internal.js.map +1 -1
  157. package/lib/internal/template/breadcrumb-group/all-items-dropdown.js +3 -3
  158. package/lib/internal/template/breadcrumb-group/all-items-dropdown.js.map +1 -1
  159. package/lib/internal/template/breadcrumb-group/implementation.js +9 -8
  160. package/lib/internal/template/breadcrumb-group/implementation.js.map +1 -1
  161. package/lib/internal/template/breadcrumb-group/index.js +3 -5
  162. package/lib/internal/template/breadcrumb-group/index.js.map +1 -1
  163. package/lib/internal/template/breadcrumb-group/item/funnel.js +1 -1
  164. package/lib/internal/template/breadcrumb-group/item/funnel.js.map +1 -1
  165. package/lib/internal/template/breadcrumb-group/item/item.js +5 -7
  166. package/lib/internal/template/breadcrumb-group/item/item.js.map +1 -1
  167. package/lib/internal/template/breadcrumb-group/item/styles.css.js +7 -7
  168. package/lib/internal/template/breadcrumb-group/item/styles.scoped.css +28 -28
  169. package/lib/internal/template/breadcrumb-group/item/styles.selectors.js +7 -7
  170. package/lib/internal/template/button/icon-helper.js +3 -5
  171. package/lib/internal/template/button/icon-helper.js.map +1 -1
  172. package/lib/internal/template/button/index.js +2 -4
  173. package/lib/internal/template/button/index.js.map +1 -1
  174. package/lib/internal/template/button/internal.js +31 -14
  175. package/lib/internal/template/button/internal.js.map +1 -1
  176. package/lib/internal/template/button/style.js +38 -27
  177. package/lib/internal/template/button/style.js.map +1 -1
  178. package/lib/internal/template/button/styles.css.js +22 -22
  179. package/lib/internal/template/button/styles.scoped.css +256 -256
  180. package/lib/internal/template/button/styles.selectors.js +22 -22
  181. package/lib/internal/template/button-dropdown/category-elements/expandable-category-element.js +11 -11
  182. package/lib/internal/template/button-dropdown/category-elements/expandable-category-element.js.map +1 -1
  183. package/lib/internal/template/button-dropdown/category-elements/mobile-expandable-category-element.js +12 -12
  184. package/lib/internal/template/button-dropdown/category-elements/mobile-expandable-category-element.js.map +1 -1
  185. package/lib/internal/template/button-dropdown/index.js +4 -6
  186. package/lib/internal/template/button-dropdown/index.js.map +1 -1
  187. package/lib/internal/template/button-dropdown/internal.js +36 -25
  188. package/lib/internal/template/button-dropdown/internal.js.map +1 -1
  189. package/lib/internal/template/button-dropdown/item-element/index.js +25 -17
  190. package/lib/internal/template/button-dropdown/item-element/index.js.map +1 -1
  191. package/lib/internal/template/button-dropdown/item-element/styles.css.js +16 -16
  192. package/lib/internal/template/button-dropdown/item-element/styles.scoped.css +27 -27
  193. package/lib/internal/template/button-dropdown/item-element/styles.selectors.js +16 -16
  194. package/lib/internal/template/button-dropdown/tooltip.js +1 -1
  195. package/lib/internal/template/button-dropdown/tooltip.js.map +1 -1
  196. package/lib/internal/template/button-dropdown/utils/use-button-dropdown.js +1 -2
  197. package/lib/internal/template/button-dropdown/utils/use-button-dropdown.js.map +1 -1
  198. package/lib/internal/template/button-group/index.js +2 -4
  199. package/lib/internal/template/button-group/index.js.map +1 -1
  200. package/lib/internal/template/button-group/internal.js +2 -4
  201. package/lib/internal/template/button-group/internal.js.map +1 -1
  202. package/lib/internal/template/button-group/item-element.js +4 -4
  203. package/lib/internal/template/button-group/item-element.js.map +1 -1
  204. package/lib/internal/template/button-group/menu-dropdown-item.js +1 -1
  205. package/lib/internal/template/button-group/menu-dropdown-item.js.map +1 -1
  206. package/lib/internal/template/button-group/style.js +34 -20
  207. package/lib/internal/template/button-group/style.js.map +1 -1
  208. package/lib/internal/template/calendar/grid/index.js +2 -3
  209. package/lib/internal/template/calendar/grid/index.js.map +1 -1
  210. package/lib/internal/template/calendar/index.js +2 -4
  211. package/lib/internal/template/calendar/index.js.map +1 -1
  212. package/lib/internal/template/calendar/internal.js +2 -4
  213. package/lib/internal/template/calendar/internal.js.map +1 -1
  214. package/lib/internal/template/cards/index.js +17 -19
  215. package/lib/internal/template/cards/index.js.map +1 -1
  216. package/lib/internal/template/checkbox/index.js +2 -4
  217. package/lib/internal/template/checkbox/index.js.map +1 -1
  218. package/lib/internal/template/checkbox/internal.js +4 -6
  219. package/lib/internal/template/checkbox/internal.js.map +1 -1
  220. package/lib/internal/template/checkbox/styles.css.js +3 -3
  221. package/lib/internal/template/checkbox/styles.scoped.css +11 -11
  222. package/lib/internal/template/checkbox/styles.selectors.js +3 -3
  223. package/lib/internal/template/code-editor/index.js +2 -3
  224. package/lib/internal/template/code-editor/index.js.map +1 -1
  225. package/lib/internal/template/code-editor/use-editor.js +4 -1
  226. package/lib/internal/template/code-editor/use-editor.js.map +1 -1
  227. package/lib/internal/template/code-editor/util.js +4 -1
  228. package/lib/internal/template/code-editor/util.js.map +1 -1
  229. package/lib/internal/template/collection-preferences/content-display/index.js +1 -1
  230. package/lib/internal/template/collection-preferences/content-display/index.js.map +1 -1
  231. package/lib/internal/template/collection-preferences/content-display/utils.js +1 -1
  232. package/lib/internal/template/collection-preferences/content-display/utils.js.map +1 -1
  233. package/lib/internal/template/collection-preferences/index.js +20 -13
  234. package/lib/internal/template/collection-preferences/index.js.map +1 -1
  235. package/lib/internal/template/collection-preferences/utils.js +9 -9
  236. package/lib/internal/template/collection-preferences/utils.js.map +1 -1
  237. package/lib/internal/template/collection-preferences/visible-content.js +8 -8
  238. package/lib/internal/template/collection-preferences/visible-content.js.map +1 -1
  239. package/lib/internal/template/column-layout/index.js +2 -4
  240. package/lib/internal/template/column-layout/index.js.map +1 -1
  241. package/lib/internal/template/column-layout/internal.js +2 -4
  242. package/lib/internal/template/column-layout/internal.js.map +1 -1
  243. package/lib/internal/template/container/index.js +2 -4
  244. package/lib/internal/template/container/index.js.map +1 -1
  245. package/lib/internal/template/container/internal.js +11 -9
  246. package/lib/internal/template/container/internal.js.map +1 -1
  247. package/lib/internal/template/container/style.js +11 -2
  248. package/lib/internal/template/container/style.js.map +1 -1
  249. package/lib/internal/template/content-layout/index.js +1 -1
  250. package/lib/internal/template/content-layout/index.js.map +1 -1
  251. package/lib/internal/template/content-layout/internal.js +3 -5
  252. package/lib/internal/template/content-layout/internal.js.map +1 -1
  253. package/lib/internal/template/content-layout/styles.css.js +14 -14
  254. package/lib/internal/template/content-layout/styles.scoped.css +27 -27
  255. package/lib/internal/template/content-layout/styles.selectors.js +14 -14
  256. package/lib/internal/template/copy-to-clipboard/index.js +2 -4
  257. package/lib/internal/template/copy-to-clipboard/index.js.map +1 -1
  258. package/lib/internal/template/copy-to-clipboard/internal.js +2 -4
  259. package/lib/internal/template/copy-to-clipboard/internal.js.map +1 -1
  260. package/lib/internal/template/date-input/index.js +1 -1
  261. package/lib/internal/template/date-input/index.js.map +1 -1
  262. package/lib/internal/template/date-input/internal.js +6 -8
  263. package/lib/internal/template/date-input/internal.js.map +1 -1
  264. package/lib/internal/template/date-picker/index.js +9 -6
  265. package/lib/internal/template/date-picker/index.js.map +1 -1
  266. package/lib/internal/template/date-range-picker/calendar/grids/grid-cell.js +3 -4
  267. package/lib/internal/template/date-range-picker/calendar/grids/grid-cell.js.map +1 -1
  268. package/lib/internal/template/date-range-picker/calendar/grids/grid.js +8 -8
  269. package/lib/internal/template/date-range-picker/calendar/grids/grid.js.map +1 -1
  270. package/lib/internal/template/date-range-picker/calendar/grids/index.js +2 -2
  271. package/lib/internal/template/date-range-picker/calendar/grids/index.js.map +1 -1
  272. package/lib/internal/template/date-range-picker/calendar/index.js +5 -2
  273. package/lib/internal/template/date-range-picker/calendar/index.js.map +1 -1
  274. package/lib/internal/template/date-range-picker/index.js +8 -6
  275. package/lib/internal/template/date-range-picker/index.js.map +1 -1
  276. package/lib/internal/template/date-range-picker/utils.js +8 -2
  277. package/lib/internal/template/date-range-picker/utils.js.map +1 -1
  278. package/lib/internal/template/drawer/implementation.js +7 -6
  279. package/lib/internal/template/drawer/implementation.js.map +1 -1
  280. package/lib/internal/template/drawer/index.js +1 -1
  281. package/lib/internal/template/drawer/index.js.map +1 -1
  282. package/lib/internal/template/expandable-section/expandable-section-container.js +3 -5
  283. package/lib/internal/template/expandable-section/expandable-section-container.js.map +1 -1
  284. package/lib/internal/template/expandable-section/expandable-section-header.js +8 -8
  285. package/lib/internal/template/expandable-section/expandable-section-header.js.map +1 -1
  286. package/lib/internal/template/expandable-section/index.js +2 -4
  287. package/lib/internal/template/expandable-section/index.js.map +1 -1
  288. package/lib/internal/template/expandable-section/internal.js +2 -4
  289. package/lib/internal/template/expandable-section/internal.js.map +1 -1
  290. package/lib/internal/template/file-dropzone/index.js +1 -1
  291. package/lib/internal/template/file-dropzone/index.js.map +1 -1
  292. package/lib/internal/template/file-dropzone/internal.js +3 -5
  293. package/lib/internal/template/file-dropzone/internal.js.map +1 -1
  294. package/lib/internal/template/file-input/index.js +2 -4
  295. package/lib/internal/template/file-input/index.js.map +1 -1
  296. package/lib/internal/template/file-input/internal.js +11 -8
  297. package/lib/internal/template/file-input/internal.js.map +1 -1
  298. package/lib/internal/template/file-token-group/default-formatters.js +3 -3
  299. package/lib/internal/template/file-token-group/default-formatters.js.map +1 -1
  300. package/lib/internal/template/file-token-group/index.js +2 -4
  301. package/lib/internal/template/file-token-group/index.js.map +1 -1
  302. package/lib/internal/template/file-token-group/internal.js +2 -4
  303. package/lib/internal/template/file-token-group/internal.js.map +1 -1
  304. package/lib/internal/template/file-upload/index.js +2 -4
  305. package/lib/internal/template/file-upload/index.js.map +1 -1
  306. package/lib/internal/template/file-upload/internal.js +5 -7
  307. package/lib/internal/template/file-upload/internal.js.map +1 -1
  308. package/lib/internal/template/flashbar/collapsible-flashbar.js +33 -23
  309. package/lib/internal/template/flashbar/collapsible-flashbar.js.map +1 -1
  310. package/lib/internal/template/flashbar/common.js +1 -3
  311. package/lib/internal/template/flashbar/common.js.map +1 -1
  312. package/lib/internal/template/flashbar/flash.js +4 -6
  313. package/lib/internal/template/flashbar/flash.js.map +1 -1
  314. package/lib/internal/template/flashbar/implementation.js +2 -2
  315. package/lib/internal/template/flashbar/implementation.js.map +1 -1
  316. package/lib/internal/template/flashbar/index.js +1 -1
  317. package/lib/internal/template/flashbar/index.js.map +1 -1
  318. package/lib/internal/template/flashbar/non-collapsible-flashbar.js +10 -9
  319. package/lib/internal/template/flashbar/non-collapsible-flashbar.js.map +1 -1
  320. package/lib/internal/template/flashbar/style.js +50 -32
  321. package/lib/internal/template/flashbar/style.js.map +1 -1
  322. package/lib/internal/template/flashbar/styles.css.js +50 -50
  323. package/lib/internal/template/flashbar/styles.scoped.css +187 -187
  324. package/lib/internal/template/flashbar/styles.selectors.js +50 -50
  325. package/lib/internal/template/flashbar/utils.js +2 -2
  326. package/lib/internal/template/flashbar/utils.js.map +1 -1
  327. package/lib/internal/template/form/index.js +4 -7
  328. package/lib/internal/template/form/index.js.map +1 -1
  329. package/lib/internal/template/form/internal.js +2 -4
  330. package/lib/internal/template/form/internal.js.map +1 -1
  331. package/lib/internal/template/form-field/index.js +7 -9
  332. package/lib/internal/template/form-field/index.js.map +1 -1
  333. package/lib/internal/template/form-field/internal.js +6 -5
  334. package/lib/internal/template/form-field/internal.js.map +1 -1
  335. package/lib/internal/template/grid/index.js +2 -4
  336. package/lib/internal/template/grid/index.js.map +1 -1
  337. package/lib/internal/template/grid/internal.js +2 -4
  338. package/lib/internal/template/grid/internal.js.map +1 -1
  339. package/lib/internal/template/header/analytics/use-table-integration.d.ts +2 -1
  340. package/lib/internal/template/header/analytics/use-table-integration.d.ts.map +1 -1
  341. package/lib/internal/template/header/analytics/use-table-integration.js +8 -1
  342. package/lib/internal/template/header/analytics/use-table-integration.js.map +1 -1
  343. package/lib/internal/template/header/index.js +2 -4
  344. package/lib/internal/template/header/index.js.map +1 -1
  345. package/lib/internal/template/header/interfaces.d.ts +2 -2
  346. package/lib/internal/template/header/interfaces.d.ts.map +1 -1
  347. package/lib/internal/template/header/interfaces.js.map +1 -1
  348. package/lib/internal/template/header/internal.js +4 -6
  349. package/lib/internal/template/header/internal.js.map +1 -1
  350. package/lib/internal/template/help-panel/implementation.js +7 -6
  351. package/lib/internal/template/help-panel/implementation.js.map +1 -1
  352. package/lib/internal/template/help-panel/index.js +1 -1
  353. package/lib/internal/template/help-panel/index.js.map +1 -1
  354. package/lib/internal/template/help-panel/styles.css.js +6 -6
  355. package/lib/internal/template/help-panel/styles.scoped.css +73 -73
  356. package/lib/internal/template/help-panel/styles.selectors.js +6 -6
  357. package/lib/internal/template/hotspot/index.js +3 -5
  358. package/lib/internal/template/hotspot/index.js.map +1 -1
  359. package/lib/internal/template/icon/index.js +2 -4
  360. package/lib/internal/template/icon/index.js.map +1 -1
  361. package/lib/internal/template/icon/internal.js +4 -6
  362. package/lib/internal/template/icon/internal.js.map +1 -1
  363. package/lib/internal/template/icon-provider/index.js +1 -1
  364. package/lib/internal/template/icon-provider/index.js.map +1 -1
  365. package/lib/internal/template/icon-provider/internal.js +2 -2
  366. package/lib/internal/template/icon-provider/internal.js.map +1 -1
  367. package/lib/internal/template/input/index.js +5 -5
  368. package/lib/internal/template/input/index.js.map +1 -1
  369. package/lib/internal/template/input/internal.js +10 -12
  370. package/lib/internal/template/input/internal.js.map +1 -1
  371. package/lib/internal/template/input/styles.css.js +13 -13
  372. package/lib/internal/template/input/styles.js +42 -30
  373. package/lib/internal/template/input/styles.js.map +1 -1
  374. package/lib/internal/template/input/styles.scoped.css +65 -65
  375. package/lib/internal/template/input/styles.selectors.js +13 -13
  376. package/lib/internal/template/internal/analytics/components/analytics-funnel.js +9 -12
  377. package/lib/internal/template/internal/analytics/components/analytics-funnel.js.map +1 -1
  378. package/lib/internal/template/internal/analytics/hooks/use-funnel.js +5 -6
  379. package/lib/internal/template/internal/analytics/hooks/use-funnel.js.map +1 -1
  380. package/lib/internal/template/internal/animate.js +1 -1
  381. package/lib/internal/template/internal/animate.js.map +1 -1
  382. package/lib/internal/template/internal/base-component/index.js +1 -1
  383. package/lib/internal/template/internal/base-component/index.js.map +1 -1
  384. package/lib/internal/template/internal/base-component/styles.scoped.css +1 -1
  385. package/lib/internal/template/internal/components/abstract-switch/index.js +21 -20
  386. package/lib/internal/template/internal/components/abstract-switch/index.js.map +1 -1
  387. package/lib/internal/template/internal/components/autosuggest-input/index.js +3 -5
  388. package/lib/internal/template/internal/components/autosuggest-input/index.js.map +1 -1
  389. package/lib/internal/template/internal/components/button-trigger/index.js +25 -6
  390. package/lib/internal/template/internal/components/button-trigger/index.js.map +1 -1
  391. package/lib/internal/template/internal/components/cartesian-chart/inline-start-labels.js +1 -1
  392. package/lib/internal/template/internal/components/cartesian-chart/inline-start-labels.js.map +1 -1
  393. package/lib/internal/template/internal/components/chart-filter/index.js +2 -4
  394. package/lib/internal/template/internal/components/chart-filter/index.js.map +1 -1
  395. package/lib/internal/template/internal/components/chart-plot/index.js +2 -2
  396. package/lib/internal/template/internal/components/chart-plot/index.js.map +1 -1
  397. package/lib/internal/template/internal/components/chart-popover/index.js +3 -5
  398. package/lib/internal/template/internal/components/chart-popover/index.js.map +1 -1
  399. package/lib/internal/template/internal/components/chart-series-details/index.js +2 -4
  400. package/lib/internal/template/internal/components/chart-series-details/index.js.map +1 -1
  401. package/lib/internal/template/internal/components/chart-wrapper/index.js +3 -5
  402. package/lib/internal/template/internal/components/chart-wrapper/index.js.map +1 -1
  403. package/lib/internal/template/internal/components/checkbox-icon/index.js +5 -7
  404. package/lib/internal/template/internal/components/checkbox-icon/index.js.map +1 -1
  405. package/lib/internal/template/internal/components/drag-handle/button.js +5 -5
  406. package/lib/internal/template/internal/components/drag-handle/button.js.map +1 -1
  407. package/lib/internal/template/internal/components/drag-handle/hooks/use-drag-handle-interaction-state.js +17 -4
  408. package/lib/internal/template/internal/components/drag-handle/hooks/use-drag-handle-interaction-state.js.map +1 -1
  409. package/lib/internal/template/internal/components/drag-handle/index.js +1 -3
  410. package/lib/internal/template/internal/components/drag-handle/index.js.map +1 -1
  411. package/lib/internal/template/internal/components/drag-handle-wrapper/styles.css.js +20 -20
  412. package/lib/internal/template/internal/components/drag-handle-wrapper/styles.scoped.css +48 -48
  413. package/lib/internal/template/internal/components/drag-handle-wrapper/styles.selectors.js +20 -20
  414. package/lib/internal/template/internal/components/dropdown/styles.css.js +20 -20
  415. package/lib/internal/template/internal/components/dropdown/styles.scoped.css +38 -38
  416. package/lib/internal/template/internal/components/dropdown/styles.selectors.js +20 -20
  417. package/lib/internal/template/internal/components/masked-input/index.js +12 -8
  418. package/lib/internal/template/internal/components/masked-input/index.js.map +1 -1
  419. package/lib/internal/template/internal/components/masked-input/utils/mask-format.js +6 -1
  420. package/lib/internal/template/internal/components/masked-input/utils/mask-format.js.map +1 -1
  421. package/lib/internal/template/internal/components/menu-dropdown/index.js +2 -4
  422. package/lib/internal/template/internal/components/menu-dropdown/index.js.map +1 -1
  423. package/lib/internal/template/internal/components/option/index.js +6 -8
  424. package/lib/internal/template/internal/components/option/index.js.map +1 -1
  425. package/lib/internal/template/internal/components/option/option-parts.js +1 -1
  426. package/lib/internal/template/internal/components/option/option-parts.js.map +1 -1
  427. package/lib/internal/template/internal/components/option/utils/flatten-options.js +1 -2
  428. package/lib/internal/template/internal/components/option/utils/flatten-options.js.map +1 -1
  429. package/lib/internal/template/internal/components/options-list/index.js +2 -4
  430. package/lib/internal/template/internal/components/options-list/index.js.map +1 -1
  431. package/lib/internal/template/internal/components/screenreader-only/index.js +1 -1
  432. package/lib/internal/template/internal/components/screenreader-only/index.js.map +1 -1
  433. package/lib/internal/template/internal/components/selectable-item/analytics-metadata/utils.js +1 -3
  434. package/lib/internal/template/internal/components/selectable-item/analytics-metadata/utils.js.map +1 -1
  435. package/lib/internal/template/internal/components/selectable-item/index.js +5 -7
  436. package/lib/internal/template/internal/components/selectable-item/index.js.map +1 -1
  437. package/lib/internal/template/internal/components/sortable-area/index.js +19 -6
  438. package/lib/internal/template/internal/components/sortable-area/index.js.map +1 -1
  439. package/lib/internal/template/internal/components/token-list/styles.css.js +10 -10
  440. package/lib/internal/template/internal/components/token-list/styles.scoped.css +25 -25
  441. package/lib/internal/template/internal/components/token-list/styles.selectors.js +10 -10
  442. package/lib/internal/template/internal/components/token-list/token-limit-toggle.js +1 -1
  443. package/lib/internal/template/internal/components/token-list/token-limit-toggle.js.map +1 -1
  444. package/lib/internal/template/internal/components/tooltip/index.js +1 -1
  445. package/lib/internal/template/internal/components/tooltip/index.js.map +1 -1
  446. package/lib/internal/template/internal/components/transition/index.js +3 -5
  447. package/lib/internal/template/internal/components/transition/index.js.map +1 -1
  448. package/lib/internal/template/internal/environment.js +2 -2
  449. package/lib/internal/template/internal/environment.json +2 -2
  450. package/lib/internal/template/internal/generated/custom-css-properties/index.d.ts +28 -0
  451. package/lib/internal/template/internal/generated/custom-css-properties/index.d.ts.map +1 -1
  452. package/lib/internal/template/internal/generated/custom-css-properties/index.js +126 -98
  453. package/lib/internal/template/internal/generated/custom-css-properties/index.js.map +1 -1
  454. package/lib/internal/template/internal/generated/styles/tokens.d.ts +50 -75
  455. package/lib/internal/template/internal/generated/styles/tokens.js +50 -75
  456. package/lib/internal/template/internal/generated/theming/index.cjs +305 -461
  457. package/lib/internal/template/internal/generated/theming/index.js +305 -461
  458. package/lib/internal/template/internal/hooks/use-intersection-observer/index.js +1 -1
  459. package/lib/internal/template/internal/hooks/use-intersection-observer/index.js.map +1 -1
  460. package/lib/internal/template/internal/hooks/use-performance-marks/index.js +12 -2
  461. package/lib/internal/template/internal/hooks/use-performance-marks/index.js.map +1 -1
  462. package/lib/internal/template/internal/hooks/use-virtual/index.js +5 -2
  463. package/lib/internal/template/internal/hooks/use-virtual/index.js.map +1 -1
  464. package/lib/internal/template/internal/plugins/controllers/drawers.js +4 -6
  465. package/lib/internal/template/internal/plugins/controllers/drawers.js.map +1 -1
  466. package/lib/internal/template/internal/plugins/helpers/use-global-breadcrumbs.js +4 -6
  467. package/lib/internal/template/internal/plugins/helpers/use-global-breadcrumbs.js.map +1 -1
  468. package/lib/internal/template/internal/plugins/widget/index.js +1 -1
  469. package/lib/internal/template/internal/plugins/widget/index.js.map +1 -1
  470. package/lib/internal/template/internal/utils/with-native-attributes.js +4 -6
  471. package/lib/internal/template/internal/utils/with-native-attributes.js.map +1 -1
  472. package/lib/internal/template/internal/widgets/index.js +2 -2
  473. package/lib/internal/template/internal/widgets/index.js.map +1 -1
  474. package/lib/internal/template/internal/widgets/loader-mock.js +2 -2
  475. package/lib/internal/template/internal/widgets/loader-mock.js.map +1 -1
  476. package/lib/internal/template/key-value-pairs/index.js +2 -4
  477. package/lib/internal/template/key-value-pairs/index.js.map +1 -1
  478. package/lib/internal/template/key-value-pairs/internal.js +4 -6
  479. package/lib/internal/template/key-value-pairs/internal.js.map +1 -1
  480. package/lib/internal/template/line-chart/index.js +2 -4
  481. package/lib/internal/template/line-chart/index.js.map +1 -1
  482. package/lib/internal/template/link/index.js +2 -4
  483. package/lib/internal/template/link/index.js.map +1 -1
  484. package/lib/internal/template/link/internal.js +13 -6
  485. package/lib/internal/template/link/internal.js.map +1 -1
  486. package/lib/internal/template/link/style.js +12 -9
  487. package/lib/internal/template/link/style.js.map +1 -1
  488. package/lib/internal/template/link/styles.css.js +20 -20
  489. package/lib/internal/template/link/styles.scoped.css +103 -103
  490. package/lib/internal/template/link/styles.selectors.js +20 -20
  491. package/lib/internal/template/list/index.js +1 -1
  492. package/lib/internal/template/list/index.js.map +1 -1
  493. package/lib/internal/template/list/internal.js +6 -8
  494. package/lib/internal/template/list/internal.js.map +1 -1
  495. package/lib/internal/template/live-region/index.js +2 -4
  496. package/lib/internal/template/live-region/index.js.map +1 -1
  497. package/lib/internal/template/live-region/internal.js +2 -4
  498. package/lib/internal/template/live-region/internal.js.map +1 -1
  499. package/lib/internal/template/mixed-line-bar-chart/bar-series.js +3 -3
  500. package/lib/internal/template/mixed-line-bar-chart/bar-series.js.map +1 -1
  501. package/lib/internal/template/mixed-line-bar-chart/chart-container.js +7 -9
  502. package/lib/internal/template/mixed-line-bar-chart/chart-container.js.map +1 -1
  503. package/lib/internal/template/mixed-line-bar-chart/chart-popover.js +4 -1
  504. package/lib/internal/template/mixed-line-bar-chart/chart-popover.js.map +1 -1
  505. package/lib/internal/template/mixed-line-bar-chart/hooks/use-navigation.js +1 -1
  506. package/lib/internal/template/mixed-line-bar-chart/hooks/use-navigation.js.map +1 -1
  507. package/lib/internal/template/mixed-line-bar-chart/index.js +2 -4
  508. package/lib/internal/template/mixed-line-bar-chart/index.js.map +1 -1
  509. package/lib/internal/template/mixed-line-bar-chart/internal.js +2 -4
  510. package/lib/internal/template/mixed-line-bar-chart/internal.js.map +1 -1
  511. package/lib/internal/template/mixed-line-bar-chart/line-series.js +3 -3
  512. package/lib/internal/template/mixed-line-bar-chart/line-series.js.map +1 -1
  513. package/lib/internal/template/modal/index.js +5 -8
  514. package/lib/internal/template/modal/index.js.map +1 -1
  515. package/lib/internal/template/modal/internal.js +11 -14
  516. package/lib/internal/template/modal/internal.js.map +1 -1
  517. package/lib/internal/template/multiselect/embedded.js +15 -6
  518. package/lib/internal/template/multiselect/embedded.js.map +1 -1
  519. package/lib/internal/template/multiselect/index.js +2 -4
  520. package/lib/internal/template/multiselect/index.js.map +1 -1
  521. package/lib/internal/template/multiselect/internal.js +13 -12
  522. package/lib/internal/template/multiselect/internal.js.map +1 -1
  523. package/lib/internal/template/multiselect/use-multiselect.js +9 -5
  524. package/lib/internal/template/multiselect/use-multiselect.js.map +1 -1
  525. package/lib/internal/template/navigable-group/index.js +2 -4
  526. package/lib/internal/template/navigable-group/index.js.map +1 -1
  527. package/lib/internal/template/navigable-group/internal.js +2 -4
  528. package/lib/internal/template/navigable-group/internal.js.map +1 -1
  529. package/lib/internal/template/pagination/index.js +10 -10
  530. package/lib/internal/template/pagination/index.js.map +1 -1
  531. package/lib/internal/template/pagination/internal.js +36 -40
  532. package/lib/internal/template/pagination/internal.js.map +1 -1
  533. package/lib/internal/template/pie-chart/index.js +4 -6
  534. package/lib/internal/template/pie-chart/index.js.map +1 -1
  535. package/lib/internal/template/pie-chart/labels.js +2 -2
  536. package/lib/internal/template/pie-chart/labels.js.map +1 -1
  537. package/lib/internal/template/pie-chart/segments.js +1 -1
  538. package/lib/internal/template/pie-chart/segments.js.map +1 -1
  539. package/lib/internal/template/pie-chart/utils.js +17 -5
  540. package/lib/internal/template/pie-chart/utils.js.map +1 -1
  541. package/lib/internal/template/popover/body.js +3 -3
  542. package/lib/internal/template/popover/body.js.map +1 -1
  543. package/lib/internal/template/popover/container.js +1 -1
  544. package/lib/internal/template/popover/container.js.map +1 -1
  545. package/lib/internal/template/popover/index.js +2 -4
  546. package/lib/internal/template/popover/index.js.map +1 -1
  547. package/lib/internal/template/popover/internal.js +4 -6
  548. package/lib/internal/template/popover/internal.js.map +1 -1
  549. package/lib/internal/template/progress-bar/index.d.ts +1 -1
  550. package/lib/internal/template/progress-bar/index.d.ts.map +1 -1
  551. package/lib/internal/template/progress-bar/index.js +3 -5
  552. package/lib/internal/template/progress-bar/index.js.map +1 -1
  553. package/lib/internal/template/progress-bar/interfaces.d.ts +19 -0
  554. package/lib/internal/template/progress-bar/interfaces.d.ts.map +1 -1
  555. package/lib/internal/template/progress-bar/interfaces.js.map +1 -1
  556. package/lib/internal/template/progress-bar/internal.d.ts +2 -1
  557. package/lib/internal/template/progress-bar/internal.d.ts.map +1 -1
  558. package/lib/internal/template/progress-bar/internal.js +10 -3
  559. package/lib/internal/template/progress-bar/internal.js.map +1 -1
  560. package/lib/internal/template/progress-bar/styles.css.js +19 -19
  561. package/lib/internal/template/progress-bar/styles.d.ts +16 -0
  562. package/lib/internal/template/progress-bar/styles.d.ts.map +1 -0
  563. package/lib/internal/template/progress-bar/styles.js +33 -0
  564. package/lib/internal/template/progress-bar/styles.js.map +1 -0
  565. package/lib/internal/template/progress-bar/styles.scoped.css +56 -56
  566. package/lib/internal/template/progress-bar/styles.selectors.js +19 -19
  567. package/lib/internal/template/prompt-input/index.js +2 -4
  568. package/lib/internal/template/prompt-input/index.js.map +1 -1
  569. package/lib/internal/template/prompt-input/interfaces.d.ts +48 -0
  570. package/lib/internal/template/prompt-input/interfaces.d.ts.map +1 -1
  571. package/lib/internal/template/prompt-input/interfaces.js.map +1 -1
  572. package/lib/internal/template/prompt-input/internal.d.ts.map +1 -1
  573. package/lib/internal/template/prompt-input/internal.js +5 -6
  574. package/lib/internal/template/prompt-input/internal.js.map +1 -1
  575. package/lib/internal/template/prompt-input/styles.css.js +17 -17
  576. package/lib/internal/template/prompt-input/styles.d.ts +5 -0
  577. package/lib/internal/template/prompt-input/styles.d.ts.map +1 -0
  578. package/lib/internal/template/prompt-input/styles.js +44 -0
  579. package/lib/internal/template/prompt-input/styles.js.map +1 -0
  580. package/lib/internal/template/prompt-input/styles.scoped.css +73 -61
  581. package/lib/internal/template/prompt-input/styles.selectors.js +17 -17
  582. package/lib/internal/template/property-filter/controller.js +6 -6
  583. package/lib/internal/template/property-filter/controller.js.map +1 -1
  584. package/lib/internal/template/property-filter/filter-options.js +1 -1
  585. package/lib/internal/template/property-filter/filter-options.js.map +1 -1
  586. package/lib/internal/template/property-filter/filtering-token/index.js +11 -14
  587. package/lib/internal/template/property-filter/filtering-token/index.js.map +1 -1
  588. package/lib/internal/template/property-filter/i18n-utils.js +48 -11
  589. package/lib/internal/template/property-filter/i18n-utils.js.map +1 -1
  590. package/lib/internal/template/property-filter/index.js +4 -6
  591. package/lib/internal/template/property-filter/index.js.map +1 -1
  592. package/lib/internal/template/property-filter/internal.js +15 -13
  593. package/lib/internal/template/property-filter/internal.js.map +1 -1
  594. package/lib/internal/template/property-filter/property-editor.js +1 -1
  595. package/lib/internal/template/property-filter/property-editor.js.map +1 -1
  596. package/lib/internal/template/property-filter/property-filter-autosuggest.js +8 -4
  597. package/lib/internal/template/property-filter/property-filter-autosuggest.js.map +1 -1
  598. package/lib/internal/template/property-filter/token-editor-inputs.js +10 -9
  599. package/lib/internal/template/property-filter/token-editor-inputs.js.map +1 -1
  600. package/lib/internal/template/property-filter/token-editor.js +10 -10
  601. package/lib/internal/template/property-filter/token-editor.js.map +1 -1
  602. package/lib/internal/template/property-filter/token.js +8 -8
  603. package/lib/internal/template/property-filter/token.js.map +1 -1
  604. package/lib/internal/template/property-filter/use-load-items.js +6 -1
  605. package/lib/internal/template/property-filter/use-load-items.js.map +1 -1
  606. package/lib/internal/template/radio-group/analytics-metadata/interfaces.d.ts +1 -0
  607. package/lib/internal/template/radio-group/analytics-metadata/interfaces.d.ts.map +1 -1
  608. package/lib/internal/template/radio-group/analytics-metadata/interfaces.js.map +1 -1
  609. package/lib/internal/template/radio-group/analytics-metadata/styles.css.js +6 -0
  610. package/lib/internal/template/radio-group/analytics-metadata/styles.scoped.css +7 -0
  611. package/lib/internal/template/radio-group/analytics-metadata/styles.selectors.js +7 -0
  612. package/lib/internal/template/radio-group/index.d.ts.map +1 -1
  613. package/lib/internal/template/radio-group/index.js +10 -8
  614. package/lib/internal/template/radio-group/index.js.map +1 -1
  615. package/lib/internal/template/radio-group/internal.d.ts.map +1 -1
  616. package/lib/internal/template/radio-group/internal.js +11 -12
  617. package/lib/internal/template/radio-group/internal.js.map +1 -1
  618. package/lib/internal/template/radio-group/radio-button.js +4 -6
  619. package/lib/internal/template/radio-group/radio-button.js.map +1 -1
  620. package/lib/internal/template/radio-group/styles.css.js +10 -10
  621. package/lib/internal/template/radio-group/styles.scoped.css +22 -22
  622. package/lib/internal/template/radio-group/styles.selectors.js +10 -10
  623. package/lib/internal/template/s3-resource-selector/index.js +3 -5
  624. package/lib/internal/template/s3-resource-selector/index.js.map +1 -1
  625. package/lib/internal/template/s3-resource-selector/s3-in-context/index.js +1 -1
  626. package/lib/internal/template/s3-resource-selector/s3-in-context/index.js.map +1 -1
  627. package/lib/internal/template/s3-resource-selector/s3-in-context/search-input.js +1 -1
  628. package/lib/internal/template/s3-resource-selector/s3-in-context/search-input.js.map +1 -1
  629. package/lib/internal/template/s3-resource-selector/s3-modal/basic-table.js +4 -7
  630. package/lib/internal/template/s3-resource-selector/s3-modal/basic-table.js.map +1 -1
  631. package/lib/internal/template/s3-resource-selector/s3-modal/buckets-table.js +13 -1
  632. package/lib/internal/template/s3-resource-selector/s3-modal/buckets-table.js.map +1 -1
  633. package/lib/internal/template/s3-resource-selector/s3-modal/index.js +4 -1
  634. package/lib/internal/template/s3-resource-selector/s3-modal/index.js.map +1 -1
  635. package/lib/internal/template/s3-resource-selector/s3-modal/objects-table.js +14 -2
  636. package/lib/internal/template/s3-resource-selector/s3-modal/objects-table.js.map +1 -1
  637. package/lib/internal/template/s3-resource-selector/s3-modal/versions-table.js +13 -1
  638. package/lib/internal/template/s3-resource-selector/s3-modal/versions-table.js.map +1 -1
  639. package/lib/internal/template/segmented-control/index.js +1 -1
  640. package/lib/internal/template/segmented-control/index.js.map +1 -1
  641. package/lib/internal/template/segmented-control/internal.js +6 -8
  642. package/lib/internal/template/segmented-control/internal.js.map +1 -1
  643. package/lib/internal/template/segmented-control/segment.js +1 -1
  644. package/lib/internal/template/segmented-control/segment.js.map +1 -1
  645. package/lib/internal/template/select/index.js +2 -4
  646. package/lib/internal/template/select/index.js.map +1 -1
  647. package/lib/internal/template/select/internal.js +13 -10
  648. package/lib/internal/template/select/internal.js.map +1 -1
  649. package/lib/internal/template/select/parts/filter.js +9 -4
  650. package/lib/internal/template/select/parts/filter.js.map +1 -1
  651. package/lib/internal/template/select/parts/item.js +3 -5
  652. package/lib/internal/template/select/parts/item.js.map +1 -1
  653. package/lib/internal/template/select/parts/multiselect-item.js +3 -5
  654. package/lib/internal/template/select/parts/multiselect-item.js.map +1 -1
  655. package/lib/internal/template/select/parts/plain-list.js +1 -1
  656. package/lib/internal/template/select/parts/plain-list.js.map +1 -1
  657. package/lib/internal/template/select/parts/trigger.js +2 -2
  658. package/lib/internal/template/select/parts/trigger.js.map +1 -1
  659. package/lib/internal/template/select/parts/virtual-list.js +3 -3
  660. package/lib/internal/template/select/parts/virtual-list.js.map +1 -1
  661. package/lib/internal/template/select/utils/get-item-props.js +7 -1
  662. package/lib/internal/template/select/utils/get-item-props.js.map +1 -1
  663. package/lib/internal/template/select/utils/render-options.js +1 -1
  664. package/lib/internal/template/select/utils/render-options.js.map +1 -1
  665. package/lib/internal/template/side-navigation/implementation.js +2 -4
  666. package/lib/internal/template/side-navigation/implementation.js.map +1 -1
  667. package/lib/internal/template/side-navigation/index.js +2 -4
  668. package/lib/internal/template/side-navigation/index.js.map +1 -1
  669. package/lib/internal/template/side-navigation/parts.js +4 -4
  670. package/lib/internal/template/side-navigation/parts.js.map +1 -1
  671. package/lib/internal/template/slider/index.js +2 -4
  672. package/lib/internal/template/slider/index.js.map +1 -1
  673. package/lib/internal/template/slider/internal.js +2 -4
  674. package/lib/internal/template/slider/internal.js.map +1 -1
  675. package/lib/internal/template/slider/styles.css.js +26 -26
  676. package/lib/internal/template/slider/styles.scoped.css +86 -86
  677. package/lib/internal/template/slider/styles.selectors.js +26 -26
  678. package/lib/internal/template/slider/tick-marks.js +3 -3
  679. package/lib/internal/template/slider/tick-marks.js.map +1 -1
  680. package/lib/internal/template/space-between/index.js +2 -4
  681. package/lib/internal/template/space-between/index.js.map +1 -1
  682. package/lib/internal/template/space-between/internal.js +2 -4
  683. package/lib/internal/template/space-between/internal.js.map +1 -1
  684. package/lib/internal/template/spinner/index.js +2 -4
  685. package/lib/internal/template/spinner/index.js.map +1 -1
  686. package/lib/internal/template/spinner/internal.js +2 -4
  687. package/lib/internal/template/spinner/internal.js.map +1 -1
  688. package/lib/internal/template/spinner/styles.css.js +13 -13
  689. package/lib/internal/template/spinner/styles.scoped.css +39 -39
  690. package/lib/internal/template/spinner/styles.selectors.js +13 -13
  691. package/lib/internal/template/split-panel/bottom.js +2 -2
  692. package/lib/internal/template/split-panel/bottom.js.map +1 -1
  693. package/lib/internal/template/split-panel/implementation.js +2 -4
  694. package/lib/internal/template/split-panel/implementation.js.map +1 -1
  695. package/lib/internal/template/split-panel/index.js +16 -4
  696. package/lib/internal/template/split-panel/index.js.map +1 -1
  697. package/lib/internal/template/split-panel/side.js +6 -2
  698. package/lib/internal/template/split-panel/side.js.map +1 -1
  699. package/lib/internal/template/status-indicator/index.js +2 -4
  700. package/lib/internal/template/status-indicator/index.js.map +1 -1
  701. package/lib/internal/template/status-indicator/internal.js +3 -5
  702. package/lib/internal/template/status-indicator/internal.js.map +1 -1
  703. package/lib/internal/template/steps/index.js +2 -4
  704. package/lib/internal/template/steps/index.js.map +1 -1
  705. package/lib/internal/template/steps/internal.js +2 -4
  706. package/lib/internal/template/steps/internal.js.map +1 -1
  707. package/lib/internal/template/table/body-cell/disabled-inline-editor.js +4 -6
  708. package/lib/internal/template/table/body-cell/disabled-inline-editor.js.map +1 -1
  709. package/lib/internal/template/table/body-cell/index.js +9 -11
  710. package/lib/internal/template/table/body-cell/index.js.map +1 -1
  711. package/lib/internal/template/table/body-cell/inline-editor.js +18 -21
  712. package/lib/internal/template/table/body-cell/inline-editor.js.map +1 -1
  713. package/lib/internal/template/table/body-cell/td-element.js +3 -5
  714. package/lib/internal/template/table/body-cell/td-element.js.map +1 -1
  715. package/lib/internal/template/table/expandable-rows/expandable-rows-utils.js +1 -1
  716. package/lib/internal/template/table/expandable-rows/expandable-rows-utils.js.map +1 -1
  717. package/lib/internal/template/table/header-cell/index.js +20 -20
  718. package/lib/internal/template/table/header-cell/index.js.map +1 -1
  719. package/lib/internal/template/table/header-cell/th-element.js +3 -5
  720. package/lib/internal/template/table/header-cell/th-element.js.map +1 -1
  721. package/lib/internal/template/table/index.js +14 -10
  722. package/lib/internal/template/table/index.js.map +1 -1
  723. package/lib/internal/template/table/internal.js +47 -34
  724. package/lib/internal/template/table/internal.js.map +1 -1
  725. package/lib/internal/template/table/progressive-loading/loader-cell.js +2 -4
  726. package/lib/internal/template/table/progressive-loading/loader-cell.js.map +1 -1
  727. package/lib/internal/template/table/selection/selection-cell.js +8 -11
  728. package/lib/internal/template/table/selection/selection-cell.js.map +1 -1
  729. package/lib/internal/template/table/selection/selection-control.js +10 -12
  730. package/lib/internal/template/table/selection/selection-control.js.map +1 -1
  731. package/lib/internal/template/table/sticky-columns/use-sticky-columns.js +1 -1
  732. package/lib/internal/template/table/sticky-columns/use-sticky-columns.js.map +1 -1
  733. package/lib/internal/template/table/sticky-header.js +2 -2
  734. package/lib/internal/template/table/sticky-header.js.map +1 -1
  735. package/lib/internal/template/table/thead.js +5 -5
  736. package/lib/internal/template/table/thead.js.map +1 -1
  737. package/lib/internal/template/table/use-cell-editing.js +3 -4
  738. package/lib/internal/template/table/use-cell-editing.js.map +1 -1
  739. package/lib/internal/template/table/utils.js +1 -1
  740. package/lib/internal/template/table/utils.js.map +1 -1
  741. package/lib/internal/template/tabs/index.js +6 -8
  742. package/lib/internal/template/tabs/index.js.map +1 -1
  743. package/lib/internal/template/tabs/tab-header-bar.js +12 -5
  744. package/lib/internal/template/tabs/tab-header-bar.js.map +1 -1
  745. package/lib/internal/template/tag-editor/index.js +7 -9
  746. package/lib/internal/template/tag-editor/index.js.map +1 -1
  747. package/lib/internal/template/tag-editor/styles.css.js +3 -3
  748. package/lib/internal/template/tag-editor/styles.scoped.css +13 -13
  749. package/lib/internal/template/tag-editor/styles.selectors.js +3 -3
  750. package/lib/internal/template/text-content/index.js +2 -4
  751. package/lib/internal/template/text-content/index.js.map +1 -1
  752. package/lib/internal/template/text-content/styles.css.js +1 -1
  753. package/lib/internal/template/text-content/styles.scoped.css +66 -66
  754. package/lib/internal/template/text-content/styles.selectors.js +1 -1
  755. package/lib/internal/template/text-filter/index.js +1 -1
  756. package/lib/internal/template/text-filter/index.js.map +1 -1
  757. package/lib/internal/template/text-filter/internal.js +2 -4
  758. package/lib/internal/template/text-filter/internal.js.map +1 -1
  759. package/lib/internal/template/textarea/index.js +3 -5
  760. package/lib/internal/template/textarea/index.js.map +1 -1
  761. package/lib/internal/template/textarea/styles.css.js +5 -5
  762. package/lib/internal/template/textarea/styles.js +42 -30
  763. package/lib/internal/template/textarea/styles.js.map +1 -1
  764. package/lib/internal/template/textarea/styles.scoped.css +41 -41
  765. package/lib/internal/template/textarea/styles.selectors.js +5 -5
  766. package/lib/internal/template/tiles/index.js +3 -3
  767. package/lib/internal/template/tiles/index.js.map +1 -1
  768. package/lib/internal/template/tiles/internal.js +12 -14
  769. package/lib/internal/template/tiles/internal.js.map +1 -1
  770. package/lib/internal/template/tiles/tile.js +3 -5
  771. package/lib/internal/template/tiles/tile.js.map +1 -1
  772. package/lib/internal/template/time-input/index.js +2 -4
  773. package/lib/internal/template/time-input/index.js.map +1 -1
  774. package/lib/internal/template/time-input/internal.js +2 -4
  775. package/lib/internal/template/time-input/internal.js.map +1 -1
  776. package/lib/internal/template/toggle/index.js +1 -1
  777. package/lib/internal/template/toggle/index.js.map +1 -1
  778. package/lib/internal/template/toggle/internal.js +5 -7
  779. package/lib/internal/template/toggle/internal.js.map +1 -1
  780. package/lib/internal/template/toggle/styles.css.js +10 -10
  781. package/lib/internal/template/toggle/styles.scoped.css +23 -23
  782. package/lib/internal/template/toggle/styles.selectors.js +10 -10
  783. package/lib/internal/template/toggle-button/index.js +2 -4
  784. package/lib/internal/template/toggle-button/index.js.map +1 -1
  785. package/lib/internal/template/toggle-button/internal.js +3 -5
  786. package/lib/internal/template/toggle-button/internal.js.map +1 -1
  787. package/lib/internal/template/token/dismiss-button.js +2 -2
  788. package/lib/internal/template/token/dismiss-button.js.map +1 -1
  789. package/lib/internal/template/token/index.js +1 -1
  790. package/lib/internal/template/token/index.js.map +1 -1
  791. package/lib/internal/template/token/internal.js +20 -14
  792. package/lib/internal/template/token/internal.js.map +1 -1
  793. package/lib/internal/template/token-group/index.js +2 -4
  794. package/lib/internal/template/token-group/index.js.map +1 -1
  795. package/lib/internal/template/token-group/internal.js +6 -8
  796. package/lib/internal/template/token-group/internal.js.map +1 -1
  797. package/lib/internal/template/top-navigation/index.js +2 -4
  798. package/lib/internal/template/top-navigation/index.js.map +1 -1
  799. package/lib/internal/template/top-navigation/internal.js +2 -4
  800. package/lib/internal/template/top-navigation/internal.js.map +1 -1
  801. package/lib/internal/template/top-navigation/parts/overflow-menu/menu-item.js +7 -11
  802. package/lib/internal/template/top-navigation/parts/overflow-menu/menu-item.js.map +1 -1
  803. package/lib/internal/template/top-navigation/parts/overflow-menu/views/submenu.js +2 -2
  804. package/lib/internal/template/top-navigation/parts/overflow-menu/views/submenu.js.map +1 -1
  805. package/lib/internal/template/top-navigation/parts/overflow-menu/views/utilities.js +1 -1
  806. package/lib/internal/template/top-navigation/parts/overflow-menu/views/utilities.js.map +1 -1
  807. package/lib/internal/template/top-navigation/parts/utility.js +1 -1
  808. package/lib/internal/template/top-navigation/parts/utility.js.map +1 -1
  809. package/lib/internal/template/tree-view/index.js +1 -1
  810. package/lib/internal/template/tree-view/index.js.map +1 -1
  811. package/lib/internal/template/tree-view/internal.js +2 -4
  812. package/lib/internal/template/tree-view/internal.js.map +1 -1
  813. package/lib/internal/template/tutorial-panel/components/tutorial-detail-view/task-list.js +1 -1
  814. package/lib/internal/template/tutorial-panel/components/tutorial-detail-view/task-list.js.map +1 -1
  815. package/lib/internal/template/tutorial-panel/index.js +2 -4
  816. package/lib/internal/template/tutorial-panel/index.js.map +1 -1
  817. package/lib/internal/template/wizard/index.js +2 -4
  818. package/lib/internal/template/wizard/index.js.map +1 -1
  819. package/lib/internal/template/wizard/internal.js +23 -10
  820. package/lib/internal/template/wizard/internal.js.map +1 -1
  821. package/lib/internal/template/wizard/wizard-actions.js +3 -3
  822. package/lib/internal/template/wizard/wizard-actions.js.map +1 -1
  823. package/lib/internal/template/wizard/wizard-form.js +2 -2
  824. package/lib/internal/template/wizard/wizard-form.js.map +1 -1
  825. package/lib/internal/template/wizard/wizard-navigation.js +7 -7
  826. package/lib/internal/template/wizard/wizard-navigation.js.map +1 -1
  827. package/package.json +1 -1
@@ -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 InternalAreaChart from './internal';
9
- function AreaChart(_a) {
10
- var { height = 500, xScaleType = 'linear', yScaleType = 'linear', statusType = 'finished', detailPopoverSize = 'medium', i18nStrings = {} } = _a, props = __rest(_a, ["height", "xScaleType", "yScaleType", "statusType", "detailPopoverSize", "i18nStrings"]);
8
+ function AreaChart({ height = 500, xScaleType = 'linear', yScaleType = 'linear', statusType = 'finished', detailPopoverSize = 'medium', i18nStrings = {}, ...props }) {
11
9
  const baseComponentProps = useBaseComponent('AreaChart', {
12
10
  props: {
13
11
  detailPopoverSize,
@@ -18,7 +16,7 @@ function AreaChart(_a) {
18
16
  yScaleType,
19
17
  },
20
18
  });
21
- return (React.createElement(InternalAreaChart, Object.assign({ height: height, xScaleType: xScaleType, yScaleType: yScaleType, statusType: statusType, detailPopoverSize: detailPopoverSize, i18nStrings: i18nStrings }, props, baseComponentProps)));
19
+ return (React.createElement(InternalAreaChart, { height: height, xScaleType: xScaleType, yScaleType: yScaleType, statusType: statusType, detailPopoverSize: detailPopoverSize, i18nStrings: i18nStrings, ...props, ...baseComponentProps }));
22
20
  }
23
21
  applyDisplayName(AreaChart, 'AreaChart');
24
22
  export default AreaChart;
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/area-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,iBAAiB,MAAM,YAAY,CAAC;AAI3C,SAAS,SAAS,CAAqC,EAQnC;QARmC,EACrD,MAAM,GAAG,GAAG,EACZ,UAAU,GAAG,QAAQ,EACrB,UAAU,GAAG,QAAQ,EACrB,UAAU,GAAG,UAAU,EACvB,iBAAiB,GAAG,QAAQ,EAC5B,WAAW,GAAG,EAAE,OAEE,EADf,KAAK,cAP6C,wFAQtD,CADS;IAER,MAAM,kBAAkB,GAAG,gBAAgB,CAAC,WAAW,EAAE;QACvD,KAAK,EAAE;YACL,iBAAiB;YACjB,UAAU,EAAE,KAAK,CAAC,UAAU;YAC5B,UAAU,EAAE,KAAK,CAAC,UAAU;YAC5B,SAAS,EAAE,KAAK,CAAC,SAAS;YAC1B,UAAU;YACV,UAAU;SACX;KACF,CAAC,CAAC;IACH,OAAO,CACL,oBAAC,iBAAiB,kBAChB,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,UAAU,EACtB,UAAU,EAAE,UAAU,EACtB,UAAU,EAAE,UAAU,EACtB,iBAAiB,EAAE,iBAAiB,EACpC,WAAW,EAAE,WAAW,IACpB,KAAK,EACL,kBAAkB,EACtB,CACH,CAAC;AACJ,CAAC;AAED,gBAAgB,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;AAEzC,eAAe,SAAS,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 { AreaChartProps } from './interfaces';\nimport InternalAreaChart from './internal';\n\nexport { AreaChartProps };\n\nfunction AreaChart<T extends AreaChartProps.DataTypes>({\n height = 500,\n xScaleType = 'linear',\n yScaleType = 'linear',\n statusType = 'finished',\n detailPopoverSize = 'medium',\n i18nStrings = {},\n ...props\n}: AreaChartProps<T>) {\n const baseComponentProps = useBaseComponent('AreaChart', {\n props: {\n detailPopoverSize,\n hideLegend: props.hideLegend,\n hideFilter: props.hideFilter,\n fitHeight: props.fitHeight,\n xScaleType,\n yScaleType,\n },\n });\n return (\n <InternalAreaChart\n height={height}\n xScaleType={xScaleType}\n yScaleType={yScaleType}\n statusType={statusType}\n detailPopoverSize={detailPopoverSize}\n i18nStrings={i18nStrings}\n {...props}\n {...baseComponentProps}\n />\n );\n}\n\napplyDisplayName(AreaChart, 'AreaChart');\n\nexport default AreaChart;\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/area-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,iBAAiB,MAAM,YAAY,CAAC;AAI3C,SAAS,SAAS,CAAqC,EACrD,MAAM,GAAG,GAAG,EACZ,UAAU,GAAG,QAAQ,EACrB,UAAU,GAAG,QAAQ,EACrB,UAAU,GAAG,UAAU,EACvB,iBAAiB,GAAG,QAAQ,EAC5B,WAAW,GAAG,EAAE,EAChB,GAAG,KAAK,EACU;IAClB,MAAM,kBAAkB,GAAG,gBAAgB,CAAC,WAAW,EAAE;QACvD,KAAK,EAAE;YACL,iBAAiB;YACjB,UAAU,EAAE,KAAK,CAAC,UAAU;YAC5B,UAAU,EAAE,KAAK,CAAC,UAAU;YAC5B,SAAS,EAAE,KAAK,CAAC,SAAS;YAC1B,UAAU;YACV,UAAU;SACX;KACF,CAAC,CAAC;IACH,OAAO,CACL,oBAAC,iBAAiB,IAChB,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,UAAU,EACtB,UAAU,EAAE,UAAU,EACtB,UAAU,EAAE,UAAU,EACtB,iBAAiB,EAAE,iBAAiB,EACpC,WAAW,EAAE,WAAW,KACpB,KAAK,KACL,kBAAkB,GACtB,CACH,CAAC;AACJ,CAAC;AAED,gBAAgB,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;AAEzC,eAAe,SAAS,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 { AreaChartProps } from './interfaces';\nimport InternalAreaChart from './internal';\n\nexport { AreaChartProps };\n\nfunction AreaChart<T extends AreaChartProps.DataTypes>({\n height = 500,\n xScaleType = 'linear',\n yScaleType = 'linear',\n statusType = 'finished',\n detailPopoverSize = 'medium',\n i18nStrings = {},\n ...props\n}: AreaChartProps<T>) {\n const baseComponentProps = useBaseComponent('AreaChart', {\n props: {\n detailPopoverSize,\n hideLegend: props.hideLegend,\n hideFilter: props.hideFilter,\n fitHeight: props.fitHeight,\n xScaleType,\n yScaleType,\n },\n });\n return (\n <InternalAreaChart\n height={height}\n xScaleType={xScaleType}\n yScaleType={yScaleType}\n statusType={statusType}\n detailPopoverSize={detailPopoverSize}\n i18nStrings={i18nStrings}\n {...props}\n {...baseComponentProps}\n />\n );\n}\n\napplyDisplayName(AreaChart, 'AreaChart');\n\nexport default AreaChart;\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, useState } from 'react';
@@ -18,8 +17,7 @@ import useFilterProps from './model/use-filter-props';
18
17
  import useHighlightProps from './model/use-highlight-props';
19
18
  import { isSeriesValid } from './model/utils';
20
19
  import styles from './styles.css.js';
21
- export default function InternalAreaChart(_a) {
22
- var { fitHeight, height, xScaleType, yScaleType, xDomain, yDomain, xTickFormatter, yTickFormatter, detailTotalFormatter, highlightedSeries: controlledHighlightedSeries, visibleSeries: controlledVisibleSeries, series: externalSeries, onFilterChange: controlledOnVisibleChange, onHighlightChange: controlledOnHighlightChange, i18nStrings, ariaLabel, ariaLabelledby, ariaDescription, xTitle, yTitle, hideFilter, additionalFilters, hideLegend, legendTitle, statusType, detailPopoverSize, detailPopoverFooter, empty, noMatch, errorText, loadingText, recoveryText, onRecoveryClick, __internalRootRef } = _a, props = __rest(_a, ["fitHeight", "height", "xScaleType", "yScaleType", "xDomain", "yDomain", "xTickFormatter", "yTickFormatter", "detailTotalFormatter", "highlightedSeries", "visibleSeries", "series", "onFilterChange", "onHighlightChange", "i18nStrings", "ariaLabel", "ariaLabelledby", "ariaDescription", "xTitle", "yTitle", "hideFilter", "additionalFilters", "hideLegend", "legendTitle", "statusType", "detailPopoverSize", "detailPopoverFooter", "empty", "noMatch", "errorText", "loadingText", "recoveryText", "onRecoveryClick", "__internalRootRef"]);
20
+ export default function InternalAreaChart({ fitHeight, height, xScaleType, yScaleType, xDomain, yDomain, xTickFormatter, yTickFormatter, detailTotalFormatter, highlightedSeries: controlledHighlightedSeries, visibleSeries: controlledVisibleSeries, series: externalSeries, onFilterChange: controlledOnVisibleChange, onHighlightChange: controlledOnHighlightChange, i18nStrings, ariaLabel, ariaLabelledby, ariaDescription, xTitle, yTitle, hideFilter, additionalFilters, hideLegend, legendTitle, statusType, detailPopoverSize, detailPopoverFooter, empty, noMatch, errorText, loadingText, recoveryText, onRecoveryClick, __internalRootRef, ...props }) {
23
21
  const baseProps = getBaseProps(props);
24
22
  const containerRef = useRef(null);
25
23
  const popoverRef = useRef(null);
@@ -73,6 +71,6 @@ export default function InternalAreaChart(_a) {
73
71
  }
74
72
  };
75
73
  const mergedRef = useMergeRefs(containerRef, __internalRootRef);
76
- return (React.createElement(ChartWrapper, Object.assign({ ref: mergedRef }, baseProps, { className: clsx(baseProps.className, styles.root), fitHeight: !!fitHeight, contentMinHeight: height, defaultFilter: showFilters && !hideFilter ? (React.createElement(AreaChartFilter, { model: model, filterLabel: i18nStrings.filterLabel, filterPlaceholder: i18nStrings.filterPlaceholder, filterSelectedAriaLabel: i18nStrings.filterSelectedAriaLabel })) : 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, { model: model, autoWidth: setWidth, detailPopoverSize: detailPopoverSize, detailPopoverFooter: detailPopoverFooter, xTitle: xTitle, yTitle: yTitle, xTickFormatter: xTickFormatter, yTickFormatter: yTickFormatter, detailTotalFormatter: detailTotalFormatter, ariaLabel: ariaLabel, ariaLabelledby: ariaLabelledby, ariaDescription: ariaDescription, i18nStrings: i18nStrings, fitHeight: fitHeight, hasFilters: !!showFilters, minHeight: height, isRTL: isRtl })) : null, legend: showLegend ? (React.createElement(AreaChartLegend, { plotContainerRef: containerRef, model: model, legendTitle: legendTitle, ariaLabel: i18nStrings.legendAriaLabel })) : null, onBlur: onBlur })));
74
+ return (React.createElement(ChartWrapper, { ref: mergedRef, ...baseProps, className: clsx(baseProps.className, styles.root), fitHeight: !!fitHeight, contentMinHeight: height, defaultFilter: showFilters && !hideFilter ? (React.createElement(AreaChartFilter, { model: model, filterLabel: i18nStrings.filterLabel, filterPlaceholder: i18nStrings.filterPlaceholder, filterSelectedAriaLabel: i18nStrings.filterSelectedAriaLabel })) : 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, { model: model, autoWidth: setWidth, detailPopoverSize: detailPopoverSize, detailPopoverFooter: detailPopoverFooter, xTitle: xTitle, yTitle: yTitle, xTickFormatter: xTickFormatter, yTickFormatter: yTickFormatter, detailTotalFormatter: detailTotalFormatter, ariaLabel: ariaLabel, ariaLabelledby: ariaLabelledby, ariaDescription: ariaDescription, i18nStrings: i18nStrings, fitHeight: fitHeight, hasFilters: !!showFilters, minHeight: height, isRTL: isRtl })) : null, legend: showLegend ? (React.createElement(AreaChartLegend, { plotContainerRef: containerRef, model: model, legendTitle: legendTitle, ariaLabel: i18nStrings.legendAriaLabel })) : null, onBlur: onBlur }));
77
75
  }
78
76
  //# sourceMappingURL=internal.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"internal.js","sourceRoot":"","sources":["../../../src/area-chart/internal.tsx"],"names":[],"mappings":";AAAA,qEAAqE;AACrE,sCAAsC;AACtC,OAAO,KAAK,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAC3D,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,+CAA+C,CAAC;AACvF,OAAO,EAAE,QAAQ,EAAE,MAAM,+CAA+C,CAAC;AAEzE,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,oBAAoB,EAAE,EAAE,cAAc,EAAE,MAAM,+CAA+C,CAAC;AACrG,OAAO,EAAE,YAAY,EAAE,MAAM,sCAAsC,CAAC;AAEpE,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAE3D,OAAO,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAC7D,OAAO,cAAc,MAAM,mBAAmB,CAAC;AAC/C,OAAO,eAAe,MAAM,8BAA8B,CAAC;AAC3D,OAAO,eAAe,MAAM,8BAA8B,CAAC;AAE3D,OAAO,aAAa,MAAM,yBAAyB,CAAC;AACpD,OAAO,cAAc,MAAM,0BAA0B,CAAC;AACtD,OAAO,iBAAiB,MAAM,6BAA6B,CAAC;AAC5D,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAE9C,OAAO,MAAM,MAAM,iBAAiB,CAAC;AAQrC,MAAM,CAAC,OAAO,UAAU,iBAAiB,CAAqC,EAoClD;QApCkD,EAC5E,SAAS,EACT,MAAM,EACN,UAAU,EACV,UAAU,EACV,OAAO,EACP,OAAO,EACP,cAAc,EACd,cAAc,EACd,oBAAoB,EACpB,iBAAiB,EAAE,2BAA2B,EAC9C,aAAa,EAAE,uBAAuB,EACtC,MAAM,EAAE,cAAc,EACtB,cAAc,EAAE,yBAAyB,EACzC,iBAAiB,EAAE,2BAA2B,EAC9C,WAAW,EACX,SAAS,EACT,cAAc,EACd,eAAe,EACf,MAAM,EACN,MAAM,EACN,UAAU,EACV,iBAAiB,EACjB,UAAU,EACV,WAAW,EACX,UAAU,EACV,iBAAiB,EACjB,mBAAmB,EACnB,KAAK,EACL,OAAO,EACP,SAAS,EACT,WAAW,EACX,YAAY,EACZ,eAAe,EACf,iBAAiB,OAES,EADvB,KAAK,cAnCoE,mhBAoC7E,CADS;IAER,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;IACtC,MAAM,YAAY,GAAG,MAAM,CAAiB,IAAI,CAAC,CAAC;IAClD,MAAM,UAAU,GAAG,MAAM,CAAiB,IAAI,CAAC,CAAC;IAEhD,IAAI,aAAa,EAAE,CAAC;QAClB,sDAAsD;QACtD,SAAS,CAAC,GAAG,EAAE;YACb,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,EAAE,CAAC;gBACnC,QAAQ,CACN,WAAW,EACX,yEAAyE;oBACvE,+EAA+E,CAClF,CAAC;YACJ,CAAC;QACH,CAAC,EAAE,CAAC,cAAc,CAAC,CAAC,CAAC;IACvB,CAAC;IAED,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;IACtC,MAAM,CAAC,aAAa,EAAE,gBAAgB,CAAC,GAAG,cAAc,CACtD,cAAc,EACd,uBAAuB,EACvB,yBAAyB,CAC1B,CAAC;IACF,MAAM,CAAC,iBAAiB,EAAE,oBAAoB,CAAC,GAAG,iBAAiB,CACjE,cAAc,EACd,2BAA2B,EAC3B,2BAA2B,CAC5B,CAAC;IACF,MAAM,KAAK,GAAG,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;IAC5E,MAAM,KAAK,GAAG,aAAa,CAAC;QAC1B,KAAK;QACL,SAAS;QACT,cAAc;QACd,aAAa;QACb,gBAAgB;QAChB,iBAAiB;QACjB,oBAAoB;QACpB,OAAO;QACP,OAAO;QACP,UAAU;QACV,UAAU;QACV,MAAM;QACN,KAAK;QACL,UAAU;QACV,UAAU;KACX,CAAC,CAAC;IAEH,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,GAAG,cAAc,CAAC;QACvD,YAAY,EAAE,cAAc;QAC5B,WAAW,EAAE,aAAa;QAC1B,UAAU;KACX,CAAC,CAAC;IACH,MAAM,WAAW,GAAG,UAAU,KAAK,UAAU,IAAI,CAAC,CAAC,OAAO,IAAI,SAAS,CAAC,IAAI,CAAC,iBAAiB,IAAI,CAAC,UAAU,CAAC,CAAC;IAC/G,MAAM,UAAU,GAAG,CAAC,UAAU,IAAI,CAAC,OAAO,IAAI,UAAU,KAAK,UAAU,CAAC;IACxE,MAAM,kBAAkB,GAAG,CAAC,SAAS,IAAI,CAAC,UAAU,CAAC;IACrD,MAAM,kBAAkB,GAAG,CAAC,SAAS,IAAI,CAAC,SAAS,IAAI,CAAC,CAAC,UAAU,IAAI,iBAAiB,CAAC,CAAC;IAE1F,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,SAAS,GAAG,KAAK,CAAC,QAAQ,CAAC,iBAAiB,CAAC;QACnD,QAAQ,CAAC,gBAAgB,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;QAChD,OAAO,GAAG,EAAE,CAAC,QAAQ,CAAC,mBAAmB,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;IAClE,CAAC,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC,CAAC;IAEvC,MAAM,MAAM,GAAG,CAAC,KAAuB,EAAE,EAAE;QACzC,IAAI,KAAK,CAAC,aAAa,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,OAAO,EAAE,KAAK,CAAC,aAAa,CAAC,EAAE,CAAC;YACnF,KAAK,CAAC,QAAQ,CAAC,eAAe,EAAE,CAAC;QACnC,CAAC;IACH,CAAC,CAAC;IAEF,MAAM,SAAS,GAAG,YAAY,CAAC,YAAY,EAAE,iBAAiB,CAAC,CAAC;IAEhE,OAAO,CACL,oBAAC,YAAY,kBACX,GAAG,EAAE,SAAS,IACV,SAAS,IACb,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,MAAM,CAAC,IAAI,CAAC,EACjD,SAAS,EAAE,CAAC,CAAC,SAAS,EACtB,gBAAgB,EAAE,MAAM,EACxB,aAAa,EACX,WAAW,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAC3B,oBAAC,eAAe,IACd,KAAK,EAAE,KAAK,EACZ,WAAW,EAAE,WAAW,CAAC,WAAW,EACpC,iBAAiB,EAAE,WAAW,CAAC,iBAAiB,EAChD,uBAAuB,EAAE,WAAW,CAAC,uBAAuB,GAC5D,CACH,CAAC,CAAC,CAAC,IAAI,EAEV,iBAAiB,EAAE,WAAW,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,IAAI,EACzD,kBAAkB,EAAE,CAAC,CAAC,kBAAkB,EACxC,kBAAkB,EAAE,CAAC,CAAC,kBAAkB,EACxC,WAAW,EACT,oBAAC,oBAAoB,IACnB,OAAO,EAAE,OAAO,EAChB,SAAS,EAAE,SAAS,EACpB,SAAS,EAAE,SAAS,EACpB,UAAU,EAAE,UAAU,EACtB,KAAK,EAAE,KAAK,EACZ,OAAO,EAAE,OAAO,EAChB,WAAW,EAAE,WAAW,EACxB,SAAS,EAAE,SAAS,EACpB,YAAY,EAAE,YAAY,EAC1B,eAAe,EAAE,eAAe,GAChC,EAEJ,KAAK,EACH,SAAS,CAAC,CAAC,CAAC,CACV,oBAAC,cAAc,IACb,KAAK,EAAE,KAAK,EACZ,SAAS,EAAE,QAAQ,EACnB,iBAAiB,EAAE,iBAAiB,EACpC,mBAAmB,EAAE,mBAAmB,EACxC,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,cAAc,EAAE,cAAc,EAC9B,cAAc,EAAE,cAAc,EAC9B,oBAAoB,EAAE,oBAAoB,EAC1C,SAAS,EAAE,SAAS,EACpB,cAAc,EAAE,cAAc,EAC9B,eAAe,EAAE,eAAe,EAChC,WAAW,EAAE,WAAW,EACxB,SAAS,EAAE,SAAS,EACpB,UAAU,EAAE,CAAC,CAAC,WAAW,EACzB,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,KAAK,GACZ,CACH,CAAC,CAAC,CAAC,IAAI,EAEV,MAAM,EACJ,UAAU,CAAC,CAAC,CAAC,CACX,oBAAC,eAAe,IACd,gBAAgB,EAAE,YAAY,EAC9B,KAAK,EAAE,KAAK,EACZ,WAAW,EAAE,WAAW,EACxB,SAAS,EAAE,WAAW,CAAC,eAAe,GACtC,CACH,CAAC,CAAC,CAAC,IAAI,EAEV,MAAM,EAAE,MAAM,IACd,CACH,CAAC;AACJ,CAAC","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport React, { useEffect, useRef, useState } from 'react';\nimport clsx from 'clsx';\n\nimport { useMergeRefs, warnOnce } from '@cloudscape-design/component-toolkit/internal';\nimport { getIsRtl } from '@cloudscape-design/component-toolkit/internal';\n\nimport { getBaseProps } from '../internal/base-component';\nimport ChartStatusContainer, { getChartStatus } from '../internal/components/chart-status-container';\nimport { ChartWrapper } from '../internal/components/chart-wrapper';\nimport { InternalBaseComponentProps } from '../internal/hooks/use-base-component';\nimport { isDevelopment } from '../internal/is-development';\nimport { SomeRequired } from '../internal/types';\nimport { nodeBelongs } from '../internal/utils/node-belongs';\nimport ChartContainer from './chart-container';\nimport AreaChartFilter from './elements/area-chart-filter';\nimport AreaChartLegend from './elements/area-chart-legend';\nimport { AreaChartProps } from './interfaces';\nimport useChartModel from './model/use-chart-model';\nimport useFilterProps from './model/use-filter-props';\nimport useHighlightProps from './model/use-highlight-props';\nimport { isSeriesValid } from './model/utils';\n\nimport styles from './styles.css.js';\n\ntype InternalAreaChartProps<T extends AreaChartProps.DataTypes> = SomeRequired<\n AreaChartProps<T>,\n 'height' | 'xScaleType' | 'yScaleType' | 'statusType' | 'detailPopoverSize' | 'i18nStrings'\n> &\n InternalBaseComponentProps;\n\nexport default function InternalAreaChart<T extends AreaChartProps.DataTypes>({\n fitHeight,\n height,\n xScaleType,\n yScaleType,\n xDomain,\n yDomain,\n xTickFormatter,\n yTickFormatter,\n detailTotalFormatter,\n highlightedSeries: controlledHighlightedSeries,\n visibleSeries: controlledVisibleSeries,\n series: externalSeries,\n onFilterChange: controlledOnVisibleChange,\n onHighlightChange: controlledOnHighlightChange,\n i18nStrings,\n ariaLabel,\n ariaLabelledby,\n ariaDescription,\n xTitle,\n yTitle,\n hideFilter,\n additionalFilters,\n hideLegend,\n legendTitle,\n statusType,\n detailPopoverSize,\n detailPopoverFooter,\n empty,\n noMatch,\n errorText,\n loadingText,\n recoveryText,\n onRecoveryClick,\n __internalRootRef,\n ...props\n}: InternalAreaChartProps<T>) {\n const baseProps = getBaseProps(props);\n const containerRef = useRef<HTMLDivElement>(null);\n const popoverRef = useRef<HTMLDivElement>(null);\n\n if (isDevelopment) {\n // eslint-disable-next-line react-hooks/rules-of-hooks\n useEffect(() => {\n if (!isSeriesValid(externalSeries)) {\n warnOnce(\n 'AreaChart',\n \"The `series` property violates the component's constraints: all `area` \" +\n 'series must have `data` arrays of the same length and with the same x-values.'\n );\n }\n }, [externalSeries]);\n }\n\n const [width, setWidth] = useState(0);\n const [visibleSeries, setVisibleSeries] = useFilterProps(\n externalSeries,\n controlledVisibleSeries,\n controlledOnVisibleChange\n );\n const [highlightedSeries, setHighlightedSeries] = useHighlightProps(\n externalSeries,\n controlledHighlightedSeries,\n controlledOnHighlightChange\n );\n const isRtl = containerRef.current ? getIsRtl(containerRef.current) : false;\n const model = useChartModel({\n isRtl,\n fitHeight,\n externalSeries,\n visibleSeries,\n setVisibleSeries,\n highlightedSeries,\n setHighlightedSeries,\n xDomain,\n yDomain,\n xScaleType,\n yScaleType,\n height,\n width,\n popoverRef,\n statusType,\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\n useEffect(() => {\n const onKeyDown = model.handlers.onDocumentKeyDown;\n document.addEventListener('keydown', onKeyDown);\n return () => document.removeEventListener('keydown', onKeyDown);\n }, [model.handlers.onDocumentKeyDown]);\n\n const onBlur = (event: React.FocusEvent) => {\n if (event.relatedTarget && !nodeBelongs(containerRef.current, event.relatedTarget)) {\n model.handlers.onContainerBlur();\n }\n };\n\n const mergedRef = useMergeRefs(containerRef, __internalRootRef);\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 <AreaChartFilter\n model={model}\n filterLabel={i18nStrings.filterLabel}\n filterPlaceholder={i18nStrings.filterPlaceholder}\n filterSelectedAriaLabel={i18nStrings.filterSelectedAriaLabel}\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 model={model}\n autoWidth={setWidth}\n detailPopoverSize={detailPopoverSize}\n detailPopoverFooter={detailPopoverFooter}\n xTitle={xTitle}\n yTitle={yTitle}\n xTickFormatter={xTickFormatter}\n yTickFormatter={yTickFormatter}\n detailTotalFormatter={detailTotalFormatter}\n ariaLabel={ariaLabel}\n ariaLabelledby={ariaLabelledby}\n ariaDescription={ariaDescription}\n i18nStrings={i18nStrings}\n fitHeight={fitHeight}\n hasFilters={!!showFilters}\n minHeight={height}\n isRTL={isRtl}\n />\n ) : null\n }\n legend={\n showLegend ? (\n <AreaChartLegend\n plotContainerRef={containerRef}\n model={model}\n legendTitle={legendTitle}\n ariaLabel={i18nStrings.legendAriaLabel}\n />\n ) : null\n }\n onBlur={onBlur}\n />\n );\n}\n"]}
1
+ {"version":3,"file":"internal.js","sourceRoot":"","sources":["../../../src/area-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, useRef, useState } from 'react';\nimport clsx from 'clsx';\n\nimport { useMergeRefs, warnOnce } from '@cloudscape-design/component-toolkit/internal';\nimport { getIsRtl } from '@cloudscape-design/component-toolkit/internal';\n\nimport { getBaseProps } from '../internal/base-component';\nimport ChartStatusContainer, { getChartStatus } from '../internal/components/chart-status-container';\nimport { ChartWrapper } from '../internal/components/chart-wrapper';\nimport { InternalBaseComponentProps } from '../internal/hooks/use-base-component';\nimport { isDevelopment } from '../internal/is-development';\nimport { SomeRequired } from '../internal/types';\nimport { nodeBelongs } from '../internal/utils/node-belongs';\nimport ChartContainer from './chart-container';\nimport AreaChartFilter from './elements/area-chart-filter';\nimport AreaChartLegend from './elements/area-chart-legend';\nimport { AreaChartProps } from './interfaces';\nimport useChartModel from './model/use-chart-model';\nimport useFilterProps from './model/use-filter-props';\nimport useHighlightProps from './model/use-highlight-props';\nimport { isSeriesValid } from './model/utils';\n\nimport styles from './styles.css.js';\n\ntype InternalAreaChartProps<T extends AreaChartProps.DataTypes> = SomeRequired<\n AreaChartProps<T>,\n 'height' | 'xScaleType' | 'yScaleType' | 'statusType' | 'detailPopoverSize' | 'i18nStrings'\n> &\n InternalBaseComponentProps;\n\nexport default function InternalAreaChart<T extends AreaChartProps.DataTypes>({\n fitHeight,\n height,\n xScaleType,\n yScaleType,\n xDomain,\n yDomain,\n xTickFormatter,\n yTickFormatter,\n detailTotalFormatter,\n highlightedSeries: controlledHighlightedSeries,\n visibleSeries: controlledVisibleSeries,\n series: externalSeries,\n onFilterChange: controlledOnVisibleChange,\n onHighlightChange: controlledOnHighlightChange,\n i18nStrings,\n ariaLabel,\n ariaLabelledby,\n ariaDescription,\n xTitle,\n yTitle,\n hideFilter,\n additionalFilters,\n hideLegend,\n legendTitle,\n statusType,\n detailPopoverSize,\n detailPopoverFooter,\n empty,\n noMatch,\n errorText,\n loadingText,\n recoveryText,\n onRecoveryClick,\n __internalRootRef,\n ...props\n}: InternalAreaChartProps<T>) {\n const baseProps = getBaseProps(props);\n const containerRef = useRef<HTMLDivElement>(null);\n const popoverRef = useRef<HTMLDivElement>(null);\n\n if (isDevelopment) {\n // eslint-disable-next-line react-hooks/rules-of-hooks\n useEffect(() => {\n if (!isSeriesValid(externalSeries)) {\n warnOnce(\n 'AreaChart',\n \"The `series` property violates the component's constraints: all `area` \" +\n 'series must have `data` arrays of the same length and with the same x-values.'\n );\n }\n }, [externalSeries]);\n }\n\n const [width, setWidth] = useState(0);\n const [visibleSeries, setVisibleSeries] = useFilterProps(\n externalSeries,\n controlledVisibleSeries,\n controlledOnVisibleChange\n );\n const [highlightedSeries, setHighlightedSeries] = useHighlightProps(\n externalSeries,\n controlledHighlightedSeries,\n controlledOnHighlightChange\n );\n const isRtl = containerRef.current ? getIsRtl(containerRef.current) : false;\n const model = useChartModel({\n isRtl,\n fitHeight,\n externalSeries,\n visibleSeries,\n setVisibleSeries,\n highlightedSeries,\n setHighlightedSeries,\n xDomain,\n yDomain,\n xScaleType,\n yScaleType,\n height,\n width,\n popoverRef,\n statusType,\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\n useEffect(() => {\n const onKeyDown = model.handlers.onDocumentKeyDown;\n document.addEventListener('keydown', onKeyDown);\n return () => document.removeEventListener('keydown', onKeyDown);\n }, [model.handlers.onDocumentKeyDown]);\n\n const onBlur = (event: React.FocusEvent) => {\n if (event.relatedTarget && !nodeBelongs(containerRef.current, event.relatedTarget)) {\n model.handlers.onContainerBlur();\n }\n };\n\n const mergedRef = useMergeRefs(containerRef, __internalRootRef);\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 <AreaChartFilter\n model={model}\n filterLabel={i18nStrings.filterLabel}\n filterPlaceholder={i18nStrings.filterPlaceholder}\n filterSelectedAriaLabel={i18nStrings.filterSelectedAriaLabel}\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 model={model}\n autoWidth={setWidth}\n detailPopoverSize={detailPopoverSize}\n detailPopoverFooter={detailPopoverFooter}\n xTitle={xTitle}\n yTitle={yTitle}\n xTickFormatter={xTickFormatter}\n yTickFormatter={yTickFormatter}\n detailTotalFormatter={detailTotalFormatter}\n ariaLabel={ariaLabel}\n ariaLabelledby={ariaLabelledby}\n ariaDescription={ariaDescription}\n i18nStrings={i18nStrings}\n fitHeight={fitHeight}\n hasFilters={!!showFilters}\n minHeight={height}\n isRTL={isRtl}\n />\n ) : null\n }\n legend={\n showLegend ? (\n <AreaChartLegend\n plotContainerRef={containerRef}\n model={model}\n legendTitle={legendTitle}\n ariaLabel={i18nStrings.legendAriaLabel}\n />\n ) : null\n }\n onBlur={onBlur}\n />\n );\n}\n"]}
@@ -15,39 +15,69 @@ export default class InteractionsStore extends AsyncStore {
15
15
  this.plot = plot;
16
16
  }
17
17
  highlightPoint(point) {
18
- this.set(state => (Object.assign(Object.assign({}, state), { highlightedX: this.plot.xy[point.index.x], highlightedPoint: point, highlightedSeries: this.series[point.index.s], legendSeries: this.series[point.index.s] })));
18
+ this.set(state => ({
19
+ ...state,
20
+ highlightedX: this.plot.xy[point.index.x],
21
+ highlightedPoint: point,
22
+ highlightedSeries: this.series[point.index.s],
23
+ legendSeries: this.series[point.index.s],
24
+ }));
19
25
  }
20
26
  highlightX(points) {
21
- this.set(state => (Object.assign(Object.assign({}, state), { highlightedX: points, highlightedPoint: null, highlightedSeries: null, legendSeries: null })));
27
+ this.set(state => ({
28
+ ...state,
29
+ highlightedX: points,
30
+ highlightedPoint: null,
31
+ highlightedSeries: null,
32
+ legendSeries: null,
33
+ }));
22
34
  }
23
35
  highlightFirstPoint() {
24
36
  this.set(state => {
25
37
  const series = state.legendSeries || state.highlightedSeries;
26
38
  const firstSeriesPoint = series && this._getFirstSeriesPoint(series);
27
39
  const point = state.highlightedPoint || firstSeriesPoint || this.plot.sx[0][0];
28
- return Object.assign(Object.assign({}, state), { highlightedX: this.plot.xy[point.index.x], highlightedPoint: point, highlightedSeries: this.series[point.index.s], legendSeries: this.series[point.index.s] });
40
+ return {
41
+ ...state,
42
+ highlightedX: this.plot.xy[point.index.x],
43
+ highlightedPoint: point,
44
+ highlightedSeries: this.series[point.index.s],
45
+ legendSeries: this.series[point.index.s],
46
+ };
29
47
  });
30
48
  }
31
49
  highlightSeries(s) {
32
- this.set(state => (Object.assign(Object.assign({}, state), { highlightedSeries: s, legendSeries: s })));
50
+ this.set(state => ({
51
+ ...state,
52
+ highlightedSeries: s,
53
+ legendSeries: s,
54
+ }));
33
55
  }
34
56
  clearHighlight() {
35
- this.set(state => (Object.assign(Object.assign({}, state), { highlightedX: null, highlightedPoint: null, highlightedSeries: null })));
57
+ this.set(state => ({
58
+ ...state,
59
+ highlightedX: null,
60
+ highlightedPoint: null,
61
+ highlightedSeries: null,
62
+ }));
36
63
  }
37
64
  clearHighlightedLegend() {
38
- this.set(state => (Object.assign(Object.assign({}, state), { legendSeries: null })));
65
+ this.set(state => ({
66
+ ...state,
67
+ legendSeries: null,
68
+ }));
39
69
  }
40
70
  clearState() {
41
71
  this.set(() => initialState);
42
72
  }
43
73
  pinPopover() {
44
- this.set(state => (Object.assign(Object.assign({}, state), { isPopoverPinned: true })));
74
+ this.set(state => ({ ...state, isPopoverPinned: true }));
45
75
  }
46
76
  unpinPopover() {
47
- this.set(state => (Object.assign(Object.assign({}, state), { isPopoverPinned: false })));
77
+ this.set(state => ({ ...state, isPopoverPinned: false }));
48
78
  }
49
79
  togglePopoverPin() {
50
- this.set(state => (Object.assign(Object.assign({}, state), { isPopoverPinned: !state.isPopoverPinned })));
80
+ this.set(state => ({ ...state, isPopoverPinned: !state.isPopoverPinned }));
51
81
  }
52
82
  _getFirstSeriesPoint(s) {
53
83
  const seriesIndex = this.series.indexOf(s);
@@ -1 +1 @@
1
- {"version":3,"file":"interactions-store.js","sourceRoot":"","sources":["../../../../src/area-chart/model/interactions-store.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 AsyncStore from '../async-store';\nimport { AreaChartProps } from '../interfaces';\nimport { ChartModel } from './index';\n\nconst initialState = Object.freeze({\n highlightedX: null,\n highlightedPoint: null,\n highlightedSeries: null,\n legendSeries: null,\n isPopoverPinned: false,\n});\n\nexport default class InteractionsStore<T extends AreaChartProps.DataTypes> extends AsyncStore<\n ChartModel.InteractionsState<T>\n> {\n series: readonly AreaChartProps.Series<T>[];\n plot: ChartModel.ComputedProps<T>['plot'];\n\n constructor(series: readonly AreaChartProps.Series<T>[], plot: ChartModel.ComputedProps<T>['plot']) {\n super(initialState);\n\n this.series = series;\n this.plot = plot;\n }\n\n highlightPoint(point: ChartModel.PlotPoint<T>) {\n this.set(state => ({\n ...state,\n highlightedX: this.plot.xy[point.index.x],\n highlightedPoint: point,\n highlightedSeries: this.series[point.index.s],\n legendSeries: this.series[point.index.s],\n }));\n }\n\n highlightX(points: readonly ChartModel.PlotPoint<T>[]) {\n this.set(state => ({\n ...state,\n highlightedX: points,\n highlightedPoint: null,\n highlightedSeries: null,\n legendSeries: null,\n }));\n }\n\n highlightFirstPoint() {\n this.set(state => {\n const series = state.legendSeries || state.highlightedSeries;\n const firstSeriesPoint = series && this._getFirstSeriesPoint(series);\n const point = state.highlightedPoint || firstSeriesPoint || this.plot.sx[0][0];\n return {\n ...state,\n highlightedX: this.plot.xy[point.index.x],\n highlightedPoint: point,\n highlightedSeries: this.series[point.index.s],\n legendSeries: this.series[point.index.s],\n };\n });\n }\n\n highlightSeries(s: null | AreaChartProps.Series<T>) {\n this.set(state => ({\n ...state,\n highlightedSeries: s,\n legendSeries: s,\n }));\n }\n\n clearHighlight() {\n this.set(state => ({\n ...state,\n highlightedX: null,\n highlightedPoint: null,\n highlightedSeries: null,\n }));\n }\n clearHighlightedLegend() {\n this.set(state => ({\n ...state,\n legendSeries: null,\n }));\n }\n\n clearState() {\n this.set(() => initialState);\n }\n\n pinPopover() {\n this.set(state => ({ ...state, isPopoverPinned: true }));\n }\n\n unpinPopover() {\n this.set(state => ({ ...state, isPopoverPinned: false }));\n }\n\n togglePopoverPin() {\n this.set(state => ({ ...state, isPopoverPinned: !state.isPopoverPinned }));\n }\n\n _getFirstSeriesPoint(s: AreaChartProps.Series<T>): null | ChartModel.PlotPoint<T> {\n const seriesIndex = this.series.indexOf(s);\n const [firstSeriesPoint] = this.plot.sx[seriesIndex] || [];\n return firstSeriesPoint || null;\n }\n}\n"]}
1
+ {"version":3,"file":"interactions-store.js","sourceRoot":"","sources":["../../../../src/area-chart/model/interactions-store.ts"],"names":[],"mappings":"AAAA,qEAAqE;AACrE,sCAAsC;AACtC,OAAO,UAAU,MAAM,gBAAgB,CAAC;AAIxC,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC;IACjC,YAAY,EAAE,IAAI;IAClB,gBAAgB,EAAE,IAAI;IACtB,iBAAiB,EAAE,IAAI;IACvB,YAAY,EAAE,IAAI;IAClB,eAAe,EAAE,KAAK;CACvB,CAAC,CAAC;AAEH,MAAM,CAAC,OAAO,OAAO,iBAAsD,SAAQ,UAElF;IAIC,YAAY,MAA2C,EAAE,IAAyC;QAChG,KAAK,CAAC,YAAY,CAAC,CAAC;QAEpB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;IAED,cAAc,CAAC,KAA8B;QAC3C,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YACjB,GAAG,KAAK;YACR,YAAY,EAAE,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;YACzC,gBAAgB,EAAE,KAAK;YACvB,iBAAiB,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;YAC7C,YAAY,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;SACzC,CAAC,CAAC,CAAC;IACN,CAAC;IAED,UAAU,CAAC,MAA0C;QACnD,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YACjB,GAAG,KAAK;YACR,YAAY,EAAE,MAAM;YACpB,gBAAgB,EAAE,IAAI;YACtB,iBAAiB,EAAE,IAAI;YACvB,YAAY,EAAE,IAAI;SACnB,CAAC,CAAC,CAAC;IACN,CAAC;IAED,mBAAmB;QACjB,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE;YACf,MAAM,MAAM,GAAG,KAAK,CAAC,YAAY,IAAI,KAAK,CAAC,iBAAiB,CAAC;YAC7D,MAAM,gBAAgB,GAAG,MAAM,IAAI,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC;YACrE,MAAM,KAAK,GAAG,KAAK,CAAC,gBAAgB,IAAI,gBAAgB,IAAI,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAC/E,OAAO;gBACL,GAAG,KAAK;gBACR,YAAY,EAAE,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;gBACzC,gBAAgB,EAAE,KAAK;gBACvB,iBAAiB,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;gBAC7C,YAAY,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;aACzC,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC;IAED,eAAe,CAAC,CAAkC;QAChD,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YACjB,GAAG,KAAK;YACR,iBAAiB,EAAE,CAAC;YACpB,YAAY,EAAE,CAAC;SAChB,CAAC,CAAC,CAAC;IACN,CAAC;IAED,cAAc;QACZ,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YACjB,GAAG,KAAK;YACR,YAAY,EAAE,IAAI;YAClB,gBAAgB,EAAE,IAAI;YACtB,iBAAiB,EAAE,IAAI;SACxB,CAAC,CAAC,CAAC;IACN,CAAC;IACD,sBAAsB;QACpB,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YACjB,GAAG,KAAK;YACR,YAAY,EAAE,IAAI;SACnB,CAAC,CAAC,CAAC;IACN,CAAC;IAED,UAAU;QACR,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,YAAY,CAAC,CAAC;IAC/B,CAAC;IAED,UAAU;QACR,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,KAAK,EAAE,eAAe,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IAC3D,CAAC;IAED,YAAY;QACV,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,KAAK,EAAE,eAAe,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;IAC5D,CAAC;IAED,gBAAgB;QACd,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,KAAK,EAAE,eAAe,EAAE,CAAC,KAAK,CAAC,eAAe,EAAE,CAAC,CAAC,CAAC;IAC7E,CAAC;IAED,oBAAoB,CAAC,CAA2B;QAC9C,MAAM,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QAC3C,MAAM,CAAC,gBAAgB,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;QAC3D,OAAO,gBAAgB,IAAI,IAAI,CAAC;IAClC,CAAC;CACF","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport AsyncStore from '../async-store';\nimport { AreaChartProps } from '../interfaces';\nimport { ChartModel } from './index';\n\nconst initialState = Object.freeze({\n highlightedX: null,\n highlightedPoint: null,\n highlightedSeries: null,\n legendSeries: null,\n isPopoverPinned: false,\n});\n\nexport default class InteractionsStore<T extends AreaChartProps.DataTypes> extends AsyncStore<\n ChartModel.InteractionsState<T>\n> {\n series: readonly AreaChartProps.Series<T>[];\n plot: ChartModel.ComputedProps<T>['plot'];\n\n constructor(series: readonly AreaChartProps.Series<T>[], plot: ChartModel.ComputedProps<T>['plot']) {\n super(initialState);\n\n this.series = series;\n this.plot = plot;\n }\n\n highlightPoint(point: ChartModel.PlotPoint<T>) {\n this.set(state => ({\n ...state,\n highlightedX: this.plot.xy[point.index.x],\n highlightedPoint: point,\n highlightedSeries: this.series[point.index.s],\n legendSeries: this.series[point.index.s],\n }));\n }\n\n highlightX(points: readonly ChartModel.PlotPoint<T>[]) {\n this.set(state => ({\n ...state,\n highlightedX: points,\n highlightedPoint: null,\n highlightedSeries: null,\n legendSeries: null,\n }));\n }\n\n highlightFirstPoint() {\n this.set(state => {\n const series = state.legendSeries || state.highlightedSeries;\n const firstSeriesPoint = series && this._getFirstSeriesPoint(series);\n const point = state.highlightedPoint || firstSeriesPoint || this.plot.sx[0][0];\n return {\n ...state,\n highlightedX: this.plot.xy[point.index.x],\n highlightedPoint: point,\n highlightedSeries: this.series[point.index.s],\n legendSeries: this.series[point.index.s],\n };\n });\n }\n\n highlightSeries(s: null | AreaChartProps.Series<T>) {\n this.set(state => ({\n ...state,\n highlightedSeries: s,\n legendSeries: s,\n }));\n }\n\n clearHighlight() {\n this.set(state => ({\n ...state,\n highlightedX: null,\n highlightedPoint: null,\n highlightedSeries: null,\n }));\n }\n clearHighlightedLegend() {\n this.set(state => ({\n ...state,\n legendSeries: null,\n }));\n }\n\n clearState() {\n this.set(() => initialState);\n }\n\n pinPopover() {\n this.set(state => ({ ...state, isPopoverPinned: true }));\n }\n\n unpinPopover() {\n this.set(state => ({ ...state, isPopoverPinned: false }));\n }\n\n togglePopoverPin() {\n this.set(state => ({ ...state, isPopoverPinned: !state.isPopoverPinned }));\n }\n\n _getFirstSeriesPoint(s: AreaChartProps.Series<T>): null | ChartModel.PlotPoint<T> {\n const seriesIndex = this.series.indexOf(s);\n const [firstSeriesPoint] = this.plot.sx[seriesIndex] || [];\n return firstSeriesPoint || null;\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/attribute-editor/index.tsx"],"names":[],"mappings":"AAOA,OAAO,EAAE,6BAA6B,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AAGnF,QAAA,MAAM,eAAe,EA0BhB,6BAA6B,CAAC;AAInC,OAAO,EAAE,oBAAoB,EAAE,CAAC;AAChC,eAAe,eAAe,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/attribute-editor/index.tsx"],"names":[],"mappings":"AAOA,OAAO,EAAE,6BAA6B,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AAGnF,QAAA,MAAM,eAAe,EAmChB,6BAA6B,CAAC;AAInC,OAAO,EAAE,oBAAoB,EAAE,CAAC;AAChC,eAAe,eAAe,CAAC"}
@@ -1,25 +1,23 @@
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 InternalAttributeEditor from './internal';
9
- const AttributeEditor = React.forwardRef((_a, ref) => {
10
- var _b, _c;
11
- var { items = [], addButtonVariant = 'normal', isItemRemovable = () => true } = _a, props = __rest(_a, ["items", "addButtonVariant", "isItemRemovable"]);
8
+ const AttributeEditor = React.forwardRef(({ items = [], addButtonVariant = 'normal', isItemRemovable = () => true, hideAddButton, additionalActions, ...props }, ref) => {
9
+ var _a, _b;
12
10
  const baseComponentProps = useBaseComponent('AttributeEditor', {
13
11
  props: {
14
12
  addButtonVariant: addButtonVariant,
15
13
  },
16
14
  metadata: {
17
- definitionItems: (_c = (_b = props.definition) === null || _b === void 0 ? void 0 : _b.length) !== null && _c !== void 0 ? _c : null,
15
+ definitionItems: (_b = (_a = props.definition) === null || _a === void 0 ? void 0 : _a.length) !== null && _b !== void 0 ? _b : null,
18
16
  hasGridLayout: !!props.gridLayout,
19
17
  hasCustomRowActions: !!props.customRowActions,
20
18
  },
21
19
  });
22
- return (React.createElement(InternalAttributeEditor, Object.assign({ items: items, isItemRemovable: isItemRemovable, addButtonVariant: addButtonVariant }, props, baseComponentProps, { ref: ref })));
20
+ return (React.createElement(InternalAttributeEditor, { items: items, isItemRemovable: isItemRemovable, addButtonVariant: addButtonVariant, additionalActions: additionalActions, hideAddButton: hideAddButton, ...props, ...baseComponentProps, ref: ref }));
23
21
  });
24
22
  applyDisplayName(AttributeEditor, 'AttributeEditor');
25
23
  export default AttributeEditor;
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/attribute-editor/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,uBAAuB,MAAM,YAAY,CAAC;AAEjD,MAAM,eAAe,GAAG,KAAK,CAAC,UAAU,CACtC,CACE,EAA4G,EAC5G,GAAwC,EACxC,EAAE;;QAFF,EAAE,KAAK,GAAG,EAAE,EAAE,gBAAgB,GAAG,QAAQ,EAAE,eAAe,GAAG,GAAG,EAAE,CAAC,IAAI,OAAqC,EAAhC,KAAK,cAAjF,gDAAmF,CAAF;IAGjF,MAAM,kBAAkB,GAAG,gBAAgB,CAAC,iBAAiB,EAAE;QAC7D,KAAK,EAAE;YACL,gBAAgB,EAAE,gBAAgB;SACnC;QACD,QAAQ,EAAE;YACR,eAAe,EAAE,MAAA,MAAA,KAAK,CAAC,UAAU,0CAAE,MAAM,mCAAI,IAAI;YACjD,aAAa,EAAE,CAAC,CAAC,KAAK,CAAC,UAAU;YACjC,mBAAmB,EAAE,CAAC,CAAC,KAAK,CAAC,gBAAgB;SAC9C;KACF,CAAC,CAAC;IACH,OAAO,CACL,oBAAC,uBAAuB,kBACtB,KAAK,EAAE,KAAK,EACZ,eAAe,EAAE,eAAe,EAChC,gBAAgB,EAAE,gBAAgB,IAC9B,KAAK,EACL,kBAAkB,IACtB,GAAG,EAAE,GAAG,IACR,CACH,CAAC;AACJ,CAAC,CAC+B,CAAC;AAEnC,gBAAgB,CAAC,eAAe,EAAE,iBAAiB,CAAC,CAAC;AAGrD,eAAe,eAAe,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 { AttributeEditorForwardRefType, AttributeEditorProps } from './interfaces';\nimport InternalAttributeEditor from './internal';\n\nconst AttributeEditor = React.forwardRef(\n <T,>(\n { items = [], addButtonVariant = 'normal', isItemRemovable = () => true, ...props }: AttributeEditorProps<T>,\n ref: React.Ref<AttributeEditorProps.Ref>\n ) => {\n const baseComponentProps = useBaseComponent('AttributeEditor', {\n props: {\n addButtonVariant: addButtonVariant,\n },\n metadata: {\n definitionItems: props.definition?.length ?? null,\n hasGridLayout: !!props.gridLayout,\n hasCustomRowActions: !!props.customRowActions,\n },\n });\n return (\n <InternalAttributeEditor\n items={items}\n isItemRemovable={isItemRemovable}\n addButtonVariant={addButtonVariant}\n {...props}\n {...baseComponentProps}\n ref={ref}\n />\n );\n }\n) as AttributeEditorForwardRefType;\n\napplyDisplayName(AttributeEditor, 'AttributeEditor');\n\nexport { AttributeEditorProps };\nexport default AttributeEditor;\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/attribute-editor/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,uBAAuB,MAAM,YAAY,CAAC;AAEjD,MAAM,eAAe,GAAG,KAAK,CAAC,UAAU,CACtC,CACE,EACE,KAAK,GAAG,EAAE,EACV,gBAAgB,GAAG,QAAQ,EAC3B,eAAe,GAAG,GAAG,EAAE,CAAC,IAAI,EAC5B,aAAa,EACb,iBAAiB,EACjB,GAAG,KAAK,EACgB,EAC1B,GAAwC,EACxC,EAAE;;IACF,MAAM,kBAAkB,GAAG,gBAAgB,CAAC,iBAAiB,EAAE;QAC7D,KAAK,EAAE;YACL,gBAAgB,EAAE,gBAAgB;SACnC;QACD,QAAQ,EAAE;YACR,eAAe,EAAE,MAAA,MAAA,KAAK,CAAC,UAAU,0CAAE,MAAM,mCAAI,IAAI;YACjD,aAAa,EAAE,CAAC,CAAC,KAAK,CAAC,UAAU;YACjC,mBAAmB,EAAE,CAAC,CAAC,KAAK,CAAC,gBAAgB;SAC9C;KACF,CAAC,CAAC;IACH,OAAO,CACL,oBAAC,uBAAuB,IACtB,KAAK,EAAE,KAAK,EACZ,eAAe,EAAE,eAAe,EAChC,gBAAgB,EAAE,gBAAgB,EAClC,iBAAiB,EAAE,iBAAiB,EACpC,aAAa,EAAE,aAAa,KACxB,KAAK,KACL,kBAAkB,EACtB,GAAG,EAAE,GAAG,GACR,CACH,CAAC;AACJ,CAAC,CAC+B,CAAC;AAEnC,gBAAgB,CAAC,eAAe,EAAE,iBAAiB,CAAC,CAAC;AAGrD,eAAe,eAAe,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 { AttributeEditorForwardRefType, AttributeEditorProps } from './interfaces';\nimport InternalAttributeEditor from './internal';\n\nconst AttributeEditor = React.forwardRef(\n <T,>(\n {\n items = [],\n addButtonVariant = 'normal',\n isItemRemovable = () => true,\n hideAddButton,\n additionalActions,\n ...props\n }: AttributeEditorProps<T>,\n ref: React.Ref<AttributeEditorProps.Ref>\n ) => {\n const baseComponentProps = useBaseComponent('AttributeEditor', {\n props: {\n addButtonVariant: addButtonVariant,\n },\n metadata: {\n definitionItems: props.definition?.length ?? null,\n hasGridLayout: !!props.gridLayout,\n hasCustomRowActions: !!props.customRowActions,\n },\n });\n return (\n <InternalAttributeEditor\n items={items}\n isItemRemovable={isItemRemovable}\n addButtonVariant={addButtonVariant}\n additionalActions={additionalActions}\n hideAddButton={hideAddButton}\n {...props}\n {...baseComponentProps}\n ref={ref}\n />\n );\n }\n) as AttributeEditorForwardRefType;\n\napplyDisplayName(AttributeEditor, 'AttributeEditor');\n\nexport { AttributeEditorProps };\nexport default AttributeEditor;\n"]}
@@ -108,6 +108,14 @@ export interface AttributeEditorProps<T> extends BaseComponentProps {
108
108
  * Determines whether the add button is disabled.
109
109
  */
110
110
  disableAddButton?: boolean;
111
+ /**
112
+ * Determines whether the add button is hidden
113
+ */
114
+ hideAddButton?: boolean;
115
+ /**
116
+ * Specifies additional actions displayed next to the add-button (or instead of the add-button if hidden).
117
+ */
118
+ additionalActions?: React.ReactNode;
111
119
  /**
112
120
  * Specifies the variant to use for the add button. By default a normal button is used.
113
121
  * Use `inline-link` when using an attribute editor nested inside complex attribute editing
@@ -1 +1 @@
1
- {"version":3,"file":"interfaces.d.ts","sourceRoot":"","sources":["../../../src/attribute-editor/interfaces.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"interfaces.d.ts","sourceRoot":"","sources":["../../../src/attribute-editor/interfaces.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"interfaces.js","sourceRoot":"","sources":["../../../src/attribute-editor/interfaces.ts"],"names":[],"mappings":"","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport React from 'react';\n\nimport { ButtonDropdownProps } from '../button-dropdown/interfaces';\nimport { BaseComponentProps } from '../internal/base-component';\nimport { Breakpoint as InternalBreakpoint } from '../internal/breakpoints';\nimport { NonCancelableEventHandler } from '../internal/events';\n\n/*\n * HACK: Cast the component to a named parametrized interface.\n *\n * This lets us use React.forwardRef and still let the component have type\n * parameters, and the naming convention lets the documenter know that this is\n * a forwardRef-wrapped component.\n *\n * We don't need to expose this type to customers because it's just a simple\n * function type.\n */\nexport interface AttributeEditorForwardRefType {\n <T>(props: AttributeEditorProps<T> & { ref?: React.Ref<AttributeEditorProps.Ref> }): JSX.Element;\n}\n\nexport namespace AttributeEditorProps {\n export interface IsItemRemovableFunction<T> {\n (item: T): boolean;\n }\n\n export type FieldRenderable<T> = (item: T, itemIndex: number) => React.ReactNode;\n export interface FieldDefinition<T> {\n label?: React.ReactNode;\n description?: React.ReactNode;\n info?: React.ReactNode;\n control?: FieldRenderable<T> | React.ReactNode;\n errorText?: FieldRenderable<T> | React.ReactNode;\n warningText?: FieldRenderable<T> | React.ReactNode;\n constraintText?: FieldRenderable<T> | React.ReactNode;\n }\n\n export type AddButtonVariant = 'normal' | 'inline-link';\n\n export interface RemoveButtonClickDetail {\n itemIndex: number;\n }\n\n export interface Ref {\n /**\n * Focuses the 'remove' button for the given row index.\n */\n focusRemoveButton(itemIndex: number): void;\n /**\n * Focuses the 'add' button. Use this, for example, after a user removes the last row.\n */\n focusAddButton(): void;\n }\n\n export interface RowActionsProps<T> {\n item: T;\n itemIndex: number;\n ref: React.Ref<ButtonDropdownProps.Ref>;\n breakpoint: Breakpoint | null;\n ownRow: boolean;\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n export interface I18nStrings<T = any> {\n /**\n * Provides a text alternative for the error icon in the error message.\n */\n errorIconAriaLabel?: string;\n\n /**\n * Provides a text alternative for the warning icon in the warning message.\n */\n warningIconAriaLabel?: string;\n\n /**\n * Announcement made to screen readers when an item is removed.\n */\n itemRemovedAriaLive?: string;\n\n /**\n * @deprecated Use `removeButtonAriaLabel` on the component instead.\n */\n removeButtonAriaLabel?: (item: T) => string;\n }\n\n export type Breakpoint = InternalBreakpoint;\n\n export interface GridLayout {\n breakpoint?: Breakpoint;\n rows: ReadonlyArray<ReadonlyArray<number>>;\n removeButton?: {\n ownRow?: boolean;\n width?: number | 'auto';\n };\n }\n}\n\nexport interface AttributeEditorProps<T> extends BaseComponentProps {\n /**\n * Displayed when there are no items to display.\n */\n empty?: React.ReactNode;\n\n /**\n * Displayed below the add button. Use it for additional information related to the attribute editor.\n */\n additionalInfo?: React.ReactNode;\n\n /**\n * Specifies the text that's displayed in the add button.\n */\n addButtonText: string;\n\n /**\n * Specifies the text that's displayed in the remove button.\n * @i18n\n */\n removeButtonText?: string;\n\n /**\n * Adds an `aria-label` to the remove button.\n */\n removeButtonAriaLabel?: (item: T) => string;\n\n /**\n * Specifies the items that serve as the data source for all rows.\n * The display of a row is handled by the `definition` property.\n */\n items?: ReadonlyArray<T>;\n\n /**\n * Function that determines whether an item is removable. When this function returns `false`, the remove\n * button is not rendered and the user can't remove the item.\n * By default, all items are removable.\n */\n isItemRemovable?: AttributeEditorProps.IsItemRemovableFunction<T>;\n\n /**\n * Determines whether the add button is disabled.\n */\n disableAddButton?: boolean;\n\n /**\n * Specifies the variant to use for the add button. By default a normal button is used.\n * Use `inline-link` when using an attribute editor nested inside complex attribute editing\n * with expandable sections.\n */\n addButtonVariant?: AttributeEditorProps.AddButtonVariant;\n\n /**\n * Defines the editor configuration. Each object in the array represents one form field in the row.\n * If more than 6 attributes are specified, a `gridLayout` must be provided.\n *\n * * `label` (ReactNode) - Text label for the form field.\n * * `description` (ReactNode) - Additional description for the form field.\n * * `info` (ReactNode) - Info link for the form field.\n * * `errorText` ((item, itemIndex) => ReactNode) - Error message text to display as a control validation message.\n * It renders the form field as invalid if the returned value is not `null` or `undefined`.\n * * `warningText` ((item, itemIndex) => ReactNode) - Warning message text to display as a control validation message.\n * It renders the form field in a warning state if the returned value is not `null` or `undefined`.\n * * `constraintText` ((item, itemIndex) => ReactNode) - Text to display as a constraint message below the field.\n * * `control` ((item, itemIndex) => ReactNode) - A control to use as the input for the field.\n */\n definition: ReadonlyArray<AttributeEditorProps.FieldDefinition<T>>;\n\n /**\n * Optionally specifies the layout of the attributes. By default, all attributes will be\n * equally spaced and wrapped into multiple rows on smaller viewports.\n *\n * A `gridLayout` is an array of breakpoint definitions. Each definition consists of:\n * - `rows` (`number[][]`): the rows in which to display the attributes. Each row consists of a list of numbers indicating\n * the relative width of each attribute. For example, `[[1, 1, 1, 1]]` is a single row of four evenly-spaced attributes,\n * or `[[1, 2], [1, 1, 1]]` splits five attributes onto two rows.\n * - `breakpoint` (`string`): optionally specifies that the given entry should only be used when at least that much width is available.\n * - `removeButton`: optionally configures the remove (or row action) button placement. If this is not provided, the button will be\n * placed at the end of a single row, or below if multiple rows are present. The `removeButton` property supports contains two properties:\n * - `ownRow` (`boolean`): forces the remove button onto its own row.\n * - `width` (`number | 'auto'`): a number indicating the relative width (equivalent to a `rows` entry), or 'auto' to fit to the button width.\n */\n gridLayout?: ReadonlyArray<AttributeEditorProps.GridLayout>;\n\n /**\n * Specifies a custom action trigger for each row, in place of the remove button.\n * Only button and button dropdown components are supported.\n * If you provide this, `removeButtonText`, `removeButtonAriaLabel`,\n * and `onRemoveButtonClick` will be ignored.\n * The trigger must be given the provided `ref` in order for `focusRemoveButton`\n * to work.\n * The function receives the following properties:\n * - `item`: The item being rendered in the current row.\n * - `itemIndex` (`number`): The index of the item.\n * - `ref` (`ReactRef`): A React ref that should be passed to the rendered button.\n * - `breakpoint` (`Breakpoint`): The current breakpoint, for responsive behavior.\n * - `ownRow` (`boolean`): Whether the button is rendered on its own row.\n */\n customRowActions?: (props: AttributeEditorProps.RowActionsProps<T>) => React.ReactNode;\n\n /**\n * Called when add button is clicked.\n */\n onAddButtonClick?: NonCancelableEventHandler;\n\n /**\n * Called when remove button is clicked.\n * The event `detail` contains the index of the corresponding item.\n */\n onRemoveButtonClick?: NonCancelableEventHandler<AttributeEditorProps.RemoveButtonClickDetail>;\n\n /**\n * An object containing all the necessary localized strings required by the component.\n * @i18n\n */\n i18nStrings?: AttributeEditorProps.I18nStrings<T>;\n}\n"]}
1
+ {"version":3,"file":"interfaces.js","sourceRoot":"","sources":["../../../src/attribute-editor/interfaces.ts"],"names":[],"mappings":"","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport React from 'react';\n\nimport { ButtonDropdownProps } from '../button-dropdown/interfaces';\nimport { BaseComponentProps } from '../internal/base-component';\nimport { Breakpoint as InternalBreakpoint } from '../internal/breakpoints';\nimport { NonCancelableEventHandler } from '../internal/events';\n\n/*\n * HACK: Cast the component to a named parametrized interface.\n *\n * This lets us use React.forwardRef and still let the component have type\n * parameters, and the naming convention lets the documenter know that this is\n * a forwardRef-wrapped component.\n *\n * We don't need to expose this type to customers because it's just a simple\n * function type.\n */\nexport interface AttributeEditorForwardRefType {\n <T>(props: AttributeEditorProps<T> & { ref?: React.Ref<AttributeEditorProps.Ref> }): JSX.Element;\n}\n\nexport namespace AttributeEditorProps {\n export interface IsItemRemovableFunction<T> {\n (item: T): boolean;\n }\n\n export type FieldRenderable<T> = (item: T, itemIndex: number) => React.ReactNode;\n export interface FieldDefinition<T> {\n label?: React.ReactNode;\n description?: React.ReactNode;\n info?: React.ReactNode;\n control?: FieldRenderable<T> | React.ReactNode;\n errorText?: FieldRenderable<T> | React.ReactNode;\n warningText?: FieldRenderable<T> | React.ReactNode;\n constraintText?: FieldRenderable<T> | React.ReactNode;\n }\n\n export type AddButtonVariant = 'normal' | 'inline-link';\n\n export interface RemoveButtonClickDetail {\n itemIndex: number;\n }\n\n export interface Ref {\n /**\n * Focuses the 'remove' button for the given row index.\n */\n focusRemoveButton(itemIndex: number): void;\n /**\n * Focuses the 'add' button. Use this, for example, after a user removes the last row.\n */\n focusAddButton(): void;\n }\n\n export interface RowActionsProps<T> {\n item: T;\n itemIndex: number;\n ref: React.Ref<ButtonDropdownProps.Ref>;\n breakpoint: Breakpoint | null;\n ownRow: boolean;\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n export interface I18nStrings<T = any> {\n /**\n * Provides a text alternative for the error icon in the error message.\n */\n errorIconAriaLabel?: string;\n\n /**\n * Provides a text alternative for the warning icon in the warning message.\n */\n warningIconAriaLabel?: string;\n\n /**\n * Announcement made to screen readers when an item is removed.\n */\n itemRemovedAriaLive?: string;\n\n /**\n * @deprecated Use `removeButtonAriaLabel` on the component instead.\n */\n removeButtonAriaLabel?: (item: T) => string;\n }\n\n export type Breakpoint = InternalBreakpoint;\n\n export interface GridLayout {\n breakpoint?: Breakpoint;\n rows: ReadonlyArray<ReadonlyArray<number>>;\n removeButton?: {\n ownRow?: boolean;\n width?: number | 'auto';\n };\n }\n}\n\nexport interface AttributeEditorProps<T> extends BaseComponentProps {\n /**\n * Displayed when there are no items to display.\n */\n empty?: React.ReactNode;\n\n /**\n * Displayed below the add button. Use it for additional information related to the attribute editor.\n */\n additionalInfo?: React.ReactNode;\n\n /**\n * Specifies the text that's displayed in the add button.\n */\n addButtonText: string;\n\n /**\n * Specifies the text that's displayed in the remove button.\n * @i18n\n */\n removeButtonText?: string;\n\n /**\n * Adds an `aria-label` to the remove button.\n */\n removeButtonAriaLabel?: (item: T) => string;\n\n /**\n * Specifies the items that serve as the data source for all rows.\n * The display of a row is handled by the `definition` property.\n */\n items?: ReadonlyArray<T>;\n\n /**\n * Function that determines whether an item is removable. When this function returns `false`, the remove\n * button is not rendered and the user can't remove the item.\n * By default, all items are removable.\n */\n isItemRemovable?: AttributeEditorProps.IsItemRemovableFunction<T>;\n\n /**\n * Determines whether the add button is disabled.\n */\n disableAddButton?: boolean;\n\n /**\n * Determines whether the add button is hidden\n */\n hideAddButton?: boolean;\n\n /**\n * Specifies additional actions displayed next to the add-button (or instead of the add-button if hidden).\n */\n additionalActions?: React.ReactNode;\n\n /**\n * Specifies the variant to use for the add button. By default a normal button is used.\n * Use `inline-link` when using an attribute editor nested inside complex attribute editing\n * with expandable sections.\n */\n addButtonVariant?: AttributeEditorProps.AddButtonVariant;\n\n /**\n * Defines the editor configuration. Each object in the array represents one form field in the row.\n * If more than 6 attributes are specified, a `gridLayout` must be provided.\n *\n * * `label` (ReactNode) - Text label for the form field.\n * * `description` (ReactNode) - Additional description for the form field.\n * * `info` (ReactNode) - Info link for the form field.\n * * `errorText` ((item, itemIndex) => ReactNode) - Error message text to display as a control validation message.\n * It renders the form field as invalid if the returned value is not `null` or `undefined`.\n * * `warningText` ((item, itemIndex) => ReactNode) - Warning message text to display as a control validation message.\n * It renders the form field in a warning state if the returned value is not `null` or `undefined`.\n * * `constraintText` ((item, itemIndex) => ReactNode) - Text to display as a constraint message below the field.\n * * `control` ((item, itemIndex) => ReactNode) - A control to use as the input for the field.\n */\n definition: ReadonlyArray<AttributeEditorProps.FieldDefinition<T>>;\n\n /**\n * Optionally specifies the layout of the attributes. By default, all attributes will be\n * equally spaced and wrapped into multiple rows on smaller viewports.\n *\n * A `gridLayout` is an array of breakpoint definitions. Each definition consists of:\n * - `rows` (`number[][]`): the rows in which to display the attributes. Each row consists of a list of numbers indicating\n * the relative width of each attribute. For example, `[[1, 1, 1, 1]]` is a single row of four evenly-spaced attributes,\n * or `[[1, 2], [1, 1, 1]]` splits five attributes onto two rows.\n * - `breakpoint` (`string`): optionally specifies that the given entry should only be used when at least that much width is available.\n * - `removeButton`: optionally configures the remove (or row action) button placement. If this is not provided, the button will be\n * placed at the end of a single row, or below if multiple rows are present. The `removeButton` property supports contains two properties:\n * - `ownRow` (`boolean`): forces the remove button onto its own row.\n * - `width` (`number | 'auto'`): a number indicating the relative width (equivalent to a `rows` entry), or 'auto' to fit to the button width.\n */\n gridLayout?: ReadonlyArray<AttributeEditorProps.GridLayout>;\n\n /**\n * Specifies a custom action trigger for each row, in place of the remove button.\n * Only button and button dropdown components are supported.\n * If you provide this, `removeButtonText`, `removeButtonAriaLabel`,\n * and `onRemoveButtonClick` will be ignored.\n * The trigger must be given the provided `ref` in order for `focusRemoveButton`\n * to work.\n * The function receives the following properties:\n * - `item`: The item being rendered in the current row.\n * - `itemIndex` (`number`): The index of the item.\n * - `ref` (`ReactRef`): A React ref that should be passed to the rendered button.\n * - `breakpoint` (`Breakpoint`): The current breakpoint, for responsive behavior.\n * - `ownRow` (`boolean`): Whether the button is rendered on its own row.\n */\n customRowActions?: (props: AttributeEditorProps.RowActionsProps<T>) => React.ReactNode;\n\n /**\n * Called when add button is clicked.\n */\n onAddButtonClick?: NonCancelableEventHandler;\n\n /**\n * Called when remove button is clicked.\n * The event `detail` contains the index of the corresponding item.\n */\n onRemoveButtonClick?: NonCancelableEventHandler<AttributeEditorProps.RemoveButtonClickDetail>;\n\n /**\n * An object containing all the necessary localized strings required by the component.\n * @i18n\n */\n i18nStrings?: AttributeEditorProps.I18nStrings<T>;\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"internal.d.ts","sourceRoot":"","sources":["../../../src/attribute-editor/internal.tsx"],"names":[],"mappings":"AAmBA,OAAO,EAAE,6BAA6B,EAAwB,MAAM,cAAc,CAAC;AASnF,QAAA,MAAM,uBAAuB,EA+JxB,6BAA6B,CAAC;AAEnC,eAAe,uBAAuB,CAAC"}
1
+ {"version":3,"file":"internal.d.ts","sourceRoot":"","sources":["../../../src/attribute-editor/internal.tsx"],"names":[],"mappings":"AAoBA,OAAO,EAAE,6BAA6B,EAAwB,MAAM,cAAc,CAAC;AASnF,QAAA,MAAM,uBAAuB,EAwKxB,6BAA6B,CAAC;AAEnC,eAAe,uBAAuB,CAAC"}
@@ -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, { useImperativeHandle, useRef, useState } from 'react';
@@ -11,13 +10,13 @@ import { matchBreakpointMapping } from '../internal/breakpoints';
11
10
  import { useContainerBreakpoints } from '../internal/hooks/container-queries';
12
11
  import { usePrevious } from '../internal/hooks/use-previous';
13
12
  import InternalLiveRegion from '../live-region/internal';
13
+ import InternalSpaceBetween from '../space-between/internal';
14
14
  import { AdditionalInfo } from './additional-info';
15
15
  import { gridDefaults } from './grid-defaults';
16
16
  import { Row } from './row';
17
17
  import { getGridTemplateColumns } from './utils';
18
18
  import styles from './styles.css.js';
19
- const InternalAttributeEditor = React.forwardRef((_a, ref) => {
20
- var { additionalInfo, disableAddButton, definition = [{}], gridLayout, items, isItemRemovable = () => true, empty, addButtonText, addButtonVariant, removeButtonText, removeButtonAriaLabel, customRowActions, i18nStrings, onAddButtonClick, onRemoveButtonClick, __internalRootRef } = _a, props = __rest(_a, ["additionalInfo", "disableAddButton", "definition", "gridLayout", "items", "isItemRemovable", "empty", "addButtonText", "addButtonVariant", "removeButtonText", "removeButtonAriaLabel", "customRowActions", "i18nStrings", "onAddButtonClick", "onRemoveButtonClick", "__internalRootRef"]);
19
+ const InternalAttributeEditor = React.forwardRef(({ additionalInfo, disableAddButton, definition = [{}], gridLayout, items, isItemRemovable = () => true, empty, addButtonText, addButtonVariant, removeButtonText, removeButtonAriaLabel, customRowActions, i18nStrings, onAddButtonClick, onRemoveButtonClick, __internalRootRef, hideAddButton, additionalActions, ...props }, ref) => {
21
20
  const removeButtonRefs = useRef([]);
22
21
  const addButtonRef = useRef(null);
23
22
  const wasNonEmpty = useRef(false);
@@ -62,7 +61,10 @@ const InternalAttributeEditor = React.forwardRef((_a, ref) => {
62
61
  gridLayout = [];
63
62
  }
64
63
  }
65
- const gridLayoutBreakpoints = gridLayout.reduce((acc, layout) => (Object.assign(Object.assign({}, acc), { [layout.breakpoint || 'default']: layout })), {});
64
+ const gridLayoutBreakpoints = gridLayout.reduce((acc, layout) => ({
65
+ ...acc,
66
+ [layout.breakpoint || 'default']: layout,
67
+ }), {});
66
68
  const [breakpoint, breakpointRef] = useContainerBreakpoints(Object.keys(gridLayoutBreakpoints));
67
69
  const mergedRef = useMergeRefs(breakpointRef, __internalRootRef);
68
70
  const gridLayoutForBreakpoint = matchBreakpointMapping(gridLayoutBreakpoints, breakpoint || 'default');
@@ -75,15 +77,17 @@ const InternalAttributeEditor = React.forwardRef((_a, ref) => {
75
77
  console.warn('AttributeEditor', `Incorrect number of columns in layout (${totalColumnsInLayout}) for definition (${definition.length}). Cannot render.`);
76
78
  return React.createElement("div", null);
77
79
  }
78
- return (React.createElement("div", Object.assign({}, baseProps, { ref: mergedRef, className: clsx(baseProps.className, styles.root), style: { gridTemplateColumns: getGridTemplateColumns(gridLayoutForBreakpoint) } }),
80
+ return (React.createElement("div", { ...baseProps, ref: mergedRef, className: clsx(baseProps.className, styles.root), style: { gridTemplateColumns: getGridTemplateColumns(gridLayoutForBreakpoint) } },
79
81
  isEmpty && React.createElement("div", { className: clsx(styles.empty, wasNonEmpty.current && styles['empty-appear']) }, empty),
80
82
  items.map((item, index) => (React.createElement(Row, { key: index, index: index, breakpoint: breakpoint, layout: gridLayoutForBreakpoint, item: item, definition: definition, i18nStrings: i18nStrings, removable: isItemRemovable(item), removeButtonText: removeButtonText, removeButtonRefs: removeButtonRefs.current, customRowActions: customRowActions, onRemoveButtonClick: onRemoveButtonClick, removeButtonAriaLabel: removeButtonAriaLabel }))),
81
83
  React.createElement("div", { className: styles['add-row'] },
82
- React.createElement(InternalButton, { className: styles['add-button'], disabled: disableAddButton,
83
- // Using aria-disabled="true" and tabindex="-1" instead of "disabled"
84
- // because focus can be dynamically moved to this button by calling
85
- // `focusAddButton()` on the ref.
86
- nativeButtonAttributes: disableAddButton ? { tabIndex: -1 } : {}, __skipNativeAttributesWarnings: true, __focusable: true, onClick: onAddButtonClick, formAction: "none", ref: addButtonRef, ariaDescribedby: infoAriaDescribedBy, variant: addButtonVariant, iconName: addButtonVariant === 'inline-link' ? 'add-plus' : undefined }, addButtonText),
84
+ (!hideAddButton || additionalActions) && (React.createElement(InternalSpaceBetween, { size: "xs", direction: "horizontal" },
85
+ !hideAddButton && (React.createElement(InternalButton, { className: styles['add-button'], disabled: disableAddButton,
86
+ // Using aria-disabled="true" and tabindex="-1" instead of "disabled"
87
+ // because focus can be dynamically moved to this button by calling
88
+ // `focusAddButton()` on the ref.
89
+ nativeButtonAttributes: disableAddButton ? { tabIndex: -1 } : {}, __skipNativeAttributesWarnings: true, __focusable: true, onClick: onAddButtonClick, formAction: "none", ref: addButtonRef, ariaDescribedby: infoAriaDescribedBy, variant: addButtonVariant, iconName: addButtonVariant === 'inline-link' ? 'add-plus' : undefined }, addButtonText)),
90
+ additionalActions)),
87
91
  React.createElement(InternalLiveRegion, { "data-testid": "removal-announcement", tagName: "span", hidden: true, delay: 5, key: items.length }, removalAnnouncement),
88
92
  !!additionalInfo && React.createElement(AdditionalInfo, { id: infoAriaDescribedBy }, additionalInfo))));
89
93
  });
@@ -1 +1 @@
1
- {"version":3,"file":"internal.js","sourceRoot":"","sources":["../../../src/attribute-editor/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, { useImperativeHandle, useRef, useState } from 'react';\nimport clsx from 'clsx';\n\nimport { useMergeRefs, useUniqueId } from '@cloudscape-design/component-toolkit/internal';\n\nimport { ButtonProps } from '../button/interfaces';\nimport { InternalButton } from '../button/internal';\nimport { useInternalI18n } from '../i18n/context';\nimport { getBaseProps } from '../internal/base-component';\nimport { matchBreakpointMapping } from '../internal/breakpoints';\nimport { useContainerBreakpoints } from '../internal/hooks/container-queries';\nimport { InternalBaseComponentProps } from '../internal/hooks/use-base-component';\nimport { usePrevious } from '../internal/hooks/use-previous';\nimport { SomeRequired } from '../internal/types';\nimport InternalLiveRegion from '../live-region/internal';\nimport { AdditionalInfo } from './additional-info';\nimport { gridDefaults } from './grid-defaults';\nimport { AttributeEditorForwardRefType, AttributeEditorProps } from './interfaces';\nimport { Row } from './row';\nimport { getGridTemplateColumns } from './utils';\n\nimport styles from './styles.css.js';\n\ntype InternalAttributeEditorProps<T> = SomeRequired<AttributeEditorProps<T>, 'items' | 'addButtonVariant'> &\n InternalBaseComponentProps;\n\nconst InternalAttributeEditor = React.forwardRef(\n <T,>(\n {\n additionalInfo,\n disableAddButton,\n definition = [{}],\n gridLayout,\n items,\n isItemRemovable = () => true,\n empty,\n addButtonText,\n addButtonVariant,\n removeButtonText,\n removeButtonAriaLabel,\n customRowActions,\n i18nStrings,\n onAddButtonClick,\n onRemoveButtonClick,\n __internalRootRef,\n ...props\n }: InternalAttributeEditorProps<T>,\n ref: React.Ref<AttributeEditorProps.Ref>\n ) => {\n const removeButtonRefs = useRef<Array<ButtonProps.Ref | undefined>>([]);\n const addButtonRef = useRef<ButtonProps.Ref>(null);\n const wasNonEmpty = useRef<boolean>(false);\n const [removalAnnouncement, setRemovalAnnouncement] = useState<string>('');\n\n const baseProps = getBaseProps(props);\n const isEmpty = items && items.length === 0;\n\n wasNonEmpty.current = wasNonEmpty.current || !isEmpty;\n\n useImperativeHandle(ref, () => ({\n focusRemoveButton(rowIndex: number) {\n removeButtonRefs.current[rowIndex]?.focus();\n },\n focusAddButton() {\n addButtonRef.current?.focus();\n },\n }));\n\n const additionalInfoId = useUniqueId('attribute-editor-info');\n const infoAriaDescribedBy = additionalInfo ? additionalInfoId : undefined;\n\n const prevItemsLength = usePrevious(items.length);\n const i18n = useInternalI18n('attribute-editor');\n\n React.useEffect(() => {\n if (prevItemsLength && prevItemsLength > items.length) {\n const announcement = i18n('i18nStrings.itemRemovedAriaLive', i18nStrings?.itemRemovedAriaLive);\n if (announcement) {\n setRemovalAnnouncement(announcement);\n } else {\n setRemovalAnnouncement('');\n }\n } else {\n setRemovalAnnouncement('');\n }\n // we only want to announce when the number of items decreases (i.e. when an item is removed)\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [items, i18nStrings?.itemRemovedAriaLive]);\n\n if (!gridLayout) {\n gridLayout = gridDefaults[definition.length];\n if (!gridLayout) {\n console.warn('AttributeEditor', '`gridLayout` is required for more than 6 attributes. Cannot render.');\n gridLayout = [];\n }\n }\n\n const gridLayoutBreakpoints = gridLayout.reduce(\n (acc, layout) => ({\n ...acc,\n [layout.breakpoint || 'default']: layout,\n }),\n {} as Record<AttributeEditorProps.Breakpoint, AttributeEditorProps.GridLayout>\n );\n\n const [breakpoint, breakpointRef] = useContainerBreakpoints(\n Object.keys(gridLayoutBreakpoints) as AttributeEditorProps.Breakpoint[]\n );\n const mergedRef = useMergeRefs(breakpointRef, __internalRootRef);\n\n const gridLayoutForBreakpoint = matchBreakpointMapping(gridLayoutBreakpoints, breakpoint || 'default');\n\n if (!gridLayoutForBreakpoint) {\n console.warn('AttributeEditor', `No \\`gridLayout\\` entry found for breakpoint ${breakpoint}. Cannot render.`);\n return <div />;\n }\n\n const totalColumnsInLayout = gridLayoutForBreakpoint.rows.reduce((total, columns) => total + columns.length, 0);\n if (totalColumnsInLayout !== definition.length) {\n console.warn(\n 'AttributeEditor',\n `Incorrect number of columns in layout (${totalColumnsInLayout}) for definition (${definition.length}). Cannot render.`\n );\n return <div />;\n }\n\n return (\n <div\n {...baseProps}\n ref={mergedRef}\n className={clsx(baseProps.className, styles.root)}\n style={{ gridTemplateColumns: getGridTemplateColumns(gridLayoutForBreakpoint) }}\n >\n {isEmpty && <div className={clsx(styles.empty, wasNonEmpty.current && styles['empty-appear'])}>{empty}</div>}\n {items.map((item, index) => (\n <Row<T>\n key={index}\n index={index}\n breakpoint={breakpoint}\n layout={gridLayoutForBreakpoint}\n item={item}\n definition={definition}\n i18nStrings={i18nStrings}\n removable={isItemRemovable(item)}\n removeButtonText={removeButtonText}\n removeButtonRefs={removeButtonRefs.current}\n customRowActions={customRowActions}\n onRemoveButtonClick={onRemoveButtonClick}\n removeButtonAriaLabel={removeButtonAriaLabel}\n />\n ))}\n\n <div className={styles['add-row']}>\n <InternalButton\n className={styles['add-button']}\n disabled={disableAddButton}\n // Using aria-disabled=\"true\" and tabindex=\"-1\" instead of \"disabled\"\n // because focus can be dynamically moved to this button by calling\n // `focusAddButton()` on the ref.\n nativeButtonAttributes={disableAddButton ? { tabIndex: -1 } : {}}\n __skipNativeAttributesWarnings={true}\n __focusable={true}\n onClick={onAddButtonClick}\n formAction=\"none\"\n ref={addButtonRef}\n ariaDescribedby={infoAriaDescribedBy}\n variant={addButtonVariant}\n iconName={addButtonVariant === 'inline-link' ? 'add-plus' : undefined}\n >\n {addButtonText}\n </InternalButton>\n <InternalLiveRegion\n data-testid=\"removal-announcement\"\n tagName=\"span\"\n hidden={true}\n delay={5}\n key={items.length}\n >\n {removalAnnouncement}\n </InternalLiveRegion>\n {!!additionalInfo && <AdditionalInfo id={infoAriaDescribedBy}>{additionalInfo}</AdditionalInfo>}\n </div>\n </div>\n );\n }\n) as AttributeEditorForwardRefType;\n\nexport default InternalAttributeEditor;\n"]}
1
+ {"version":3,"file":"internal.js","sourceRoot":"","sources":["../../../src/attribute-editor/internal.tsx"],"names":[],"mappings":"AAAA,qEAAqE;AACrE,sCAAsC;AACtC,OAAO,KAAK,EAAE,EAAE,mBAAmB,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACrE,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,+CAA+C,CAAC;AAG1F,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AACjE,OAAO,EAAE,uBAAuB,EAAE,MAAM,qCAAqC,CAAC;AAE9E,OAAO,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAE7D,OAAO,kBAAkB,MAAM,yBAAyB,CAAC;AACzD,OAAO,oBAAoB,MAAM,2BAA2B,CAAC;AAC7D,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE/C,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAC5B,OAAO,EAAE,sBAAsB,EAAE,MAAM,SAAS,CAAC;AAEjD,OAAO,MAAM,MAAM,iBAAiB,CAAC;AAKrC,MAAM,uBAAuB,GAAG,KAAK,CAAC,UAAU,CAC9C,CACE,EACE,cAAc,EACd,gBAAgB,EAChB,UAAU,GAAG,CAAC,EAAE,CAAC,EACjB,UAAU,EACV,KAAK,EACL,eAAe,GAAG,GAAG,EAAE,CAAC,IAAI,EAC5B,KAAK,EACL,aAAa,EACb,gBAAgB,EAChB,gBAAgB,EAChB,qBAAqB,EACrB,gBAAgB,EAChB,WAAW,EACX,gBAAgB,EAChB,mBAAmB,EACnB,iBAAiB,EACjB,aAAa,EACb,iBAAiB,EACjB,GAAG,KAAK,EACwB,EAClC,GAAwC,EACxC,EAAE;IACF,MAAM,gBAAgB,GAAG,MAAM,CAAqC,EAAE,CAAC,CAAC;IACxE,MAAM,YAAY,GAAG,MAAM,CAAkB,IAAI,CAAC,CAAC;IACnD,MAAM,WAAW,GAAG,MAAM,CAAU,KAAK,CAAC,CAAC;IAC3C,MAAM,CAAC,mBAAmB,EAAE,sBAAsB,CAAC,GAAG,QAAQ,CAAS,EAAE,CAAC,CAAC;IAE3E,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;IACtC,MAAM,OAAO,GAAG,KAAK,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC;IAE5C,WAAW,CAAC,OAAO,GAAG,WAAW,CAAC,OAAO,IAAI,CAAC,OAAO,CAAC;IAEtD,mBAAmB,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;QAC9B,iBAAiB,CAAC,QAAgB;;YAChC,MAAA,gBAAgB,CAAC,OAAO,CAAC,QAAQ,CAAC,0CAAE,KAAK,EAAE,CAAC;QAC9C,CAAC;QACD,cAAc;;YACZ,MAAA,YAAY,CAAC,OAAO,0CAAE,KAAK,EAAE,CAAC;QAChC,CAAC;KACF,CAAC,CAAC,CAAC;IAEJ,MAAM,gBAAgB,GAAG,WAAW,CAAC,uBAAuB,CAAC,CAAC;IAC9D,MAAM,mBAAmB,GAAG,cAAc,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,SAAS,CAAC;IAE1E,MAAM,eAAe,GAAG,WAAW,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAClD,MAAM,IAAI,GAAG,eAAe,CAAC,kBAAkB,CAAC,CAAC;IAEjD,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACnB,IAAI,eAAe,IAAI,eAAe,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC;YACtD,MAAM,YAAY,GAAG,IAAI,CAAC,iCAAiC,EAAE,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,mBAAmB,CAAC,CAAC;YAC/F,IAAI,YAAY,EAAE,CAAC;gBACjB,sBAAsB,CAAC,YAAY,CAAC,CAAC;YACvC,CAAC;iBAAM,CAAC;gBACN,sBAAsB,CAAC,EAAE,CAAC,CAAC;YAC7B,CAAC;QACH,CAAC;aAAM,CAAC;YACN,sBAAsB,CAAC,EAAE,CAAC,CAAC;QAC7B,CAAC;QACD,6FAA6F;QAC7F,uDAAuD;IACzD,CAAC,EAAE,CAAC,KAAK,EAAE,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,mBAAmB,CAAC,CAAC,CAAC;IAE9C,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,UAAU,GAAG,YAAY,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;QAC7C,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,OAAO,CAAC,IAAI,CAAC,iBAAiB,EAAE,qEAAqE,CAAC,CAAC;YACvG,UAAU,GAAG,EAAE,CAAC;QAClB,CAAC;IACH,CAAC;IAED,MAAM,qBAAqB,GAAG,UAAU,CAAC,MAAM,CAC7C,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC;QAChB,GAAG,GAAG;QACN,CAAC,MAAM,CAAC,UAAU,IAAI,SAAS,CAAC,EAAE,MAAM;KACzC,CAAC,EACF,EAA8E,CAC/E,CAAC;IAEF,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,uBAAuB,CACzD,MAAM,CAAC,IAAI,CAAC,qBAAqB,CAAsC,CACxE,CAAC;IACF,MAAM,SAAS,GAAG,YAAY,CAAC,aAAa,EAAE,iBAAiB,CAAC,CAAC;IAEjE,MAAM,uBAAuB,GAAG,sBAAsB,CAAC,qBAAqB,EAAE,UAAU,IAAI,SAAS,CAAC,CAAC;IAEvG,IAAI,CAAC,uBAAuB,EAAE,CAAC;QAC7B,OAAO,CAAC,IAAI,CAAC,iBAAiB,EAAE,gDAAgD,UAAU,kBAAkB,CAAC,CAAC;QAC9G,OAAO,gCAAO,CAAC;IACjB,CAAC;IAED,MAAM,oBAAoB,GAAG,uBAAuB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE,CAAC,KAAK,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IAChH,IAAI,oBAAoB,KAAK,UAAU,CAAC,MAAM,EAAE,CAAC;QAC/C,OAAO,CAAC,IAAI,CACV,iBAAiB,EACjB,0CAA0C,oBAAoB,qBAAqB,UAAU,CAAC,MAAM,mBAAmB,CACxH,CAAC;QACF,OAAO,gCAAO,CAAC;IACjB,CAAC;IAED,OAAO,CACL,gCACM,SAAS,EACb,GAAG,EAAE,SAAS,EACd,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,MAAM,CAAC,IAAI,CAAC,EACjD,KAAK,EAAE,EAAE,mBAAmB,EAAE,sBAAsB,CAAC,uBAAuB,CAAC,EAAE;QAE9E,OAAO,IAAI,6BAAK,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,WAAW,CAAC,OAAO,IAAI,MAAM,CAAC,cAAc,CAAC,CAAC,IAAG,KAAK,CAAO;QAC3G,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,CAC1B,oBAAC,GAAG,IACF,GAAG,EAAE,KAAK,EACV,KAAK,EAAE,KAAK,EACZ,UAAU,EAAE,UAAU,EACtB,MAAM,EAAE,uBAAuB,EAC/B,IAAI,EAAE,IAAI,EACV,UAAU,EAAE,UAAU,EACtB,WAAW,EAAE,WAAW,EACxB,SAAS,EAAE,eAAe,CAAC,IAAI,CAAC,EAChC,gBAAgB,EAAE,gBAAgB,EAClC,gBAAgB,EAAE,gBAAgB,CAAC,OAAO,EAC1C,gBAAgB,EAAE,gBAAgB,EAClC,mBAAmB,EAAE,mBAAmB,EACxC,qBAAqB,EAAE,qBAAqB,GAC5C,CACH,CAAC;QAEF,6BAAK,SAAS,EAAE,MAAM,CAAC,SAAS,CAAC;YAC9B,CAAC,CAAC,aAAa,IAAI,iBAAiB,CAAC,IAAI,CACxC,oBAAC,oBAAoB,IAAC,IAAI,EAAC,IAAI,EAAC,SAAS,EAAC,YAAY;gBACnD,CAAC,aAAa,IAAI,CACjB,oBAAC,cAAc,IACb,SAAS,EAAE,MAAM,CAAC,YAAY,CAAC,EAC/B,QAAQ,EAAE,gBAAgB;oBAC1B,qEAAqE;oBACrE,mEAAmE;oBACnE,iCAAiC;oBACjC,sBAAsB,EAAE,gBAAgB,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAChE,8BAA8B,EAAE,IAAI,EACpC,WAAW,EAAE,IAAI,EACjB,OAAO,EAAE,gBAAgB,EACzB,UAAU,EAAC,MAAM,EACjB,GAAG,EAAE,YAAY,EACjB,eAAe,EAAE,mBAAmB,EACpC,OAAO,EAAE,gBAAgB,EACzB,QAAQ,EAAE,gBAAgB,KAAK,aAAa,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,IAEpE,aAAa,CACC,CAClB;gBACA,iBAAiB,CACG,CACxB;YACD,oBAAC,kBAAkB,mBACL,sBAAsB,EAClC,OAAO,EAAC,MAAM,EACd,MAAM,EAAE,IAAI,EACZ,KAAK,EAAE,CAAC,EACR,GAAG,EAAE,KAAK,CAAC,MAAM,IAEhB,mBAAmB,CACD;YACpB,CAAC,CAAC,cAAc,IAAI,oBAAC,cAAc,IAAC,EAAE,EAAE,mBAAmB,IAAG,cAAc,CAAkB,CAC3F,CACF,CACP,CAAC;AACJ,CAAC,CAC+B,CAAC;AAEnC,eAAe,uBAAuB,CAAC","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport React, { useImperativeHandle, useRef, useState } from 'react';\nimport clsx from 'clsx';\n\nimport { useMergeRefs, useUniqueId } from '@cloudscape-design/component-toolkit/internal';\n\nimport { ButtonProps } from '../button/interfaces';\nimport { InternalButton } from '../button/internal';\nimport { useInternalI18n } from '../i18n/context';\nimport { getBaseProps } from '../internal/base-component';\nimport { matchBreakpointMapping } from '../internal/breakpoints';\nimport { useContainerBreakpoints } from '../internal/hooks/container-queries';\nimport { InternalBaseComponentProps } from '../internal/hooks/use-base-component';\nimport { usePrevious } from '../internal/hooks/use-previous';\nimport { SomeRequired } from '../internal/types';\nimport InternalLiveRegion from '../live-region/internal';\nimport InternalSpaceBetween from '../space-between/internal';\nimport { AdditionalInfo } from './additional-info';\nimport { gridDefaults } from './grid-defaults';\nimport { AttributeEditorForwardRefType, AttributeEditorProps } from './interfaces';\nimport { Row } from './row';\nimport { getGridTemplateColumns } from './utils';\n\nimport styles from './styles.css.js';\n\ntype InternalAttributeEditorProps<T> = SomeRequired<AttributeEditorProps<T>, 'items' | 'addButtonVariant'> &\n InternalBaseComponentProps;\n\nconst InternalAttributeEditor = React.forwardRef(\n <T,>(\n {\n additionalInfo,\n disableAddButton,\n definition = [{}],\n gridLayout,\n items,\n isItemRemovable = () => true,\n empty,\n addButtonText,\n addButtonVariant,\n removeButtonText,\n removeButtonAriaLabel,\n customRowActions,\n i18nStrings,\n onAddButtonClick,\n onRemoveButtonClick,\n __internalRootRef,\n hideAddButton,\n additionalActions,\n ...props\n }: InternalAttributeEditorProps<T>,\n ref: React.Ref<AttributeEditorProps.Ref>\n ) => {\n const removeButtonRefs = useRef<Array<ButtonProps.Ref | undefined>>([]);\n const addButtonRef = useRef<ButtonProps.Ref>(null);\n const wasNonEmpty = useRef<boolean>(false);\n const [removalAnnouncement, setRemovalAnnouncement] = useState<string>('');\n\n const baseProps = getBaseProps(props);\n const isEmpty = items && items.length === 0;\n\n wasNonEmpty.current = wasNonEmpty.current || !isEmpty;\n\n useImperativeHandle(ref, () => ({\n focusRemoveButton(rowIndex: number) {\n removeButtonRefs.current[rowIndex]?.focus();\n },\n focusAddButton() {\n addButtonRef.current?.focus();\n },\n }));\n\n const additionalInfoId = useUniqueId('attribute-editor-info');\n const infoAriaDescribedBy = additionalInfo ? additionalInfoId : undefined;\n\n const prevItemsLength = usePrevious(items.length);\n const i18n = useInternalI18n('attribute-editor');\n\n React.useEffect(() => {\n if (prevItemsLength && prevItemsLength > items.length) {\n const announcement = i18n('i18nStrings.itemRemovedAriaLive', i18nStrings?.itemRemovedAriaLive);\n if (announcement) {\n setRemovalAnnouncement(announcement);\n } else {\n setRemovalAnnouncement('');\n }\n } else {\n setRemovalAnnouncement('');\n }\n // we only want to announce when the number of items decreases (i.e. when an item is removed)\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [items, i18nStrings?.itemRemovedAriaLive]);\n\n if (!gridLayout) {\n gridLayout = gridDefaults[definition.length];\n if (!gridLayout) {\n console.warn('AttributeEditor', '`gridLayout` is required for more than 6 attributes. Cannot render.');\n gridLayout = [];\n }\n }\n\n const gridLayoutBreakpoints = gridLayout.reduce(\n (acc, layout) => ({\n ...acc,\n [layout.breakpoint || 'default']: layout,\n }),\n {} as Record<AttributeEditorProps.Breakpoint, AttributeEditorProps.GridLayout>\n );\n\n const [breakpoint, breakpointRef] = useContainerBreakpoints(\n Object.keys(gridLayoutBreakpoints) as AttributeEditorProps.Breakpoint[]\n );\n const mergedRef = useMergeRefs(breakpointRef, __internalRootRef);\n\n const gridLayoutForBreakpoint = matchBreakpointMapping(gridLayoutBreakpoints, breakpoint || 'default');\n\n if (!gridLayoutForBreakpoint) {\n console.warn('AttributeEditor', `No \\`gridLayout\\` entry found for breakpoint ${breakpoint}. Cannot render.`);\n return <div />;\n }\n\n const totalColumnsInLayout = gridLayoutForBreakpoint.rows.reduce((total, columns) => total + columns.length, 0);\n if (totalColumnsInLayout !== definition.length) {\n console.warn(\n 'AttributeEditor',\n `Incorrect number of columns in layout (${totalColumnsInLayout}) for definition (${definition.length}). Cannot render.`\n );\n return <div />;\n }\n\n return (\n <div\n {...baseProps}\n ref={mergedRef}\n className={clsx(baseProps.className, styles.root)}\n style={{ gridTemplateColumns: getGridTemplateColumns(gridLayoutForBreakpoint) }}\n >\n {isEmpty && <div className={clsx(styles.empty, wasNonEmpty.current && styles['empty-appear'])}>{empty}</div>}\n {items.map((item, index) => (\n <Row<T>\n key={index}\n index={index}\n breakpoint={breakpoint}\n layout={gridLayoutForBreakpoint}\n item={item}\n definition={definition}\n i18nStrings={i18nStrings}\n removable={isItemRemovable(item)}\n removeButtonText={removeButtonText}\n removeButtonRefs={removeButtonRefs.current}\n customRowActions={customRowActions}\n onRemoveButtonClick={onRemoveButtonClick}\n removeButtonAriaLabel={removeButtonAriaLabel}\n />\n ))}\n\n <div className={styles['add-row']}>\n {(!hideAddButton || additionalActions) && (\n <InternalSpaceBetween size=\"xs\" direction=\"horizontal\">\n {!hideAddButton && (\n <InternalButton\n className={styles['add-button']}\n disabled={disableAddButton}\n // Using aria-disabled=\"true\" and tabindex=\"-1\" instead of \"disabled\"\n // because focus can be dynamically moved to this button by calling\n // `focusAddButton()` on the ref.\n nativeButtonAttributes={disableAddButton ? { tabIndex: -1 } : {}}\n __skipNativeAttributesWarnings={true}\n __focusable={true}\n onClick={onAddButtonClick}\n formAction=\"none\"\n ref={addButtonRef}\n ariaDescribedby={infoAriaDescribedBy}\n variant={addButtonVariant}\n iconName={addButtonVariant === 'inline-link' ? 'add-plus' : undefined}\n >\n {addButtonText}\n </InternalButton>\n )}\n {additionalActions}\n </InternalSpaceBetween>\n )}\n <InternalLiveRegion\n data-testid=\"removal-announcement\"\n tagName=\"span\"\n hidden={true}\n delay={5}\n key={items.length}\n >\n {removalAnnouncement}\n </InternalLiveRegion>\n {!!additionalInfo && <AdditionalInfo id={infoAriaDescribedBy}>{additionalInfo}</AdditionalInfo>}\n </div>\n </div>\n );\n }\n) as AttributeEditorForwardRefType;\n\nexport default InternalAttributeEditor;\n"]}
@@ -49,7 +49,7 @@ export const Row = React.memo(({ breakpoint, item, definition, layout, i18nStrin
49
49
  React.createElement("div", { className: clsx(styles['remove-button-container'], {
50
50
  [styles['remove-button-field-padding']]: removeButtonOnSameLine && index === 0,
51
51
  [styles['remove-button-own-row']]: !removeButtonOnSameLine,
52
- }), style: Object.assign({}, getRemoveButtonGridColumns(layout, gridColumnEnd)) }, removable &&
52
+ }), style: { ...getRemoveButtonGridColumns(layout, gridColumnEnd) } }, removable &&
53
53
  (customActions !== undefined ? (customActions) : (React.createElement(InternalButton, { className: styles['remove-button'], formAction: "none", ref: buttonRef, ariaLabel: (_a = (removeButtonAriaLabel !== null && removeButtonAriaLabel !== void 0 ? removeButtonAriaLabel : i18nStrings.removeButtonAriaLabel)) === null || _a === void 0 ? void 0 : _a(item), onClick: handleRemoveClick }, i18n('removeButtonText', removeButtonText))))),
54
54
  !removeButtonOnSameLine && React.createElement("div", { className: styles.divider })));
55
55
  });
@@ -1 +1 @@
1
- {"version":3,"file":"row.js","sourceRoot":"","sources":["../../../src/attribute-editor/row.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, { useCallback } from 'react';\nimport clsx from 'clsx';\n\nimport { useUniqueId } from '@cloudscape-design/component-toolkit/internal';\n\nimport { ButtonProps } from '../button/interfaces';\nimport { InternalButton } from '../button/internal';\nimport InternalFormField from '../form-field/internal';\nimport { useInternalI18n } from '../i18n/context';\nimport { Breakpoint } from '../internal/breakpoints';\nimport { fireNonCancelableEvent, NonCancelableEventHandler } from '../internal/events';\nimport { AttributeEditorProps } from './interfaces';\nimport { getItemGridColumns, getRemoveButtonGridColumns, isRemoveButtonOnSameLine } from './utils';\n\nimport styles from './styles.css.js';\n\ninterface RowProps<T> {\n breakpoint: Breakpoint | null;\n layout: AttributeEditorProps.GridLayout;\n item: T;\n definition: ReadonlyArray<AttributeEditorProps.FieldDefinition<T>>;\n i18nStrings: AttributeEditorProps.I18nStrings | undefined;\n index: number;\n removable: boolean;\n removeButtonText?: string;\n removeButtonRefs: Array<ButtonProps.Ref | undefined>;\n customRowActions?: (props: AttributeEditorProps.RowActionsProps<T>) => React.ReactNode;\n onRemoveButtonClick?: NonCancelableEventHandler<AttributeEditorProps.RemoveButtonClickDetail>;\n removeButtonAriaLabel?: (item: T) => string;\n}\n\nfunction render<T>(\n item: T,\n itemIndex: number,\n slot: AttributeEditorProps.FieldRenderable<T> | React.ReactNode | undefined\n) {\n if (isSlotFunction(slot)) {\n return slot(item, itemIndex);\n }\n return slot;\n\n function isSlotFunction(slot: unknown): slot is AttributeEditorProps.FieldRenderable<T> {\n return typeof slot === 'function';\n }\n}\n\nexport const Row = React.memo(\n <T,>({\n breakpoint,\n item,\n definition,\n layout,\n i18nStrings = {},\n index,\n removable,\n removeButtonText,\n removeButtonRefs,\n customRowActions,\n onRemoveButtonClick,\n removeButtonAriaLabel,\n }: RowProps<T>) => {\n const i18n = useInternalI18n('attribute-editor');\n\n const handleRemoveClick = useCallback(() => {\n fireNonCancelableEvent(onRemoveButtonClick, { itemIndex: index });\n }, [onRemoveButtonClick, index]);\n\n const firstControlId = useUniqueId('first-control-id-');\n\n const buttonRef = (ref: ButtonProps.Ref | null) => {\n removeButtonRefs[index] = ref ?? undefined;\n };\n\n let gridColumnStart = 1;\n let gridColumnEnd = 1;\n const removeButtonOnSameLine = isRemoveButtonOnSameLine(layout);\n\n const customActions = customRowActions?.({\n item,\n itemIndex: index,\n ref: buttonRef,\n breakpoint,\n ownRow: !removeButtonOnSameLine,\n });\n\n return (\n <div\n className={clsx(styles.row, layout.rows.length === 1 && styles['single-row'])}\n role=\"group\"\n aria-labelledby={`${firstControlId}-label ${firstControlId}`}\n >\n {definition.map(({ info, label, description, constraintText, errorText, warningText, control }, defIndex) => {\n ({ gridColumnStart, gridColumnEnd } = getItemGridColumns(layout, defIndex));\n return (\n <InternalFormField\n key={defIndex}\n className={styles.field}\n __style={{ gridColumnStart, gridColumnEnd }}\n label={label}\n description={description}\n info={info}\n constraintText={render(item, index, constraintText)}\n errorText={render(item, index, errorText)}\n warningText={render(item, index, warningText)}\n stretch={true}\n i18nStrings={{\n errorIconAriaLabel: i18nStrings.errorIconAriaLabel,\n warningIconAriaLabel: i18nStrings.warningIconAriaLabel,\n }}\n __hideLabel={index !== 0 && removeButtonOnSameLine}\n controlId={defIndex === 0 ? firstControlId : undefined}\n >\n {render(item, index, control)}\n </InternalFormField>\n );\n })}\n <div\n className={clsx(styles['remove-button-container'], {\n [styles['remove-button-field-padding']]: removeButtonOnSameLine && index === 0,\n [styles['remove-button-own-row']]: !removeButtonOnSameLine,\n })}\n style={{ ...getRemoveButtonGridColumns(layout, gridColumnEnd) }}\n >\n {removable &&\n (customActions !== undefined ? (\n customActions\n ) : (\n <InternalButton\n className={styles['remove-button']}\n formAction=\"none\"\n ref={buttonRef}\n ariaLabel={(removeButtonAriaLabel ?? i18nStrings.removeButtonAriaLabel)?.(item)}\n onClick={handleRemoveClick}\n >\n {i18n('removeButtonText', removeButtonText)}\n </InternalButton>\n ))}\n </div>\n {!removeButtonOnSameLine && <div className={styles.divider} />}\n </div>\n );\n }\n) as <T>(props: RowProps<T>) => JSX.Element;\n"]}
1
+ {"version":3,"file":"row.js","sourceRoot":"","sources":["../../../src/attribute-editor/row.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, { useCallback } from 'react';\nimport clsx from 'clsx';\n\nimport { useUniqueId } from '@cloudscape-design/component-toolkit/internal';\n\nimport { ButtonProps } from '../button/interfaces';\nimport { InternalButton } from '../button/internal';\nimport InternalFormField from '../form-field/internal';\nimport { useInternalI18n } from '../i18n/context';\nimport { Breakpoint } from '../internal/breakpoints';\nimport { fireNonCancelableEvent, NonCancelableEventHandler } from '../internal/events';\nimport { AttributeEditorProps } from './interfaces';\nimport { getItemGridColumns, getRemoveButtonGridColumns, isRemoveButtonOnSameLine } from './utils';\n\nimport styles from './styles.css.js';\n\ninterface RowProps<T> {\n breakpoint: Breakpoint | null;\n layout: AttributeEditorProps.GridLayout;\n item: T;\n definition: ReadonlyArray<AttributeEditorProps.FieldDefinition<T>>;\n i18nStrings: AttributeEditorProps.I18nStrings | undefined;\n index: number;\n removable: boolean;\n removeButtonText?: string;\n removeButtonRefs: Array<ButtonProps.Ref | undefined>;\n customRowActions?: (props: AttributeEditorProps.RowActionsProps<T>) => React.ReactNode;\n onRemoveButtonClick?: NonCancelableEventHandler<AttributeEditorProps.RemoveButtonClickDetail>;\n removeButtonAriaLabel?: (item: T) => string;\n}\n\nfunction render<T>(\n item: T,\n itemIndex: number,\n slot: AttributeEditorProps.FieldRenderable<T> | React.ReactNode | undefined\n) {\n if (isSlotFunction(slot)) {\n return slot(item, itemIndex);\n }\n return slot;\n\n function isSlotFunction(slot: unknown): slot is AttributeEditorProps.FieldRenderable<T> {\n return typeof slot === 'function';\n }\n}\n\nexport const Row = React.memo(\n <T,>({\n breakpoint,\n item,\n definition,\n layout,\n i18nStrings = {},\n index,\n removable,\n removeButtonText,\n removeButtonRefs,\n customRowActions,\n onRemoveButtonClick,\n removeButtonAriaLabel,\n }: RowProps<T>) => {\n const i18n = useInternalI18n('attribute-editor');\n\n const handleRemoveClick = useCallback(() => {\n fireNonCancelableEvent(onRemoveButtonClick, { itemIndex: index });\n }, [onRemoveButtonClick, index]);\n\n const firstControlId = useUniqueId('first-control-id-');\n\n const buttonRef = (ref: ButtonProps.Ref | null) => {\n removeButtonRefs[index] = ref ?? undefined;\n };\n\n let gridColumnStart = 1;\n let gridColumnEnd = 1;\n const removeButtonOnSameLine = isRemoveButtonOnSameLine(layout);\n\n const customActions = customRowActions?.({\n item,\n itemIndex: index,\n ref: buttonRef,\n breakpoint,\n ownRow: !removeButtonOnSameLine,\n });\n\n return (\n <div\n className={clsx(styles.row, layout.rows.length === 1 && styles['single-row'])}\n role=\"group\"\n aria-labelledby={`${firstControlId}-label ${firstControlId}`}\n >\n {definition.map(({ info, label, description, constraintText, errorText, warningText, control }, defIndex) => {\n ({ gridColumnStart, gridColumnEnd } = getItemGridColumns(layout, defIndex));\n return (\n <InternalFormField\n key={defIndex}\n className={styles.field}\n __style={{ gridColumnStart, gridColumnEnd }}\n label={label}\n description={description}\n info={info}\n constraintText={render(item, index, constraintText)}\n errorText={render(item, index, errorText)}\n warningText={render(item, index, warningText)}\n stretch={true}\n i18nStrings={{\n errorIconAriaLabel: i18nStrings.errorIconAriaLabel,\n warningIconAriaLabel: i18nStrings.warningIconAriaLabel,\n }}\n __hideLabel={index !== 0 && removeButtonOnSameLine}\n controlId={defIndex === 0 ? firstControlId : undefined}\n >\n {render(item, index, control)}\n </InternalFormField>\n );\n })}\n <div\n className={clsx(styles['remove-button-container'], {\n [styles['remove-button-field-padding']]: removeButtonOnSameLine && index === 0,\n [styles['remove-button-own-row']]: !removeButtonOnSameLine,\n })}\n style={{ ...getRemoveButtonGridColumns(layout, gridColumnEnd) }}\n >\n {removable &&\n (customActions !== undefined ? (\n customActions\n ) : (\n <InternalButton\n className={styles['remove-button']}\n formAction=\"none\"\n ref={buttonRef}\n ariaLabel={(removeButtonAriaLabel ?? i18nStrings.removeButtonAriaLabel)?.(item)}\n onClick={handleRemoveClick}\n >\n {i18n('removeButtonText', removeButtonText)}\n </InternalButton>\n ))}\n </div>\n {!removeButtonOnSameLine && <div className={styles.divider} />}\n </div>\n );\n }\n) as <T>(props: RowProps<T>) => JSX.Element;\n"]}