@elastic/eui 87.0.0 → 87.2.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 (174) hide show
  1. package/dist/eui_theme_dark.css +0 -234
  2. package/dist/eui_theme_dark.min.css +1 -1
  3. package/dist/eui_theme_light.css +0 -234
  4. package/dist/eui_theme_light.min.css +1 -1
  5. package/es/components/accordion/accordion.js +82 -35
  6. package/es/components/auto_sizer/index.js +1 -1
  7. package/es/components/breadcrumbs/breadcrumb.js +2 -3
  8. package/es/components/breadcrumbs/breadcrumbs.js +2 -3
  9. package/es/components/code/code_block_virtualized.js +25 -17
  10. package/es/components/collapsible_nav_beta/collapsible_nav_beta.js +14 -1
  11. package/es/components/collapsible_nav_beta/collapsible_nav_item/collapsed/collapsed_nav_button.js +8 -7
  12. package/es/components/collapsible_nav_beta/collapsible_nav_item/collapsed/collapsed_nav_item.js +6 -6
  13. package/es/components/collapsible_nav_beta/collapsible_nav_item/collapsed/collapsed_nav_popover.js +7 -7
  14. package/es/components/collapsible_nav_beta/collapsible_nav_item/collapsible_nav_accordion.js +6 -6
  15. package/es/components/collapsible_nav_beta/collapsible_nav_item/collapsible_nav_item.js +9 -9
  16. package/es/components/color_picker/color_palette_picker/color_palette_picker.js +1 -1
  17. package/es/components/control_bar/control_bar.js +2 -3
  18. package/es/components/date_picker/date_picker_range.js +5 -2
  19. package/es/components/date_picker/super_date_picker/super_date_picker.js +2 -2
  20. package/es/components/date_picker/super_date_picker/super_update_button.js +1 -1
  21. package/es/components/empty_prompt/empty_prompt.js +0 -1
  22. package/es/components/flyout/flyout.js +9 -7
  23. package/es/components/flyout/flyout_body.js +15 -3
  24. package/es/components/form/range/dual_range.js +33 -6
  25. package/es/components/form/range/range.js +31 -6
  26. package/es/components/form/super_select/super_select.js +1 -1
  27. package/es/components/header/header_breadcrumbs/header_breadcrumbs.js +2 -3
  28. package/es/components/header/header_links/header_links.js +2 -3
  29. package/es/components/page/page_header/page_header_content.js +2 -3
  30. package/es/components/page/page_sidebar/page_sidebar.js +2 -2
  31. package/es/components/page_template/page_template.js +14 -5
  32. package/es/components/popover/input_popover.js +24 -9
  33. package/es/components/popover/popover.js +4 -6
  34. package/es/components/resizable_container/index.js +2 -1
  35. package/es/components/resizable_container/resizable_button.js +81 -50
  36. package/es/components/resizable_container/resizable_button.styles.js +66 -0
  37. package/es/components/resizable_container/resizable_collapse_button.js +24 -14
  38. package/es/components/resizable_container/resizable_collapse_button.styles.js +85 -0
  39. package/es/components/selectable/selectable_list/selectable_list.js +97 -79
  40. package/es/components/steps/step.styles.js +5 -5
  41. package/es/components/tool_tip/icon_tip.js +1 -1
  42. package/es/components/tool_tip/tool_tip.js +4 -14
  43. package/es/components/tool_tip/tool_tip_anchor.js +5 -14
  44. package/es/components/tour/tour_step.js +2 -3
  45. package/es/services/accessibility/html_id_generator.js +19 -3
  46. package/es/themes/amsterdam/global_styling/mixins/shadow.js +0 -1
  47. package/eui.d.ts +198 -56
  48. package/i18ntokens.json +64 -46
  49. package/lib/components/accordion/accordion.js +82 -35
  50. package/lib/components/auto_sizer/index.js +11 -7
  51. package/lib/components/breadcrumbs/breadcrumb.js +2 -3
  52. package/lib/components/code/code_block_virtualized.js +25 -17
  53. package/lib/components/collapsible_nav_beta/collapsible_nav_beta.js +14 -1
  54. package/lib/components/collapsible_nav_beta/collapsible_nav_item/collapsed/collapsed_nav_button.js +8 -7
  55. package/lib/components/collapsible_nav_beta/collapsible_nav_item/collapsed/collapsed_nav_item.js +6 -6
  56. package/lib/components/collapsible_nav_beta/collapsible_nav_item/collapsed/collapsed_nav_popover.js +7 -7
  57. package/lib/components/collapsible_nav_beta/collapsible_nav_item/collapsible_nav_accordion.js +6 -6
  58. package/lib/components/collapsible_nav_beta/collapsible_nav_item/collapsible_nav_item.js +9 -9
  59. package/lib/components/color_picker/color_palette_picker/color_palette_picker.js +1 -1
  60. package/lib/components/date_picker/date_picker_range.js +5 -2
  61. package/lib/components/date_picker/super_date_picker/super_date_picker.js +2 -2
  62. package/lib/components/date_picker/super_date_picker/super_update_button.js +1 -1
  63. package/lib/components/empty_prompt/empty_prompt.js +0 -1
  64. package/lib/components/flyout/flyout.js +9 -7
  65. package/lib/components/flyout/flyout_body.js +15 -3
  66. package/lib/components/form/range/dual_range.js +33 -6
  67. package/lib/components/form/range/range.js +14 -6
  68. package/lib/components/form/super_select/super_select.js +1 -1
  69. package/lib/components/page/page_sidebar/page_sidebar.js +1 -1
  70. package/lib/components/page_template/page_template.js +14 -5
  71. package/lib/components/popover/input_popover.js +23 -8
  72. package/lib/components/popover/popover.js +4 -6
  73. package/lib/components/resizable_container/index.js +8 -1
  74. package/lib/components/resizable_container/resizable_button.js +83 -51
  75. package/lib/components/resizable_container/resizable_button.styles.js +71 -0
  76. package/lib/components/resizable_container/resizable_collapse_button.js +24 -14
  77. package/lib/components/resizable_container/resizable_collapse_button.styles.js +90 -0
  78. package/lib/components/selectable/selectable_list/selectable_list.js +97 -79
  79. package/lib/components/steps/step.styles.js +5 -5
  80. package/lib/components/tool_tip/icon_tip.js +1 -1
  81. package/lib/components/tool_tip/tool_tip.js +4 -14
  82. package/lib/components/tool_tip/tool_tip_anchor.js +5 -13
  83. package/lib/services/accessibility/html_id_generator.js +21 -2
  84. package/lib/themes/amsterdam/global_styling/mixins/shadow.js +0 -1
  85. package/optimize/es/components/accordion/accordion.js +82 -35
  86. package/optimize/es/components/auto_sizer/index.js +1 -1
  87. package/optimize/es/components/code/code_block_virtualized.js +25 -17
  88. package/optimize/es/components/collapsible_nav_beta/collapsible_nav_beta.js +5 -1
  89. package/optimize/es/components/collapsible_nav_beta/collapsible_nav_item/collapsed/collapsed_nav_button.js +2 -1
  90. package/optimize/es/components/date_picker/date_picker_range.js +5 -2
  91. package/optimize/es/components/flyout/flyout.js +9 -7
  92. package/optimize/es/components/flyout/flyout_body.js +4 -2
  93. package/optimize/es/components/form/range/dual_range.js +7 -4
  94. package/optimize/es/components/form/range/range.js +5 -4
  95. package/optimize/es/components/page/page_sidebar/page_sidebar.js +2 -2
  96. package/optimize/es/components/page_template/page_template.js +14 -5
  97. package/optimize/es/components/popover/input_popover.js +13 -8
  98. package/optimize/es/components/popover/popover.js +2 -3
  99. package/optimize/es/components/resizable_container/index.js +2 -1
  100. package/optimize/es/components/resizable_container/resizable_button.js +61 -44
  101. package/optimize/es/components/resizable_container/resizable_button.styles.js +66 -0
  102. package/optimize/es/components/resizable_container/resizable_collapse_button.js +19 -11
  103. package/optimize/es/components/resizable_container/resizable_collapse_button.styles.js +85 -0
  104. package/optimize/es/components/selectable/selectable_list/selectable_list.js +97 -79
  105. package/optimize/es/components/steps/step.styles.js +5 -5
  106. package/optimize/es/components/tool_tip/tool_tip.js +3 -13
  107. package/optimize/es/components/tool_tip/tool_tip_anchor.js +4 -8
  108. package/optimize/es/services/accessibility/html_id_generator.js +19 -3
  109. package/optimize/es/themes/amsterdam/global_styling/mixins/shadow.js +0 -1
  110. package/optimize/lib/components/accordion/accordion.js +82 -35
  111. package/optimize/lib/components/auto_sizer/index.js +11 -7
  112. package/optimize/lib/components/code/code_block_virtualized.js +25 -17
  113. package/optimize/lib/components/collapsible_nav_beta/collapsible_nav_beta.js +5 -1
  114. package/optimize/lib/components/collapsible_nav_beta/collapsible_nav_item/collapsed/collapsed_nav_button.js +2 -1
  115. package/optimize/lib/components/date_picker/date_picker_range.js +5 -2
  116. package/optimize/lib/components/flyout/flyout.js +9 -7
  117. package/optimize/lib/components/flyout/flyout_body.js +4 -2
  118. package/optimize/lib/components/form/range/dual_range.js +7 -4
  119. package/optimize/lib/components/form/range/range.js +5 -4
  120. package/optimize/lib/components/page/page_sidebar/page_sidebar.js +1 -1
  121. package/optimize/lib/components/page_template/page_template.js +14 -5
  122. package/optimize/lib/components/popover/input_popover.js +12 -7
  123. package/optimize/lib/components/popover/popover.js +2 -3
  124. package/optimize/lib/components/resizable_container/index.js +8 -1
  125. package/optimize/lib/components/resizable_container/resizable_button.js +63 -45
  126. package/optimize/lib/components/resizable_container/resizable_button.styles.js +71 -0
  127. package/optimize/lib/components/resizable_container/resizable_collapse_button.js +19 -11
  128. package/optimize/lib/components/resizable_container/resizable_collapse_button.styles.js +90 -0
  129. package/optimize/lib/components/selectable/selectable_list/selectable_list.js +97 -79
  130. package/optimize/lib/components/steps/step.styles.js +5 -5
  131. package/optimize/lib/components/tool_tip/tool_tip.js +3 -13
  132. package/optimize/lib/components/tool_tip/tool_tip_anchor.js +4 -8
  133. package/optimize/lib/services/accessibility/html_id_generator.js +21 -2
  134. package/optimize/lib/themes/amsterdam/global_styling/mixins/shadow.js +0 -1
  135. package/package.json +19 -21
  136. package/src/components/index.scss +0 -1
  137. package/test-env/components/accordion/accordion.js +82 -35
  138. package/test-env/components/auto_sizer/index.js +11 -7
  139. package/test-env/components/breadcrumbs/breadcrumb.js +2 -3
  140. package/test-env/components/code/code_block_virtualized.js +25 -17
  141. package/test-env/components/collapsible_nav_beta/collapsible_nav_beta.js +14 -1
  142. package/test-env/components/collapsible_nav_beta/collapsible_nav_item/collapsed/collapsed_nav_button.js +8 -7
  143. package/test-env/components/collapsible_nav_beta/collapsible_nav_item/collapsed/collapsed_nav_item.js +6 -6
  144. package/test-env/components/collapsible_nav_beta/collapsible_nav_item/collapsed/collapsed_nav_popover.js +7 -7
  145. package/test-env/components/collapsible_nav_beta/collapsible_nav_item/collapsible_nav_accordion.js +6 -6
  146. package/test-env/components/collapsible_nav_beta/collapsible_nav_item/collapsible_nav_item.js +9 -9
  147. package/test-env/components/color_picker/color_palette_picker/color_palette_picker.js +1 -1
  148. package/test-env/components/date_picker/date_picker_range.js +5 -2
  149. package/test-env/components/date_picker/super_date_picker/super_date_picker.js +2 -2
  150. package/test-env/components/date_picker/super_date_picker/super_update_button.js +1 -1
  151. package/test-env/components/empty_prompt/empty_prompt.js +0 -1
  152. package/test-env/components/flyout/flyout_body.js +15 -3
  153. package/test-env/components/form/range/dual_range.js +33 -6
  154. package/test-env/components/form/range/range.js +14 -6
  155. package/test-env/components/form/super_select/super_select.js +1 -1
  156. package/test-env/components/page/page_sidebar/page_sidebar.js +1 -1
  157. package/test-env/components/page_template/page_template.js +14 -5
  158. package/test-env/components/popover/input_popover.js +23 -8
  159. package/test-env/components/popover/popover.js +4 -6
  160. package/test-env/components/resizable_container/index.js +8 -1
  161. package/test-env/components/resizable_container/resizable_button.js +83 -51
  162. package/test-env/components/resizable_container/resizable_button.styles.js +71 -0
  163. package/test-env/components/resizable_container/resizable_collapse_button.js +19 -14
  164. package/test-env/components/resizable_container/resizable_collapse_button.styles.js +90 -0
  165. package/test-env/components/selectable/selectable_list/selectable_list.js +97 -79
  166. package/test-env/components/steps/step.styles.js +5 -5
  167. package/test-env/components/tool_tip/icon_tip.js +1 -1
  168. package/test-env/components/tool_tip/tool_tip.js +4 -14
  169. package/test-env/components/tool_tip/tool_tip_anchor.js +5 -11
  170. package/test-env/themes/amsterdam/global_styling/mixins/shadow.js +0 -1
  171. package/src/components/resizable_container/_index.scss +0 -3
  172. package/src/components/resizable_container/_resizable_button.scss +0 -129
  173. package/src/components/resizable_container/_resizable_collapse_button.scss +0 -145
  174. package/src/components/resizable_container/_variables.scss +0 -2
