@elastic/eui 95.10.1 → 95.12.0

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 (371) hide show
  1. package/README.md +1 -69
  2. package/dist/eui_theme_dark.css +0 -924
  3. package/dist/eui_theme_dark.min.css +1 -1
  4. package/dist/eui_theme_light.css +0 -924
  5. package/dist/eui_theme_light.min.css +1 -1
  6. package/es/components/basic_table/basic_table.js +43 -35
  7. package/es/components/basic_table/collapsed_item_actions.js +24 -31
  8. package/es/components/datagrid/body/cell/data_grid_cell.js +212 -94
  9. package/es/components/datagrid/body/cell/data_grid_cell.styles.js +110 -0
  10. package/es/components/datagrid/body/cell/data_grid_cell_actions.js +13 -3
  11. package/es/components/datagrid/body/cell/data_grid_cell_actions.styles.js +33 -0
  12. package/es/components/datagrid/body/cell/data_grid_cell_popover.js +21 -12
  13. package/es/components/datagrid/body/cell/data_grid_cell_popover.styles.js +19 -0
  14. package/es/components/datagrid/body/cell/focus_utils.js +18 -20
  15. package/es/components/datagrid/body/data_grid_body.js +20 -4
  16. package/es/components/datagrid/body/data_grid_body.styles.js +26 -0
  17. package/es/components/datagrid/body/data_grid_body_custom.js +23 -8
  18. package/es/components/datagrid/body/data_grid_body_virtualized.js +23 -8
  19. package/es/components/datagrid/body/footer/data_grid_footer.styles.js +24 -0
  20. package/es/components/datagrid/body/footer/data_grid_footer_row.js +24 -11
  21. package/es/components/datagrid/body/header/column_actions.js +16 -4
  22. package/es/components/datagrid/body/header/data_grid_column_resizer.js +14 -7
  23. package/es/components/datagrid/body/header/data_grid_column_resizer.styles.js +36 -0
  24. package/es/components/datagrid/body/header/data_grid_control_header_cell.js +6 -5
  25. package/es/components/datagrid/body/header/data_grid_header_cell.js +42 -66
  26. package/es/components/datagrid/body/header/data_grid_header_cell.styles.js +27 -0
  27. package/es/components/datagrid/body/header/data_grid_header_cell_wrapper.js +9 -3
  28. package/es/components/datagrid/body/header/data_grid_header_cell_wrapper.styles.js +27 -0
  29. package/es/components/datagrid/body/header/data_grid_header_row.js +12 -2
  30. package/es/components/datagrid/body/header/data_grid_header_row.styles.js +21 -0
  31. package/es/components/datagrid/controls/column_selector.js +17 -8
  32. package/es/components/datagrid/controls/column_selector.styles.js +22 -0
  33. package/es/components/datagrid/controls/column_sorting.js +7 -2
  34. package/es/components/datagrid/controls/column_sorting.styles.js +35 -0
  35. package/es/components/datagrid/controls/column_sorting_draggable.js +19 -14
  36. package/es/components/datagrid/controls/data_grid_toolbar.js +8 -1
  37. package/es/components/datagrid/controls/data_grid_toolbar.styles.js +18 -0
  38. package/es/components/datagrid/controls/data_grid_toolbar_control.js +27 -27
  39. package/es/components/datagrid/controls/display_selector.js +14 -3
  40. package/es/components/datagrid/controls/fullscreen_selector.js +8 -5
  41. package/es/components/datagrid/controls/fullscreen_selector.styles.js +20 -0
  42. package/es/components/datagrid/controls/keyboard_shortcuts.js +7 -3
  43. package/es/components/datagrid/controls/keyboard_shortcuts.styles.js +18 -0
  44. package/es/components/datagrid/data_grid.a11y.js +1 -0
  45. package/es/components/datagrid/data_grid.js +17 -9
  46. package/es/components/datagrid/data_grid.stories.utils.js +1422 -0
  47. package/es/components/datagrid/data_grid.styles.js +88 -0
  48. package/es/components/datagrid/{utils → pagination}/data_grid_pagination.js +30 -30
  49. package/es/components/datagrid/pagination/data_grid_pagination.styles.js +16 -0
  50. package/es/components/datagrid/pagination/index.js +9 -0
  51. package/es/components/datagrid/utils/row_heights.js +10 -36
  52. package/es/components/datagrid/utils/scrolling.js +14 -7
  53. package/es/components/datagrid/utils/scrolling.styles.js +30 -0
  54. package/es/components/date_picker/date_picker.js +1 -1
  55. package/es/components/flyout/flyout_resizable.js +6 -2
  56. package/es/components/flyout/flyout_resizable.styles.js +34 -5
  57. package/es/components/popover/popover.js +1 -1
  58. package/es/components/provider/provider.js +16 -13
  59. package/es/components/provider/system_color_mode/index.js +9 -0
  60. package/es/components/provider/system_color_mode/system_color_mode_provider.js +49 -0
  61. package/es/components/resizable_container/resizable_button.js +9 -2
  62. package/es/components/resizable_container/resizable_button.styles.js +19 -6
  63. package/es/components/table/table_header_cell.js +10 -3
  64. package/es/components/table/table_header_cell_checkbox.js +5 -3
  65. package/es/components/table/table_row_cell.js +10 -3
  66. package/es/components/table/table_row_cell_checkbox.js +5 -3
  67. package/es/components/text/text.js +25 -9
  68. package/es/components/text/text_align.js +19 -6
  69. package/es/components/text/text_color.js +14 -11
  70. package/es/components/text/types.js +1 -0
  71. package/es/services/copy/index.js +10 -0
  72. package/es/services/copy/tabular_copy.js +103 -0
  73. package/es/services/index.js +1 -1
  74. package/eui.d.ts +692 -124
  75. package/i18ntokens.json +432 -396
  76. package/lib/components/basic_table/basic_table.js +42 -34
  77. package/lib/components/basic_table/collapsed_item_actions.js +23 -30
  78. package/lib/components/datagrid/body/cell/data_grid_cell.js +209 -91
  79. package/lib/components/datagrid/body/cell/data_grid_cell.styles.js +114 -0
  80. package/lib/components/datagrid/body/cell/data_grid_cell_actions.js +13 -3
  81. package/lib/components/datagrid/body/cell/data_grid_cell_actions.styles.js +38 -0
  82. package/lib/components/datagrid/body/cell/data_grid_cell_popover.js +20 -11
  83. package/lib/components/datagrid/body/cell/data_grid_cell_popover.styles.js +24 -0
  84. package/lib/components/datagrid/body/cell/focus_utils.js +17 -19
  85. package/lib/components/datagrid/body/data_grid_body.js +20 -4
  86. package/lib/components/datagrid/body/data_grid_body.styles.js +30 -0
  87. package/lib/components/datagrid/body/data_grid_body_custom.js +23 -8
  88. package/lib/components/datagrid/body/data_grid_body_virtualized.js +23 -8
  89. package/lib/components/datagrid/body/footer/data_grid_footer.styles.js +30 -0
  90. package/lib/components/datagrid/body/footer/data_grid_footer_row.js +23 -10
  91. package/lib/components/datagrid/body/header/column_actions.js +16 -4
  92. package/lib/components/datagrid/body/header/data_grid_column_resizer.js +14 -7
  93. package/lib/components/datagrid/body/header/data_grid_column_resizer.styles.js +39 -0
  94. package/lib/components/datagrid/body/header/data_grid_control_header_cell.js +6 -5
  95. package/lib/components/datagrid/body/header/data_grid_header_cell.js +49 -74
  96. package/lib/components/datagrid/body/header/data_grid_header_cell.styles.js +32 -0
  97. package/lib/components/datagrid/body/header/data_grid_header_cell_wrapper.js +8 -2
  98. package/lib/components/datagrid/body/header/data_grid_header_cell_wrapper.styles.js +32 -0
  99. package/lib/components/datagrid/body/header/data_grid_header_row.js +12 -2
  100. package/lib/components/datagrid/body/header/data_grid_header_row.styles.js +27 -0
  101. package/lib/components/datagrid/controls/column_selector.js +17 -8
  102. package/lib/components/datagrid/controls/column_selector.styles.js +28 -0
  103. package/lib/components/datagrid/controls/column_sorting.js +7 -2
  104. package/lib/components/datagrid/controls/column_sorting.styles.js +41 -0
  105. package/lib/components/datagrid/controls/column_sorting_draggable.js +19 -14
  106. package/lib/components/datagrid/controls/data_grid_toolbar.js +8 -1
  107. package/lib/components/datagrid/controls/data_grid_toolbar.styles.js +24 -0
  108. package/lib/components/datagrid/controls/data_grid_toolbar_control.js +27 -27
  109. package/lib/components/datagrid/controls/display_selector.js +13 -2
  110. package/lib/components/datagrid/controls/fullscreen_selector.js +7 -4
  111. package/lib/components/datagrid/controls/fullscreen_selector.styles.js +26 -0
  112. package/lib/components/datagrid/controls/keyboard_shortcuts.js +6 -2
  113. package/lib/components/datagrid/controls/keyboard_shortcuts.styles.js +24 -0
  114. package/lib/components/datagrid/data_grid.a11y.js +1 -0
  115. package/lib/components/datagrid/data_grid.js +16 -8
  116. package/lib/components/datagrid/data_grid.stories.utils.js +1426 -0
  117. package/lib/components/datagrid/data_grid.styles.js +94 -0
  118. package/lib/components/datagrid/{utils → pagination}/data_grid_pagination.js +30 -30
  119. package/lib/components/datagrid/pagination/data_grid_pagination.styles.js +22 -0
  120. package/lib/components/datagrid/pagination/index.js +18 -0
  121. package/lib/components/datagrid/utils/row_heights.js +11 -36
  122. package/lib/components/datagrid/utils/scrolling.js +14 -7
  123. package/lib/components/datagrid/utils/scrolling.styles.js +36 -0
  124. package/lib/components/date_picker/date_picker.js +1 -1
  125. package/lib/components/flyout/flyout_resizable.js +6 -2
  126. package/lib/components/flyout/flyout_resizable.styles.js +34 -5
  127. package/lib/components/popover/popover.js +1 -1
  128. package/lib/components/provider/provider.js +16 -13
  129. package/lib/components/provider/system_color_mode/index.js +12 -0
  130. package/lib/components/provider/system_color_mode/system_color_mode_provider.js +54 -0
  131. package/lib/components/resizable_container/resizable_button.js +9 -2
  132. package/lib/components/resizable_container/resizable_button.styles.js +19 -6
  133. package/lib/components/table/table_header_cell.js +10 -3
  134. package/lib/components/table/table_header_cell_checkbox.js +5 -3
  135. package/lib/components/table/table_row_cell.js +10 -3
  136. package/lib/components/table/table_row_cell_checkbox.js +5 -3
  137. package/lib/components/text/text.js +25 -9
  138. package/lib/components/text/text_align.js +19 -6
  139. package/lib/components/text/text_color.js +14 -11
  140. package/lib/components/text/types.js +5 -0
  141. package/lib/services/copy/index.js +25 -0
  142. package/lib/services/copy/tabular_copy.js +111 -0
  143. package/lib/services/index.js +12 -8
  144. package/optimize/es/components/basic_table/basic_table.js +43 -35
  145. package/optimize/es/components/basic_table/collapsed_item_actions.js +24 -31
  146. package/optimize/es/components/datagrid/body/cell/data_grid_cell.js +98 -88
  147. package/optimize/es/components/datagrid/body/cell/data_grid_cell.styles.js +110 -0
  148. package/optimize/es/components/datagrid/body/cell/data_grid_cell_actions.js +13 -3
  149. package/optimize/es/components/datagrid/body/cell/data_grid_cell_actions.styles.js +33 -0
  150. package/optimize/es/components/datagrid/body/cell/data_grid_cell_popover.js +21 -12
  151. package/optimize/es/components/datagrid/body/cell/data_grid_cell_popover.styles.js +19 -0
  152. package/optimize/es/components/datagrid/body/cell/focus_utils.js +18 -20
  153. package/optimize/es/components/datagrid/body/data_grid_body.js +9 -2
  154. package/optimize/es/components/datagrid/body/data_grid_body.styles.js +26 -0
  155. package/optimize/es/components/datagrid/body/data_grid_body_custom.js +12 -6
  156. package/optimize/es/components/datagrid/body/data_grid_body_virtualized.js +12 -6
  157. package/optimize/es/components/datagrid/body/footer/data_grid_footer.styles.js +24 -0
  158. package/optimize/es/components/datagrid/body/footer/data_grid_footer_row.js +24 -11
  159. package/optimize/es/components/datagrid/body/header/column_actions.js +16 -4
  160. package/optimize/es/components/datagrid/body/header/data_grid_column_resizer.js +14 -7
  161. package/optimize/es/components/datagrid/body/header/data_grid_column_resizer.styles.js +36 -0
  162. package/optimize/es/components/datagrid/body/header/data_grid_control_header_cell.js +5 -5
  163. package/optimize/es/components/datagrid/body/header/data_grid_header_cell.js +42 -61
  164. package/optimize/es/components/datagrid/body/header/data_grid_header_cell.styles.js +27 -0
  165. package/optimize/es/components/datagrid/body/header/data_grid_header_cell_wrapper.js +8 -3
  166. package/optimize/es/components/datagrid/body/header/data_grid_header_cell_wrapper.styles.js +27 -0
  167. package/optimize/es/components/datagrid/body/header/data_grid_header_row.js +12 -2
  168. package/optimize/es/components/datagrid/body/header/data_grid_header_row.styles.js +21 -0
  169. package/optimize/es/components/datagrid/controls/column_selector.js +17 -8
  170. package/optimize/es/components/datagrid/controls/column_selector.styles.js +22 -0
  171. package/optimize/es/components/datagrid/controls/column_sorting.js +7 -2
  172. package/optimize/es/components/datagrid/controls/column_sorting.styles.js +35 -0
  173. package/optimize/es/components/datagrid/controls/column_sorting_draggable.js +19 -14
  174. package/optimize/es/components/datagrid/controls/data_grid_toolbar.js +8 -1
  175. package/optimize/es/components/datagrid/controls/data_grid_toolbar.styles.js +18 -0
  176. package/optimize/es/components/datagrid/controls/data_grid_toolbar_control.js +27 -27
  177. package/optimize/es/components/datagrid/controls/display_selector.js +14 -3
  178. package/optimize/es/components/datagrid/controls/fullscreen_selector.js +8 -5
  179. package/optimize/es/components/datagrid/controls/fullscreen_selector.styles.js +20 -0
  180. package/optimize/es/components/datagrid/controls/keyboard_shortcuts.js +7 -3
  181. package/optimize/es/components/datagrid/controls/keyboard_shortcuts.styles.js +18 -0
  182. package/optimize/es/components/datagrid/data_grid.a11y.js +1 -0
  183. package/optimize/es/components/datagrid/data_grid.js +17 -9
  184. package/optimize/es/components/datagrid/data_grid.stories.utils.js +369 -0
  185. package/optimize/es/components/datagrid/data_grid.styles.js +88 -0
  186. package/optimize/es/components/datagrid/{utils → pagination}/data_grid_pagination.js +30 -30
  187. package/optimize/es/components/datagrid/pagination/data_grid_pagination.styles.js +16 -0
  188. package/optimize/es/components/datagrid/pagination/index.js +9 -0
  189. package/optimize/es/components/datagrid/utils/row_heights.js +10 -36
  190. package/optimize/es/components/datagrid/utils/scrolling.js +14 -7
  191. package/optimize/es/components/datagrid/utils/scrolling.styles.js +30 -0
  192. package/optimize/es/components/date_picker/date_picker.js +1 -1
  193. package/optimize/es/components/flyout/flyout_resizable.js +6 -2
  194. package/optimize/es/components/flyout/flyout_resizable.styles.js +34 -5
  195. package/optimize/es/components/popover/popover.js +1 -1
  196. package/optimize/es/components/provider/provider.js +16 -13
  197. package/optimize/es/components/provider/system_color_mode/index.js +9 -0
  198. package/optimize/es/components/provider/system_color_mode/system_color_mode_provider.js +40 -0
  199. package/optimize/es/components/resizable_container/resizable_button.js +3 -2
  200. package/optimize/es/components/resizable_container/resizable_button.styles.js +19 -6
  201. package/optimize/es/components/table/table_header_cell.js +3 -2
  202. package/optimize/es/components/table/table_header_cell_checkbox.js +3 -2
  203. package/optimize/es/components/table/table_row_cell.js +4 -3
  204. package/optimize/es/components/table/table_row_cell_checkbox.js +3 -2
  205. package/optimize/es/components/text/text.js +9 -4
  206. package/optimize/es/components/text/text_align.js +4 -2
  207. package/optimize/es/components/text/text_color.js +1 -2
  208. package/optimize/es/components/text/types.js +1 -0
  209. package/optimize/es/services/copy/index.js +10 -0
  210. package/optimize/es/services/copy/tabular_copy.js +103 -0
  211. package/optimize/es/services/index.js +1 -1
  212. package/optimize/lib/components/basic_table/basic_table.js +42 -34
  213. package/optimize/lib/components/basic_table/collapsed_item_actions.js +23 -30
  214. package/optimize/lib/components/datagrid/body/cell/data_grid_cell.js +95 -85
  215. package/optimize/lib/components/datagrid/body/cell/data_grid_cell.styles.js +114 -0
  216. package/optimize/lib/components/datagrid/body/cell/data_grid_cell_actions.js +13 -3
  217. package/optimize/lib/components/datagrid/body/cell/data_grid_cell_actions.styles.js +39 -0
  218. package/optimize/lib/components/datagrid/body/cell/data_grid_cell_popover.js +20 -11
  219. package/optimize/lib/components/datagrid/body/cell/data_grid_cell_popover.styles.js +25 -0
  220. package/optimize/lib/components/datagrid/body/cell/focus_utils.js +17 -19
  221. package/optimize/lib/components/datagrid/body/data_grid_body.js +9 -2
  222. package/optimize/lib/components/datagrid/body/data_grid_body.styles.js +30 -0
  223. package/optimize/lib/components/datagrid/body/data_grid_body_custom.js +12 -6
  224. package/optimize/lib/components/datagrid/body/data_grid_body_virtualized.js +12 -6
  225. package/optimize/lib/components/datagrid/body/footer/data_grid_footer.styles.js +30 -0
  226. package/optimize/lib/components/datagrid/body/footer/data_grid_footer_row.js +22 -9
  227. package/optimize/lib/components/datagrid/body/header/column_actions.js +16 -4
  228. package/optimize/lib/components/datagrid/body/header/data_grid_column_resizer.js +14 -7
  229. package/optimize/lib/components/datagrid/body/header/data_grid_column_resizer.styles.js +39 -0
  230. package/optimize/lib/components/datagrid/body/header/data_grid_control_header_cell.js +5 -5
  231. package/optimize/lib/components/datagrid/body/header/data_grid_header_cell.js +45 -63
  232. package/optimize/lib/components/datagrid/body/header/data_grid_header_cell.styles.js +32 -0
  233. package/optimize/lib/components/datagrid/body/header/data_grid_header_cell_wrapper.js +7 -2
  234. package/optimize/lib/components/datagrid/body/header/data_grid_header_cell_wrapper.styles.js +32 -0
  235. package/optimize/lib/components/datagrid/body/header/data_grid_header_row.js +12 -2
  236. package/optimize/lib/components/datagrid/body/header/data_grid_header_row.styles.js +27 -0
  237. package/optimize/lib/components/datagrid/controls/column_selector.js +17 -8
  238. package/optimize/lib/components/datagrid/controls/column_selector.styles.js +28 -0
  239. package/optimize/lib/components/datagrid/controls/column_sorting.js +7 -2
  240. package/optimize/lib/components/datagrid/controls/column_sorting.styles.js +41 -0
  241. package/optimize/lib/components/datagrid/controls/column_sorting_draggable.js +19 -14
  242. package/optimize/lib/components/datagrid/controls/data_grid_toolbar.js +8 -1
  243. package/optimize/lib/components/datagrid/controls/data_grid_toolbar.styles.js +24 -0
  244. package/optimize/lib/components/datagrid/controls/data_grid_toolbar_control.js +27 -27
  245. package/optimize/lib/components/datagrid/controls/display_selector.js +13 -2
  246. package/optimize/lib/components/datagrid/controls/fullscreen_selector.js +7 -4
  247. package/optimize/lib/components/datagrid/controls/fullscreen_selector.styles.js +26 -0
  248. package/optimize/lib/components/datagrid/controls/keyboard_shortcuts.js +6 -2
  249. package/optimize/lib/components/datagrid/controls/keyboard_shortcuts.styles.js +24 -0
  250. package/optimize/lib/components/datagrid/data_grid.a11y.js +1 -0
  251. package/optimize/lib/components/datagrid/data_grid.js +16 -8
  252. package/optimize/lib/components/datagrid/data_grid.stories.utils.js +374 -0
  253. package/optimize/lib/components/datagrid/data_grid.styles.js +94 -0
  254. package/{test-env/components/datagrid/utils → optimize/lib/components/datagrid/pagination}/data_grid_pagination.js +29 -31
  255. package/optimize/lib/components/datagrid/pagination/data_grid_pagination.styles.js +22 -0
  256. package/optimize/lib/components/datagrid/pagination/index.js +18 -0
  257. package/optimize/lib/components/datagrid/utils/row_heights.js +11 -36
  258. package/optimize/lib/components/datagrid/utils/scrolling.js +14 -7
  259. package/optimize/lib/components/datagrid/utils/scrolling.styles.js +36 -0
  260. package/optimize/lib/components/date_picker/date_picker.js +1 -1
  261. package/optimize/lib/components/flyout/flyout_resizable.js +6 -2
  262. package/optimize/lib/components/flyout/flyout_resizable.styles.js +34 -5
  263. package/optimize/lib/components/popover/popover.js +1 -1
  264. package/optimize/lib/components/provider/provider.js +16 -13
  265. package/optimize/lib/components/provider/system_color_mode/index.js +12 -0
  266. package/optimize/lib/components/provider/system_color_mode/system_color_mode_provider.js +47 -0
  267. package/optimize/lib/components/resizable_container/resizable_button.js +3 -2
  268. package/optimize/lib/components/resizable_container/resizable_button.styles.js +19 -6
  269. package/optimize/lib/components/table/table_header_cell.js +3 -2
  270. package/optimize/lib/components/table/table_header_cell_checkbox.js +3 -2
  271. package/optimize/lib/components/table/table_row_cell.js +4 -3
  272. package/optimize/lib/components/table/table_row_cell_checkbox.js +3 -2
  273. package/optimize/lib/components/text/text.js +9 -4
  274. package/optimize/lib/components/text/text_align.js +4 -2
  275. package/optimize/lib/components/text/text_color.js +1 -2
  276. package/optimize/lib/components/text/types.js +5 -0
  277. package/optimize/lib/services/copy/index.js +25 -0
  278. package/optimize/lib/services/copy/tabular_copy.js +111 -0
  279. package/optimize/lib/services/index.js +12 -8
  280. package/package.json +3 -3
  281. package/src/themes/amsterdam/theme_dark.scss +0 -7
  282. package/src/themes/amsterdam/theme_light.scss +0 -7
  283. package/test-env/components/basic_table/basic_table.js +42 -34
  284. package/test-env/components/basic_table/collapsed_item_actions.js +23 -30
  285. package/test-env/components/datagrid/body/cell/data_grid_cell.js +204 -91
  286. package/test-env/components/datagrid/body/cell/data_grid_cell.styles.js +114 -0
  287. package/test-env/components/datagrid/body/cell/data_grid_cell_actions.js +13 -3
  288. package/test-env/components/datagrid/body/cell/data_grid_cell_actions.styles.js +39 -0
  289. package/test-env/components/datagrid/body/cell/data_grid_cell_popover.js +20 -11
  290. package/test-env/components/datagrid/body/cell/data_grid_cell_popover.styles.js +25 -0
  291. package/test-env/components/datagrid/body/cell/focus_utils.js +17 -19
  292. package/test-env/components/datagrid/body/data_grid_body.js +20 -4
  293. package/test-env/components/datagrid/body/data_grid_body.styles.js +30 -0
  294. package/test-env/components/datagrid/body/data_grid_body_custom.js +23 -8
  295. package/test-env/components/datagrid/body/data_grid_body_virtualized.js +23 -8
  296. package/test-env/components/datagrid/body/footer/data_grid_footer.styles.js +30 -0
  297. package/test-env/components/datagrid/body/footer/data_grid_footer_row.js +22 -9
  298. package/test-env/components/datagrid/body/header/column_actions.js +16 -4
  299. package/test-env/components/datagrid/body/header/data_grid_column_resizer.js +14 -7
  300. package/test-env/components/datagrid/body/header/data_grid_column_resizer.styles.js +39 -0
  301. package/test-env/components/datagrid/body/header/data_grid_control_header_cell.js +6 -5
  302. package/test-env/components/datagrid/body/header/data_grid_header_cell.js +45 -67
  303. package/test-env/components/datagrid/body/header/data_grid_header_cell.styles.js +32 -0
  304. package/test-env/components/datagrid/body/header/data_grid_header_cell_wrapper.js +8 -2
  305. package/test-env/components/datagrid/body/header/data_grid_header_cell_wrapper.styles.js +32 -0
  306. package/test-env/components/datagrid/body/header/data_grid_header_row.js +12 -2
  307. package/test-env/components/datagrid/body/header/data_grid_header_row.styles.js +27 -0
  308. package/test-env/components/datagrid/controls/column_selector.js +17 -8
  309. package/test-env/components/datagrid/controls/column_selector.styles.js +28 -0
  310. package/test-env/components/datagrid/controls/column_sorting.js +7 -2
  311. package/test-env/components/datagrid/controls/column_sorting.styles.js +41 -0
  312. package/test-env/components/datagrid/controls/column_sorting_draggable.js +19 -14
  313. package/test-env/components/datagrid/controls/data_grid_toolbar.js +8 -1
  314. package/test-env/components/datagrid/controls/data_grid_toolbar.styles.js +24 -0
  315. package/test-env/components/datagrid/controls/data_grid_toolbar_control.js +27 -27
  316. package/test-env/components/datagrid/controls/display_selector.js +13 -2
  317. package/test-env/components/datagrid/controls/fullscreen_selector.js +7 -4
  318. package/test-env/components/datagrid/controls/fullscreen_selector.styles.js +26 -0
  319. package/test-env/components/datagrid/controls/keyboard_shortcuts.js +6 -2
  320. package/test-env/components/datagrid/controls/keyboard_shortcuts.styles.js +24 -0
  321. package/test-env/components/datagrid/data_grid.a11y.js +1 -0
  322. package/test-env/components/datagrid/data_grid.js +16 -8
  323. package/test-env/components/datagrid/data_grid.stories.utils.js +1419 -0
  324. package/test-env/components/datagrid/data_grid.styles.js +94 -0
  325. package/{optimize/lib/components/datagrid/utils → test-env/components/datagrid/pagination}/data_grid_pagination.js +29 -31
  326. package/test-env/components/datagrid/pagination/data_grid_pagination.styles.js +22 -0
  327. package/test-env/components/datagrid/pagination/index.js +18 -0
  328. package/test-env/components/datagrid/utils/row_heights.js +11 -36
  329. package/test-env/components/datagrid/utils/scrolling.js +14 -7
  330. package/test-env/components/datagrid/utils/scrolling.styles.js +36 -0
  331. package/test-env/components/date_picker/date_picker.js +1 -1
  332. package/test-env/components/flyout/flyout_resizable.js +6 -2
  333. package/test-env/components/flyout/flyout_resizable.styles.js +34 -5
  334. package/test-env/components/popover/popover.js +1 -1
  335. package/test-env/components/provider/provider.js +16 -13
  336. package/test-env/components/provider/system_color_mode/index.js +12 -0
  337. package/test-env/components/provider/system_color_mode/system_color_mode_provider.js +51 -0
  338. package/test-env/components/resizable_container/resizable_button.js +9 -2
  339. package/test-env/components/resizable_container/resizable_button.styles.js +19 -6
  340. package/test-env/components/table/table_header_cell.js +10 -3
  341. package/test-env/components/table/table_header_cell_checkbox.js +5 -3
  342. package/test-env/components/table/table_row_cell.js +10 -3
  343. package/test-env/components/table/table_row_cell_checkbox.js +5 -3
  344. package/test-env/components/text/text.js +25 -9
  345. package/test-env/components/text/text_align.js +19 -6
  346. package/test-env/components/text/text_color.js +14 -11
  347. package/test-env/components/text/types.js +5 -0
  348. package/test-env/services/copy/index.js +25 -0
  349. package/test-env/services/copy/tabular_copy.js +30 -0
  350. package/test-env/services/index.js +12 -8
  351. package/src/components/datagrid/_data_grid.scss +0 -121
  352. package/src/components/datagrid/_data_grid_data_row.scss +0 -303
  353. package/src/components/datagrid/_index.scss +0 -12
  354. package/src/components/datagrid/_mixins.scss +0 -84
  355. package/src/components/datagrid/_variables.scss +0 -11
  356. package/src/components/datagrid/body/footer/_data_grid_footer_row.scss +0 -47
  357. package/src/components/datagrid/body/header/_data_grid_column_resizer.scss +0 -48
  358. package/src/components/datagrid/body/header/_data_grid_header_row.scss +0 -221
  359. package/src/components/datagrid/controls/_data_grid_column_selector.scss +0 -19
  360. package/src/components/datagrid/controls/_data_grid_column_sorting.scss +0 -43
  361. package/src/components/datagrid/controls/_data_grid_display.scss +0 -3
  362. package/src/components/datagrid/controls/_data_grid_keyboard_shortcuts.scss +0 -11
  363. package/src/components/datagrid/controls/_data_grid_toolbar.scss +0 -55
  364. package/src/components/index.scss +0 -3
  365. package/src/themes/amsterdam/overrides/_data_grid.scss +0 -5
  366. package/src/themes/amsterdam/overrides/_index.scss +0 -1
  367. /package/es/services/{copy_to_clipboard.js → copy/copy_to_clipboard.js} +0 -0
  368. /package/lib/services/{copy_to_clipboard.js → copy/copy_to_clipboard.js} +0 -0
  369. /package/optimize/es/services/{copy_to_clipboard.js → copy/copy_to_clipboard.js} +0 -0
  370. /package/optimize/lib/services/{copy_to_clipboard.js → copy/copy_to_clipboard.js} +0 -0
  371. /package/test-env/services/{copy_to_clipboard.js → copy/copy_to_clipboard.js} +0 -0
