@splunk/react-ui 4.31.0 → 4.32.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.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@splunk/react-ui",
3
- "version": "4.31.0",
3
+ "version": "4.32.0",
4
4
  "description": "Library of React components that implement the Splunk design language",
5
5
  "license": "Apache-2.0",
6
6
  "author": "Splunk Inc.",
@@ -43,8 +43,8 @@
43
43
  "@dnd-kit/modifiers": "^7.0.0",
44
44
  "@dnd-kit/sortable": "^8.0.0",
45
45
  "@dnd-kit/utilities": "^3.2.2",
46
- "@splunk/react-icons": "^4.4.0",
47
- "@splunk/themes": "^0.18.0",
46
+ "@splunk/react-icons": "^4.5.0",
47
+ "@splunk/themes": "^0.19.0",
48
48
  "@splunk/ui-utils": "^1.6.0",
49
49
  "commonmark": "^0.30.0",
50
50
  "commonmark-react-renderer": "^4.3.2",
@@ -61,9 +61,9 @@
61
61
  "@babel/core": "^7.2.0",
62
62
  "@babel/plugin-transform-runtime": "^7.18.6",
63
63
  "@splunk/babel-preset": "^4.0.0",
64
- "@splunk/docs-gen": "1.0.0-beta.10",
64
+ "@splunk/docs-gen": "1.0.0-beta.11",
65
65
  "@splunk/eslint-config": "^4.0.0",
66
- "@splunk/react-docs": "1.0.0-beta.14",
66
+ "@splunk/react-docs": "1.0.0-beta.15",
67
67
  "@splunk/stylelint-config": "^4.0.0",
68
68
  "@splunk/test-runner-utils": "^0.4.1",
69
69
  "@splunk/webpack-configs": "^7.0.2",
@@ -0,0 +1,27 @@
1
+ import { AnyTheme, Interpolation, InterpolationResult, ThemedProps } from '@splunk/themes';
2
+ declare const buttonVariants: readonly ["primary", "secondary", "destructive", "ghost"];
3
+ type ButtonVariant = typeof buttonVariants[number];
4
+ type ButtonStyleProps = ThemedProps & Partial<{
5
+ $append: boolean;
6
+ $prepend: boolean;
7
+ $selected: boolean;
8
+ $error: boolean;
9
+ disabled: boolean;
10
+ }>;
11
+ interface ButtonParams<T extends AnyTheme, A extends ThemedProps> {
12
+ background?: InterpolationResult<T, A>;
13
+ backgroundActive?: InterpolationResult<T, A>;
14
+ backgroundDisabled?: InterpolationResult<T, A>;
15
+ backgroundDisabledSelected?: InterpolationResult<T, A>;
16
+ backgroundHover?: InterpolationResult<T, A>;
17
+ backgroundSelected?: InterpolationResult<T, A>;
18
+ borderColor?: InterpolationResult<T, A>;
19
+ borderColorDisabled?: InterpolationResult<T, A>;
20
+ color?: InterpolationResult<T, A>;
21
+ colorDisabled?: InterpolationResult<T, A>;
22
+ }
23
+ declare function button<T extends AnyTheme, A extends ButtonStyleProps>(): Interpolation<T, A>;
24
+ declare function button<T extends AnyTheme, A extends ButtonStyleProps>(variant: ButtonVariant): Interpolation<T, A>;
25
+ declare function button<T extends AnyTheme, A extends ButtonStyleProps>(params: ButtonParams<T, A>): Interpolation<T, A>;
26
+ declare function button<T extends AnyTheme, A extends ButtonStyleProps>(variant: ButtonVariant, additionalParams: ButtonParams<T, A>): Interpolation<T, A>;
27
+ export default button;
@@ -35,7 +35,7 @@ interface CardPropsBase {
35
35
  */
36
36
  openInNewContext?: boolean;
37
37
  /**
38
- * Renders `Card` as selected if set to `true`.
38
+ * Renders `Card` as selected if set to `true`. Use only when `onClick` is also provided.
39
39
  */
40
40
  selected?: boolean;
41
41
  /**
@@ -50,24 +50,32 @@ interface CardPropsBase {
50
50
  /** Returns a value on click. Use when composing or if you have more than one selectable `Card`. */
51
51
  value?: any;
52
52
  }
53
- declare const defaultProps: Required<Pick<CardPropsBase, 'openInNewContext' | 'selected' | 'showBorder'>>;
53
+ declare const defaultProps: Required<Pick<CardPropsBase, 'openInNewContext' | 'showBorder'>>;
54
54
  interface CardPropsBaseNonClickable extends CardPropsBase {
55
55
  elementRef?: React.Ref<HTMLDivElement>;
56
56
  onClick?: never;
57
+ selected?: never;
57
58
  to?: never;
58
59
  }
60
+ interface CardPropsBaseOnClickClickable extends CardPropsBase {
61
+ elementRef?: React.Ref<HTMLAnchorElement | HTMLButtonElement>;
62
+ onClick: CardClickHandler;
63
+ selected?: boolean;
64
+ to?: string;
65
+ }
59
66
  interface CardPropsBaseClickable extends CardPropsBase {
60
67
  elementRef?: React.Ref<HTMLAnchorElement | HTMLButtonElement>;
61
68
  onClick?: CardClickHandler;
69
+ selected?: never;
62
70
  to?: string;
63
71
  }