package/i18ntokens.json CHANGED
@@ -5,14 +5,14 @@
5
5
  "highlighting": "string",
6
6
  "loc": {
7
7
  "start": {
8
- "line": 349,
8
+ "line": 408,
9
9
  "column": 16,
10
- "index": 10174
10
+ "index": 12163
11
11
  },
12
12
  "end": {
13
- "line": 349,
13
+ "line": 408,
14
14
  "column": 76,
15
- "index": 10234
15
+ "index": 12223
16
16
  }
17
17
  },
18
18
  "filepath": "src/components/accordion/accordion.tsx"
@@ -431,6 +431,24 @@
431
431
  },
432
432
  "filepath": "src/components/code/code_block_full_screen.tsx"
433
433
  },
434
+ {
435
+ "token": "euiCollapsibleNavBeta.ariaLabel",
436
+ "defString": "Site menu",
437
+ "highlighting": "string",
438
+ "loc": {
439
+ "start": {
440
+ "line": 170,
441
+ "column": 27,
442
+ "index": 5493
443
+ },
444
+ "end": {
445
+ "line": 173,
446
+ "column": 3,
447
+ "index": 5563
448
+ }
449
+ },
450
+ "filepath": "src/components/collapsible_nav_beta/collapsible_nav_beta.tsx"
451
+ },
434
452
  {
435
453
  "token": "euiCollapsibleNavButton.ariaLabelOpen",
436
454
  "defString": "Toggle navigation open",
@@ -4667,14 +4685,14 @@
4667
4685
  "highlighting": "string",
4668
4686
  "loc": {
4669
4687
  "start": {
4670
- "line": 294,
4688
+ "line": 295,
4671
4689
  "column": 8,
4672
- "index": 9459
4690
+ "index": 9503
4673
4691
  },
4674
4692
  "end": {
4675
- "line": 294,
4693
+ "line": 295,
4676
4694
  "column": 78,
4677
- "index": 9529
4695
+ "index": 9573
4678
4696
  }
4679
4697
  },
4680
4698
  "filepath": "src/components/flyout/flyout.tsx"
@@ -4685,14 +4703,14 @@
4685
4703
  "highlighting": "string",
4686
4704
  "loc": {
4687
4705
  "start": {
4688
- "line": 357,
4706
+ "line": 359,
4689
4707
  "column": 12,
4690
- "index": 11739
4708
+ "index": 11856
4691
4709
  },
4692
4710
  "end": {
4693
- "line": 360,
4711
+ "line": 362,
4694
4712
  "column": 14,
4695
- "index": 11948
4713
+ "index": 12065
4696
4714
  }
4697
4715
  },
4698
4716
  "filepath": "src/components/flyout/flyout.tsx"
@@ -4703,14 +4721,14 @@
4703
4721
  "highlighting": "string",
4704
4722
  "loc": {
4705
4723
  "start": {
4706
- "line": 362,
4724
+ "line": 364,
4707
4725
  "column": 12,
4708
- "index": 11977
4726
+ "index": 12094
4709
4727
  },
4710
4728
  "end": {
4711
- "line": 365,
4729
+ "line": 367,
4712
4730
  "column": 14,
4713
- "index": 12149
4731
+ "index": 12266
4714
4732
  }
4715
4733
  },
4716
4734
  "filepath": "src/components/flyout/flyout.tsx"
@@ -4721,14 +4739,14 @@
4721
4739
  "highlighting": "string",
4722
4740
  "loc": {
4723
4741
  "start": {
4724
- "line": 368,
4742
+ "line": 370,
4725
4743
  "column": 12,
4726
- "index": 12220
4744
+ "index": 12337
4727
4745
  },
4728
4746
  "end": {
4729
- "line": 371,
4747
+ "line": 373,
4730
4748
  "column": 14,
4731
- "index": 12407
4749
+ "index": 12524
4732
4750
  }
4733
4751
  },
4734
4752
  "filepath": "src/components/flyout/flyout.tsx"
@@ -4901,14 +4919,14 @@
4901
4919
  "highlighting": "string",
4902
4920
  "loc": {
4903
4921
  "start": {
4904
- "line": 614,
4922
+ "line": 616,
4905
4923
  "column": 6,
4906
- "index": 18263
4924
+ "index": 18346
4907
4925
  },
4908
4926
  "end": {
4909
- "line": 617,
4927
+ "line": 619,
4910
4928
  "column": 8,
4911
- "index": 18498
4929
+ "index": 18581
4912
4930
  }
4913
4931
  },
4914
4932
  "filepath": "src/components/form/range/dual_range.tsx"
@@ -4919,14 +4937,14 @@
4919
4937
  "highlighting": "string",
4920
4938
  "loc": {
4921
4939
  "start": {
4922
- "line": 182,
4940
+ "line": 183,
4923
4941
  "column": 6,
4924
- "index": 4833
4942
+ "index": 4858
4925
4943
  },
4926
4944
  "end": {
4927
- "line": 185,
4945
+ "line": 186,
4928
4946
  "column": 8,
4929
- "index": 5010
4947
+ "index": 5035
4930
4948
  }
4931
4949
  },
4932
4950
  "filepath": "src/components/form/range/range.tsx"
@@ -4939,12 +4957,12 @@
4939
4957
  "start": {
4940
4958
  "line": 344,
4941
4959
  "column": 12,
4942
- "index": 9030
4960
+ "index": 9079
4943
4961
  },
4944
4962
  "end": {
4945
4963
  "line": 348,
4946
4964
  "column": 14,
4947
- "index": 9276
4965
+ "index": 9325
4948
4966
  }
4949
4967
  },