@@ -0,0 +1,88 @@
1
+ /*
2
+ * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
3
+ * or more contributor license agreements. Licensed under the Elastic License
4
+ * 2.0 and the Server Side Public License, v 1; you may not use this file except
5
+ * in compliance with, at your election, the Elastic License 2.0 or the Server
6
+ * Side Public License, v 1.
7
+ */
8
+
9
+ import { css } from '@emotion/react';
10
+ import { tintOrShade } from '../../services';
11
+ import { euiFontSize, logicalCSS, logicalSizeCSS, mathWithUnits } from '../../global_styling';
12
+ export var euiDataGridVariables = function euiDataGridVariables(euiThemeContext) {
13
+ var euiTheme = euiThemeContext.euiTheme;
14
+ return {
15
+ cellPadding: {
16
+ s: euiTheme.size.xs,
17
+ m: mathWithUnits(euiTheme.size.m, function (x) {
18
+ return x / 2;
19
+ }),
20
+ l: euiTheme.size.s
21
+ },
22
+ lineHeight: {
23
+ s: euiFontSize(euiThemeContext, 'xs').lineHeight,
24
+ m: euiFontSize(euiThemeContext, 'm').lineHeight
25
+ },
26
+ fontSize: {
27
+ s: euiFontSize(euiThemeContext, 'xs').fontSize,
28
+ m: euiFontSize(euiThemeContext, 's').fontSize
29
+ },
30
+ levels: {
31
+ cellPopover: Number(euiTheme.levels.header),
32
+ // Same z-index as EuiFlyout mask overlays - cell popovers should be under both modal and flyout overlays
33
+ get stickyHeader() {
34
+ return this.cellPopover - 1; // Needs to sit above the content + cell focus outlines/actions, but below actual popovers
35
+ }
36
+ }
37
+ };
38
+ };
39
+ export var euiDataGridStyles = function euiDataGridStyles(euiThemeContext) {
40
+ var euiTheme = euiThemeContext.euiTheme,
41
+ colorMode = euiThemeContext.colorMode;
42
+ var _euiDataGridVariables = euiDataGridVariables(euiThemeContext),
43
+ _cellPadding = _euiDataGridVariables.cellPadding,
44
+ lineHeight = _euiDataGridVariables.lineHeight,
45
+ _fontSize = _euiDataGridVariables.fontSize;
46
+ return {
47
+ euiDataGrid: /*#__PURE__*/css("display:flex;flex-direction:column;align-items:stretch;", logicalCSS('height', '100%'), " overflow:hidden;*:where(& .euiDataGridRow){background-color:", euiTheme.colors.emptyShade, ";}*:where(&.euiDataGrid--stripes .euiDataGridRow--striped){background-color:", euiTheme.colors.lightestShade, ";}*:where(&.euiDataGrid--rowHoverHighlight .euiDataGridRow:hover){background-color:", euiTheme.colors.highlight, ";};label:euiDataGrid;"),
48
+ cellPadding: {
49
+ cellPadding: function cellPadding(size) {
50
+ return /*#__PURE__*/css(".euiDataGridHeaderCell,.euiDataGridRowCell__content{padding:", _cellPadding[size], ";}/* Workaround to trim line-clamp and padding - @see https://github.com/elastic/eui/issues/7780 */.euiDataGridRowCell__content--lineCountHeight{", logicalCSS('padding-bottom', 0), " ", logicalCSS('border-bottom', "".concat(_cellPadding[size], " solid transparent")), ";}.euiDataGridHeaderCell__button{margin-block:-", _cellPadding[size], ";};label:cellPadding;");
51
+ },
52
+ get s() {
53
+ return /*#__PURE__*/css(this.cellPadding('s'), ";label:s;");
54
+ },
55
+ get m() {
56
+ return /*#__PURE__*/css(this.cellPadding('m'), ";label:m;");
57
+ },
58
+ get l() {
59
+ return /*#__PURE__*/css(this.cellPadding('l'), ";label:l;");
60
+ }
61
+ },
62
+ fontSize: {
63
+ fontSize: function fontSize(size) {
64
+ return /*#__PURE__*/css(".euiDataGridHeaderCell,.euiDataGridRowCell{font-size:", _fontSize[size], ";line-height:", lineHeight[size], ";};label:fontSize;");
65
+ },
66
+ get s() {
67
+ return /*#__PURE__*/css(this.fontSize('s'), ";label:s;");
68
+ },
69
+ get m() {
70
+ return /*#__PURE__*/css(this.fontSize('m'), ";label:m;");
71
+ },
72
+ get l() {
73
+ // On the Amsterdam theme, the l fontSize is the same as m
74
+ return /*#__PURE__*/css(this.fontSize('m'), ";label:l;");
75
+ }
76
+ },
77
+ borders: {
78
+ none: null,
79
+ horizontal: /*#__PURE__*/css("label:borders;.euiDataGridRowCell:not(.euiDataGridFooterCell),.euiDataGridFooter,&:not(.euiDataGrid--headerUnderline) .euiDataGridHeader{", logicalCSS('border-bottom', euiTheme.border.thin), ";}&:not(.euiDataGrid--footerOverline) .euiDataGridFooter{", logicalCSS('border-top', euiTheme.border.thin), " ", logicalCSS('margin-top', "-".concat(euiTheme.border.width.thin)), ";}.euiDataGridHeader{", logicalCSS('border-top', euiTheme.border.thin), ";};label:horizontal;"),
80
+ all: /*#__PURE__*/css("label:borders;.euiDataGridRowCell{&:not(.euiDataGridFooterCell){", logicalCSS('border-bottom', euiTheme.border.thin), " ", logicalCSS('border-right', // Visually lighten vertical borders
81
+ "".concat(euiTheme.border.width.thin, " solid ").concat(tintOrShade(euiTheme.border.color, 0.3, colorMode))), ";}&--firstColumn{", logicalCSS('border-left', euiTheme.border.thin), ";}&--lastColumn{", logicalCSS('border-right-color', euiTheme.border.color), ";}}.euiDataGridFooterCell,.euiDataGridHeaderCell{", logicalCSS('border-right', euiTheme.border.thin), " &:first-of-type{", logicalCSS('border-left', euiTheme.border.thin), ";}}.euiDataGridFooter{", logicalCSS('border-bottom', euiTheme.border.thin), ";}&:not(.euiDataGrid--footerOverline) .euiDataGridFooter{", logicalCSS('border-top', euiTheme.border.thin), " ", logicalCSS('margin-top', "-".concat(euiTheme.border.width.thin)), ";}&:not(.euiDataGrid--headerUnderline) .euiDataGridHeader{", logicalCSS('border-bottom', euiTheme.border.thin), ";}&:is(.euiDataGrid--noControls) .euiDataGridHeader{", logicalCSS('border-top', euiTheme.border.thin), ";}.euiDataGrid__controls{border:", euiTheme.border.thin, ";background-color:", euiTheme.colors.body, ";};label:all;")
82
+ },
83
+ // Sits below the controls above it and pagination below it
84
+ euiDataGrid__content: /*#__PURE__*/css("z-index:1;position:relative;flex-grow:1;", logicalSizeCSS('100%'), " ", logicalCSS('max-width', '100%'), " overflow:hidden;background-color:", euiTheme.colors.body, ";font-feature-settings:'tnum' 1;;label:euiDataGrid__content;"),
85
+ // Wrapper around EuiDataGrid
86
+ euiDataGrid__focusWrap: /*#__PURE__*/css(logicalCSS('height', '100%'), ";;label:euiDataGrid__focusWrap;")
87
+ };
88
+ };
@@ -13,22 +13,35 @@ function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length)
13
13
  */
