@splunk/react-ui 5.2.0 → 5.4.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 (114) hide show
  1. package/Accordion.js +31 -31
  2. package/Avatar.js +64 -59
  3. package/Box.js +2 -1
  4. package/Breadcrumbs.js +66 -63
  5. package/ButtonSimple.js +52 -52
  6. package/CHANGELOG.md +47 -0
  7. package/Calendar.js +8 -4
  8. package/CardLayout.js +39 -36
  9. package/Checkbox.d.ts +2 -0
  10. package/Checkbox.js +350 -0
  11. package/Clickable.js +5 -6
  12. package/Code.js +451 -536
  13. package/CollapsiblePanel.js +184 -210
  14. package/Color.js +903 -1023
  15. package/ControlGroup.js +2 -1
  16. package/Date.js +123 -119
  17. package/DefinitionList.js +100 -77
  18. package/Dropdown.js +2 -2
  19. package/DualListbox.js +409 -353
  20. package/File.js +102 -99
  21. package/FormRows.js +13 -11
  22. package/JSONTree.js +679 -1391
  23. package/Link.js +7 -7
  24. package/MIGRATION.md +27 -0
  25. package/Markdown.js +171 -156
  26. package/Menu.js +107 -100
  27. package/Modal.js +3 -3
  28. package/Multiselect.js +2698 -2767
  29. package/Paginator.js +2 -1
  30. package/Popover.js +201 -196
  31. package/Resize.js +11 -8
  32. package/ResultsMenu.js +913 -1029
  33. package/ScreenReaderContent.js +86 -130
  34. package/Scroll.js +366 -424
  35. package/Search.js +131 -127
  36. package/Select.js +1741 -1831
  37. package/Slider.js +1 -1
  38. package/SlidingPanels.js +129 -127
  39. package/StepBar.js +123 -97
  40. package/Switch.js +214 -242
  41. package/TabBar.js +10 -10
  42. package/Table.js +1255 -1248
  43. package/Text.js +180 -206
  44. package/TextArea.js +596 -675
  45. package/Tooltip.js +144 -139
  46. package/Tree.js +638 -682
  47. package/package.json +15 -16
  48. package/tsconfig.check-docs.json +8 -0
  49. package/types/src/Avatar/docs/examples/Basic.d.ts +1 -1
  50. package/types/src/Breadcrumbs/Breadcrumbs.d.ts +1 -5
  51. package/types/src/Breadcrumbs/BreadcrumbsContext.d.ts +7 -0
  52. package/types/src/Breadcrumbs/Item.d.ts +1 -1
  53. package/types/src/ButtonSimple/mixin.d.ts +1 -1
  54. package/types/src/Checkbox/Checkbox.d.ts +90 -0
  55. package/types/src/Checkbox/docs/examples/Basic.d.ts +7 -0
  56. package/types/src/Checkbox/docs/examples/Disabled.d.ts +6 -0
  57. package/types/src/Checkbox/docs/examples/Error.d.ts +6 -0
  58. package/types/src/Checkbox/docs/examples/Uncontrolled.d.ts +7 -0
  59. package/types/src/Checkbox/index.d.ts +2 -0
  60. package/types/src/Code/Code.d.ts +4 -1
  61. package/types/src/Code/LineHighlights.d.ts +1 -0
  62. package/types/src/Code/LineNumbers.d.ts +2 -1
  63. package/types/src/Code/docs/examples/CustomizeContainer.d.ts +7 -0
  64. package/types/src/ControlGroup/docs/examples/CustomizedLabelTarget.d.ts +3 -3
  65. package/types/src/Date/Date.d.ts +7 -1
  66. package/types/src/DefinitionList/DefinitionList.d.ts +7 -2
  67. package/types/src/DefinitionList/DefinitionListContext.d.ts +1 -1
  68. package/types/src/DefinitionList/docs/examples/StackedLayout.d.ts +6 -0
  69. package/types/src/DualListbox/DualListbox.d.ts +1 -1
  70. package/types/src/DualListbox/Label.d.ts +7 -7
  71. package/types/src/DualListbox/Listbox.d.ts +2 -2
  72. package/types/src/DualListbox/ListboxContext.d.ts +1 -1
  73. package/types/src/File/File.d.ts +7 -1
  74. package/types/src/JSONTree/JSONTreeItem.d.ts +5 -3
  75. package/types/src/JSONTree/renderTreeItems.d.ts +3 -2
  76. package/types/src/Markdown/renderers/MarkdownCodeBlock.d.ts +2 -1
  77. package/types/src/Menu/docs/examples/Dimmed.d.ts +1 -1
  78. package/types/src/Menu/docs/examples/Disabled.d.ts +1 -0
  79. package/types/src/Modal/ModalContext.d.ts +1 -1
  80. package/types/src/Multiselect/Compact.d.ts +9 -3
  81. package/types/src/Multiselect/Multiselect.d.ts +7 -1
  82. package/types/src/Multiselect/Normal.d.ts +9 -3
  83. package/types/src/Number/utils.d.ts +1 -1
  84. package/types/src/Popover/getPlacement.d.ts +1 -1
  85. package/types/src/RadioList/Option.d.ts +1 -1
  86. package/types/src/RadioList/RadioListContext.d.ts +1 -1
  87. package/types/src/Search/Search.d.ts +5 -1
  88. package/types/src/StepBar/StepBar.d.ts +4 -1
  89. package/types/src/StepBar/StepBarContext.d.ts +1 -0
  90. package/types/src/StepBar/docs/examples/Vertical.d.ts +6 -0
  91. package/types/src/Switch/Switch.d.ts +13 -1
  92. package/types/src/Switch/docs/examples/Basic.d.ts +2 -10
  93. package/types/src/Switch/docs/examples/Disabled.d.ts +2 -9
  94. package/types/src/TabBar/Tab.d.ts +3 -1
  95. package/types/src/TabBar/docs/examples/Icons.d.ts +4 -0
  96. package/types/src/TabBar/docs/examples/Tooltips.d.ts +3 -0
  97. package/types/src/TabLayout/Panel.d.ts +2 -0
  98. package/types/src/Table/ExpandButton.d.ts +1 -1
  99. package/types/src/Table/Head.d.ts +1 -1
  100. package/types/src/Table/Row.d.ts +1 -1
  101. package/types/src/Table/Table.d.ts +1 -0
  102. package/types/src/Tooltip/Tooltip.d.ts +14 -1
  103. package/types/src/Tree/TreeContext.d.ts +1 -1
  104. package/useControlled.js +61 -97
  105. package/usePrevious.js +30 -62
  106. package/useResizeObserver.js +95 -127
  107. package/NonInteractiveCheckbox.js +0 -101
  108. package/types/src/CollapsiblePanel/icons/ExpandPanel.d.ts +0 -12
  109. package/types/src/NonInteractiveCheckbox/NonInteractiveCheckbox.d.ts +0 -22
  110. package/types/src/NonInteractiveCheckbox/index.d.ts +0 -1
  111. package/types/src/Switch/docs/examples/Error.d.ts +0 -6
  112. package/types/src/Text/IconOutlinedHide.d.ts +0 -3
  113. package/types/src/Text/IconOutlinedView.d.ts +0 -3
  114. /package/cypress/{tsconfig.cypress.json → tsconfig.check-cypress.json} +0 -0