4950
4968
  "filepath": "src/components/form/super_select/super_select.tsx"
@@ -4957,12 +4975,12 @@
4957
4975
  "start": {
4958
4976
  "line": 351,
4959
4977
  "column": 8,
4960
- "index": 9331
4978
+ "index": 9380
4961
4979
  },
4962
4980
  "end": {
4963
4981
  "line": 351,
4964
4982
  "column": 75,
4965
- "index": 9398
4983
+ "index": 9447
4966
4984
  }
4967
4985
  },
4968
4986
  "filepath": "src/components/form/super_select/super_select.tsx"
@@ -6017,14 +6035,14 @@
6017
6035
  "highlighting": "string",
6018
6036
  "loc": {
6019
6037
  "start": {
6020
- "line": 676,
6038
+ "line": 671,
6021
6039
  "column": 16,
6022
- "index": 19791
6040
+ "index": 19639
6023
6041
  },
6024
6042
  "end": {
6025
- "line": 679,
6043
+ "line": 674,
6026
6044
  "column": 18,
6027
- "index": 19985
6045
+ "index": 19833
6028
6046
  }
6029
6047
  },
6030
6048
  "filepath": "src/components/popover/popover.tsx"
@@ -6049,36 +6067,36 @@
6049
6067
  },
6050
6068
  {
6051
6069
  "token": "euiResizableButton.horizontalResizerAriaLabel",
6052
- "defString": "Press left or right to adjust panels size",
6070
+ "defString": "Press the left or right arrow keys to adjust panels size",
6053
6071
  "highlighting": "string",
6054
6072
  "loc": {
6055
6073
  "start": {
6056
- "line": 111,
6074
+ "line": 69,
6057
6075
  "column": 4,
6058
- "index": 3069
6076
+ "index": 2211
6059
6077
  },
6060
6078
  "end": {
6061
- "line": 120,
6079
+ "line": 78,
6062
6080
  "column": 5,
6063
- "index": 3350
6081
+ "index": 2522
6064
6082
  }
6065
6083
  },
6066
6084
  "filepath": "src/components/resizable_container/resizable_button.tsx"
6067
6085
  },