14
14
 
15
15
  import React, { useCallback, useContext } from 'react';
16
- import { useEuiI18n } from '../../i18n'; // Note: this file must be named data_grid_pagination to match i18n tokens
17
- import { EuiTablePagination, useEuiTablePaginationDefaults } from '../../table/table_pagination';
18
- import { DataGridFocusContext } from './focus';
16
+ import { useEuiMemoizedStyles } from '../../../services';
17
+ import { useEuiI18n } from '../../i18n';
18
+ import { EuiTablePagination } from '../../table/table_pagination';
19
+ import { DataGridFocusContext } from '../utils/focus';
20
+ import { euiDataGridPaginationStyles } from './data_grid_pagination.styles';
19
21
  import { jsx as ___EmotionJSX } from "@emotion/react";
20
- export var EuiDataGridPaginationRenderer = function EuiDataGridPaginationRenderer(_ref) {
21
- var pageIndex = _ref.pageIndex,
22
- _pageSize = _ref.pageSize,
23
- _pageSizeOptions = _ref.pageSizeOptions,
24
- _onChangePage = _ref.onChangePage,
25
- onChangeItemsPerPage = _ref.onChangeItemsPerPage,
26
- rowCount = _ref.rowCount,
27
- controls = _ref.controls,
28
- ariaLabel = _ref['aria-label'];
29
- var defaults = useEuiTablePaginationDefaults();
30
- var pageSize = _pageSize !== null && _pageSize !== void 0 ? _pageSize : defaults.itemsPerPage;
31
- var pageSizeOptions = _pageSizeOptions !== null && _pageSizeOptions !== void 0 ? _pageSizeOptions : defaults.itemsPerPageOptions;
22
+ /**
23
+ * Do not render the pagination when:
24
+ * 1. Rows count is less than min pagination option (rows per page)
25
+ * 2. Rows count is less than pageSize (the case when there are no pageSizeOptions provided)
26
+ */
27
+ export var shouldRenderPagination = function shouldRenderPagination(rowCount, _ref) {
28
+ var pageSize = _ref.pageSize,
29
+ pageSizeOptions = _ref.pageSizeOptions;
30
+ var minSizeOption = _toConsumableArray(pageSizeOptions).sort(function (a, b) {
31
+ return a - b;
32
+ })[0];
33
+ return !(rowCount < (minSizeOption || pageSize));
34
+ };
35
+ export var EuiDataGridPagination = function EuiDataGridPagination(_ref2) {
36
+ var pageIndex = _ref2.pageIndex,
37
+ pageSize = _ref2.pageSize,
38
+ pageSizeOptions = _ref2.pageSizeOptions,
39
+ _onChangePage = _ref2.onChangePage,
40
+ onChangeItemsPerPage = _ref2.onChangeItemsPerPage,
41
+ rowCount = _ref2.rowCount,
42
+ controls = _ref2.controls,
43
+ ariaLabel = _ref2['aria-label'];
44
+ var styles = useEuiMemoizedStyles(euiDataGridPaginationStyles);
32
45
  var detailedPaginationLabel = useEuiI18n('euiDataGridPagination.detailedPaginationLabel', 'Pagination for preceding grid: {label}', {
33
46
  label: ariaLabel !== null && ariaLabel !== void 0 ? ariaLabel : ''
34
47
  });
@@ -42,28 +55,15 @@ export var EuiDataGridPaginationRenderer = function EuiDataGridPaginationRendere
42
55
  setFocusedCell([0, 0]);
43
56
  }, [setFocusedCell, _onChangePage]);
