@elastic/eui 59.0.0 → 59.1.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 (147) hide show
  1. package/dist/eui_theme_dark.css +2 -136
  2. package/dist/eui_theme_dark.json +0 -6
  3. package/dist/eui_theme_dark.json.d.ts +0 -6
  4. package/dist/eui_theme_dark.min.css +1 -1
  5. package/dist/eui_theme_light.css +2 -136
  6. package/dist/eui_theme_light.json +0 -6
  7. package/dist/eui_theme_light.json.d.ts +0 -6
  8. package/dist/eui_theme_light.min.css +1 -1
  9. package/es/components/accessibility/skip_link/skip_link.js +39 -2
  10. package/es/components/accessibility/skip_link/skip_link.styles.js +1 -1
  11. package/es/components/button/{button_content.js → _button_content_deprecated.js} +4 -3
  12. package/es/components/button/button.js +16 -10
  13. package/es/components/button/button_display/_button_display.js +141 -0
  14. package/es/components/button/button_display/_button_display.styles.js +53 -0
  15. package/es/components/button/button_display/_button_display_content.js +100 -0
  16. package/es/components/button/button_display/_button_display_content.styles.js +61 -0
  17. package/es/components/button/button_empty/button_empty.js +3 -2
  18. package/es/components/button/button_group/button_group.js +2 -1
  19. package/es/components/button/button_group/button_group_button.js +3 -2
  20. package/es/components/call_out/call_out.js +2 -1
  21. package/es/components/card/card.js +2 -1
  22. package/es/components/card/card_select.js +2 -1
  23. package/es/components/date_picker/auto_refresh/auto_refresh.js +2 -1
  24. package/es/components/facet/facet_button.js +31 -15
  25. package/es/components/facet/facet_button.styles.js +64 -0
  26. package/es/components/facet/facet_group.js +12 -23
  27. package/es/components/facet/facet_group.styles.js +79 -0
  28. package/es/components/header/header_links/header_link.js +2 -1
  29. package/es/components/loading/loading_spinner.js +14 -3
  30. package/es/components/loading/loading_spinner.styles.js +4 -4
  31. package/es/components/notification/notification_event.js +2 -1
  32. package/es/components/pagination/pagination_button.js +2 -1
  33. package/es/components/text/text.js +1 -3
  34. package/es/components/text/text_align.js +2 -2
  35. package/es/components/text/text_color.js +7 -3
  36. package/es/themes/amsterdam/index.js +9 -0
  37. package/es/themes/index.js +2 -1
  38. package/eui.d.ts +200 -17
  39. package/lib/components/accessibility/skip_link/skip_link.js +39 -2
  40. package/lib/components/accessibility/skip_link/skip_link.styles.js +1 -1
  41. package/lib/components/button/{button_content.js → _button_content_deprecated.js} +6 -5
  42. package/lib/components/button/button.js +19 -13
  43. package/lib/components/button/button_display/_button_display.js +146 -0
  44. package/lib/components/button/button_display/_button_display.styles.js +59 -0
  45. package/lib/components/button/button_display/_button_display_content.js +111 -0
  46. package/lib/components/button/button_display/_button_display_content.styles.js +64 -0
  47. package/lib/components/button/button_empty/button_empty.js +4 -3
  48. package/lib/components/button/button_group/button_group.js +2 -1
  49. package/lib/components/button/button_group/button_group_button.js +3 -2
  50. package/lib/components/call_out/call_out.js +2 -1
  51. package/lib/components/card/card.js +2 -1
  52. package/lib/components/card/card_select.js +2 -1
  53. package/lib/components/date_picker/auto_refresh/auto_refresh.js +2 -1
  54. package/lib/components/facet/facet_button.js +35 -15
  55. package/lib/components/facet/facet_button.styles.js +79 -0
  56. package/lib/components/facet/facet_group.js +12 -23
  57. package/lib/components/facet/facet_group.styles.js +82 -0
  58. package/lib/components/header/header_links/header_link.js +2 -1
  59. package/lib/components/loading/loading_spinner.js +14 -3
  60. package/lib/components/loading/loading_spinner.styles.js +4 -4
  61. package/lib/components/notification/notification_event.js +2 -1
  62. package/lib/components/text/text.js +1 -3
  63. package/lib/components/text/text_align.js +8 -2
  64. package/lib/components/text/text_color.js +13 -3
  65. package/lib/themes/amsterdam/index.js +18 -0
  66. package/lib/themes/index.js +21 -1
  67. package/optimize/es/components/accessibility/skip_link/skip_link.js +23 -1
  68. package/optimize/es/components/accessibility/skip_link/skip_link.styles.js +1 -1
  69. package/optimize/es/components/button/{button_content.js → _button_content_deprecated.js} +1 -1
  70. package/optimize/es/components/button/button.js +13 -8
  71. package/optimize/es/components/button/button_display/_button_display.js +73 -0
  72. package/optimize/es/components/button/button_display/_button_display.styles.js +53 -0
  73. package/optimize/es/components/button/button_display/_button_display_content.js +67 -0
  74. package/optimize/es/components/button/button_display/_button_display_content.styles.js +61 -0
  75. package/optimize/es/components/button/button_empty/button_empty.js +1 -1
  76. package/optimize/es/components/button/button_group/button_group_button.js +1 -1
  77. package/optimize/es/components/call_out/call_out.js +2 -1
  78. package/optimize/es/components/facet/facet_button.js +31 -15
  79. package/optimize/es/components/facet/facet_button.styles.js +64 -0
  80. package/optimize/es/components/facet/facet_group.js +10 -21
  81. package/optimize/es/components/facet/facet_group.styles.js +79 -0
  82. package/optimize/es/components/loading/loading_spinner.js +3 -2
  83. package/optimize/es/components/loading/loading_spinner.styles.js +4 -4
  84. package/optimize/es/components/text/text.js +1 -3
  85. package/optimize/es/components/text/text_align.js +2 -2
  86. package/optimize/es/components/text/text_color.js +7 -3
  87. package/optimize/es/themes/amsterdam/index.js +9 -0
  88. package/optimize/es/themes/index.js +2 -1
  89. package/optimize/lib/components/accessibility/skip_link/skip_link.js +25 -1
  90. package/optimize/lib/components/accessibility/skip_link/skip_link.styles.js +1 -1
  91. package/optimize/lib/components/button/{button_content.js → _button_content_deprecated.js} +3 -3
  92. package/optimize/lib/components/button/button.js +16 -11
  93. package/optimize/lib/components/button/button_display/_button_display.js +79 -0
  94. package/optimize/lib/components/button/button_display/_button_display.styles.js +59 -0
  95. package/optimize/lib/components/button/button_display/_button_display_content.js +78 -0
  96. package/optimize/lib/components/button/button_display/_button_display_content.styles.js +64 -0
  97. package/optimize/lib/components/button/button_empty/button_empty.js +2 -2
  98. package/optimize/lib/components/button/button_group/button_group_button.js +1 -1
  99. package/optimize/lib/components/call_out/call_out.js +2 -1
  100. package/optimize/lib/components/facet/facet_button.js +35 -15
  101. package/optimize/lib/components/facet/facet_button.styles.js +79 -0
  102. package/optimize/lib/components/facet/facet_group.js +10 -21
  103. package/optimize/lib/components/facet/facet_group.styles.js +82 -0
  104. package/optimize/lib/components/loading/loading_spinner.js +3 -2
  105. package/optimize/lib/components/loading/loading_spinner.styles.js +4 -4
  106. package/optimize/lib/components/text/text.js +1 -3
  107. package/optimize/lib/components/text/text_align.js +8 -2
  108. package/optimize/lib/components/text/text_color.js +13 -3
  109. package/optimize/lib/themes/amsterdam/index.js +18 -0
  110. package/optimize/lib/themes/index.js +21 -1
  111. package/package.json +1 -1
  112. package/src/components/index.scss +0 -1
  113. package/src/components/selectable/selectable_message/_selectable_message.scss +1 -0
  114. package/src/themes/amsterdam/overrides/_index.scss +0 -1
  115. package/test-env/components/accessibility/skip_link/skip_link.js +40 -2
  116. package/test-env/components/accessibility/skip_link/skip_link.styles.js +1 -1
  117. package/test-env/components/button/{button_content.js → _button_content_deprecated.js} +6 -5
  118. package/test-env/components/button/button.js +19 -13
  119. package/test-env/components/button/button_display/_button_display.js +143 -0
  120. package/test-env/components/button/button_display/_button_display.styles.js +59 -0
  121. package/test-env/components/button/button_display/_button_display_content.js +108 -0
  122. package/test-env/components/button/button_display/_button_display_content.styles.js +64 -0
  123. package/test-env/components/button/button_empty/button_empty.js +4 -3
  124. package/test-env/components/button/button_group/button_group.js +2 -1
  125. package/test-env/components/button/button_group/button_group_button.js +3 -2
  126. package/test-env/components/call_out/call_out.js +2 -1
  127. package/test-env/components/card/card.js +2 -1
  128. package/test-env/components/card/card_select.js +2 -1
  129. package/test-env/components/date_picker/auto_refresh/auto_refresh.js +2 -1
  130. package/test-env/components/facet/facet_button.js +35 -15
  131. package/test-env/components/facet/facet_button.styles.js +79 -0
  132. package/test-env/components/facet/facet_group.js +12 -23
  133. package/test-env/components/facet/facet_group.styles.js +82 -0
  134. package/test-env/components/header/header_links/header_link.js +2 -1
  135. package/test-env/components/loading/loading_spinner.js +14 -3
  136. package/test-env/components/loading/loading_spinner.styles.js +4 -4
  137. package/test-env/components/notification/notification_event.js +2 -1
  138. package/test-env/components/text/text.js +1 -3
  139. package/test-env/components/text/text_align.js +8 -2
  140. package/test-env/components/text/text_color.js +13 -3
  141. package/test-env/themes/amsterdam/index.js +18 -0
  142. package/test-env/themes/index.js +21 -1
  143. package/src/components/facet/_facet_button.scss +0 -69
  144. package/src/components/facet/_facet_group.scss +0 -24
  145. package/src/components/facet/_index.scss +0 -4
  146. package/src/components/facet/_variables.scss +0 -6
  147. package/src/themes/amsterdam/overrides/_facet.scss +0 -10