@@ -1,6 +1,6 @@
1
1
  import React from 'react';
2
2
  import PropTypes from 'prop-types';
3
- import { MultiselectChangeHandler, MultiselectFilterChangeHandler, MultiselectScrollBottomHandler } from './Multiselect';
3
+ import { MultiselectChangeHandler, MultiselectFilterChangeHandler, MultiselectScrollBottomHandler } from '@splunk/react-ui/Multiselect';
4
4
  import { SelectBaseProps } from '../Select/SelectBase';
5
5
  import { ComponentProps } from '../utils/types';
6
6
  interface CompactPropsBase {
@@ -9,6 +9,8 @@ interface CompactPropsBase {
9
9
  * Allow the user to add arbitrary values.
10
10
  */
11
11
  allowNewValues?: boolean;
12
+ /** Append removes rounded borders and the border from the right side. */
13
+ append?: boolean;
12
14
  /**
13
15
  * `children` should be `Multiselect.Option`, `Multiselect.Heading`, or
14
16
  * `Multiselect.Divider`.
@@ -119,6 +121,8 @@ interface CompactPropsBase {
119
121
  * If 'value' is undefined or don't match an item, the Button will display this text.
120
122
  */
121
123
  placeholder?: string;
124
+ /** Prepend removes rounded borders from the left side. */
125
+ prepend?: boolean;
122
126
  /**
123
127
  * See `repositionMode` on `Popover` for details.
124
128
  */
@@ -151,11 +155,12 @@ interface CompactPropsBase {
151
155
  toggle?: SelectBaseProps['toggle'];
152
156
  }
153
157
  type CompactProps = ComponentProps<CompactPropsBase, 'button'>;
154
- declare function Compact({ allowNewValues, animateLoading, children, controlledFilter, defaultPlacement, defaultValues, describedBy, disabled, elementRef, error, filter, footerMessage, inline, inputId, inputRef, isLoadingOptions, labelledBy, loadingMessage, menuStyle, name, noOptionsMessage, onChange, onClose, onFilterChange, onOpen, onScroll, onScrollBottom, placeholder, repositionMode, selectAllAppearance, showSelectedValuesFirst, tabConfirmsNewValue, values, virtualization, ...otherProps }: CompactProps): React.JSX.Element;
158
+ declare function Compact({ allowNewValues, animateLoading, append, children, controlledFilter, defaultPlacement, defaultValues, describedBy, disabled, elementRef, error, filter, footerMessage, inline, inputId, inputRef, isLoadingOptions, labelledBy, loadingMessage, menuStyle, name, noOptionsMessage, onChange, onClose, onFilterChange, onOpen, onScroll, onScrollBottom, placeholder, prepend, repositionMode, selectAllAppearance, showSelectedValuesFirst, tabConfirmsNewValue, values, virtualization, ...otherProps }: CompactProps): React.JSX.Element;
155
159
  declare namespace Compact {
156
160
  var propTypes: {
157
161
  allowNewValues: PropTypes.Requireable<boolean>;
158
162
  animateLoading: PropTypes.Requireable<boolean>;
163
+ append: PropTypes.Requireable<boolean>;
159
164
  children: PropTypes.Requireable<PropTypes.ReactNodeLike>;
160
165
  controlledFilter: PropTypes.Requireable<boolean>;
161
166
  defaultPlacement: PropTypes.Requireable<string>;
@@ -182,6 +187,7 @@ declare namespace Compact {
182
187
  onScroll: PropTypes.Requireable<(...args: any[]) => any>;
183
188
  onScrollBottom: PropTypes.Requireable<(...args: any[]) => any>;
184
189
  placeholder: PropTypes.Requireable<string>;
190
+ prepend: PropTypes.Requireable<boolean>;
185
191
  repositionMode: PropTypes.Requireable<string>;
186
192
  selectAllAppearance: PropTypes.Requireable<string>;
187
193
  showSelectedValuesFirst: PropTypes.Requireable<string>;
@@ -190,7 +196,7 @@ declare namespace Compact {
190
196
  /** @private */
191
197
  virtualization: PropTypes.Requireable<number>;
192
198
  };
193
- var Option: typeof import("./Option").default;
199
+ var Option: typeof import("@splunk/react-ui/Multiselect").Option;
194
200
  var Divider: typeof import("@splunk/react-ui/Menu").Divider;
195
201
  var Heading: typeof import("@splunk/react-ui/Menu").Heading;
196
202
  }
@@ -23,6 +23,8 @@ interface MultiselectPropsBase {
23
23
  */
24
24
  allowNewValues?: boolean;
25
25
  animateLoading?: boolean;
26
+ /** Append removes rounded borders and the border from the right side. */
27
+ append?: boolean;
26
28
  /**
27
29
  * When compact, options are shown as checkboxes and the input is a single line. This is
28
30
  * useful when placing the Multiselect in a horizontal bar, such as a filter.
@@ -143,6 +145,8 @@ interface MultiselectPropsBase {
143
145
  * If 'value' is undefined or doesn't match an item, the Button will display this text.
144
146
  */
145
147
  placeholder?: string;
148
+ /** Prepend removes rounded borders from the left side. */
149
+ prepend?: boolean;
146
150
  /**
147
151
  * See `repositionMode` on `Popover` for details.
148
152
  */
@@ -198,7 +202,7 @@ interface MultiselectPropsBaseCompact extends MultiselectPropsBase {
198
202
  type MultiselectNormalProps = ComponentProps<(MultiselectPropsBaseControlled | MultiselectPropsBaseUncontrolled) & MultiselectPropsBaseNormal, 'div'>;
199
203
  type MultiselectCompactProps = ComponentProps<(MultiselectPropsBaseControlled | MultiselectPropsBaseUncontrolled) & MultiselectPropsBaseCompact, 'button'>;
200
204
  type MultiselectProps = MultiselectNormalProps | MultiselectCompactProps;
201
- declare function Multiselect({ allowNewValues, animateLoading, compact, children, controlledFilter, defaultPlacement, defaultValues, describedBy, disabled, elementRef, error, filter, footerMessage, inline, inputId, inputRef, isLoadingOptions, labelledBy, loadingMessage, menuStyle, name, noOptionsMessage, onChange, onClose, onFilterChange, onOpen, onScroll, onScrollBottom, placeholder, repositionMode, selectAllAppearance, showSelectedValuesFirst, tabConfirmsNewValue, values, virtualization, ...otherProps }: MultiselectProps): React.JSX.Element;
205
+ declare function Multiselect({ allowNewValues, animateLoading, append, compact, children, controlledFilter, defaultPlacement, defaultValues, describedBy, disabled, elementRef, error, filter, footerMessage, inline, inputId, inputRef, isLoadingOptions, labelledBy, loadingMessage, menuStyle, name, noOptionsMessage, onChange, onClose, onFilterChange, onOpen, onScroll, onScrollBottom, placeholder, prepend, repositionMode, selectAllAppearance, showSelectedValuesFirst, tabConfirmsNewValue, values, virtualization, ...otherProps }: MultiselectProps): React.JSX.Element;
202
206
  declare namespace Multiselect {
203
207
  var componentType: string;
204
208
  var Option: typeof import("./Option").default;
@@ -207,6 +211,7 @@ declare namespace Multiselect {
207
211
  var propTypes: {
208
212
  allowNewValues: PropTypes.Requireable<boolean>;
209
213
  animateLoading: PropTypes.Requireable<boolean>;
214
+ append: PropTypes.Requireable<boolean>;
210
215
  children: PropTypes.Requireable<PropTypes.ReactNodeLike>;
211
216
  compact: PropTypes.Requireable<boolean>;
212
217
  controlledFilter: PropTypes.Requireable<boolean>;
@@ -234,6 +239,7 @@ declare namespace Multiselect {
234
239
  onScroll: PropTypes.Requireable<(...args: any[]) => any>;
235
240
  onScrollBottom: PropTypes.Requireable<(...args: any[]) => any>;
236
241
  placeholder: PropTypes.Requireable<string>;
242
+ prepend: PropTypes.Requireable<boolean>;
237
243
  repositionMode: PropTypes.Requireable<string>;
238
244
  selectAllAppearance: PropTypes.Requireable<string>;
239
245
  showSelectedValuesFirst: PropTypes.Requireable<string>;
@@ -1,6 +1,6 @@
1
1
  import React from 'react';
2
2
  import PropTypes from 'prop-types';
3
- import { MultiselectChangeHandler, MultiselectFilterChangeHandler, MultiselectScrollBottomHandler } from './Multiselect';
3
+ import { MultiselectChangeHandler, MultiselectFilterChangeHandler, MultiselectScrollBottomHandler } from '@splunk/react-ui/Multiselect';
4
4
  import { ComponentProps } from '../utils/types';
5
5
  interface NormalPropsBase {
6
6
  /**
@@ -8,6 +8,8 @@ interface NormalPropsBase {
8
8
  */
9
9
  allowNewValues?: boolean;
10
10
  animateLoading?: boolean;
11
+ /** Append removes rounded borders and the border from the right side. */
12
+ append?: boolean;
11
13
  /**
12
14
  * `children` should be `Multiselect.Option`, `Multiselect.Heading`, or
13
15
  * `Multiselect.Divider`.
@@ -107,6 +109,8 @@ interface NormalPropsBase {
107
109
  * If 'value' is undefined or don't match an item, the Button will display this text.
108
110
  */
109
111
  placeholder?: string;
112
+ /** Prepend removes rounded borders from the left side. */
113
+ prepend?: boolean;
110
114
  /** @private. */
111
115
  required?: boolean;
112
116
  /**
@@ -123,11 +127,12 @@ interface NormalPropsBase {
123
127
  }
124
128
  export declare const getInlineMenuStyle: (({ anchorWidth, maxHeight, menuStyle }: any) => any) & import("lodash").MemoizedFunction;
125
129
  type NormalProps = ComponentProps<NormalPropsBase, 'div'>;
126
- declare function Normal({ allowNewValues, animateLoading, children, controlledFilter, defaultPlacement, defaultValues, describedBy, disabled, elementRef, error, footerMessage, inline, inputId, inputRef: inputRefProp, isLoadingOptions, labelledBy, loadingMessage, menuStyle, name, noOptionsMessage, onChange, onClose, onFilterChange, onScroll, onScrollBottom, onOpen, placeholder, required, repositionMode, tabConfirmsNewValue, values, ...otherProps }: NormalProps): React.JSX.Element;
130
+ declare function Normal({ allowNewValues, animateLoading, append, children, controlledFilter, defaultPlacement, defaultValues, describedBy, disabled, elementRef, error, footerMessage, inline, inputId, inputRef: inputRefProp, isLoadingOptions, labelledBy, loadingMessage, menuStyle, name, noOptionsMessage, onChange, onClose, onFilterChange, onScroll, onScrollBottom, onOpen, placeholder, prepend, required, repositionMode, tabConfirmsNewValue, values, ...otherProps }: NormalProps): React.JSX.Element;
127
131
  declare namespace Normal {
128
132
  var propTypes: {
129
133
  allowNewValues: PropTypes.Requireable<boolean>;
130
134
  animateLoading: PropTypes.Requireable<boolean>;
135
+ append: PropTypes.Requireable<boolean>;
131
136
  children: PropTypes.Requireable<PropTypes.ReactNodeLike>;
132
137
  controlledFilter: PropTypes.Requireable<boolean>;
133
138
  defaultPlacement: PropTypes.Requireable<string>;
@@ -153,13 +158,14 @@ declare namespace Normal {
153
158
  onScroll: PropTypes.Requireable<(...args: any[]) => any>;
154
159
  onScrollBottom: PropTypes.Requireable<(...args: any[]) => any>;
155
160
  placeholder: PropTypes.Requireable<string>;
161
+ prepend: PropTypes.Requireable<boolean>;
156
162
  /** @private. */
157
163
  required: PropTypes.Requireable<boolean>;
158
164
  repositionMode: PropTypes.Requireable<string>;
159
165
  tabConfirmsNewValue: PropTypes.Requireable<boolean>;
160
166
  values: PropTypes.Requireable<any[]>;
161
167
  };
162
- var Option: typeof import("./Option").default;
168
+ var Option: typeof import("@splunk/react-ui/Multiselect").Option;
163
169
  var Divider: typeof import("@splunk/react-ui/Menu").Divider;
164
170
  var Heading: typeof import("@splunk/react-ui/Menu").Heading;
165
171
  }
@@ -1,4 +1,4 @@
1
- declare const getDecimalSeparatorByLocale: (locale: string) => "." | ",";
1
+ declare const getDecimalSeparatorByLocale: (locale: string) => "," | ".";
2
2
  type LimitValueArgs = {
3
3
  val: number;
4
4
  min?: number;
@@ -1,5 +1,5 @@
1
1
  import React from 'react';
2
- import { PopoverPlacement, PopoverPlacementStatus } from './Popover';
2
+ import { PopoverPlacement, PopoverPlacementStatus } from '@splunk/react-ui/Popover';
3
3
  interface ExtendedDOMRect extends DOMRect {
4
4
  middle: number;
5
5
  center: number;
@@ -1,6 +1,6 @@
1
1
  import React from 'react';
2
2
  import PropTypes from 'prop-types';
3
- import { RadioListChangeHandler, RadioListValueTypes } from './RadioList';
3
+ import { RadioListChangeHandler, RadioListValueTypes } from '@splunk/react-ui/RadioList';
4
4
  import { ComponentProps } from '../utils/types';
5
5
  interface OptionPropsBase {
6
6
  children?: React.ReactNode;
@@ -1,4 +1,4 @@
1
- import { RadioListChangeHandler, RadioListValueTypes } from './RadioList';
1
+ import { RadioListChangeHandler, RadioListValueTypes } from '@splunk/react-ui/RadioList';
2
2
  export interface RadioListContext {
3
3
  disabled?: boolean;
4
4
  error?: boolean;
@@ -19,6 +19,8 @@ type SearchFocusHandler = (event: React.FocusEvent<HTMLInputElement>, data: {
19
19
  }) => void;
20
20
  interface SearchPropsBase {
21
21
  animateLoading?: boolean;
22
+ /** Append removes rounded borders and the border from the right side. */
23
+ append?: boolean;
22
24
  /** All children must be instances of `Search.Option`. */
23
25
  children?: React.ReactNode;
24
26
  /**
@@ -87,6 +89,8 @@ interface SearchPropsBase {
87
89
  */
88
90
  onOpen?: () => void;
89
91
  placeholder?: string;
92
+ /** Prepend removes rounded borders from the left side. */
93
+ prepend?: boolean;
90
94
  /** The value of the input. Only applicable in controlled mode. */
91
95
  value?: string;
92
96
  }
@@ -100,7 +104,7 @@ interface SearchPropsBaseUncontrolled extends SearchPropsBase {
100
104
  value?: never;
101
105
  }
102
106
  type SearchProps = ComponentProps<SearchPropsBaseControlled | SearchPropsBaseUncontrolled, 'div'>;
103
- declare function Search({ animateLoading, children, defaultPlacement, defaultValue, describedBy, disabled, elementRef, error, footerMessage, inline, inputRef, isLoadingOptions, labelledBy, loadingMessage, menuStyle, name, noOptionsMessage, onChange, onClose, onFocus, onKeyDown, onOpen, placeholder, value: propValue, ...otherProps }: SearchProps): React.JSX.Element;
107
+ declare function Search({ animateLoading, append, children, defaultPlacement, defaultValue, describedBy, disabled, elementRef, error, footerMessage, inline, inputRef, isLoadingOptions, labelledBy, loadingMessage, menuStyle, name, noOptionsMessage, onChange, onClose, onFocus, onKeyDown, onOpen, placeholder, prepend, value: propValue, ...otherProps }: SearchProps): React.JSX.Element;
104
108
  declare namespace Search {
105
109
  var propTypes: React.WeakValidationMap<SearchPropsBase>;
106
110
  var Option: typeof import("./Option").default;
@@ -17,15 +17,18 @@ interface StepBarPropsBase {
17
17
  * Setting inline to true makes the Step Bar an inline element. It assumes its minimum width.
18
18
  */
19
19
  inline?: boolean;
20
+ /** The flow direction of steps. */
21
+ orientation?: 'horizontal' | 'vertical';
20
22
  }
21
23
  type StepBarProps = ComponentProps<StepBarPropsBase, 'ul'>;
22
- declare function StepBar({ activeStepId, children, elementRef, inline, ...otherProps }: StepBarProps): React.JSX.Element;
24
+ declare function StepBar({ activeStepId, children, elementRef, inline, orientation, ...otherProps }: StepBarProps): React.JSX.Element;
23
25
  declare namespace StepBar {
24
26
  var propTypes: {
25
27
  activeStepId: PropTypes.Validator<any>;
26
28
  children: PropTypes.Requireable<PropTypes.ReactNodeLike>;
27
29
  elementRef: PropTypes.Requireable<object>;
28
30
  inline: PropTypes.Requireable<boolean>;
31
+ orientation: PropTypes.Requireable<string>;
29
32
  };
30
33
  var Step: typeof import("./Step").default;
31
34
  }
@@ -2,6 +2,7 @@ export interface StepBarContext {
2
2
  activeStepId: number;
3
3
  idCounter?: string;
4
4
  lastChildIndex?: number;
5
+ orientation: 'horizontal' | 'vertical';
5
6
  }
6
7
  export declare const StepBarContext: import("react").Context<StepBarContext>;
7
8
  export default StepBarContext;
@@ -0,0 +1,6 @@
1
+ import React from 'react';
2
+ /**
3
+ * @name Vertical
4
+ */
5
+ declare function Vertical(): React.JSX.Element;
6
+ export default Vertical;
@@ -12,8 +12,19 @@ type SwitchCheckboxWithSomeClickHandler = (event: React.MouseEvent<HTMLButtonEle
12
12
  value?: any;
13
13
  }) => void;
14
14
  interface SwitchPropsBase {
15
+ /**
16
+ * Determines if the component renders as a checkbox or toggle.
17
+ *
18
+ * @deprecatedValue 'checkbox'
19
+ * The 'checkbox' value is deprecated and will be removed in a future major version.
20
+ */
15
21
  appearance?: 'checkbox' | 'toggle';
16
22
  children?: React.ReactNode;
23
+ /**
24
+ * The id of the description. When placed in a ControlGroup, this is automatically set to the
25
+ * ControlGroup's help component.
26
+ */
27
+ describedBy?: string;
17
28
  disabled?: boolean;
18
29
  /**
19
30
  * A React ref which is set to the DOM element when the component mounts, and null when it unmounts.
@@ -82,11 +93,12 @@ type SwitchProps = ComponentProps<SwitchCheckboxWithSomePropsBase | SwitchNoSome
82
93
  /**
83
94
  * `Switch` is a basic form control with an on/off state.
84
95
  */
85
- declare function Switch({ appearance, children, disabled, elementRef, error, id, inline, labelledBy, onClick, required, selected, selectedLabel, someSelectedLabel, toggleRef, unselectedLabel, value, ...otherProps }: SwitchProps): React.JSX.Element;
96
+ declare function Switch({ appearance, children, describedBy, disabled, elementRef, error, id, inline, labelledBy, onClick, required, selected, selectedLabel, someSelectedLabel, role, tabIndex, toggleRef, unselectedLabel, value, ...otherProps }: SwitchProps): React.JSX.Element;
86
97
  declare namespace Switch {
87
98
  var propTypes: {
88
99
  appearance: PropTypes.Requireable<string>;
89
100
  children: PropTypes.Requireable<PropTypes.ReactNodeLike>;
101
+ describedBy: PropTypes.Requireable<string>;
90
102
  disabled: PropTypes.Requireable<boolean>;
91
103
  elementRef: PropTypes.Requireable<object>;
92
104
  error: PropTypes.Requireable<boolean>;
@@ -1,14 +1,6 @@
1
- import React, { Component } from 'react';
2
- import { SwitchClickHandler } from '@splunk/react-ui/Switch';
1
+ import React from 'react';
3
2
  /**
4
3
  * @name Basic
5
- * @description Some checkbox and toggle controls.
6
4
  */
7
- declare class Basic extends Component<object, {
8
- values: number[];
9
- }> {
10
- constructor(props: object);
11
- handleClick: SwitchClickHandler;
12
- render(): React.JSX.Element;
13
- }
5
+ declare const Basic: () => React.JSX.Element;
14
6
  export default Basic;
@@ -1,13 +1,6 @@
1
- import React, { Component } from 'react';
2
- import { SwitchClickHandler } from '@splunk/react-ui/Switch';
1
+ import React from 'react';
3
2
  /**
4
3
  * @name Disabled
5
4
  */
6
- declare class Disabled extends Component<object, {
7
- values: number[];
8
- }> {
9
- constructor(props: object);
10
- handleClick: SwitchClickHandler;
11
- render(): React.JSX.Element;
12
- }
5
+ declare const Disabled: () => React.JSX.Element;
13
6
  export default Disabled;
@@ -41,7 +41,9 @@ interface TabPropsBase {
41
41
  * instead of a <button> tag. */
42
42
  to?: string;
43
43
  /**
44
- * Content to show in a tooltip.
44
+ * Content to show in a tooltip when the user hovers over or focuses on the Tab.
45
+ *
46
+ * Note: The tooltip will override the label for the Tab for screen readers.
45
47
  */
46
48
  tooltip?: React.ReactNode;
47
49
  /**
@@ -1,6 +1,10 @@
1
1
  import React from 'react';
2
2
  /**
3
3
  * @name Icons
4
+ * @description Icons can be used in tabs to provide additional context.
5
+ * Use icons sparingly and only when they add value that the text alone cannot communicate.
6
+ *
7
+ * Icon only tabs are not recommended. If you do use an icon only tab, a tooltip is required to provide an accessible name to the tab.
4
8
  */
5
9
  declare function IconsLeft(): React.JSX.Element;
6
10
  export default IconsLeft;
@@ -1,6 +1,9 @@
1
1
  import React from 'react';
2
2
  /**
3
3
  * @name Tooltips
4
+ * @description Tooltips must be used when the entire tab label is not visible: e.g. due to truncation.
5
+ * The tooltip will override the accessible name of the tab.
6
+ * Tooltips should not be used to add a description or additional information.
4
7
  */
5
8
  declare function Tooltips(): React.JSX.Element;
6
9
  export default Tooltips;
@@ -22,6 +22,8 @@ interface PanelPropsBase {
22
22
  panelId: string;
23
23
  /**
24
24
  * Content to show in a tooltip when the user hovers over or focuses on the tab.
25
+ *
26
+ * Note: The tooltip will override the label for the Panel for screen readers.
25
27
  */
26
28
  tooltip?: React.ReactNode;
27
29
  /** Prevents user from clicking the tab. */
@@ -1,6 +1,6 @@
1
1
  import React from 'react';
2
2
  import PropTypes from 'prop-types';
3
- import { ComponentProps } from '@splunk/react-ui/utils/types';
3
+ import { ComponentProps } from '../utils/types';
4
4
  interface ExpandButtonPropsBase {
5
5
  expanded?: boolean;
6
6
  }
@@ -1,6 +1,6 @@
1
1
  import React from 'react';
2
2
  import PropTypes from 'prop-types';
3
- import { TableRequestMoveColumnHandler } from './Table';
3
+ import { TableRequestMoveColumnHandler } from '@splunk/react-ui/Table';
4
4
  import { ComponentProps } from '../utils/types';
5
5
  type HeadAutosizeColumnHandler = (event: React.MouseEvent<HTMLHRElement>, data: {
6
6
  columnId?: string;
@@ -1,6 +1,6 @@
1
1
  import React from 'react';
2
2
  import PropTypes from 'prop-types';
3
- import { TableRequestMoveRowHandler } from './Table';
3
+ import { TableRequestMoveRowHandler } from '@splunk/react-ui/Table';
4
4
  import { ComponentProps } from '../utils/types';
5
5
  /** @public */
6
6
  type RowActionPrimaryClickHandler = (event: React.MouseEvent, data?: any) => void;
@@ -119,6 +119,7 @@ interface TablePropsBase {
119
119
  /**
120
120
  * An event handler for resize of columns for the current column being resized. The function is passed an event and a data
121
121
  * object with `columnId`, `id`, `index`, and `width`.
122
+ * Every Table.HeadCell must have a width prop when using onRequestResizeColumn. Table with resizableFillLayout supports width of "auto".
122
123
  */
123
124
  onRequestResizeColumn?: TableRequestResizeColumnHandler;
124
125
  /**
@@ -94,6 +94,15 @@ interface TooltipPropsBase {
94
94
  * The onRequestClose and onRequestOpen callbacks are usually used.
95
95
  */
96
96
  open?: boolean;
97
+ /**
98
+ * Allows the `Tooltip` to point to and align with a different part of the anchor.
99
+ *
100
+ * This prop is forwarded to Popover. See `Popover`'s `pointTo` prop for more information.
101
+ */
102
+ pointTo?: {
103
+ x: number;
104
+ y: number;
105
+ };
97
106
  /** @private Generally passed by parent component rather than added directly. */
98
107
  prepend?: boolean;
99
108
  /**
@@ -122,7 +131,7 @@ type TooltipProps = ComponentProps<TooltipPropsBase, 'span'>;
122
131
  * The Tooltip component wraps arbitrary content to be displayed when the target element is hovered
123
132
  * or focused.
124
133
  */
125
- declare function Tooltip({ appearance, append, children, closeDelay, closeWhen, content, contentRelationship, defaultPlacement, elementRef, inline, onRequestClose, onRequestOpen, open: openProp, openDelay, renderAnchor, prepend, ...otherProps }: TooltipProps): React.JSX.Element;
134
+ declare function Tooltip({ appearance, append, children, closeDelay, closeWhen, content, contentRelationship, defaultPlacement, elementRef, inline, onRequestClose, onRequestOpen, open: openProp, openDelay, renderAnchor, pointTo, prepend, ...otherProps }: TooltipProps): React.JSX.Element;
126
135
  declare namespace Tooltip {
127
136
  var propTypes: {
128
137
  /** @private */
@@ -142,6 +151,10 @@ declare namespace Tooltip {
142
151
  onRequestOpen: PropTypes.Requireable<(...args: any[]) => any>;
143
152
  open: PropTypes.Requireable<boolean>;
144
153
  openDelay: PropTypes.Requireable<NonNullable<string | number | null | undefined>>;
154
+ pointTo: PropTypes.Requireable<PropTypes.InferProps<{
155
+ x: PropTypes.Requireable<number>;
156
+ y: PropTypes.Requireable<number>;
157
+ }>>;
145
158
  /** @private */
146
159
  prepend: PropTypes.Requireable<boolean>;
147
160
  renderAnchor: PropTypes.Requireable<(...args: any[]) => any>;
@@ -1,5 +1,5 @@
1
+ import { RemoveNodeHandler, SetNodeHandler } from '@splunk/react-ui/Tree';
1
2
  import { TreeItemClickHandler, TreeItemKeyDownHandler } from './Item';
2
- import { RemoveNodeHandler, SetNodeHandler } from './Tree';
3
3
  export interface TreeContext {
4
4
  defaultIndent?: boolean;
5
5
  onItemKeyDown?: TreeItemKeyDownHandler;