6068
6086
  {
6069
6087
  "token": "euiResizableButton.verticalResizerAriaLabel",
6070
- "defString": "Press up or down to adjust panels size",
6088
+ "defString": "Press the up or down arrow keys to adjust panels size",
6071
6089
  "highlighting": "string",
6072
6090
  "loc": {
6073
6091
  "start": {
6074
- "line": 111,
6092
+ "line": 69,
6075
6093
  "column": 4,
6076
- "index": 3069
6094
+ "index": 2211
6077
6095
  },
6078
6096
  "end": {
6079
- "line": 120,
6097
+ "line": 78,
6080
6098
  "column": 5,
6081
- "index": 3350
6099
+ "index": 2522
6082
6100
  }
6083
6101
  },
6084
6102
  "filepath": "src/components/resizable_container/resizable_button.tsx"
@@ -7,6 +7,7 @@ exports.PADDING_SIZES = exports.EuiAccordionClass = exports.EuiAccordion = void
7
7
  var _react = _interopRequireWildcard(require("react"));
8
8
  var _propTypes = _interopRequireDefault(require("prop-types"));
9
9
  var _classnames = _interopRequireDefault(require("classnames"));
10
+ var _tabbable = require("tabbable");
10
11
  var _loading = require("../loading");
11
12
  var _resize_observer = require("../observer/resize_observer");
12
13
  var _text = require("../text");
@@ -57,33 +58,68 @@ var EuiAccordionClass = /*#__PURE__*/function (_Component) {
57
58
  _this = _super.call.apply(_super, [this].concat(args));
58
59
  _defineProperty(_assertThisInitialized(_this), "childContent", null);
59
60
  _defineProperty(_assertThisInitialized(_this), "childWrapper", null);
61
+ _defineProperty(_assertThisInitialized(_this), "tabbableChildren", null);
60
62
  _defineProperty(_assertThisInitialized(_this), "state", {
61
63
  isOpen: _this.props.forceState ? _this.props.forceState === 'open' : _this.props.initialIsOpen
62
64
  });
63
65
  _defineProperty(_assertThisInitialized(_this), "setChildContentHeight", function () {
64
- var forceState = _this.props.forceState;
65
66
  requestAnimationFrame(function () {
66
- var height = _this.childContent && (forceState ? forceState === 'open' : _this.state.isOpen) ? _this.childContent.clientHeight : 0;
67
+ var height = _this.childContent && _this.isOpen ? _this.childContent.clientHeight : 0;
67
68
  _this.childWrapper && _this.childWrapper.setAttribute('style', (0, _global_styling.logicalCSS)('height', "".concat(height, "px")));
68
69
  });
69
70
  });
70
71
  _defineProperty(_assertThisInitialized(_this), "onToggle", function () {
71
72
  var forceState = _this.props.forceState;
72
73
  if (forceState) {
73
- _this.props.onToggle && _this.props.onToggle(forceState === 'open' ? false : true);
74
+ var _this$props$onToggle, _this$props;
75
+ (_this$props$onToggle = (_this$props = _this.props).onToggle) === null || _this$props$onToggle === void 0 ? void 0 : _this$props$onToggle.call(_this$props, forceState === 'open' ? false : true);
74
76
  } else {
75
77
  _this.setState(function (prevState) {
76
78
  return {
77
79
  isOpen: !prevState.isOpen
78
80
  };
79
81
  }, function () {
82
+ var _this$props$onToggle2, _this$props2;
80
83
  if (_this.state.isOpen && _this.childWrapper) {
81
84
  _this.childWrapper.focus();
82
85
  }
83
- _this.props.onToggle && _this.props.onToggle(_this.state.isOpen);
86
+ (_this$props$onToggle2 = (_this$props2 = _this.props).onToggle) === null || _this$props$onToggle2 === void 0 ? void 0 : _this$props$onToggle2.call(_this$props2, _this.state.isOpen);
84
87
  });
85
88
  }
86
89
  });
90
+ // When accordions are closed, tabbable children should not be present in the tab order
91
+ _defineProperty(_assertThisInitialized(_this), "preventTabbing", function () {
92
+ if (_this.childContent) {
93
+ // Re-check for children on every close - content can change dynamically
94
+ _this.tabbableChildren = (0, _tabbable.tabbable)(_this.childContent);
95
+ _this.tabbableChildren.forEach(function (element) {
96
+ // If the element has an existing `tabIndex` set, make sure we can restore it
97
+ var originalTabIndex = element.getAttribute('tabIndex');
98
+ if (originalTabIndex) {
99
+ element.setAttribute('data-original-tabindex', originalTabIndex);
100
+ }
101
+ element.setAttribute('tabIndex', '-1');
102
+ });
103
+ }
104
+ });
105
+ _defineProperty(_assertThisInitialized(_this), "enableTabbing", function () {
106
+ // If no tabbable children were set, we don't need to re-enable anything
107
+ if (_this.tabbableChildren) {
108
+ _this.tabbableChildren.forEach(function (element) {
109
+ var originalTabIndex = element.getAttribute('data-original-tabindex');
110
+ if (originalTabIndex) {
111
+ // If the element originally had an existing `tabIndex` set, restore it
112
+ element.setAttribute('tabIndex', originalTabIndex);
113
+ element.removeAttribute('data-original-tabindex');
114
+ } else {
115
+ // If not, remove the tabIndex property
116
+ element.removeAttribute('tabIndex');
117
+ }
118
+ });
119
+ // Cleanup - unset the list of children
120
+ _this.tabbableChildren = null;
121
+ }
122
+ });
87
123
  _defineProperty(_assertThisInitialized(_this), "setChildContentRef", function (node) {
88
124
  _this.childContent = node;
89
125
  });
@@ -98,44 +134,55 @@ var EuiAccordionClass = /*#__PURE__*/function (_Component) {
98
134
  return _this;
99
135
  }
100
136
  _createClass(EuiAccordionClass, [{
137
+ key: "isOpen",
138
+ get: function get() {
139
+ return this.props.forceState ? this.props.forceState === 'open' : this.state.isOpen;
140
+ }
141
+ }, {
101
142
  key: "componentDidMount",
102
143
  value: function componentDidMount() {
103
144
  this.setChildContentHeight();
145
+ if (!this.isOpen) this.preventTabbing();
104
146
  }
105
147
  }, {
106
148
  key: "componentDidUpdate",
107
- value: function componentDidUpdate() {
149
+ value: function componentDidUpdate(prevProps, prevState) {
108
150
  this.setChildContentHeight();
151
+ if (prevProps.forceState === 'open' && this.props.forceState === 'closed' || prevState.isOpen === true && this.state.isOpen === false) {
152
+ this.preventTabbing();
153
+ }
154
+ if (prevProps.forceState === 'closed' && this.props.forceState === 'open' || prevState.isOpen === false && this.state.isOpen === true) {
155
+ this.enableTabbing();
156
+ }
109
157
  }
110
158
  }, {
111
159
  key: "render",
112
160
  value: function render() {
113
161
  var _buttonProps$id,
114
162
  _this2 = this;
115
- var _this$props = this.props,
116
- children = _this$props.children,
117
- buttonContent = _this$props.buttonContent,
118
- className = _this$props.className,
119
- id = _this$props.id,
120
- _this$props$element = _this$props.element,
121
- Element = _this$props$element === void 0 ? 'div' : _this$props$element,
122
- buttonClassName = _this$props.buttonClassName,
123
- buttonContentClassName = _this$props.buttonContentClassName,
124
- extraAction = _this$props.extraAction,
125
- paddingSize = _this$props.paddingSize,
126
- initialIsOpen = _this$props.initialIsOpen,
127
- arrowDisplay = _this$props.arrowDisplay,
128
- forceState = _this$props.forceState,
129
- isLoading = _this$props.isLoading,
130
- isLoadingMessage = _this$props.isLoadingMessage,
131
- isDisabled = _this$props.isDisabled,
132
- buttonProps = _this$props.buttonProps,
133
- _this$props$buttonEle = _this$props.buttonElement,
134
- _ButtonElement = _this$props$buttonEle === void 0 ? 'button' : _this$props$buttonEle,
135
- arrowProps = _this$props.arrowProps,
136
- theme = _this$props.theme,
137
- rest = _objectWithoutProperties(_this$props, _excluded);
138
- var isOpen = forceState ? forceState === 'open' : this.state.isOpen;
163
+ var _this$props3 = this.props,
164
+ children = _this$props3.children,
165
+ buttonContent = _this$props3.buttonContent,
166
+ className = _this$props3.className,
167
+ id = _this$props3.id,
168
+ _this$props3$element = _this$props3.element,
169
+ Element = _this$props3$element === void 0 ? 'div' : _this$props3$element,
170
+ buttonClassName = _this$props3.buttonClassName,
171
+ buttonContentClassName = _this$props3.buttonContentClassName,
172
+ extraAction = _this$props3.extraAction,
173
+ paddingSize = _this$props3.paddingSize,
174
+ initialIsOpen = _this$props3.initialIsOpen,
175
+ arrowDisplay = _this$props3.arrowDisplay,
176
+ forceState = _this$props3.forceState,
177
+ isLoading = _this$props3.isLoading,
178
+ isLoadingMessage = _this$props3.isLoadingMessage,
179
+ isDisabled = _this$props3.isDisabled,
180
+ buttonProps = _this$props3.buttonProps,
181
+ _this$props3$buttonEl = _this$props3.buttonElement,
182
+ _ButtonElement = _this$props3$buttonEl === void 0 ? 'button' : _this$props3$buttonEl,
183
+ arrowProps = _this$props3.arrowProps,
184
+ theme = _this$props3.theme,
185
+ rest = _objectWithoutProperties(_this$props3, _excluded);
139
186
 
140
187
  // Force button element to be a legend if the element is a fieldset
141
188
  var ButtonElement = Element === 'fieldset' ? 'legend' : _ButtonElement;
@@ -144,7 +191,7 @@ var EuiAccordionClass = /*#__PURE__*/function (_Component) {
144
191
  // Force visibility of arrow button if button element is not focusable
145
192
  var _arrowDisplay = arrowDisplay === 'none' && !buttonElementIsFocusable ? 'left' : arrowDisplay;
146
193
  var classes = (0, _classnames.default)('euiAccordion', {
147
- 'euiAccordion-isOpen': isOpen
194
+ 'euiAccordion-isOpen': this.isOpen
148
195
  }, className);
149
196
  var childrenClasses = (0, _classnames.default)('euiAccordion__children', {
150
197
  'euiAccordion__children-isLoading': isLoading
@@ -152,7 +199,7 @@ var EuiAccordionClass = /*#__PURE__*/function (_Component) {
152
199
  var buttonClasses = (0, _classnames.default)('euiAccordion__button', buttonClassName, buttonProps === null || buttonProps === void 0 ? void 0 : buttonProps.className);
153
200
  var buttonContentClasses = (0, _classnames.default)('euiAccordion__buttonContent', buttonContentClassName);
154
201
  var iconButtonClasses = (0, _classnames.default)('euiAccordion__iconButton', {
155
- 'euiAccordion__iconButton-isOpen': isOpen,
202
+ 'euiAccordion__iconButton-isOpen': this.isOpen,
156
203
  'euiAccordion__iconButton--right': _arrowDisplay === 'right'
157
204
  }, arrowProps === null || arrowProps === void 0 ? void 0 : arrowProps.className);
158
205
 
@@ -162,9 +209,9 @@ var EuiAccordionClass = /*#__PURE__*/function (_Component) {
162
209
  var childrenStyles = (0, _accordion.euiAccordionChildrenStyles)(theme);
163
210
  var cssChildrenStyles = [childrenStyles.euiAccordion__children, isLoading && childrenStyles.isLoading, paddingSize && paddingSize !== 'none' && childrenStyles[paddingSize]];
164
211
  var childWrapperStyles = (0, _accordion.euiAccordionChildWrapperStyles)(theme);
165
- var cssChildWrapperStyles = [childWrapperStyles.euiAccordion__childWrapper, isOpen && childWrapperStyles.isOpen];
212
+ var cssChildWrapperStyles = [childWrapperStyles.euiAccordion__childWrapper, this.isOpen && childWrapperStyles.isOpen];
166
213
  var iconButtonStyles = (0, _accordion.euiAccordionIconButtonStyles)(theme);
167
- var cssIconButtonStyles = [iconButtonStyles.euiAccordion__iconButton, isOpen && iconButtonStyles.isOpen, _arrowDisplay === 'right' && iconButtonStyles.arrowRight, arrowProps === null || arrowProps === void 0 ? void 0 : arrowProps.css];
214
+ var cssIconButtonStyles = [iconButtonStyles.euiAccordion__iconButton, this.isOpen && iconButtonStyles.isOpen, _arrowDisplay === 'right' && iconButtonStyles.arrowRight, arrowProps === null || arrowProps === void 0 ? void 0 : arrowProps.css];
168
215
  var optionalActionStyles = (0, _accordion.euiAccordionOptionalActionStyles)();
169
216
  var cssOptionalActionStyles = [optionalActionStyles.euiAccordion__optionalAction];
170
217
  var spinnerStyles = (0, _accordion.euiAccordionSpinnerStyles)(theme);
@@ -182,7 +229,7 @@ var EuiAccordionClass = /*#__PURE__*/function (_Component) {
182
229
  iconType: "arrowRight",
183
230
  onClick: this.onToggle,
184
231
  "aria-controls": id,
185
- "aria-expanded": isOpen,
232
+ "aria-expanded": this.isOpen,
186
233
  "aria-labelledby": buttonId,
187
234
  tabIndex: buttonElementIsFocusable ? -1 : 0,
188
235
  isDisabled: isDisabled
@@ -216,7 +263,7 @@ var EuiAccordionClass = /*#__PURE__*/function (_Component) {
216
263
  "aria-controls": id
217
264
  // `aria-expanded` is only a valid attribute on interactive controls - axe-core throws a violation otherwise
218
265
  ,
219
- "aria-expanded": ButtonElement === 'button' ? isOpen : undefined,
266
+ "aria-expanded": ButtonElement === 'button' ? this.isOpen : undefined,
220
267
  onClick: isDisabled ? undefined : this.onToggle,
221
268
  type: ButtonElement === 'button' ? 'button' : undefined,
222
269
  disabled: ButtonElement === 'button' ? isDisabled : undefined
@@ -3,10 +3,14 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- Object.defineProperty(exports, "EuiAutoSizer", {
7
- enumerable: true,
8
- get: function get() {
9
- return _auto_sizer.EuiAutoSizer;
10
- }
11
- });
12
- var _auto_sizer = require("./auto_sizer");
6
+ var _auto_sizer = require("./auto_sizer");
7
+ Object.keys(_auto_sizer).forEach(function (key) {
8
+ if (key === "default" || key === "__esModule") return;
9
+ if (key in exports && exports[key] === _auto_sizer[key]) return;
10
+ Object.defineProperty(exports, key, {
11
+ enumerable: true,
12
+ get: function get() {
13
+ return _auto_sizer[key];
14
+ }
15
+ });
16
+ });
@@ -195,9 +195,8 @@ EuiBreadcrumbContent.propTypes = {
195
195
  */
196
196
  anchorPosition: _propTypes.default.any,
197
197
  /**
198
- * Style and position alteration for arrow-less, left-aligned
199
- * attachment. Intended for use with inputs as anchors, e.g.
200
- * EuiInputPopover
198
+ * Style and position alteration for arrow-less attachment.
199
+ * Intended for use with inputs as anchors, e.g. EuiInputPopover
201
200
  */
202
201
  attachToAnchor: _propTypes.default.bool,
203
202
  buttonRef: _propTypes.default.any,
@@ -53,27 +53,35 @@ var EuiCodeBlockVirtualized = function EuiCodeBlockVirtualized(_ref) {
53
53
  }, codeProps));
54
54
  });
55
55
  }, [codeProps]);
56
- return (0, _react2.jsx)(_auto_sizer.EuiAutoSizer, {
57
- disableHeight: typeof overflowHeight === 'number'
56
+ var virtualizationProps = {
57
+ itemData: data,
58
+ itemSize: rowHeight,
59
+ itemCount: data.length,
60
+ outerElementType: VirtualizedOuterElement,
61
+ innerElementType: VirtualizedInnerElement
62
+ };
63
+ return typeof overflowHeight === 'number' ? (0, _react2.jsx)(_auto_sizer.EuiAutoSizer, {
64
+ disableHeight: true
58
65
  }, function (_ref4) {
59
- var height = _ref4.height,
60
- width = _ref4.width;
61
- return (0, _react2.jsx)(_reactWindow.FixedSizeList, {
62
- height: height !== null && height !== void 0 ? height : overflowHeight,
63
- width: width,
64
- itemData: data,
65
- itemSize: rowHeight,
66
- itemCount: data.length,
67
- outerElementType: VirtualizedOuterElement,
68
- innerElementType: VirtualizedInnerElement
69
- }, ListRow);
66
+ var width = _ref4.width;
67
+ return (0, _react2.jsx)(_reactWindow.FixedSizeList, _extends({
68
+ height: overflowHeight,
69
+ width: width
70
+ }, virtualizationProps), ListRow);
71
+ }) : (0, _react2.jsx)(_auto_sizer.EuiAutoSizer, null, function (_ref5) {
72
+ var height = _ref5.height,
73
+ width = _ref5.width;
74
+ return (0, _react2.jsx)(_reactWindow.FixedSizeList, _extends({
75
+ height: height,
76
+ width: width
77
+ }, virtualizationProps), ListRow);
70
78
  });
71
79
  };
72
80
  exports.EuiCodeBlockVirtualized = EuiCodeBlockVirtualized;
73
- var ListRow = function ListRow(_ref5) {
74
- var data = _ref5.data,
75
- index = _ref5.index,
76
- style = _ref5.style;
81
+ var ListRow = function ListRow(_ref6) {
82
+ var data = _ref6.data,
83
+ index = _ref6.index,
84
+ style = _ref6.style;
77
85
  var row = data[index];
78
86
  row.properties.style = (0, _global_styling.logicalStyles)(style);
79
87
  return (0, _utils.nodeToHtml)(row, index, data, 0);
@@ -11,6 +11,7 @@ var _classnames = _interopRequireDefault(require("classnames"));
11
11
  var _services = require("../../services");
12
12
  var _global_styling = require("../../global_styling");
13
13
  var _flyout = require("../flyout");
14
+ var _i18n = require("../i18n");
14
15
  var _header = require("../header/header.styles");
15
16
  var _context = require("./context");
16
17
  var _collapsible_nav_button = require("./collapsible_nav_button");
@@ -143,6 +144,7 @@ var EuiCollapsibleNavBeta = function EuiCollapsibleNavBeta(_ref) {
143
144
  conditionalId: id,
144
145
  suffix: 'euiCollapsibleNav'
145
146
  });
147
+ var defaultAriaLabel = (0, _i18n.useEuiI18n)('euiCollapsibleNavBeta.ariaLabel', 'Site menu');
146
148
  var buttonRef = (0, _react.useRef)(null);
147
149
  var focusTrapProps = (0, _react.useMemo)(function () {
148
150
  return _objectSpread(_objectSpread({}, _focusTrapProps), {}, {
@@ -154,7 +156,9 @@ var EuiCollapsibleNavBeta = function EuiCollapsibleNavBeta(_ref) {
154
156
  var cssStyles = [styles.euiCollapsibleNavBeta, styles[side], isPush && styles.isPush, isPush && isCollapsed && styles.isPushCollapsed, isOverlayFullWidth && styles.isOverlayFullWidth];
155
157
 
156
158
  // Wait for any fixed headers to be queried before rendering (prevents position jumping)
157
- var flyout = fixedHeadersCount !== false && (0, _react2.jsx)(_flyout.EuiFlyout, _extends({}, rest, {
159
+ var flyout = fixedHeadersCount !== false && (0, _react2.jsx)(_flyout.EuiFlyout, _extends({
160
+ "aria-label": defaultAriaLabel
161
+ }, rest, {
158
162
  // EuiCollapsibleNav is significantly less permissive than EuiFlyout
159
163
  id: flyoutID,
160
164
  css: cssStyles,
@@ -186,6 +190,15 @@ var EuiCollapsibleNavBeta = function EuiCollapsibleNavBeta(_ref) {
186
190
  exports.EuiCollapsibleNavBeta = EuiCollapsibleNavBeta;
187
191
  EuiCollapsibleNavBeta.propTypes = {
188
192
  className: _propTypes.default.string,
193
+ /**
194
+ * Overlay flyouts are considered dialogs, and dialogs must have a label.
195
+ * By default, a label of `Site menu` will be applied.
196
+ *
197
+ * If your usage of this component is not actually for site-wide navigation,
198
+ * please set your own `aria-label` or `aria-labelledby`.
199
+ *
200
+ * @default 'Site menu'
201
+ */
189
202
  "aria-label": _propTypes.default.string,
190
203
  "data-test-subj": _propTypes.default.string,
191
204
  css: _propTypes.default.any,
@@ -60,7 +60,8 @@ var EuiCollapsedNavButton = function EuiCollapsedNavButton(_ref) {
60
60
  size: "s",
61
61
  color: "text",
62
62
  href: href,
63
- onClick: onClick
63
+ onClick: onClick,
64
+ "aria-label": title
64
65
  }, linkProps, {
65
66
  // Exclusive union shenanigans
66
67
  className: buttonClassName,
@@ -73,11 +74,11 @@ var EuiCollapsedNavButton = function EuiCollapsedNavButton(_ref) {
73
74
  exports.EuiCollapsedNavButton = EuiCollapsedNavButton;
74
75
  EuiCollapsedNavButton.propTypes = {
75
76
  /**
76
- * ReactNode to render as this component's title
77
+ * Required text to render as the nav item title
77
78
  */
78
- title: _propTypes.default.node.isRequired,
79
+ title: _propTypes.default.string.isRequired,
79
80
  /**
80
- * Allows customizing title's element.
81
+ * Allows customizing the title element.
81
82
  * Consider using a heading element for better accessibility.
82
83
  * Defaults to an unsemantic `span` or `div`, depending on context.
83
84
  */
@@ -105,11 +106,11 @@ EuiCollapsedNavButton.propTypes = {
105
106
  */
106
107
  items: _propTypes.default.arrayOf(_propTypes.default.shape({
107
108
  /**
108
- * ReactNode to render as this component's title
109
+ * Required text to render as the nav item title
109
110
  */
110
- title: _propTypes.default.node,
111
+ title: _propTypes.default.string,
111
112
  /**
112
- * Allows customizing title's element.
113
+ * Allows customizing the title element.
113
114
  * Consider using a heading element for better accessibility.
114
115
  * Defaults to an unsemantic `span` or `div`, depending on context.
115
116
  */
@@ -44,11 +44,11 @@ var EuiCollapsedNavItem = function EuiCollapsedNavItem(_ref) {
44
44
  exports.EuiCollapsedNavItem = EuiCollapsedNavItem;
45
45
  EuiCollapsedNavItem.propTypes = {
46
46
  /**
47
- * ReactNode to render as this component's title
47
+ * Required text to render as the nav item title
48
48
  */
49
- title: _propTypes.default.node.isRequired,
49
+ title: _propTypes.default.string.isRequired,
50
50
  /**
51
- * Allows customizing title's element.
51
+ * Allows customizing the title element.
52
52
  * Consider using a heading element for better accessibility.
53
53
  * Defaults to an unsemantic `span` or `div`, depending on context.
54
54
  */
@@ -76,11 +76,11 @@ EuiCollapsedNavItem.propTypes = {
76
76
  */
77
77
  items: _propTypes.default.arrayOf(_propTypes.default.shape({
78
78
  /**
79
- * ReactNode to render as this component's title
79
+ * Required text to render as the nav item title
80
80
  */
81
- title: _propTypes.default.node,
81
+ title: _propTypes.default.string,
82
82
  /**
83
- * Allows customizing title's element.
83
+ * Allows customizing the title element.
84
84
  * Consider using a heading element for better accessibility.
85
85
  * Defaults to an unsemantic `span` or `div`, depending on context.
86
86
  */