64
72
  type CardNonClickableProps = ClassComponentProps<CardPropsBaseNonClickable, typeof defaultProps, 'div'>;
65
- type CardClickableButtonProps = ClassComponentProps<CardPropsBaseClickable, typeof defaultProps, 'button'>;
66
- type CardClickableLinkProps = ClassComponentProps<CardPropsBaseClickable, typeof defaultProps, 'a', 'href'>;
73
+ type CardClickableButtonProps = ClassComponentProps<CardPropsBaseOnClickClickable | CardPropsBaseClickable, typeof defaultProps, 'button'>;
74
+ type CardClickableLinkProps = ClassComponentProps<CardPropsBaseOnClickClickable | CardPropsBaseClickable, typeof defaultProps, 'a', 'href'>;
67
75
  type CardProps = CardNonClickableProps | CardClickableButtonProps | CardClickableLinkProps;
68
76
  declare class Card extends Component<CardProps, {}> {
69
77
  static propTypes: React.WeakValidationMap<CardProps>;
70
- static defaultProps: Required<Pick<CardPropsBase, "selected" | "openInNewContext" | "showBorder">>;
78
+ static defaultProps: Required<Pick<CardPropsBase, "openInNewContext" | "showBorder">>;
71
79
  static Header: typeof Header;
72
80
  static Body: typeof Body;
73
81
  static Footer: typeof Footer;
@@ -1,6 +1,6 @@
1
1
  import React, { Component } from 'react';
2
2
  import { legacyRefMode } from '@splunk/react-ui/Dropdown';
3
- import { NavigationContext, NavigationProviderClickHandler } from './NavigationProvider';
3
+ import { NavigationContext } from './NavigationProvider';
4
4
  import { ClassComponentProps } from '../utils/types';
5
5
  export declare const isRootRelativeLink: (to: string | undefined) => boolean;
6
6
  export declare const isInternalLink: (to: string | undefined) => boolean;
@@ -56,14 +56,10 @@ declare class Clickable extends Component<ClickableProps> {
56
56
  private el;
57
57
  context: React.ContextType<typeof NavigationContext>;
58
58
  static contextType: React.Context<{
59
- onClick?: NavigationProviderClickHandler | undefined;
59
+ onClick?: import("./NavigationProvider").NavigationProviderClickHandler | undefined;
60
+ onLinkClick?: import("./NavigationProvider").NavigationProviderClickHandler | undefined;
60
61
  prefix?: string | undefined;
61
- transformUrl?: import("./NavigationProvider").NavigationProviderTransformUrl | undefined; /**
62
- * The text representation of the navigational link.
63
- * This should be provided if child content is not a string.
64
- *
65
- * Ignored if not in link mode.
66
- */
62
+ transformUrl?: import("./NavigationProvider").NavigationProviderTransformUrl | undefined;
67
63
  }>;
68
64
  static propTypes: React.WeakValidationMap<ClickableProps>;
69
65
  static defaultProps: Required<Pick<ClickablePropsBase, "disabled" | "openInNewContext">>;
@@ -18,6 +18,11 @@ interface NavigationProviderPropsBase {
18
18
  * The function takes the event and an options argument with `to` and `openInNewContext`
19
19
  */
20
20
  onClick?: NavigationProviderClickHandler;
21
+ /**
22
+ * Triggers when a link is clicked, even if the link has its own `onClick` handler.
23
+ * The function takes the event and an options argument with `to` and `openInNewContext`
24
+ */
25
+ onLinkClick?: NavigationProviderClickHandler;
21
26
  /**
22
27
  * @deprecated Use the `transformUrl` prop instead.
23
28
  * If set, all links that use the NavigationProvider's context will have this prepended to them.
@@ -39,6 +44,7 @@ interface NavigationProviderPropsWithoutPrefix extends NavigationProviderPropsBa
39
44
  }
40
45
  type NavigationContextValue = {
41
46
  onClick?: NavigationProviderClickHandler;
47
+ onLinkClick?: NavigationProviderClickHandler;
42
48
  prefix?: string;
43
49
  transformUrl?: NavigationProviderTransformUrl;
44
50
  };
@@ -48,11 +54,12 @@ type NavigationProviderProps = NavigationProviderPropsWithPrefix | NavigationPro
48
54
  * Used to provide an override for the `onClick` for links for single page applications so that
49
55
  * internal links can navigate without a page reload.
50
56
  */
51
- declare function NavigationProvider({ children, onClick, prefix, transformUrl }: NavigationProviderProps): JSX.Element;
57
+ declare function NavigationProvider({ children, onClick, onLinkClick, prefix, transformUrl, }: NavigationProviderProps): JSX.Element;
52
58
  declare namespace NavigationProvider {
53
59
  var propTypes: {
54
60
  children: PropTypes.Requireable<PropTypes.ReactNodeLike>;
55
61
  onClick: PropTypes.Requireable<(...args: any[]) => any>;
62
+ onLinkClick: PropTypes.Requireable<(...args: any[]) => any>;
56
63
  prefix: PropTypes.Requireable<string>;
57
64
  transformUrl: PropTypes.Requireable<(...args: any[]) => any>;
58
65
  };