44
57
  var pageCount = pageSize ? Math.ceil(rowCount / pageSize) : 1;
45
- var minSizeOption = _toConsumableArray(pageSizeOptions).sort(function (a, b) {
46
- return a - b;
47
- })[0];
48
- if (rowCount < (minSizeOption || pageSize)) {
49
- /**
50
- * Do not render the pagination when:
51
- * 1. Rows count is less than min pagination option (rows per page)
52
- * 2. Rows count is less than pageSize (the case when there are no pageSizeOptions provided)
53
- */
54
- return null;
55
- }
56
-
57
- // Hide select rows per page if pageSizeOptions is an empty array
58
- var hidePerPageOptions = pageSizeOptions.length === 0;
59
58
  return ___EmotionJSX("div", {
59
+ css: styles.euiDataGrid__pagination,
60
60
  className: "euiDataGrid__pagination"
61
61
  }, ___EmotionJSX(EuiTablePagination, {
62
62
  "aria-controls": controls,
63
63
  activePage: pageIndex,
64
- showPerPageOptions: !hidePerPageOptions,
65
64
  itemsPerPage: pageSize,
66
65
  itemsPerPageOptions: pageSizeOptions,
66
+ showPerPageOptions: pageSizeOptions.length > 0,
67
67
  pageCount: pageCount,
68
68
  onChangePage: onChangePage,
69
69
  onChangeItemsPerPage: onChangeItemsPerPage,
@@ -0,0 +1,16 @@
1
+ /*
2
+ * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
3
+ * or more contributor license agreements. Licensed under the Elastic License
4
+ * 2.0 and the Server Side Public License, v 1; you may not use this file except
5
+ * in compliance with, at your election, the Elastic License 2.0 or the Server
6
+ * Side Public License, v 1.
7
+ */
8
+
9
+ import { css } from '@emotion/react';
10
+ import { logicalCSS } from '../../../global_styling';
11
+ export var euiDataGridPaginationStyles = function euiDataGridPaginationStyles(_ref) {
12
+ var euiTheme = _ref.euiTheme;
13
+ return {
14
+ euiDataGrid__pagination: /*#__PURE__*/css("z-index:2;flex-grow:0;", logicalCSS('padding-top', euiTheme.size.xs), " .euiDataGrid--fullScreen &{", logicalCSS('padding-bottom', euiTheme.size.xs), " background-color:", euiTheme.colors.lightestShade, ";box-shadow:", euiTheme.border.width.thin, " 0 0 ", euiTheme.border.width.thin, " ", euiTheme.border.color, ";};label:euiDataGrid__pagination;")
15
+ };
16
+ };
@@ -0,0 +1,9 @@
1
+ /*
2
+ * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
3
+ * or more contributor license agreements. Licensed under the Elastic License
4
+ * 2.0 and the Server Side Public License, v 1; you may not use this file except
5
+ * in compliance with, at your election, the Elastic License 2.0 or the Server
6
+ * Side Public License, v 1.
7
+ */
8
+
9
+ export { shouldRenderPagination, EuiDataGridPagination } from './data_grid_pagination';
@@ -32,26 +32,12 @@ import { useCallback, useContext, useEffect, useMemo, useState } from 'react';
32
32
  import { useForceRender, useLatest } from '../../../services';
33
33
  import { isNumber, isObject } from '../../../services/predicate';
34
34
  import { DataGridSortedContext } from './sorting';
35
-
36
- // TODO: Once JS variables are available, use them here instead of hard-coded maps
37
- export var cellPaddingsMap = {
38
- s: 4,
39
- m: 6,
40
- l: 8
41
- };
42
- export var AUTO_HEIGHT = 'auto';
43
- export var DEFAULT_ROW_HEIGHT = 34;
35
+ var AUTO_HEIGHT = 'auto';
36
+ var DEFAULT_ROW_HEIGHT = 34;
44
37
  export var RowHeightUtils = /*#__PURE__*/function () {
45
38
  function RowHeightUtils() {
46
39
  var _this = this;
47
40
  _classCallCheck(this, RowHeightUtils);
48
- /**
49
- * Styles utils
50
- */
51
- _defineProperty(this, "styles", {
52
- paddingTop: 0,
53
- paddingBottom: 0
54
- });
55
41
  /**
56
42
  * Height types
57
43
  */
@@ -62,8 +48,9 @@ export var RowHeightUtils = /*#__PURE__*/function () {
62
48
  if (option === AUTO_HEIGHT) {
63
49
  return 'auto';
64
50
  }
65
- if (_this.getLineCount(option) != null) {
66
- return 'lineCount';
51
+ var lineCount = _this.getLineCount(option);
52
+ if (lineCount != null) {
53
+ return lineCount > 1 ? 'lineCount' : 'default';
67
54
  }
68
55
  return 'numerical';
69
56
  });
@@ -106,14 +93,6 @@ export var RowHeightUtils = /*#__PURE__*/function () {
106
93
  }
107
94
  return defaultHeight;
108
95
  }
109
- }, {
110
- key: "cacheStyles",
111
- value: function cacheStyles(gridStyles) {
112
- this.styles = {
113
- paddingTop: cellPaddingsMap[gridStyles.cellPadding || 'm'],
114
- paddingBottom: cellPaddingsMap[gridStyles.cellPadding || 'm']
115
- };
116
- }
117
96
  }, {
118
97
  key: "getLineCount",
119
98
  value:
@@ -126,11 +105,14 @@ export var RowHeightUtils = /*#__PURE__*/function () {
126
105
  }
127
106
  }, {
128
107
  key: "calculateHeightForLineCount",
129
- value: function calculateHeightForLineCount(cellRef, lineCount, excludePadding) {
108
+ value: function calculateHeightForLineCount(cellRef, lineCount) {
130
109
  var computedStyles = window.getComputedStyle(cellRef, null);
131
110
  var lineHeight = parseInt(computedStyles.lineHeight, 10);
132
111
  var contentHeight = Math.ceil(lineCount * lineHeight);
133
- return excludePadding ? contentHeight : contentHeight + this.styles.paddingTop + this.styles.paddingBottom;
112
+ var padding = parseInt(computedStyles.paddingTop, 10);
113
+
114
+ // Assumes both padding-top and bottom are the same
115
+ return contentHeight + padding * 2;
134
116
  }
135
117
 
136
118
  /**
@@ -288,7 +270,6 @@ export var RowHeightVirtualizationUtils = /*#__PURE__*/function (_RowHeightUtils
288
270
  export var useRowHeightUtils = function useRowHeightUtils(_ref2) {
289
271
  var virtualization = _ref2.virtualization,
290
272
  rowHeightsOptions = _ref2.rowHeightsOptions,
291
- gridStyles = _ref2.gridStyles,
292
273
  columns = _ref2.columns;
293
274
  var forceRenderRef = useLatest(useForceRender());
294
275
  var _useState = useState(function () {
@@ -316,13 +297,6 @@ export var useRowHeightUtils = function useRowHeightUtils(_ref2) {
316
297
  // Dependencies
317
298
  rowHeightUtils, forceRenderRef]);
318
299
 
319
- // Re-cache styles whenever grid density changes
320
- useEffect(function () {
321
- rowHeightUtils.cacheStyles({
322
- cellPadding: gridStyles.cellPadding
323
- });
324
- }, [gridStyles.cellPadding, rowHeightUtils]);
325
-
326
300
  // Update row heights map to remove hidden columns whenever orderedVisibleColumns change
327
301
  useEffect(function () {
328
302
  rowHeightUtils.pruneHiddenColumnHeights(columns);
@@ -11,8 +11,11 @@ function _asyncToGenerator(n) { return function () { var t = this, e = arguments
11
11
  */
12
12
 
13
13
  import React, { useContext, useEffect, useCallback, useMemo } from 'react';
14
+ import { useEuiMemoizedStyles } from '../../../services';
15
+ import { logicalStyles } from '../../../global_styling';
14
16
  import { DataGridCellPopoverContext } from '../body/cell';
15
17
  import { DataGridFocusContext } from './focus';
18
+ import { euiDataGridScrollBarStyles } from './scrolling.styles';
16
19
  import { jsx as ___EmotionJSX } from "@emotion/react";
17
20
  /**
18
21
  * The primary goal of this scroll logic is to ensure keyboard navigation works accessibly,
@@ -208,6 +211,7 @@ export var useScrollBars = function useScrollBars(outerGridRef) {
208
211
  // If the grid scrolls or has scrollbars, we add custom border overlays
209
212
  // (since borders are normally set by cells) to ensure our grid body has
210
213
  // ending borders regardless of scroll position
214
+ var styles = useEuiMemoizedStyles(euiDataGridScrollBarStyles);
211
215
  var scrollBorderOverlay = useMemo(function () {
212
216
  if (!hasHorizontalScroll && !hasVerticalScroll) {
213
217
  return null; // Nothing to render if the grid doesn't scroll
@@ -216,22 +220,25 @@ export var useScrollBars = function useScrollBars(outerGridRef) {
216
220
  return null; // Nothing to render if the grid doesn't use borders
217
221
  }
218
222
  return ___EmotionJSX("div", {
223
+ css: styles.euiDataGrid__scrollOverlay,
219
224
  className: "euiDataGrid__scrollOverlay",
220
225
  role: "presentation"
221
226
  }, scrollBarHeight > 0 && ___EmotionJSX("div", {
227
+ css: styles.euiDataGrid__scrollBarOverlayBottom,
222
228
  className: "euiDataGrid__scrollBarOverlayBottom",
223
- style: {
224
- bottom: scrollBarHeight,
225
- right: 0
226
- }
229
+ style: logicalStyles({
230
+ bottom: scrollBarHeight
231
+ })
227
232
  }), scrollBarWidth > 0 && ___EmotionJSX("div", {
233
+ css: styles.euiDataGrid__scrollBarOverlayRight,
228
234
  className: "euiDataGrid__scrollBarOverlayRight",
229
- style: {
235
+ style: logicalStyles({
236
+ top: 0,
230
237
  bottom: scrollBarHeight,
231
238
  right: scrollBarWidth
232
- }
239
+ })
233
240
  }));
234
- }, [hasHorizontalScroll, hasVerticalScroll, scrollBarHeight, scrollBarWidth, borderStyle]);
241
+ }, [hasHorizontalScroll, hasVerticalScroll, scrollBarHeight, scrollBarWidth, borderStyle, styles]);
235
242
  return {
236
243
  scrollBarHeight: scrollBarHeight,
237
244
  scrollBarWidth: scrollBarWidth,
@@ -0,0 +1,30 @@
1
+ /*
2
+ * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
3
+ * or more contributor license agreements. Licensed under the Elastic License
4
+ * 2.0 and the Server Side Public License, v 1; you may not use this file except
5
+ * in compliance with, at your election, the Elastic License 2.0 or the Server
6
+ * Side Public License, v 1.
7
+ */
8
+
9
+ import { css } from '@emotion/react';
10
+ import { logicalCSS, mathWithUnits } from '../../../global_styling';
11
+ export var euiDataGridScrollBarStyles = function euiDataGridScrollBarStyles(euiThemeContext) {
12
+ var euiTheme = euiThemeContext.euiTheme;
13
+
14
+ // Note that 'borders' *must* be rendered with inset box-shadow, because actual
15
+ // `border` CSS will affect the relative position of the child scroll bar overlays
16
+ // and cause them to be off by the width of the border
17
+ var borderWidth = euiTheme.border.width.thin;
18
+ var borderColor = euiTheme.border.color;
19
+ return {
20
+ euiDataGrid__scrollOverlay: /*#__PURE__*/css("position:absolute;inset:0;", logicalCSS('top', "-".concat(borderWidth)), "pointer-events:none;box-shadow:inset 0 0 0 ", borderWidth, " ", borderColor, ";.euiDataGrid--bordersHorizontal &{box-shadow:inset 0 -", mathWithUnits(borderWidth, function (x) {
21
+ return x * 2;
22
+ }), " 0 -", borderWidth, " ", borderColor, ";};label:euiDataGrid__scrollOverlay;"),
23
+ // Ensure the horizontal scrollbar has a top border
24
+ euiDataGrid__scrollBarOverlayBottom: /*#__PURE__*/css("position:absolute;inset-inline:0;", logicalCSS('height', borderWidth), " background-color:", borderColor, ";;label:euiDataGrid__scrollBarOverlayBottom;"),
25
+ // Ensure the vertical scrollbar has a left border
26
+ euiDataGrid__scrollBarOverlayRight: /*#__PURE__*/css("position:absolute;", logicalCSS('width', borderWidth), " background-color:", borderColor, ";;label:euiDataGrid__scrollBarOverlayRight;")
27
+ // Note: Scroll bar border positions are set via JS inline style, since
28
+ // JS has access to the exact OS scrollbar width/height and CSS doesn't
29
+ };
30
+ };
@@ -200,7 +200,7 @@ export var EuiDatePicker = function EuiDatePicker(_ref) {
200
200
  className: classes
201
201
  }, ___EmotionJSX(EuiFormControlLayout, _extends({
202
202
  icon: optionalIcon,
203
- clear: selected && onClear ? {
203
+ clear: selected && !disabled && onClear ? {
204
204
  onClick: onClear
205
205
  } : undefined,
206
206
  isLoading: isLoading,
@@ -1,4 +1,4 @@
1
- var _excluded = ["size", "maxWidth", "minWidth", "onResize", "side", "type", "children"];
1
+ var _excluded = ["size", "maxWidth", "minWidth", "onResize", "side", "type", "ownFocus", "children"];
2
2
  function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
3
3
  function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }
4
4
  function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
@@ -35,10 +35,13 @@ export var EuiFlyoutResizable = /*#__PURE__*/forwardRef(function (_ref, ref) {
35
35
  side = _ref$side === void 0 ? 'right' : _ref$side,
36
36
  _ref$type = _ref.type,
37
37
  type = _ref$type === void 0 ? 'overlay' : _ref$type,
38
+ _ref$ownFocus = _ref.ownFocus,
39
+ ownFocus = _ref$ownFocus === void 0 ? true : _ref$ownFocus,
38
40
  children = _ref.children,
39
41
  rest = _objectWithoutProperties(_ref, _excluded);
42
+ var hasOverlay = type === 'overlay' && ownFocus;
40
43
  var styles = useEuiMemoizedStyles(euiFlyoutResizableButtonStyles);
41
- var cssStyles = [styles.euiFlyoutResizableButton, styles[type][side]];
44
+ var cssStyles = [styles.euiFlyoutResizableButton, styles[type][side], !hasOverlay && styles.noOverlay.noOverlay, !hasOverlay && styles.noOverlay[side]];
42
45
  var getFlyoutMinMaxWidth = useCallback(function (width) {
43
46
  return Math.min(Math.max(width, minWidth), maxWidth || Infinity, window.innerWidth - 20 // Leave some offset
44
47
  );
@@ -142,6 +145,7 @@ export var EuiFlyoutResizable = /*#__PURE__*/forwardRef(function (_ref, ref) {
142
145
  maxWidth: maxWidth,
143
146
  side: side,
144
147
  type: type,
148
+ ownFocus: ownFocus,
145
149
  ref: setRefs
146
150
  }), ___EmotionJSX(EuiResizableButton, {
147
151
  isHorizontal: true,
@@ -10,6 +10,30 @@ function _EMOTION_STRINGIFIED_CSS_ERROR__() { return "You have tried to stringif
10
10
  import { css } from '@emotion/react';
11
11
  import { logicalCSS } from '../../global_styling';
12
12
  var _ref = process.env.NODE_ENV === "production" ? {
13
+ name: "1vfos8p-right",
14
+ styles: "justify-content:flex-start;label:right;"
15
+ } : {
16
+ name: "1vfos8p-right",
17
+ styles: "justify-content:flex-start;label:right;",
18
+ toString: _EMOTION_STRINGIFIED_CSS_ERROR__
19
+ };
20
+ var _ref2 = process.env.NODE_ENV === "production" ? {
21
+ name: "1ydooaf-left",
22
+ styles: "justify-content:flex-end;label:left;"
23
+ } : {
24
+ name: "1ydooaf-left",
25
+ styles: "justify-content:flex-end;label:left;",
26
+ toString: _EMOTION_STRINGIFIED_CSS_ERROR__
27
+ };
28
+ var _ref3 = process.env.NODE_ENV === "production" ? {
29
+ name: "1cw850z-noOverlay",
30
+ styles: "margin-inline:0;label:noOverlay;"
31
+ } : {
32
+ name: "1cw850z-noOverlay",
33
+ styles: "margin-inline:0;label:noOverlay;",
34
+ toString: _EMOTION_STRINGIFIED_CSS_ERROR__
35
+ };
36
+ var _ref4 = process.env.NODE_ENV === "production" ? {
13
37
  name: "1gfwqnd-euiFlyoutResizableButton",
14
38
  styles: "position:absolute;label:euiFlyoutResizableButton;"
15
39
  } : {
@@ -17,17 +41,22 @@ var _ref = process.env.NODE_ENV === "production" ? {
17
41
  styles: "position:absolute;label:euiFlyoutResizableButton;",
18
42
  toString: _EMOTION_STRINGIFIED_CSS_ERROR__
19
43
  };
20
- export var euiFlyoutResizableButtonStyles = function euiFlyoutResizableButtonStyles(_ref2) {
21
- var euiTheme = _ref2.euiTheme;
44
+ export var euiFlyoutResizableButtonStyles = function euiFlyoutResizableButtonStyles(_ref5) {
45
+ var euiTheme = _ref5.euiTheme;
22
46
  return {
23
- euiFlyoutResizableButton: _ref,
47
+ euiFlyoutResizableButton: _ref4,
24
48
  overlay: {
25
49
  left: /*#__PURE__*/css(logicalCSS('right', 0), ";;label:left;"),
26
50
  right: /*#__PURE__*/css(logicalCSS('left', 0), ";;label:right;")
27
51
  },
28
52
  push: {
29
- left: /*#__PURE__*/css(logicalCSS('right', "-".concat(euiTheme.border.width.thin)), ";;label:left;"),
30
- right: /*#__PURE__*/css(logicalCSS('left', "-".concat(euiTheme.border.width.thin)), ";;label:right;")
53
+ left: /*#__PURE__*/css(logicalCSS('right', "-".concat(euiTheme.border.width.thick)), ";;label:left;"),
54
+ right: /*#__PURE__*/css(logicalCSS('left', "-".concat(euiTheme.border.width.thick)), ";;label:right;")
55
+ },
56
+ noOverlay: {
57
+ noOverlay: _ref3,
58
+ left: _ref2,
59
+ right: _ref
31
60
  }
32
61
  };
33
62
  };
@@ -437,7 +437,7 @@ export var EuiPopover = /*#__PURE__*/function (_Component) {
437
437
  }), popoverScreenReaderText));
438
438
  }
439
439
  var returnFocus = this.state.isOpenStable ? returnFocusConfig : false;
440
- panel = ___EmotionJSX(EuiPortal, {
440
+ panel = ___EmotionJSX(EuiPortal, insert && {
441
441
  insert: insert
442
442
  }, ___EmotionJSX(EuiFocusTrap, _extends({
443
443
  clickOutsideDisables: true,
@@ -14,6 +14,7 @@ import { EuiGlobalStyles } from '../../global_styling/reset/global_styles';
14
14
  import { EuiUtilityClasses } from '../../global_styling/utility/utility';
15
15
  import { EuiThemeAmsterdam } from '../../themes';
16
16
  import { EuiCacheProvider } from './cache';
17
+ import { EuiSystemColorModeProvider } from './system_color_mode';
17
18
  import { EuiProviderNestedCheck, useIsNestedEuiProvider } from './nested';
18
19
  import { EuiComponentDefaultsProvider } from './component_defaults';
19
20
  import { jsx as ___EmotionJSX } from "@emotion/react";
@@ -64,17 +65,19 @@ export var EuiProvider = function EuiProvider(_ref) {
64
65
  }
65
66
  return ___EmotionJSX(EuiProviderNestedCheck, null, ___EmotionJSX(EuiCacheProvider, {
66
67
  cache: (_defaultCache = defaultCache) !== null && _defaultCache !== void 0 ? _defaultCache : fallbackCache
67
- }, ___EmotionJSX(EuiThemeProvider, {
68
- theme: theme !== null && theme !== void 0 ? theme : undefined,
69
- colorMode: colorMode,
70
- modify: modify
71
- }, theme && ___EmotionJSX(React.Fragment, null, ___EmotionJSX(EuiCacheProvider, {
72
- cache: globalCache,
73
- children: Globals && ___EmotionJSX(Globals, null)
74
- }), ___EmotionJSX(EuiCacheProvider, {
75
- cache: utilityCache,
76
- children: Utilities && ___EmotionJSX(Utilities, null)
77
- })), ___EmotionJSX(EuiComponentDefaultsProvider, {
78
- componentDefaults: componentDefaults
79
- }, children))));
68
+ }, ___EmotionJSX(EuiSystemColorModeProvider, null, function (systemColorMode) {
69
+ return ___EmotionJSX(EuiThemeProvider, {
70
+ theme: theme !== null && theme !== void 0 ? theme : undefined,
71
+ colorMode: colorMode !== null && colorMode !== void 0 ? colorMode : systemColorMode,
72
+ modify: modify
73
+ }, theme && ___EmotionJSX(React.Fragment, null, ___EmotionJSX(EuiCacheProvider, {
74
+ cache: globalCache,
75
+ children: Globals && ___EmotionJSX(Globals, null)
76
+ }), ___EmotionJSX(EuiCacheProvider, {
77
+ cache: utilityCache,
78
+ children: Utilities && ___EmotionJSX(Utilities, null)
79
+ })), ___EmotionJSX(EuiComponentDefaultsProvider, {
80
+ componentDefaults: componentDefaults
81
+ }, children));
82
+ })));
80
83
  };
@@ -0,0 +1,9 @@
1
+ /*
2
+ * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
3
+ * or more contributor license agreements. Licensed under the Elastic License
4
+ * 2.0 and the Server Side Public License, v 1; you may not use this file except
5
+ * in compliance with, at your election, the Elastic License 2.0 or the Server
6
+ * Side Public License, v 1.
7
+ */
8
+
9
+ export { EuiSystemColorModeProvider } from './system_color_mode_provider';
@@ -0,0 +1,49 @@
1
+ function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }
2
+ function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
3
+ function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
4
+ function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
5
+ function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
6
+ function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
7
+ /*
8
+ * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
9
+ * or more contributor license agreements. Licensed under the Elastic License
10
+ * 2.0 and the Server Side Public License, v 1; you may not use this file except
11
+ * in compliance with, at your election, the Elastic License 2.0 or the Server
12
+ * Side Public License, v 1.
13
+ */
14
+
15
+ import { useState, useEffect } from 'react';
16
+ import PropTypes from "prop-types";
17
+ export var COLOR_MODE_MEDIA_QUERY = '(prefers-color-scheme: dark)';
18
+ export var EuiSystemColorModeProvider = function EuiSystemColorModeProvider(_ref) {
19
+ var children = _ref.children;
20
+ // Use optional chaining here for SSR or test environments
21
+ var _useState = useState(function () {
22
+ var _window, _window$matchMedia;
23
+ return (_window = window) !== null && _window !== void 0 && (_window$matchMedia = _window.matchMedia) !== null && _window$matchMedia !== void 0 && _window$matchMedia.call(_window, COLOR_MODE_MEDIA_QUERY).matches ? 'DARK' : 'LIGHT';
24
+ }),
25
+ _useState2 = _slicedToArray(_useState, 2),
26
+ systemColorMode = _useState2[0],
27
+ setSystemColorMode = _useState2[1];
28
+
29
+ // Listen for system changes
30
+ useEffect(function () {
31
+ var _window$matchMedia2, _window2, _window$matchMedia2$c, _window$matchMedia2$c2;
32
+ var eventListener = function eventListener(event) {
33
+ setSystemColorMode(event.matches ? 'DARK' : 'LIGHT');
34
+ };
35
+
36
+ // Optional chaining here is for test environments - SSR should not run useEffect
37
+ (_window$matchMedia2 = (_window2 = window).matchMedia) === null || _window$matchMedia2 === void 0 || (_window$matchMedia2$c = (_window$matchMedia2$c2 = _window$matchMedia2.call(_window2, COLOR_MODE_MEDIA_QUERY)).addEventListener) === null || _window$matchMedia2$c === void 0 || _window$matchMedia2$c.call(_window$matchMedia2$c2, 'change', eventListener);
38
+
39
+ // Clean up the listener on unmount
40
+ return function () {
41
+ var _window$matchMedia3, _window3, _window$matchMedia3$c, _window$matchMedia3$c2;
42
+ (_window$matchMedia3 = (_window3 = window).matchMedia) === null || _window$matchMedia3 === void 0 || (_window$matchMedia3$c = (_window$matchMedia3$c2 = _window$matchMedia3.call(_window3, COLOR_MODE_MEDIA_QUERY)).removeEventListener) === null || _window$matchMedia3$c === void 0 || _window$matchMedia3$c.call(_window$matchMedia3$c2, 'change', eventListener);
43
+ };
44
+ }, []);
45
+ return children(systemColorMode);
46
+ };
47
+ EuiSystemColorModeProvider.propTypes = {
48
+ children: PropTypes.func.isRequired
49
+ };
@@ -1,4 +1,4 @@
1
- var _excluded = ["isHorizontal", "indicator", "alignIndicator", "className"],
1
+ var _excluded = ["isHorizontal", "indicator", "alignIndicator", "accountForScrollbars", "className"],
2
2
  _excluded2 = ["registration", "id", "disabled", "onFocus"];
3
3
  function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
4
4
  function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }
@@ -35,12 +35,13 @@ export var EuiResizableButton = /*#__PURE__*/forwardRef(function (_ref, ref) {
35
35
  indicator = _ref$indicator === void 0 ? 'handle' : _ref$indicator,
36
36
  _ref$alignIndicator = _ref.alignIndicator,
37
37
  alignIndicator = _ref$alignIndicator === void 0 ? 'center' : _ref$alignIndicator,
38
+ accountForScrollbars = _ref.accountForScrollbars,
38
39
  className = _ref.className,
39
40
  rest = _objectWithoutProperties(_ref, _excluded);
40
41
  var classes = classNames('euiResizableButton', className);
41
42
  var resizeDirection = isHorizontal ? 'horizontal' : 'vertical';
42
43
  var styles = useEuiMemoizedStyles(euiResizableButtonStyles);
43
- var cssStyles = [styles.euiResizableButton, styles[indicator], styles["".concat(indicator, "Direction")][resizeDirection], styles[resizeDirection], indicator === 'handle' && styles.alignIndicator[alignIndicator]];
44
+ var cssStyles = [styles.euiResizableButton, styles[indicator], styles["".concat(indicator, "Direction")][resizeDirection], styles[resizeDirection], indicator === 'handle' && styles.alignIndicator[alignIndicator], styles.accountForScrollbars[resizeDirection][accountForScrollbars !== null && accountForScrollbars !== void 0 ? accountForScrollbars : 'none']];
44
45
  return ___EmotionJSX(EuiI18n, {
45
46
  tokens: ['euiResizableButton.horizontalResizerAriaLabel', 'euiResizableButton.verticalResizerAriaLabel'],
46
47
  defaults: ['Press the left or right arrow keys to adjust panels size', 'Press the up or down arrow keys to adjust panels size']
@@ -79,6 +80,12 @@ EuiResizableButton.propTypes = {
79
80
  * tall content that scrolls off-screen
80
81
  */
81
82
  alignIndicator: PropTypes.oneOf(["center", "start", "end"]),
83
+ /**
84
+ * By default, EuiResizableButton will overlap into the panels before/after it.
85
+ * This can occasionally occlude interactive elements like scrollbars. To prevent
86
+ * this overlap, use this prop to remove the overlap for the specified side.
87
+ */
88
+ accountForScrollbars: PropTypes.oneOf(["before", "after", "both"]),
82
89
  /**
83
90
  * When disabled, the resizer button will be completely hidden
84
91
  */