package/eui.d.ts CHANGED
@@ -2340,7 +2340,8 @@ declare module '@elastic/eui/src/components/loading/loading_content' {
2340
2340
  }
2341
2341
  declare module '@elastic/eui/src/components/loading/loading_spinner.styles' {
2342
2342
  import { UseEuiTheme } from '@elastic/eui/src/services';
2343
- export const euiLoadingSpinnerStyles: ({ euiTheme }: UseEuiTheme) => {
2343
+ import { EuiLoadingSpinnerProps } from '@elastic/eui/src/components/loading/loading_spinner';
2344
+ export const euiLoadingSpinnerStyles: ({ euiTheme }: UseEuiTheme, color?: EuiLoadingSpinnerProps['color']) => {
2344
2345
  euiLoadingSpinner: import("@emotion/utils").SerializedStyles;
2345
2346
  s: import("@emotion/utils").SerializedStyles;
2346
2347
  m: import("@emotion/utils").SerializedStyles;
@@ -2351,12 +2352,22 @@ declare module '@elastic/eui/src/components/loading/loading_spinner.styles' {
2351
2352
 
2352
2353
  }
2353
2354
  declare module '@elastic/eui/src/components/loading/loading_spinner' {
2354
- import { HTMLAttributes, FunctionComponent } from 'react';
2355
+ import { HTMLAttributes, FunctionComponent, CSSProperties } from 'react';
2355
2356
  import { CommonProps } from '@elastic/eui/src/components/common';
2356
2357
  export const SIZES: readonly ["s", "m", "l", "xl", "xxl"];
2357
2358
  export type EuiLoadingSpinnerSize = typeof SIZES[number];
2358
- export type EuiLoadingSpinnerProps = CommonProps & HTMLAttributes<HTMLDivElement> & {
2359
+ export type EuiLoadingSpinnerColor = {
2360
+ border?: CSSProperties['color'];
2361
+ highlight?: CSSProperties['color'];
2362
+ };
2363
+ export type EuiLoadingSpinnerProps = CommonProps & Omit<HTMLAttributes<HTMLDivElement>, 'color'> & {
2359
2364
  size?: EuiLoadingSpinnerSize;
2365
+ /**
2366
+ * Sets the color of the border and highlight.
2367
+ * Each key accepts any valid CSS color value as a `string`
2368
+ * See #EuiLoadingSpinnerColor
2369
+ */
2370
+ color?: EuiLoadingSpinnerColor;
2360
2371
  };
2361
2372
  export const EuiLoadingSpinner: FunctionComponent<EuiLoadingSpinnerProps>;
2362
2373
 
@@ -2407,7 +2418,7 @@ declare module '@elastic/eui/src/components/loading' {
2407
2418
  export { EuiLoadingLogo } from '@elastic/eui/src/components/loading/loading_logo';
2408
2419
 
2409
2420
  }
2410
- declare module '@elastic/eui/src/components/button/button_content' {
2421
+ declare module '@elastic/eui/src/components/button/_button_content_deprecated' {
2411
2422
  import { HTMLAttributes, FunctionComponent, Ref } from 'react';
2412
2423
  import { CommonProps } from '@elastic/eui/src/components/common';
2413
2424
  import { IconType } from '@elastic/eui/src/components/icon';
@@ -2415,8 +2426,10 @@ declare module '@elastic/eui/src/components/button/button_content' {
2415
2426
  export const ICON_SIDES: ButtonContentIconSide[];
2416
2427
  export type EuiButtonContentType = HTMLAttributes<HTMLSpanElement>;
2417
2428
  /**
2418
- * *INTERNAL ONLY*
2429
+ * *INTERNAL ONLY / DEPRECATED*
2419
2430
  * This component is simply a helper component for reuse within other button components
2431
+ * This component has been deprecated in favor of the new EuiButtonDisplayContent
2432
+ * that can be found in `src/components/button/button_display/_button_display_content.tsx`.
2420
2433
  */
2421
2434
  export interface EuiButtonContentProps extends CommonProps {
2422
2435
  /**
@@ -2429,7 +2442,8 @@ declare module '@elastic/eui/src/components/button/button_content' {
2429
2442
  iconSide?: ButtonContentIconSide;
2430
2443
  isLoading?: boolean;
2431
2444
  /**
2432
- * Object of props passed to the <span/> wrapping the content's text/children only (not icon)
2445
+ * Object of props passed to the <span/> wrapping the content's text (only if the children is a `string`)
2446
+ * It doesn't apply to the icon.
2433
2447
  */
2434
2448
  textProps?: HTMLAttributes<HTMLSpanElement> & CommonProps & {
2435
2449
  ref?: Ref<HTMLSpanElement>;
@@ -2437,7 +2451,7 @@ declare module '@elastic/eui/src/components/button/button_content' {
2437
2451
  };
2438
2452
  iconSize?: 's' | 'm';
2439
2453
  }
2440
- export const EuiButtonContent: FunctionComponent<EuiButtonContentType & EuiButtonContentProps>;
2454
+ export const EuiButtonContentDeprecated: FunctionComponent<EuiButtonContentType & EuiButtonContentProps>;
2441
2455
 
2442
2456
  }
2443
2457
  declare module '@elastic/eui/src/services/security/href_validator' {
@@ -2447,7 +2461,7 @@ declare module '@elastic/eui/src/services/security/href_validator' {
2447
2461
  declare module '@elastic/eui/src/components/button/button' {
2448
2462
  import React, { FunctionComponent, Ref, CSSProperties, HTMLAttributes, ReactNode } from 'react';
2449
2463
  import { CommonProps, ExclusiveUnion, PropsForAnchor, PropsForButton } from '@elastic/eui/src/components/common';
2450
- import { EuiButtonContentProps, EuiButtonContentType } from '@elastic/eui/src/components/button/button_content';
2464
+ import { EuiButtonContentProps, EuiButtonContentType } from '@elastic/eui/src/components/button/_button_content_deprecated';
2451
2465
  export type ButtonColor = 'primary' | 'accent' | 'success' | 'warning' | 'danger' | 'ghost' | 'text';
2452
2466
  export type ButtonSize = 's' | 'm';
2453
2467
  export const colorToClassNameMap: {
@@ -2526,13 +2540,16 @@ declare module '@elastic/eui/src/components/button/button' {
2526
2540
  baseClassName: string;
2527
2541
  };
2528
2542
  /**
2543
+ * *DEPRECATED*
2529
2544
  * EuiButtonDisplay is an internal-only component used for displaying
2530
2545
  * any element as a button.
2531
2546
  * NOTE: This component *must* be below EuiButton in the file and
2532
2547
  * EuiButton must also set a displayName for react-docgen-typescript
2533
2548
  * to correctly set EuiButton's docgenInfo and display a props table.
2549
+ * This component has been deprecated in favor of the new EuiButtonDisplay
2550
+ * that can be found in `src/components/button/button_display/_button_display.tsx`
2534
2551
  */
2535
- export const EuiButtonDisplay: React.ForwardRefExoticComponent<EuiButtonProps & React.HTMLAttributes<HTMLElement> & {
2552
+ export const EuiButtonDisplayDeprecated: React.ForwardRefExoticComponent<EuiButtonProps & React.HTMLAttributes<HTMLElement> & {
2536
2553
  /**
2537
2554
  * Provide a valid element to render the element as
2538
2555
  */
@@ -2547,7 +2564,7 @@ declare module '@elastic/eui/src/components/button/button' {
2547
2564
  declare module '@elastic/eui/src/components/button/button_empty/button_empty' {
2548
2565
  import { FunctionComponent, Ref } from 'react';
2549
2566
  import { CommonProps, ExclusiveUnion, PropsForAnchor, PropsForButton } from '@elastic/eui/src/components/common';
2550
- import { EuiButtonContentProps, EuiButtonContentType } from '@elastic/eui/src/components/button/button_content';
2567
+ import { EuiButtonContentProps, EuiButtonContentType } from '@elastic/eui/src/components/button/_button_content_deprecated';
2551
2568
  export type EuiButtonEmptyColor = 'primary' | 'danger' | 'text' | 'ghost' | 'success' | 'warning';
2552
2569
  export const COLORS: EuiButtonEmptyColor[]; const sizeToClassNameMap: {
2553
2570
  xs: string;
@@ -2749,7 +2766,7 @@ declare module '@elastic/eui/src/components/button/button_group/button_group_but
2749
2766
  declare module '@elastic/eui/src/components/button/button_group/button_group' {
2750
2767
  import { FunctionComponent, HTMLAttributes, ReactNode } from 'react';
2751
2768
  import { ButtonColor } from '@elastic/eui/src/components/button/button';
2752
- import { EuiButtonContentProps } from '@elastic/eui/src/components/button/button_content';
2769
+ import { EuiButtonContentProps } from '@elastic/eui/src/components/button/_button_content_deprecated';
2753
2770
  import { CommonProps } from '@elastic/eui/src/components/common';
2754
2771
  export interface EuiButtonGroupOptionProps extends EuiButtonContentProps, CommonProps {
2755
2772
  /**
@@ -6913,6 +6930,12 @@ declare module '@elastic/eui/src/components/accessibility/skip_link/skip_link' {
6913
6930
  * will be prepended with a hash `#` and used as the link `href`
6914
6931
  */
6915
6932
  destinationId: string;
6933
+ /**
6934
+ * If default HTML anchor link behavior is not desired (e.g. for SPAs with hash routing),
6935
+ * setting this flag to true will manually scroll to and focus the destination element
6936
+ * without changing the browser URL's hash
6937
+ */
6938
+ overrideLinkBehavior?: boolean;
6916
6939
  /**
6917
6940
  * When position is fixed, this is forced to `0`
6918
6941
  */
@@ -12744,6 +12767,146 @@ declare module '@elastic/eui/src/components/expression' {
12744
12767
  export type { EuiExpressionProps } from '@elastic/eui/src/components/expression/expression';
12745
12768
  export { EuiExpression } from '@elastic/eui/src/components/expression/expression';
12746
12769
 
12770
+ }
12771
+ declare module '@elastic/eui/src/components/facet/facet_button.styles' {
12772
+ import { UseEuiTheme } from '@elastic/eui/src/services';
12773
+ export const euiFacetButtonStyles: ({ euiTheme }: UseEuiTheme) => {
12774
+ euiFacetButton: import("@emotion/utils").SerializedStyles;
12775
+ };
12776
+ export const euiFacetButtonTextStyles: ({ euiTheme }: UseEuiTheme) => {
12777
+ euiFacetButton__text: import("@emotion/utils").SerializedStyles;
12778
+ isSelected: import("@emotion/utils").SerializedStyles;
12779
+ unSelected: import("@emotion/utils").SerializedStyles;
12780
+ };
12781
+ export const euiFacetButtonIconStyles: () => {
12782
+ euiFacetButton__icon: import("@emotion/utils").SerializedStyles;
12783
+ isDisabled: import("@emotion/utils").SerializedStyles;
12784
+ };
12785
+ export const euiFacetButtonLoadingSpinnerStyles: () => {
12786
+ euiFacetButton__loadingSpinner: import("@emotion/utils").SerializedStyles;
12787
+ };
12788
+ export const euiFacetButtonQuantityStyles: () => {
12789
+ euiFacetButton__quantity: import("@emotion/utils").SerializedStyles;
12790
+ isDisabled: import("@emotion/utils").SerializedStyles;
12791
+ };
12792
+
12793
+ }
12794
+ declare module '@elastic/eui/src/components/button/button_display/_button_display.styles' {
12795
+ import { UseEuiTheme } from '@elastic/eui/src/services';
12796
+ export const euiButtonBaseCSS: () => string;
12797
+ export const euiButtonDisplayStyles: (euiThemeContext: UseEuiTheme, minWidth: string) => {
12798
+ euiButtonDisplay: import("@emotion/utils").SerializedStyles;
12799
+ isDisabled: import("@emotion/utils").SerializedStyles;
12800
+ fullWidth: import("@emotion/utils").SerializedStyles;
12801
+ xs: import("@emotion/utils").SerializedStyles;
12802
+ s: import("@emotion/utils").SerializedStyles;
12803
+ m: import("@emotion/utils").SerializedStyles;
12804
+ };
12805
+
12806
+ }
12807
+ declare module '@elastic/eui/src/components/button/button_display/_button_display_content.styles' {
12808
+ import { UseEuiTheme } from '@elastic/eui/src/services';
12809
+ export const euiButtonDisplayContentStyles: ({ euiTheme }: UseEuiTheme) => {
12810
+ euiButtonDisplayContent: import("@emotion/utils").SerializedStyles;
12811
+ left: import("@emotion/utils").SerializedStyles;
12812
+ right: import("@emotion/utils").SerializedStyles;
12813
+ euiButtonDisplayContent__spinner: import("@emotion/utils").SerializedStyles;
12814
+ euiButtonDisplayContent__icon: import("@emotion/utils").SerializedStyles;
12815
+ isDisabled: import("@emotion/utils").SerializedStyles;
12816
+ };
12817
+
12818
+ }
12819
+ declare module '@elastic/eui/src/components/button/button_display/_button_display_content' {
12820
+ import { HTMLAttributes, FunctionComponent, Ref } from 'react';
12821
+ import { CommonProps } from '@elastic/eui/src/components/common';
12822
+ import { IconType } from '@elastic/eui/src/components/icon';
12823
+ export type ButtonContentIconSide = 'left' | 'right' | undefined;
12824
+ export type EuiButtonDisplayContentType = HTMLAttributes<HTMLSpanElement>;
12825
+ /**
12826
+ * *INTERNAL ONLY*
12827
+ * This component is simply a helper component for reuse within other button components.
12828
+ */
12829
+ export interface EuiButtonDisplayContentProps extends CommonProps {
12830
+ /**
12831
+ * Any `type` accepted by EuiIcon
12832
+ */
12833
+ iconType?: IconType;
12834
+ /**
12835
+ * Can only be one side `left` or `right`
12836
+ */
12837
+ iconSide?: ButtonContentIconSide;
12838
+ isLoading?: boolean;
12839
+ /**
12840
+ * Object of props passed to the <span/> wrapping the content's text/children only (not icon)
12841
+ */
12842
+ textProps?: HTMLAttributes<HTMLSpanElement> & CommonProps & {
12843
+ ref?: Ref<HTMLSpanElement>;
12844
+ 'data-text'?: string;
12845
+ };
12846
+ iconSize?: 's' | 'm';
12847
+ isDisabled: boolean;
12848
+ }
12849
+ export const EuiButtonDisplayContent: FunctionComponent<EuiButtonDisplayContentType & EuiButtonDisplayContentProps>;
12850
+
12851
+ }
12852
+ declare module '@elastic/eui/src/components/button/button_display/_button_display' {
12853
+ import React, { CSSProperties, HTMLAttributes, ReactNode, Ref } from 'react';
12854
+ import { CommonProps, ExclusiveUnion, PropsForAnchor, PropsForButton } from '@elastic/eui/src/components/common';
12855
+ import { EuiButtonDisplayContentProps, EuiButtonDisplayContentType } from '@elastic/eui/src/components/button/button_display/_button_display_content';
12856
+ /**
12857
+ * Extends EuiButtonDisplayContentProps which provides
12858
+ * `iconType`, `iconSide`, and `textProps`
12859
+ */
12860
+ export interface EuiButtonDisplayCommonProps extends EuiButtonDisplayContentProps, CommonProps {
12861
+ children?: ReactNode;
12862
+ size?: 'xs' | 's' | 'm';
12863
+ /**
12864
+ * Applies the boolean state as the `aria-pressed` property to create a toggle button.
12865
+ * *Only use when the readable text does not change between states.*
12866
+ */
12867
+ isSelected?: boolean;
12868
+ /**
12869
+ * Extends the button to 100% width
12870
+ */
12871
+ fullWidth?: boolean;
12872
+ /**
12873
+ * Override the default minimum width
12874
+ */
12875
+ minWidth?: CSSProperties['minWidth'];
12876
+ /**
12877
+ * Force disables the button and changes the icon to a loading spinner
12878
+ */
12879
+ isLoading?: boolean;
12880
+ /**
12881
+ * Object of props passed to the <span/> wrapping the button's content
12882
+ */
12883
+ contentProps?: EuiButtonDisplayContentType;
12884
+ style?: CSSProperties;
12885
+ }
12886
+ export type EuiButtonDisplayPropsForAnchor = PropsForAnchor<EuiButtonDisplayCommonProps, {
12887
+ buttonRef?: Ref<HTMLAnchorElement>;
12888
+ }>;
12889
+ export type EuiButtonDisplayPropsForButton = PropsForButton<EuiButtonDisplayCommonProps, {
12890
+ buttonRef?: Ref<HTMLButtonElement>;
12891
+ }>;
12892
+ export type Props = ExclusiveUnion<EuiButtonDisplayPropsForAnchor, EuiButtonDisplayPropsForButton>;
12893
+ export type EuiButtonDisplayProps = EuiButtonDisplayCommonProps & HTMLAttributes<HTMLElement> & {
12894
+ /**
12895
+ * Provide a valid element to render the element as
12896
+ */
12897
+ element?: 'a' | 'button' | 'span' | 'label';
12898
+ };
12899
+ /**
12900
+ * EuiButtonDisplay is an internal-only component used for displaying
12901
+ * any element as a button.
12902
+ */
12903
+ export const EuiButtonDisplay: React.ForwardRefExoticComponent<EuiButtonDisplayCommonProps & React.HTMLAttributes<HTMLElement> & {
12904
+ /**
12905
+ * Provide a valid element to render the element as
12906
+ */
12907
+ element?: "a" | "button" | "label" | "span" | undefined;
12908
+ } & React.RefAttributes<HTMLElement>>;
12909
+
12747
12910
  }
12748
12911
  declare module '@elastic/eui/src/components/facet/facet_button' {
12749
12912
  import { FunctionComponent, HTMLAttributes, MouseEventHandler, ReactNode, RefCallback } from 'react';
@@ -12775,25 +12938,40 @@ declare module '@elastic/eui/src/components/facet/facet_button' {
12775
12938
  }
12776
12939
  export const EuiFacetButton: FunctionComponent<EuiFacetButtonProps>;
12777
12940
 
12941
+ }
12942
+ declare module '@elastic/eui/src/components/facet/facet_group.styles' {
12943
+ import { UseEuiTheme } from '@elastic/eui/src/services';
12944
+ import { EuiFacetGroupLayout } from '@elastic/eui/src/components/facet/facet_group';
12945
+ export const euiFacetGroupStyles: ({ euiTheme }: UseEuiTheme, layout: EuiFacetGroupLayout) => {
12946
+ euiFacetGroup: import("@emotion/utils").SerializedStyles;
12947
+ none: import("@emotion/utils").SerializedStyles;
12948
+ s: import("@emotion/utils").SerializedStyles;
12949
+ m: import("@emotion/utils").SerializedStyles;
12950
+ l: import("@emotion/utils").SerializedStyles;
12951
+ horizontal: import("@emotion/utils").SerializedStyles;
12952
+ vertical: import("@emotion/utils").SerializedStyles;
12953
+ };
12954
+
12778
12955
  }
12779
12956
  declare module '@elastic/eui/src/components/facet/facet_group' {
12780
12957
  import { FunctionComponent, HTMLAttributes } from 'react';
12781
- import { CommonProps } from '@elastic/eui/src/components/common'; type FacetGroupLayout = 'vertical' | 'horizontal';
12782
- export const LAYOUTS: FacetGroupLayout[]; type FacetGroupGutterSize = 'none' | 's' | 'm' | 'l';
12783
- export const GUTTER_SIZES: FacetGroupGutterSize[];
12958
+ import { CommonProps } from '@elastic/eui/src/components/common';
12959
+ export const LAYOUTS: readonly ["vertical", "horizontal"];
12960
+ export type EuiFacetGroupLayout = typeof LAYOUTS[number];
12961
+ export const GUTTER_SIZES: readonly ["none", "s", "m", "l"];
12962
+ export type EuiFacetGroupGutterSizes = typeof GUTTER_SIZES[number];
12784
12963
  export type EuiFacetGroupProps = CommonProps & HTMLAttributes<HTMLDivElement> & {
12785
12964
  /**
12786
12965
  * Vertically in a column, or horizontally in one wrapping line
12787
12966
  */
12788
- layout?: FacetGroupLayout;
12967
+ layout?: EuiFacetGroupLayout;
12789
12968
  /**
12790
12969
  * Distance between facet buttons.
12791
12970
  * Horizontal layout always adds more distance horizontally between buttons.
12792
12971
  */
12793
- gutterSize?: FacetGroupGutterSize;
12972
+ gutterSize?: EuiFacetGroupGutterSizes;
12794
12973
  };
12795
12974
  export const EuiFacetGroup: FunctionComponent<EuiFacetGroupProps>;
12796
- export {};
12797
12975
 
12798
12976
  }
12799
12977
  declare module '@elastic/eui/src/components/facet' {
@@ -14450,11 +14628,16 @@ declare module '@elastic/eui/src/themes/themes' {
14450
14628
  export const EUI_THEMES: EUI_THEME[];
14451
14629
  export const isDefaultTheme: (name: string) => boolean;
14452
14630
 
14631
+ }
14632
+ declare module '@elastic/eui/src/themes/amsterdam' {
14633
+ export * from '@elastic/eui/src/themes/amsterdam/global_styling/mixins/shadow';
14634
+
14453
14635
  }
14454
14636
  declare module '@elastic/eui/src/themes' {
14455
14637
  export type { EUI_THEME } from '@elastic/eui/src/themes/themes';
14456
14638
  export { EUI_THEMES, isDefaultTheme } from '@elastic/eui/src/themes/themes';
14457
14639
  export { AMSTERDAM_NAME_KEY, EuiThemeAmsterdam } from '@elastic/eui/src/themes/amsterdam/theme';
14640
+ export * from '@elastic/eui/src/themes/amsterdam';
14458
14641
 
14459
14642
  }
14460
14643
  declare module '@elastic/eui/src/components/provider/provider' {
@@ -21,12 +21,18 @@ var _skip_link = require("./skip_link.styles");
21
21
 
22
22
  var _react2 = require("@emotion/react");
23
23
 
24
- var _excluded = ["destinationId", "tabIndex", "position", "children", "className"];
24
+ var _excluded = ["destinationId", "overrideLinkBehavior", "tabIndex", "position", "children", "className"];
25
25
 
26
26
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
27
27
 
28
28
  function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
29
29
 
30
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
31
+
32
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
33
+
34
+ function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
35
+
30
36
  function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
31
37
 
32
38
  function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
@@ -36,6 +42,7 @@ exports.POSITIONS = POSITIONS;
36
42
 
37
43
  var EuiSkipLink = function EuiSkipLink(_ref) {
38
44
  var destinationId = _ref.destinationId,
45
+ overrideLinkBehavior = _ref.overrideLinkBehavior,
39
46
  tabIndex = _ref.tabIndex,
40
47
  _ref$position = _ref.position,
41
48
  position = _ref$position === void 0 ? 'static' : _ref$position,
@@ -56,6 +63,22 @@ var EuiSkipLink = function EuiSkipLink(_ref) {
56
63
  };
57
64
  }
58
65
 
66
+ if (overrideLinkBehavior) {
67
+ optionalProps = _objectSpread(_objectSpread({}, optionalProps), {}, {
68
+ onClick: function onClick(e) {
69
+ e.preventDefault();
70
+ var destinationEl = document.getElementById(destinationId);
71
+ if (!destinationEl) return;
72
+ destinationEl.scrollIntoView();
73
+ destinationEl.tabIndex = -1; // Ensure the destination content is focusable
74
+
75
+ destinationEl.focus({
76
+ preventScroll: true
77
+ }); // Scrolling is already handled above, and focus's autoscroll behaves oddly around fixed headers
78
+ }
79
+ });
80
+ }
81
+
59
82
  return (0, _react2.jsx)(_screen_reader_only.EuiScreenReaderOnly, {
60
83
  showOnFocus: true
61
84
  }, (0, _react2.jsx)(_button.EuiButton, _extends({
@@ -94,6 +117,19 @@ EuiSkipLink.propTypes = {
94
117
  */
95
118
  destinationId: _propTypes.default.string.isRequired,
96
119
 
120
+ /**
121
+ * If default HTML anchor link behavior is not desired (e.g. for SPAs with hash routing),
122
+ * setting this flag to true will manually scroll to and focus the destination element
123
+ * without changing the browser URL's hash
124
+ */
125
+
126
+ /**
127
+ * If default HTML anchor link behavior is not desired (e.g. for SPAs with hash routing),
128
+ * setting this flag to true will manually scroll to and focus the destination element
129
+ * without changing the browser URL's hash
130
+ */
131
+ overrideLinkBehavior: _propTypes.default.bool,
132
+
97
133
  /**
98
134
  * When position is fixed, this is forced to `0`
99
135
  */
@@ -162,7 +198,8 @@ EuiSkipLink.propTypes = {
162
198
  iconSide: _propTypes.default.oneOf(["left", "right"]),
163
199
 
164
200
  /**
165
- * Object of props passed to the <span/> wrapping the content's text/children only (not icon)
201
+ * Object of props passed to the <span/> wrapping the content's text (only if the children is a `string`)
202
+ * It doesn't apply to the icon.
166
203
  */
167
204
  textProps: _propTypes.default.shape({
168
205
  className: _propTypes.default.string,
@@ -35,7 +35,7 @@ var euiSkipLinkStyles = function euiSkipLinkStyles(_ref3) {
35
35
  // Set positions on focus only as to not override screenReaderOnly position
36
36
  // When positioned absolutely, consumers still need to tell it WHERE (top,left,etc...)
37
37
  absolute: _ref,
38
- fixed: /*#__PURE__*/(0, _react.css)("&:focus{position:fixed;inset-block-start:", euiTheme.size.xs, ";inset-inline-start:", euiTheme.size.xs, ";z-index:", Number(euiTheme.levels.header) + 1, ";};label:fixed;")
38
+ fixed: /*#__PURE__*/(0, _react.css)("position:fixed!important;&:focus{inset-block-start:", euiTheme.size.xs, ";inset-inline-start:", euiTheme.size.xs, ";z-index:", Number(euiTheme.levels.header) + 1, ";};label:fixed;")
39
39
  };
40
40
  };
41
41
 
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.ICON_SIDES = exports.EuiButtonContent = void 0;
6
+ exports.ICON_SIDES = exports.EuiButtonContentDeprecated = void 0;
7
7
 
8
8
  var _react = _interopRequireDefault(require("react"));
9
9
 
@@ -36,7 +36,7 @@ var iconSideToClassNameMap = {
36
36
  var ICON_SIDES = (0, _common.keysOf)(iconSideToClassNameMap);
37
37
  exports.ICON_SIDES = ICON_SIDES;
38
38
 
39
- var EuiButtonContent = function EuiButtonContent(_ref) {
39
+ var EuiButtonContentDeprecated = function EuiButtonContentDeprecated(_ref) {
40
40
  var children = _ref.children,
41
41
  textProps = _ref.textProps,
42
42
  _ref$isLoading = _ref.isLoading,
@@ -72,8 +72,8 @@ var EuiButtonContent = function EuiButtonContent(_ref) {
72
72
  }), buttonIcon, (0, _react2.jsx)("span", textProps, children));
73
73
  };
74
74
 
75
- exports.EuiButtonContent = EuiButtonContent;
76
- EuiButtonContent.propTypes = {
75
+ exports.EuiButtonContentDeprecated = EuiButtonContentDeprecated;
76
+ EuiButtonContentDeprecated.propTypes = {
77
77
  /**
78
78
  * Any `type` accepted by EuiIcon
79
79
  */
@@ -86,7 +86,8 @@ EuiButtonContent.propTypes = {
86
86
  isLoading: _propTypes.default.bool,
87
87
 
88
88
  /**
89
- * Object of props passed to the <span/> wrapping the content's text/children only (not icon)
89
+ * Object of props passed to the <span/> wrapping the content's text (only if the children is a `string`)
90
+ * It doesn't apply to the icon.
90
91
  */
91
92
  textProps: _propTypes.default.shape({
92
93
  className: _propTypes.default.string,
@@ -5,7 +5,7 @@ function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "functi
5
5
  Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
- exports.sizeToClassNameMap = exports.colorToClassNameMap = exports.SIZES = exports.EuiButtonDisplay = exports.EuiButton = exports.COLORS = void 0;
8
+ exports.sizeToClassNameMap = exports.colorToClassNameMap = exports.SIZES = exports.EuiButtonDisplayDeprecated = exports.EuiButton = exports.COLORS = void 0;
9
9
 
10
10
  var _react = _interopRequireWildcard(require("react"));
11
11
 
@@ -17,7 +17,7 @@ var _common = require("../common");
17
17
 
18
18
  var _services = require("../../services");
19
19
 
20
- var _button_content = require("./button_content");
20
+ var _button_content_deprecated = require("./_button_content_deprecated");
21
21
 
22
22
  var _href_validator = require("../../services/security/href_validator");
23
23
 
@@ -115,11 +115,13 @@ var EuiButton = function EuiButton(_ref) {
115
115
  relObj.type = type;
116
116
  }
117
117
 
118
- return (0, _react2.jsx)(EuiButtonDisplay, _extends({
119
- element: element,
120
- baseClassName: "euiButton",
121
- ref: buttonRef
122
- }, elementProps, relObj, rest));
118
+ return (// eslint-disable-next-line react/jsx-pascal-case
119
+ (0, _react2.jsx)(EuiButtonDisplayDeprecated, _extends({
120
+ element: element,
121
+ baseClassName: "euiButton",
122
+ ref: buttonRef
123
+ }, elementProps, relObj, rest))
124
+ );
123
125
  };
124
126
 
125
127
  exports.EuiButton = EuiButton;
@@ -219,7 +221,8 @@ EuiButton.propTypes = {
219
221
  iconSide: _propTypes.default.oneOf(["left", "right"]),
220
222
 
221
223
  /**
222
- * Object of props passed to the <span/> wrapping the content's text/children only (not icon)
224
+ * Object of props passed to the <span/> wrapping the content's text (only if the children is a `string`)
225
+ * It doesn't apply to the icon.
223
226
  */
224
227
  textProps: _propTypes.default.shape({
225
228
  className: _propTypes.default.string,
@@ -237,13 +240,16 @@ EuiButton.propTypes = {
237
240
  EuiButton.displayName = 'EuiButton';
238
241
 
239
242
  /**
243
+ * *DEPRECATED*
240
244
  * EuiButtonDisplay is an internal-only component used for displaying
241
245
  * any element as a button.
242
246
  * NOTE: This component *must* be below EuiButton in the file and
243
247
  * EuiButton must also set a displayName for react-docgen-typescript
244
248
  * to correctly set EuiButton's docgenInfo and display a props table.
249
+ * This component has been deprecated in favor of the new EuiButtonDisplay
250
+ * that can be found in `src/components/button/button_display/_button_display.tsx`
245
251
  */
246
- var EuiButtonDisplay = /*#__PURE__*/(0, _react.forwardRef)(function (_ref2, ref) {
252
+ var EuiButtonDisplayDeprecated = /*#__PURE__*/(0, _react.forwardRef)(function (_ref2, ref) {
247
253
  var _ref2$element = _ref2.element,
248
254
  element = _ref2$element === void 0 ? 'button' : _ref2$element,
249
255
  baseClassName = _ref2.baseClassName,
@@ -277,7 +283,7 @@ var EuiButtonDisplay = /*#__PURE__*/(0, _react.forwardRef)(function (_ref2, ref)
277
283
 
278
284
  var contentClassNames = (0, _classnames.default)('euiButton__content', contentProps && contentProps.className);
279
285
  var textClassNames = (0, _classnames.default)('euiButton__text', textProps && textProps.className);
280
- var innerNode = (0, _react2.jsx)(_button_content.EuiButtonContent, _extends({
286
+ var innerNode = (0, _react2.jsx)(_button_content_deprecated.EuiButtonContentDeprecated, _extends({
281
287
  isLoading: isLoading,
282
288
  iconType: iconType,
283
289
  iconSide: iconSide,
@@ -304,8 +310,8 @@ var EuiButtonDisplay = /*#__PURE__*/(0, _react.forwardRef)(function (_ref2, ref)
304
310
  ref: ref
305
311
  }, rest), innerNode);
306
312
  });
307
- exports.EuiButtonDisplay = EuiButtonDisplay;
308
- EuiButtonDisplay.propTypes = {
313
+ exports.EuiButtonDisplayDeprecated = EuiButtonDisplayDeprecated;
314
+ EuiButtonDisplayDeprecated.propTypes = {
309
315
  children: _propTypes.default.node,
310
316
 
311
317
  /**
@@ -378,4 +384,4 @@ EuiButtonDisplay.propTypes = {
378
384
  */
379
385
  baseClassName: _propTypes.default.string.isRequired
380
386
  };
381
- EuiButtonDisplay.displayName = 'EuiButtonDisplay';
387
+ EuiButtonDisplayDeprecated.displayName = 'EuiButtonDisplay';