@splunk/react-ui 4.26.0 → 4.28.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 (79) hide show
  1. package/Accordion.js +195 -212
  2. package/Box.js +45 -44
  3. package/Button.js +1 -2
  4. package/ButtonSimple.js +145 -147
  5. package/CHANGELOG.md +52 -3
  6. package/CollapsiblePanel.js +555 -325
  7. package/Color.js +3 -1
  8. package/ControlGroup.js +1 -0
  9. package/JSONTree.js +1311 -629
  10. package/MIGRATION.mdx +30 -0
  11. package/Markdown.js +521 -222
  12. package/Modal.js +26 -10
  13. package/Multiselect.js +844 -804
  14. package/Paginator.js +593 -271
  15. package/TabBar.js +487 -312
  16. package/Table.js +903 -869
  17. package/Text.js +30 -40
  18. package/TextArea.js +372 -432
  19. package/Tree.js +607 -519
  20. package/package.json +4 -2
  21. package/types/src/Accordion/Accordion.d.ts +2 -2
  22. package/types/src/Accordion/AccordionContext.d.ts +2 -3
  23. package/types/src/Box/Box.d.ts +3 -2
  24. package/types/src/CollapsiblePanel/CollapsiblePanel.d.ts +49 -15
  25. package/types/src/CollapsiblePanel/SingleOpenPanelGroup.d.ts +62 -0
  26. package/types/src/CollapsiblePanel/SingleOpenPanelGroupContext.d.ts +9 -0
  27. package/types/src/CollapsiblePanel/docs/examples/MultiControlled.d.ts +2 -2
  28. package/types/src/CollapsiblePanel/docs/examples/SingleOpenPanelGroupControlled.d.ts +2 -0
  29. package/types/src/CollapsiblePanel/docs/examples/SingleOpenPanelGroupUncontrolled.d.ts +2 -0
  30. package/types/src/CollapsiblePanel/icons/ExpandPanel.d.ts +7 -5
  31. package/types/src/File/docs/examples/FullScreen.d.ts +1 -14
  32. package/types/src/JSONTree/JSONTreeItem.d.ts +45 -0
  33. package/types/src/JSONTree/renderTreeItems.d.ts +17 -0
  34. package/types/src/Markdown/renderers/MarkdownAnchorHeading.d.ts +1 -1
  35. package/types/src/Markdown/renderers/MarkdownBlockquote.d.ts +1 -1
  36. package/types/src/Markdown/renderers/MarkdownCode.d.ts +1 -1
  37. package/types/src/Markdown/renderers/MarkdownCodeBlock.d.ts +1 -1
  38. package/types/src/Markdown/renderers/MarkdownHeading.d.ts +1 -1
  39. package/types/src/Markdown/renderers/MarkdownImage.d.ts +1 -1
  40. package/types/src/Markdown/renderers/MarkdownItem.d.ts +1 -1
  41. package/types/src/Markdown/renderers/MarkdownList.d.ts +1 -1
  42. package/types/src/Markdown/renderers/MarkdownParagraph.d.ts +1 -1
  43. package/types/src/Modal/Modal.d.ts +4 -5
  44. package/types/src/Multiselect/Normal.d.ts +1 -0
  45. package/types/src/Paginator/Button.d.ts +8 -3
  46. package/types/src/Paginator/Compact.d.ts +50 -0
  47. package/types/src/Paginator/PageControl.d.ts +37 -0
  48. package/types/src/Paginator/PageSelect.d.ts +32 -0
  49. package/types/src/Paginator/Paginator.d.ts +9 -4
  50. package/types/src/Paginator/docs/examples/Compact.d.ts +2 -0
  51. package/types/src/Paginator/docs/examples/CompactCustomLabel.d.ts +2 -0
  52. package/types/src/Paginator/docs/examples/CompactWithLabel.d.ts +2 -0
  53. package/types/src/Paginator/docs/examples/Labelled.d.ts +2 -0
  54. package/types/src/Paginator/docs/examples/PageControl.d.ts +2 -0
  55. package/types/src/Paginator/icons/ChevronLeft.d.ts +5 -0
  56. package/types/src/Paginator/icons/ChevronRight.d.ts +5 -0
  57. package/types/src/SlidingPanels/docs/examples/Modal.d.ts +1 -13
  58. package/types/src/TabBar/Tab.d.ts +12 -2
  59. package/types/src/TabBar/TabBar.d.ts +4 -3
  60. package/types/src/TabBar/TabBarContext.d.ts +6 -1
  61. package/types/src/Table/Cell.d.ts +3 -1
  62. package/types/src/Table/Head.d.ts +2 -2
  63. package/types/src/Table/HeadCell.d.ts +2 -0
  64. package/types/src/Table/Row.d.ts +4 -2
  65. package/types/src/Table/Table.d.ts +1 -1
  66. package/types/src/Table/Toggle.d.ts +4 -4
  67. package/types/src/TextArea/TextArea.d.ts +3 -2
  68. package/types/src/TextArea/icons/ClearButton.d.ts +3 -0
  69. package/types/src/TextArea/icons/SearchIcon.d.ts +1 -0
  70. package/types/src/Tree/TreeContext.d.ts +2 -1
  71. package/types/src/Tree/TreeItem.d.ts +18 -5
  72. package/types/src/fixtures/text.d.ts +1 -0
  73. package/types/src/CollapsiblePanel/docs/examples/prisma/BasicControlled.d.ts +0 -2
  74. package/types/src/CollapsiblePanel/docs/examples/prisma/BasicUncontrolled.d.ts +0 -2
  75. package/types/src/CollapsiblePanel/docs/examples/prisma/Content.d.ts +0 -1
  76. package/types/src/CollapsiblePanel/docs/examples/prisma/MultiControlled.d.ts +0 -2
  77. package/types/src/CollapsiblePanel/docs/examples/prisma/MultiUncontrolled.d.ts +0 -2
  78. package/types/src/JSONTree/JSONTreeContext.d.ts +0 -7
  79. package/types/src/JSONTree/TreeNode.d.ts +0 -44
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@splunk/react-ui",
3
- "version": "4.26.0",
3
+ "version": "4.28.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.",
@@ -62,7 +62,7 @@
62
62
  "@splunk/babel-preset": "^4.0.0",
63
63
  "@splunk/docs-gen": "1.0.0-beta.8",
64
64
  "@splunk/eslint-config": "^4.0.0",
65
- "@splunk/react-docs": "1.0.0-beta.11",
65
+ "@splunk/react-docs": "1.0.0-beta.12",
66
66
  "@splunk/stylelint-config": "^4.0.0",
67
67
  "@splunk/test-runner-utils": "^0.4.1",
68
68
  "@splunk/webpack-configs": "^7.0.2",
@@ -112,10 +112,12 @@
112
112
  "eslint-import-resolver-webpack": "^0.13.4",
113
113
  "eslint-plugin-cypress": "^2.12.1",
114
114
  "eslint-plugin-import": "^2.22.1",
115
+ "eslint-plugin-jest-dom": "^5.1.0",
115
116
  "eslint-plugin-jsx-a11y": "^6.4.1",
116
117
  "eslint-plugin-react": "^7.21.5",
117
118
  "eslint-plugin-react-hooks": "^4.2.0",
118
119
  "eslint-plugin-react-perf": "^3.3.1",
120
+ "eslint-plugin-testing-library": "6.2.0",
119
121
  "fs-extra": "^9.0.1",
120
122
  "fs-readdir-recursive": "^1.0.0",
121
123
  "glob": "^7.1.6",
@@ -67,8 +67,8 @@ declare class Accordion extends Component<AccordionProps, AccordionState> {
67
67
  static Panel: typeof Panel;
68
68
  constructor(props: Readonly<AccordionProps>);
69
69
  componentDidUpdate(prevProps: Readonly<AccordionProps>): void;
70
- private handleRequestOpen;
71
- private handleRequestClose;
70
+ private getCurrentOpenPanel;
71
+ private handleChange;
72
72
  private isControlled;
73
73
  render(): JSX.Element;
74
74
  }
@@ -1,8 +1,7 @@
1
1
  /// <reference types="react" />
2
- import { CollapsiblePanelRequestCloseHandler, CollapsiblePanelRequestOpenHandler } from '@splunk/react-ui/CollapsiblePanel';
2
+ import { CollapsiblePanelChangeHandler } from '@splunk/react-ui/CollapsiblePanel';
3
3
  export interface AccordionContext {
4
- onRequestClose?: CollapsiblePanelRequestCloseHandler;
5
- onRequestOpen?: CollapsiblePanelRequestOpenHandler;
4
+ onChange?: CollapsiblePanelChangeHandler;
6
5
  openPanelId?: string | number;
7
6
  inset?: boolean;
8
7
  }
@@ -6,7 +6,8 @@ interface BoxPropsBase {
6
6
  /**
7
7
  * A React ref which is set to the DOM element when the component mounts and null when it unmounts.
8
8
  */
9
- elementRef?: React.Ref<HTMLDivElement>;
9
+ elementRef?: React.Ref<HTMLElement>;
10
+ tag?: keyof JSX.IntrinsicElements;
10
11
  flex?: boolean;
11
12
  inline?: boolean;
12
13
  }
@@ -14,7 +15,7 @@ declare type BoxProps = ComponentProps<BoxPropsBase, 'div'>;
14
15
  /**
15
16
  * Box is a utility component to normalize and abstract common layout styles.
16
17
  */
17
- declare function Box({ children, elementRef, flex, inline, ...otherProps }: BoxProps): JSX.Element;
18
+ declare function Box({ children, elementRef, flex, tag, inline, ...otherProps }: BoxProps): JSX.Element;
18
19
  declare namespace Box {
19
20
  var propTypes: {
20
21
  children: PropTypes.Requireable<PropTypes.ReactNodeLike>;
@@ -1,26 +1,34 @@
1
1
  import React, { Component } from 'react';
2
+ import SingleOpenPanelGroup, { SingleOpenPanelGroupChangeHandler } from './SingleOpenPanelGroup';
3
+ import SingleOpenPanelGroupContext from './SingleOpenPanelGroupContext';
2
4
  import { ClassComponentProps } from '../utils/types';
3
- /** @public */
5
+ /** @public @deprecated Use `CollapsiblePanelChangeHandler` */
4
6
  declare type CollapsiblePanelRequestCloseHandler = (data: {
5
7
  event: React.MouseEvent<HTMLButtonElement>;
6
8
  panelId?: string | number;
7
9
  reason: 'toggleClick';
8
10
  }) => void;
9
- /** @public */
11
+ /** @public @deprecated Use `CollapsiblePanelChangeHandler` */
10
12
  declare type CollapsiblePanelRequestOpenHandler = (data: {
11
13
  event: React.MouseEvent<HTMLButtonElement>;
12
14
  panelId?: string | number;
13
15
  reason: 'toggleClick';
14
16
  }) => void;
17
+ /** @public */
18
+ declare type CollapsiblePanelChangeHandler = (event: React.MouseEvent<HTMLButtonElement>, data: {
19
+ panelId?: string | number;
20
+ reason: 'toggleClick';
21
+ }) => void;
15
22
  interface CollapsiblePanelPropsBase {
16
23
  /**
17
- * Style object applied to TransitionOpen inner styles.
24
+ * Style object applied to `TransitionOpen` inner styles.
18
25
  */
19
26
  innerBodyStyles?: React.CSSProperties;
20
27
  children?: React.ReactNode;
21
28
  /**
22
29
  * Sets the initial state of a panel to expanded. Incompatible with
23
- `open`. Use 'open' or 'defaultOpen', not both.
30
+ * `open`. Use `open` or `defaultOpen`, not both. Incompatible with `SingleOpenPanelGroup`
31
+ * and will be ignored for any children in `SingleOpenPanelGroup`.
24
32
  */
25
33
  defaultOpen?: boolean;
26
34
  /** Displays right-aligned text in the title bar of the `panel`. */
@@ -38,31 +46,42 @@ interface CollapsiblePanelPropsBase {
38
46
  * If set, the heading element contains `role="heading"`.
39
47
  */
40
48
  headingLevel?: number;
49
+ /**
50
+ * If set to true, adds padding to panel content.
51
+ */
52
+ inset?: boolean;
41
53
  /**
42
54
  * Identifies a specific panel. Splunk UI uses `panelId` for callbacks
43
55
  and managing expanded and collapsed states.
44
56
  */
45
57
  panelId?: string | number;
46
58
  /**
47
- * Invokes a callback when the user requests to collapse the panel. Passes
48
- an object containing the `panelId`.
59
+ * @deprecated `onRequestClose` option has been marked for deprecation and will be removed in the next major version.
60
+ * Use the `onChange` prop instead.
49
61
  */
50
62
  onRequestClose?: CollapsiblePanelRequestCloseHandler;
51
63
  /**
52
- * Invokes a callback when user requests to expand the panel. Passes an
53
- object containing the `panelId`.
64
+ * @deprecated `onRequestOpen` option has been marked for deprecation and will be removed in the next major version.
65
+ * Use the `onChange` prop instead.
54
66
  */
55
67
  onRequestOpen?: CollapsiblePanelRequestOpenHandler;
68
+ /**
69
+ * Invoked on a change of the open panel. Callback is passed data, such as
70
+ * the `panelId` of the `CollapsiblePanel` that originated the expand request.
71
+ * `panelId` is `undefined` when the open panel is collapsed.
72
+ */
73
+ onChange?: CollapsiblePanelChangeHandler;
56
74
  /**
57
75
  * Controls the expanded state of a panel. Incompatible with
58
- `defaultOpen`. Use 'open' or 'defaultOpen', not both.
76
+ * `defaultOpen`. Use `open` or `defaultOpen`, not both. Incompatible with `SingleOpenPanelGroup`
77
+ * and will be ignored for any children in `SingleOpenPanelGroup`.
59
78
  */
60
79
  open?: boolean;
61
80
  /**
62
81
  * Controls how panel overflow is handled. Default is `auto`, allowing
63
82
  * fixed-height Accordions to scroll their content if the panel is too
64
83
  * high to fit properly. Any value allowed by the CSS `overflow` property
65
- * is permitted, as is `null` (which will use the CSS default of "visible")
84
+ * is permitted, as is `null` (which will use the CSS default of "visible").
66
85
  */
67
86
  overflow?: string;
68
87
  /**
@@ -79,16 +98,26 @@ interface CollapsiblePanelPropsBase {
79
98
  */
80
99
  titleWithActions?: boolean;
81
100
  }
101
+ interface CollapsiblePanelDeprecatedControlledProps extends CollapsiblePanelPropsBase {
102
+ defaultOpen?: never;
103
+ onRequestOpen?: CollapsiblePanelRequestOpenHandler;
104
+ onRequestClose?: CollapsiblePanelRequestCloseHandler;
105
+ onChange: never;
106
+ open?: boolean;
107
+ }
82
108
  interface CollapsiblePanelControlledProps extends CollapsiblePanelPropsBase {
83
109
  defaultOpen?: never;
110
+ onRequestOpen?: never;
111
+ onRequestClose?: never;
112
+ onChange: CollapsiblePanelChangeHandler;
84
113
  open?: boolean;
85
114
  }
86
115
  interface CollapsiblePanelUncontrolledProps extends CollapsiblePanelPropsBase {
87
116
  defaultOpen?: boolean;
88
117
  open?: never;
89
118
  }
90
- declare const defaultProps: Required<Pick<CollapsiblePanelPropsBase, 'disabled' | 'overflow' | 'renderChildrenWhenCollapsed' | 'titleWithActions'>>;
91
- declare type CollapsiblePanelProps = ClassComponentProps<CollapsiblePanelControlledProps | CollapsiblePanelUncontrolledProps, typeof defaultProps, 'div'>;
119
+ declare const defaultProps: Required<Pick<CollapsiblePanelPropsBase, 'disabled' | 'inset' | 'overflow' | 'renderChildrenWhenCollapsed' | 'titleWithActions'>>;
120
+ declare type CollapsiblePanelProps = ClassComponentProps<CollapsiblePanelDeprecatedControlledProps | CollapsiblePanelUncontrolledProps | CollapsiblePanelControlledProps, typeof defaultProps, 'div'>;
92
121
  interface CollapsiblePanelState {
93
122
  animating: boolean;
94
123
  open?: boolean;
@@ -97,15 +126,20 @@ declare class CollapsiblePanel extends Component<CollapsiblePanelProps, Collapsi
97
126
  private controlledExternally;
98
127
  private containerId;
99
128
  private toggleId;
100
- static propTypes: React.WeakValidationMap<CollapsiblePanelControlledProps & Required<Pick<CollapsiblePanelPropsBase, "overflow" | "disabled" | "renderChildrenWhenCollapsed" | "titleWithActions">> & Pick<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "slot" | "style" | "onChange" | "onPause" | "className" | "color" | "id" | "lang" | "role" | "tabIndex" | "aria-activedescendant" | "aria-atomic" | "aria-autocomplete" | "aria-busy" | "aria-checked" | "aria-colcount" | "aria-colindex" | "aria-colspan" | "aria-controls" | "aria-current" | "aria-describedby" | "aria-details" | "aria-disabled" | "aria-dropeffect" | "aria-errormessage" | "aria-expanded" | "aria-flowto" | "aria-grabbed" | "aria-haspopup" | "aria-hidden" | "aria-invalid" | "aria-keyshortcuts" | "aria-label" | "aria-labelledby" | "aria-level" | "aria-live" | "aria-modal" | "aria-multiline" | "aria-multiselectable" | "aria-orientation" | "aria-owns" | "aria-placeholder" | "aria-posinset" | "aria-pressed" | "aria-readonly" | "aria-relevant" | "aria-required" | "aria-roledescription" | "aria-rowcount" | "aria-rowindex" | "aria-rowspan" | "aria-selected" | "aria-setsize" | "aria-sort" | "aria-valuemax" | "aria-valuemin" | "aria-valuenow" | "aria-valuetext" | "dangerouslySetInnerHTML" | "onCopy" | "onCopyCapture" | "onCut" | "onCutCapture" | "onPaste" | "onPasteCapture" | "onCompositionEnd" | "onCompositionEndCapture" | "onCompositionStart" | "onCompositionStartCapture" | "onCompositionUpdate" | "onCompositionUpdateCapture" | "onFocus" | "onFocusCapture" | "onBlur" | "onBlurCapture" | "onChangeCapture" | "onBeforeInput" | "onBeforeInputCapture" | "onInput" | "onInputCapture" | "onReset" | "onResetCapture" | "onSubmit" | "onSubmitCapture" | "onInvalid" | "onInvalidCapture" | "onLoad" | "onLoadCapture" | "onError" | "onErrorCapture" | "onKeyDown" | "onKeyDownCapture" | "onKeyPress" | "onKeyPressCapture" | "onKeyUp" | "onKeyUpCapture" | "onAbort" | "onAbortCapture" | "onCanPlay" | "onCanPlayCapture" | "onCanPlayThrough" | "onCanPlayThroughCapture" | "onDurationChange" | "onDurationChangeCapture" | "onEmptied" | "onEmptiedCapture" | "onEncrypted" | "onEncryptedCapture" | "onEnded" | "onEndedCapture" | "onLoadedData" | "onLoadedDataCapture" | "onLoadedMetadata" | "onLoadedMetadataCapture" | "onLoadStart" | "onLoadStartCapture" | "onPauseCapture" | "onPlay" | "onPlayCapture" | "onPlaying" | "onPlayingCapture" | "onProgress" | "onProgressCapture" | "onRateChange" | "onRateChangeCapture" | "onSeeked" | "onSeekedCapture" | "onSeeking" | "onSeekingCapture" | "onStalled" | "onStalledCapture" | "onSuspend" | "onSuspendCapture" | "onTimeUpdate" | "onTimeUpdateCapture" | "onVolumeChange" | "onVolumeChangeCapture" | "onWaiting" | "onWaitingCapture" | "onAuxClick" | "onAuxClickCapture" | "onClick" | "onClickCapture" | "onContextMenu" | "onContextMenuCapture" | "onDoubleClick" | "onDoubleClickCapture" | "onDrag" | "onDragCapture" | "onDragEnd" | "onDragEndCapture" | "onDragEnter" | "onDragEnterCapture" | "onDragExit" | "onDragExitCapture" | "onDragLeave" | "onDragLeaveCapture" | "onDragOver" | "onDragOverCapture" | "onDragStart" | "onDragStartCapture" | "onDrop" | "onDropCapture" | "onMouseDown" | "onMouseDownCapture" | "onMouseEnter" | "onMouseLeave" | "onMouseMove" | "onMouseMoveCapture" | "onMouseOut" | "onMouseOutCapture" | "onMouseOver" | "onMouseOverCapture" | "onMouseUp" | "onMouseUpCapture" | "onSelect" | "onSelectCapture" | "onTouchCancel" | "onTouchCancelCapture" | "onTouchEnd" | "onTouchEndCapture" | "onTouchMove" | "onTouchMoveCapture" | "onTouchStart" | "onTouchStartCapture" | "onPointerDown" | "onPointerDownCapture" | "onPointerMove" | "onPointerMoveCapture" | "onPointerUp" | "onPointerUpCapture" | "onPointerCancel" | "onPointerCancelCapture" | "onPointerEnter" | "onPointerEnterCapture" | "onPointerLeave" | "onPointerLeaveCapture" | "onPointerOver" | "onPointerOverCapture" | "onPointerOut" | "onPointerOutCapture" | "onGotPointerCapture" | "onGotPointerCaptureCapture" | "onLostPointerCapture" | "onLostPointerCaptureCapture" | "onScroll" | "onScrollCapture" | "onWheel" | "onWheelCapture" | "onAnimationStart" | "onAnimationStartCapture" | "onAnimationEnd" | "onAnimationEndCapture" | "onAnimationIteration" | "onAnimationIterationCapture" | "onTransitionEnd" | "onTransitionEndCapture" | "key" | "defaultChecked" | "defaultValue" | "suppressContentEditableWarning" | "suppressHydrationWarning" | "accessKey" | "contentEditable" | "contextMenu" | "dir" | "draggable" | "hidden" | "placeholder" | "spellCheck" | "translate" | "radioGroup" | "about" | "datatype" | "inlist" | "prefix" | "property" | "resource" | "typeof" | "vocab" | "autoCapitalize" | "autoCorrect" | "autoSave" | "itemProp" | "itemScope" | "itemType" | "itemID" | "itemRef" | "results" | "security" | "unselectable" | "inputMode" | "is">> | React.WeakValidationMap<CollapsiblePanelUncontrolledProps & Required<Pick<CollapsiblePanelPropsBase, "overflow" | "disabled" | "renderChildrenWhenCollapsed" | "titleWithActions">> & Pick<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "slot" | "style" | "onChange" | "onPause" | "className" | "color" | "id" | "lang" | "role" | "tabIndex" | "aria-activedescendant" | "aria-atomic" | "aria-autocomplete" | "aria-busy" | "aria-checked" | "aria-colcount" | "aria-colindex" | "aria-colspan" | "aria-controls" | "aria-current" | "aria-describedby" | "aria-details" | "aria-disabled" | "aria-dropeffect" | "aria-errormessage" | "aria-expanded" | "aria-flowto" | "aria-grabbed" | "aria-haspopup" | "aria-hidden" | "aria-invalid" | "aria-keyshortcuts" | "aria-label" | "aria-labelledby" | "aria-level" | "aria-live" | "aria-modal" | "aria-multiline" | "aria-multiselectable" | "aria-orientation" | "aria-owns" | "aria-placeholder" | "aria-posinset" | "aria-pressed" | "aria-readonly" | "aria-relevant" | "aria-required" | "aria-roledescription" | "aria-rowcount" | "aria-rowindex" | "aria-rowspan" | "aria-selected" | "aria-setsize" | "aria-sort" | "aria-valuemax" | "aria-valuemin" | "aria-valuenow" | "aria-valuetext" | "dangerouslySetInnerHTML" | "onCopy" | "onCopyCapture" | "onCut" | "onCutCapture" | "onPaste" | "onPasteCapture" | "onCompositionEnd" | "onCompositionEndCapture" | "onCompositionStart" | "onCompositionStartCapture" | "onCompositionUpdate" | "onCompositionUpdateCapture" | "onFocus" | "onFocusCapture" | "onBlur" | "onBlurCapture" | "onChangeCapture" | "onBeforeInput" | "onBeforeInputCapture" | "onInput" | "onInputCapture" | "onReset" | "onResetCapture" | "onSubmit" | "onSubmitCapture" | "onInvalid" | "onInvalidCapture" | "onLoad" | "onLoadCapture" | "onError" | "onErrorCapture" | "onKeyDown" | "onKeyDownCapture" | "onKeyPress" | "onKeyPressCapture" | "onKeyUp" | "onKeyUpCapture" | "onAbort" | "onAbortCapture" | "onCanPlay" | "onCanPlayCapture" | "onCanPlayThrough" | "onCanPlayThroughCapture" | "onDurationChange" | "onDurationChangeCapture" | "onEmptied" | "onEmptiedCapture" | "onEncrypted" | "onEncryptedCapture" | "onEnded" | "onEndedCapture" | "onLoadedData" | "onLoadedDataCapture" | "onLoadedMetadata" | "onLoadedMetadataCapture" | "onLoadStart" | "onLoadStartCapture" | "onPauseCapture" | "onPlay" | "onPlayCapture" | "onPlaying" | "onPlayingCapture" | "onProgress" | "onProgressCapture" | "onRateChange" | "onRateChangeCapture" | "onSeeked" | "onSeekedCapture" | "onSeeking" | "onSeekingCapture" | "onStalled" | "onStalledCapture" | "onSuspend" | "onSuspendCapture" | "onTimeUpdate" | "onTimeUpdateCapture" | "onVolumeChange" | "onVolumeChangeCapture" | "onWaiting" | "onWaitingCapture" | "onAuxClick" | "onAuxClickCapture" | "onClick" | "onClickCapture" | "onContextMenu" | "onContextMenuCapture" | "onDoubleClick" | "onDoubleClickCapture" | "onDrag" | "onDragCapture" | "onDragEnd" | "onDragEndCapture" | "onDragEnter" | "onDragEnterCapture" | "onDragExit" | "onDragExitCapture" | "onDragLeave" | "onDragLeaveCapture" | "onDragOver" | "onDragOverCapture" | "onDragStart" | "onDragStartCapture" | "onDrop" | "onDropCapture" | "onMouseDown" | "onMouseDownCapture" | "onMouseEnter" | "onMouseLeave" | "onMouseMove" | "onMouseMoveCapture" | "onMouseOut" | "onMouseOutCapture" | "onMouseOver" | "onMouseOverCapture" | "onMouseUp" | "onMouseUpCapture" | "onSelect" | "onSelectCapture" | "onTouchCancel" | "onTouchCancelCapture" | "onTouchEnd" | "onTouchEndCapture" | "onTouchMove" | "onTouchMoveCapture" | "onTouchStart" | "onTouchStartCapture" | "onPointerDown" | "onPointerDownCapture" | "onPointerMove" | "onPointerMoveCapture" | "onPointerUp" | "onPointerUpCapture" | "onPointerCancel" | "onPointerCancelCapture" | "onPointerEnter" | "onPointerEnterCapture" | "onPointerLeave" | "onPointerLeaveCapture" | "onPointerOver" | "onPointerOverCapture" | "onPointerOut" | "onPointerOutCapture" | "onGotPointerCapture" | "onGotPointerCaptureCapture" | "onLostPointerCapture" | "onLostPointerCaptureCapture" | "onScroll" | "onScrollCapture" | "onWheel" | "onWheelCapture" | "onAnimationStart" | "onAnimationStartCapture" | "onAnimationEnd" | "onAnimationEndCapture" | "onAnimationIteration" | "onAnimationIterationCapture" | "onTransitionEnd" | "onTransitionEndCapture" | "key" | "defaultChecked" | "defaultValue" | "suppressContentEditableWarning" | "suppressHydrationWarning" | "accessKey" | "contentEditable" | "contextMenu" | "dir" | "draggable" | "hidden" | "placeholder" | "spellCheck" | "translate" | "radioGroup" | "about" | "datatype" | "inlist" | "prefix" | "property" | "resource" | "typeof" | "vocab" | "autoCapitalize" | "autoCorrect" | "autoSave" | "itemProp" | "itemScope" | "itemType" | "itemID" | "itemRef" | "results" | "security" | "unselectable" | "inputMode" | "is">>;
101
- static defaultProps: Required<Pick<CollapsiblePanelPropsBase, "overflow" | "disabled" | "renderChildrenWhenCollapsed" | "titleWithActions">>;
129
+ static propTypes: React.WeakValidationMap<CollapsiblePanelDeprecatedControlledProps & Required<Pick<CollapsiblePanelPropsBase, "overflow" | "disabled" | "inset" | "renderChildrenWhenCollapsed" | "titleWithActions">> & Pick<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "slot" | "style" | "onPause" | "className" | "color" | "id" | "lang" | "role" | "tabIndex" | "aria-activedescendant" | "aria-atomic" | "aria-autocomplete" | "aria-busy" | "aria-checked" | "aria-colcount" | "aria-colindex" | "aria-colspan" | "aria-controls" | "aria-current" | "aria-describedby" | "aria-details" | "aria-disabled" | "aria-dropeffect" | "aria-errormessage" | "aria-expanded" | "aria-flowto" | "aria-grabbed" | "aria-haspopup" | "aria-hidden" | "aria-invalid" | "aria-keyshortcuts" | "aria-label" | "aria-labelledby" | "aria-level" | "aria-live" | "aria-modal" | "aria-multiline" | "aria-multiselectable" | "aria-orientation" | "aria-owns" | "aria-placeholder" | "aria-posinset" | "aria-pressed" | "aria-readonly" | "aria-relevant" | "aria-required" | "aria-roledescription" | "aria-rowcount" | "aria-rowindex" | "aria-rowspan" | "aria-selected" | "aria-setsize" | "aria-sort" | "aria-valuemax" | "aria-valuemin" | "aria-valuenow" | "aria-valuetext" | "dangerouslySetInnerHTML" | "onCopy" | "onCopyCapture" | "onCut" | "onCutCapture" | "onPaste" | "onPasteCapture" | "onCompositionEnd" | "onCompositionEndCapture" | "onCompositionStart" | "onCompositionStartCapture" | "onCompositionUpdate" | "onCompositionUpdateCapture" | "onFocus" | "onFocusCapture" | "onBlur" | "onBlurCapture" | "onChangeCapture" | "onBeforeInput" | "onBeforeInputCapture" | "onInput" | "onInputCapture" | "onReset" | "onResetCapture" | "onSubmit" | "onSubmitCapture" | "onInvalid" | "onInvalidCapture" | "onLoad" | "onLoadCapture" | "onError" | "onErrorCapture" | "onKeyDown" | "onKeyDownCapture" | "onKeyPress" | "onKeyPressCapture" | "onKeyUp" | "onKeyUpCapture" | "onAbort" | "onAbortCapture" | "onCanPlay" | "onCanPlayCapture" | "onCanPlayThrough" | "onCanPlayThroughCapture" | "onDurationChange" | "onDurationChangeCapture" | "onEmptied" | "onEmptiedCapture" | "onEncrypted" | "onEncryptedCapture" | "onEnded" | "onEndedCapture" | "onLoadedData" | "onLoadedDataCapture" | "onLoadedMetadata" | "onLoadedMetadataCapture" | "onLoadStart" | "onLoadStartCapture" | "onPauseCapture" | "onPlay" | "onPlayCapture" | "onPlaying" | "onPlayingCapture" | "onProgress" | "onProgressCapture" | "onRateChange" | "onRateChangeCapture" | "onSeeked" | "onSeekedCapture" | "onSeeking" | "onSeekingCapture" | "onStalled" | "onStalledCapture" | "onSuspend" | "onSuspendCapture" | "onTimeUpdate" | "onTimeUpdateCapture" | "onVolumeChange" | "onVolumeChangeCapture" | "onWaiting" | "onWaitingCapture" | "onAuxClick" | "onAuxClickCapture" | "onClick" | "onClickCapture" | "onContextMenu" | "onContextMenuCapture" | "onDoubleClick" | "onDoubleClickCapture" | "onDrag" | "onDragCapture" | "onDragEnd" | "onDragEndCapture" | "onDragEnter" | "onDragEnterCapture" | "onDragExit" | "onDragExitCapture" | "onDragLeave" | "onDragLeaveCapture" | "onDragOver" | "onDragOverCapture" | "onDragStart" | "onDragStartCapture" | "onDrop" | "onDropCapture" | "onMouseDown" | "onMouseDownCapture" | "onMouseEnter" | "onMouseLeave" | "onMouseMove" | "onMouseMoveCapture" | "onMouseOut" | "onMouseOutCapture" | "onMouseOver" | "onMouseOverCapture" | "onMouseUp" | "onMouseUpCapture" | "onSelect" | "onSelectCapture" | "onTouchCancel" | "onTouchCancelCapture" | "onTouchEnd" | "onTouchEndCapture" | "onTouchMove" | "onTouchMoveCapture" | "onTouchStart" | "onTouchStartCapture" | "onPointerDown" | "onPointerDownCapture" | "onPointerMove" | "onPointerMoveCapture" | "onPointerUp" | "onPointerUpCapture" | "onPointerCancel" | "onPointerCancelCapture" | "onPointerEnter" | "onPointerEnterCapture" | "onPointerLeave" | "onPointerLeaveCapture" | "onPointerOver" | "onPointerOverCapture" | "onPointerOut" | "onPointerOutCapture" | "onGotPointerCapture" | "onGotPointerCaptureCapture" | "onLostPointerCapture" | "onLostPointerCaptureCapture" | "onScroll" | "onScrollCapture" | "onWheel" | "onWheelCapture" | "onAnimationStart" | "onAnimationStartCapture" | "onAnimationEnd" | "onAnimationEndCapture" | "onAnimationIteration" | "onAnimationIterationCapture" | "onTransitionEnd" | "onTransitionEndCapture" | "key" | "defaultChecked" | "defaultValue" | "suppressContentEditableWarning" | "suppressHydrationWarning" | "accessKey" | "contentEditable" | "contextMenu" | "dir" | "draggable" | "hidden" | "placeholder" | "spellCheck" | "translate" | "radioGroup" | "about" | "datatype" | "inlist" | "prefix" | "property" | "resource" | "typeof" | "vocab" | "autoCapitalize" | "autoCorrect" | "autoSave" | "itemProp" | "itemScope" | "itemType" | "itemID" | "itemRef" | "results" | "security" | "unselectable" | "inputMode" | "is">> | React.WeakValidationMap<CollapsiblePanelControlledProps & Required<Pick<CollapsiblePanelPropsBase, "overflow" | "disabled" | "inset" | "renderChildrenWhenCollapsed" | "titleWithActions">> & Pick<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "slot" | "style" | "onPause" | "className" | "color" | "id" | "lang" | "role" | "tabIndex" | "aria-activedescendant" | "aria-atomic" | "aria-autocomplete" | "aria-busy" | "aria-checked" | "aria-colcount" | "aria-colindex" | "aria-colspan" | "aria-controls" | "aria-current" | "aria-describedby" | "aria-details" | "aria-disabled" | "aria-dropeffect" | "aria-errormessage" | "aria-expanded" | "aria-flowto" | "aria-grabbed" | "aria-haspopup" | "aria-hidden" | "aria-invalid" | "aria-keyshortcuts" | "aria-label" | "aria-labelledby" | "aria-level" | "aria-live" | "aria-modal" | "aria-multiline" | "aria-multiselectable" | "aria-orientation" | "aria-owns" | "aria-placeholder" | "aria-posinset" | "aria-pressed" | "aria-readonly" | "aria-relevant" | "aria-required" | "aria-roledescription" | "aria-rowcount" | "aria-rowindex" | "aria-rowspan" | "aria-selected" | "aria-setsize" | "aria-sort" | "aria-valuemax" | "aria-valuemin" | "aria-valuenow" | "aria-valuetext" | "dangerouslySetInnerHTML" | "onCopy" | "onCopyCapture" | "onCut" | "onCutCapture" | "onPaste" | "onPasteCapture" | "onCompositionEnd" | "onCompositionEndCapture" | "onCompositionStart" | "onCompositionStartCapture" | "onCompositionUpdate" | "onCompositionUpdateCapture" | "onFocus" | "onFocusCapture" | "onBlur" | "onBlurCapture" | "onChangeCapture" | "onBeforeInput" | "onBeforeInputCapture" | "onInput" | "onInputCapture" | "onReset" | "onResetCapture" | "onSubmit" | "onSubmitCapture" | "onInvalid" | "onInvalidCapture" | "onLoad" | "onLoadCapture" | "onError" | "onErrorCapture" | "onKeyDown" | "onKeyDownCapture" | "onKeyPress" | "onKeyPressCapture" | "onKeyUp" | "onKeyUpCapture" | "onAbort" | "onAbortCapture" | "onCanPlay" | "onCanPlayCapture" | "onCanPlayThrough" | "onCanPlayThroughCapture" | "onDurationChange" | "onDurationChangeCapture" | "onEmptied" | "onEmptiedCapture" | "onEncrypted" | "onEncryptedCapture" | "onEnded" | "onEndedCapture" | "onLoadedData" | "onLoadedDataCapture" | "onLoadedMetadata" | "onLoadedMetadataCapture" | "onLoadStart" | "onLoadStartCapture" | "onPauseCapture" | "onPlay" | "onPlayCapture" | "onPlaying" | "onPlayingCapture" | "onProgress" | "onProgressCapture" | "onRateChange" | "onRateChangeCapture" | "onSeeked" | "onSeekedCapture" | "onSeeking" | "onSeekingCapture" | "onStalled" | "onStalledCapture" | "onSuspend" | "onSuspendCapture" | "onTimeUpdate" | "onTimeUpdateCapture" | "onVolumeChange" | "onVolumeChangeCapture" | "onWaiting" | "onWaitingCapture" | "onAuxClick" | "onAuxClickCapture" | "onClick" | "onClickCapture" | "onContextMenu" | "onContextMenuCapture" | "onDoubleClick" | "onDoubleClickCapture" | "onDrag" | "onDragCapture" | "onDragEnd" | "onDragEndCapture" | "onDragEnter" | "onDragEnterCapture" | "onDragExit" | "onDragExitCapture" | "onDragLeave" | "onDragLeaveCapture" | "onDragOver" | "onDragOverCapture" | "onDragStart" | "onDragStartCapture" | "onDrop" | "onDropCapture" | "onMouseDown" | "onMouseDownCapture" | "onMouseEnter" | "onMouseLeave" | "onMouseMove" | "onMouseMoveCapture" | "onMouseOut" | "onMouseOutCapture" | "onMouseOver" | "onMouseOverCapture" | "onMouseUp" | "onMouseUpCapture" | "onSelect" | "onSelectCapture" | "onTouchCancel" | "onTouchCancelCapture" | "onTouchEnd" | "onTouchEndCapture" | "onTouchMove" | "onTouchMoveCapture" | "onTouchStart" | "onTouchStartCapture" | "onPointerDown" | "onPointerDownCapture" | "onPointerMove" | "onPointerMoveCapture" | "onPointerUp" | "onPointerUpCapture" | "onPointerCancel" | "onPointerCancelCapture" | "onPointerEnter" | "onPointerEnterCapture" | "onPointerLeave" | "onPointerLeaveCapture" | "onPointerOver" | "onPointerOverCapture" | "onPointerOut" | "onPointerOutCapture" | "onGotPointerCapture" | "onGotPointerCaptureCapture" | "onLostPointerCapture" | "onLostPointerCaptureCapture" | "onScroll" | "onScrollCapture" | "onWheel" | "onWheelCapture" | "onAnimationStart" | "onAnimationStartCapture" | "onAnimationEnd" | "onAnimationEndCapture" | "onAnimationIteration" | "onAnimationIterationCapture" | "onTransitionEnd" | "onTransitionEndCapture" | "key" | "defaultChecked" | "defaultValue" | "suppressContentEditableWarning" | "suppressHydrationWarning" | "accessKey" | "contentEditable" | "contextMenu" | "dir" | "draggable" | "hidden" | "placeholder" | "spellCheck" | "translate" | "radioGroup" | "about" | "datatype" | "inlist" | "prefix" | "property" | "resource" | "typeof" | "vocab" | "autoCapitalize" | "autoCorrect" | "autoSave" | "itemProp" | "itemScope" | "itemType" | "itemID" | "itemRef" | "results" | "security" | "unselectable" | "inputMode" | "is">> | React.WeakValidationMap<CollapsiblePanelUncontrolledProps & Required<Pick<CollapsiblePanelPropsBase, "overflow" | "disabled" | "inset" | "renderChildrenWhenCollapsed" | "titleWithActions">> & Pick<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "slot" | "style" | "onPause" | "className" | "color" | "id" | "lang" | "role" | "tabIndex" | "aria-activedescendant" | "aria-atomic" | "aria-autocomplete" | "aria-busy" | "aria-checked" | "aria-colcount" | "aria-colindex" | "aria-colspan" | "aria-controls" | "aria-current" | "aria-describedby" | "aria-details" | "aria-disabled" | "aria-dropeffect" | "aria-errormessage" | "aria-expanded" | "aria-flowto" | "aria-grabbed" | "aria-haspopup" | "aria-hidden" | "aria-invalid" | "aria-keyshortcuts" | "aria-label" | "aria-labelledby" | "aria-level" | "aria-live" | "aria-modal" | "aria-multiline" | "aria-multiselectable" | "aria-orientation" | "aria-owns" | "aria-placeholder" | "aria-posinset" | "aria-pressed" | "aria-readonly" | "aria-relevant" | "aria-required" | "aria-roledescription" | "aria-rowcount" | "aria-rowindex" | "aria-rowspan" | "aria-selected" | "aria-setsize" | "aria-sort" | "aria-valuemax" | "aria-valuemin" | "aria-valuenow" | "aria-valuetext" | "dangerouslySetInnerHTML" | "onCopy" | "onCopyCapture" | "onCut" | "onCutCapture" | "onPaste" | "onPasteCapture" | "onCompositionEnd" | "onCompositionEndCapture" | "onCompositionStart" | "onCompositionStartCapture" | "onCompositionUpdate" | "onCompositionUpdateCapture" | "onFocus" | "onFocusCapture" | "onBlur" | "onBlurCapture" | "onChangeCapture" | "onBeforeInput" | "onBeforeInputCapture" | "onInput" | "onInputCapture" | "onReset" | "onResetCapture" | "onSubmit" | "onSubmitCapture" | "onInvalid" | "onInvalidCapture" | "onLoad" | "onLoadCapture" | "onError" | "onErrorCapture" | "onKeyDown" | "onKeyDownCapture" | "onKeyPress" | "onKeyPressCapture" | "onKeyUp" | "onKeyUpCapture" | "onAbort" | "onAbortCapture" | "onCanPlay" | "onCanPlayCapture" | "onCanPlayThrough" | "onCanPlayThroughCapture" | "onDurationChange" | "onDurationChangeCapture" | "onEmptied" | "onEmptiedCapture" | "onEncrypted" | "onEncryptedCapture" | "onEnded" | "onEndedCapture" | "onLoadedData" | "onLoadedDataCapture" | "onLoadedMetadata" | "onLoadedMetadataCapture" | "onLoadStart" | "onLoadStartCapture" | "onPauseCapture" | "onPlay" | "onPlayCapture" | "onPlaying" | "onPlayingCapture" | "onProgress" | "onProgressCapture" | "onRateChange" | "onRateChangeCapture" | "onSeeked" | "onSeekedCapture" | "onSeeking" | "onSeekingCapture" | "onStalled" | "onStalledCapture" | "onSuspend" | "onSuspendCapture" | "onTimeUpdate" | "onTimeUpdateCapture" | "onVolumeChange" | "onVolumeChangeCapture" | "onWaiting" | "onWaitingCapture" | "onAuxClick" | "onAuxClickCapture" | "onClick" | "onClickCapture" | "onContextMenu" | "onContextMenuCapture" | "onDoubleClick" | "onDoubleClickCapture" | "onDrag" | "onDragCapture" | "onDragEnd" | "onDragEndCapture" | "onDragEnter" | "onDragEnterCapture" | "onDragExit" | "onDragExitCapture" | "onDragLeave" | "onDragLeaveCapture" | "onDragOver" | "onDragOverCapture" | "onDragStart" | "onDragStartCapture" | "onDrop" | "onDropCapture" | "onMouseDown" | "onMouseDownCapture" | "onMouseEnter" | "onMouseLeave" | "onMouseMove" | "onMouseMoveCapture" | "onMouseOut" | "onMouseOutCapture" | "onMouseOver" | "onMouseOverCapture" | "onMouseUp" | "onMouseUpCapture" | "onSelect" | "onSelectCapture" | "onTouchCancel" | "onTouchCancelCapture" | "onTouchEnd" | "onTouchEndCapture" | "onTouchMove" | "onTouchMoveCapture" | "onTouchStart" | "onTouchStartCapture" | "onPointerDown" | "onPointerDownCapture" | "onPointerMove" | "onPointerMoveCapture" | "onPointerUp" | "onPointerUpCapture" | "onPointerCancel" | "onPointerCancelCapture" | "onPointerEnter" | "onPointerEnterCapture" | "onPointerLeave" | "onPointerLeaveCapture" | "onPointerOver" | "onPointerOverCapture" | "onPointerOut" | "onPointerOutCapture" | "onGotPointerCapture" | "onGotPointerCaptureCapture" | "onLostPointerCapture" | "onLostPointerCaptureCapture" | "onScroll" | "onScrollCapture" | "onWheel" | "onWheelCapture" | "onAnimationStart" | "onAnimationStartCapture" | "onAnimationEnd" | "onAnimationEndCapture" | "onAnimationIteration" | "onAnimationIterationCapture" | "onTransitionEnd" | "onTransitionEndCapture" | "key" | "defaultChecked" | "defaultValue" | "suppressContentEditableWarning" | "suppressHydrationWarning" | "accessKey" | "contentEditable" | "contextMenu" | "dir" | "draggable" | "hidden" | "placeholder" | "spellCheck" | "translate" | "radioGroup" | "about" | "datatype" | "inlist" | "prefix" | "property" | "resource" | "typeof" | "vocab" | "autoCapitalize" | "autoCorrect" | "autoSave" | "itemProp" | "itemScope" | "itemType" | "itemID" | "itemRef" | "results" | "security" | "unselectable" | "inputMode" | "is">>;
130
+ static defaultProps: Required<Pick<CollapsiblePanelPropsBase, "overflow" | "disabled" | "inset" | "renderChildrenWhenCollapsed" | "titleWithActions">>;
131
+ context: React.ContextType<typeof SingleOpenPanelGroupContext>;
132
+ static contextType: React.Context<SingleOpenPanelGroupContext>;
102
133
  constructor(props: Readonly<CollapsiblePanelProps>);
134
+ componentDidMount(): void;
103
135
  componentDidUpdate(prevProps: Readonly<CollapsiblePanelProps>): void;
104
136
  private handleRequestClose;
105
137
  private handleRequestOpen;
138
+ private handleChange;
106
139
  private handleAnimationEnd;
107
140
  private isControlled;
108
141
  render(): JSX.Element;
109
142
  }
110
143
  export default CollapsiblePanel;
111
- export { CollapsiblePanelRequestCloseHandler, CollapsiblePanelRequestOpenHandler };
144
+ export { SingleOpenPanelGroup };
145
+ export type { CollapsiblePanelRequestCloseHandler, CollapsiblePanelRequestOpenHandler, CollapsiblePanelChangeHandler, SingleOpenPanelGroupChangeHandler, };
@@ -0,0 +1,62 @@
1
+ import React from 'react';
2
+ import PropTypes from 'prop-types';
3
+ import { ComponentProps } from '../utils/types';
4
+ /** @public */
5
+ declare type SingleOpenPanelGroupChangeHandler = (event: React.MouseEvent<HTMLButtonElement>, data: {
6
+ openPanelId?: string | number | null;
7
+ reason: 'toggleClick';
8
+ }) => void;
9
+ interface SingleOpenPanelGroupPropsBase {
10
+ /**
11
+ * Must be `CollapsiblePanel`.
12
+ */
13
+ children?: React.ReactNode;
14
+ /**
15
+ * Sets the panel to expand on the initial render. Use only when using
16
+ * `SingleOpenPanelGroup` as an uncontrolled component. Must match the `panelId` of
17
+ * one of the `CollapsiblePanel` children.
18
+ */
19
+ defaultOpenPanelId?: string | number;
20
+ /**
21
+ * A React ref which is set to the DOM element when the component mounts and null when it unmounts.
22
+ */
23
+ elementRef?: React.Ref<HTMLDivElement>;
24
+ /**
25
+ * If set to true, adds padding to panel content.
26
+ */
27
+ inset?: boolean;
28
+ /**
29
+ * Invoked on a change of the open panel. Callback is passed data, such as
30
+ * the `panelId` of the `CollapsiblePanel` that originated the expand request.
31
+ * `panelId` is `undefined` when the open panel is collapsed.
32
+ */
33
+ onChange?: SingleOpenPanelGroupChangeHandler;
34
+ /**
35
+ * Indicates the `panelId` of the currently expanded `CollapsiblePanel`.
36
+ * Use only when using `SingleOpenPanelGroup` as a controlled component.
37
+ */
38
+ openPanelId?: string | number | null;
39
+ }
40
+ interface SingleOpenPanelGroupControlledProps extends SingleOpenPanelGroupPropsBase {
41
+ defaultOpenPanelId?: never;
42
+ onChange: SingleOpenPanelGroupChangeHandler;
43
+ openPanelId?: string | number | null;
44
+ }
45
+ interface SingleOpenPanelGroupUncontrolledProps extends SingleOpenPanelGroupPropsBase {
46
+ defaultOpenPanelId?: string | number;
47
+ openPanelId?: never;
48
+ }
49
+ declare type SingleOpenPanelGroupProps = ComponentProps<SingleOpenPanelGroupControlledProps | SingleOpenPanelGroupUncontrolledProps, 'div'>;
50
+ declare function SingleOpenPanelGroup(props: SingleOpenPanelGroupProps): JSX.Element;
51
+ declare namespace SingleOpenPanelGroup {
52
+ var propTypes: {
53
+ children: PropTypes.Requireable<PropTypes.ReactNodeLike>;
54
+ defaultOpenPanelId: PropTypes.Requireable<any>;
55
+ elementRef: PropTypes.Requireable<object>;
56
+ inset: PropTypes.Requireable<boolean>;
57
+ onChange: PropTypes.Requireable<(...args: any[]) => any>;
58
+ openPanelId: PropTypes.Requireable<any>;
59
+ };
60
+ }
61
+ export default SingleOpenPanelGroup;
62
+ export { SingleOpenPanelGroupChangeHandler };
@@ -0,0 +1,9 @@
1
+ /// <reference types="react" />
2
+ import { CollapsiblePanelChangeHandler } from '@splunk/react-ui/CollapsiblePanel';
3
+ export interface SingleOpenPanelGroupContext {
4
+ onChange?: CollapsiblePanelChangeHandler;
5
+ openPanelId?: string | number | null;
6
+ inset?: boolean;
7
+ }
8
+ export declare const SingleOpenPanelGroupContext: import("react").Context<SingleOpenPanelGroupContext>;
9
+ export default SingleOpenPanelGroupContext;
@@ -1,2 +1,2 @@
1
- declare function BasicControlled(): JSX.Element;
2
- export default BasicControlled;
1
+ declare function MultiControlled(): JSX.Element;
2
+ export default MultiControlled;
@@ -0,0 +1,2 @@
1
+ declare function SingleOpenPanelGroupControlled(): JSX.Element;
2
+ export default SingleOpenPanelGroupControlled;
@@ -0,0 +1,2 @@
1
+ declare function SingleOpenPanelGroupUncontrolled(): JSX.Element;
2
+ export default SingleOpenPanelGroupUncontrolled;
@@ -1,11 +1,13 @@
1
1
  import PropTypes from 'prop-types';
2
- interface ChevronRightIconProps {
2
+ declare type ExpandPanelIconProps = {
3
+ className?: string;
3
4
  open?: boolean;
4
- }
5
- declare const ChevronRight: {
6
- ({ open }: ChevronRightIconProps): JSX.Element;
5
+ };
6
+ declare const ExpandPanelIcon: {
7
+ ({ className, open }: ExpandPanelIconProps): JSX.Element;
7
8
  propTypes: {
9
+ className: PropTypes.Requireable<string>;
8
10
  open: PropTypes.Requireable<boolean>;
9
11
  };
10
12
  };
11
- export default ChevronRight;
13
+ export default ExpandPanelIcon;
@@ -1,15 +1,2 @@
1
- import { Component } from 'react';
2
- import { FileRequestAddHandler } from '@splunk/react-ui/File';
3
- declare class Fullscreen extends Component<{}, {
4
- filename?: string;
5
- open: boolean;
6
- }> {
7
- private fileReader;
8
- constructor(props: {});
9
- handleAddFiles: FileRequestAddHandler;
10
- handleRemoveFile: () => void;
11
- handleOpen: () => void;
12
- handleClose: () => void;
13
- render(): JSX.Element;
14
- }
1
+ declare function Fullscreen(): JSX.Element;
15
2
  export default Fullscreen;
@@ -0,0 +1,45 @@
1
+ import React from 'react';
2
+ import PropTypes from 'prop-types';
3
+ import { JSONElement } from './JSONTree';
4
+ import { TreeItemPropsBase } from '../Tree';
5
+ import { ComponentProps } from '../utils/types';
6
+ declare type ExpandLinkHandler = (data: {
7
+ open: boolean;
8
+ withTooltip: boolean;
9
+ }) => {
10
+ expandLink: JSX.Element;
11
+ expandLinkRef: React.RefObject<HTMLButtonElement>;
12
+ };
13
+ interface JSONTreeItemPropsBase extends TreeItemPropsBase {
14
+ clickableKeyRef?: React.RefObject<HTMLButtonElement> | undefined;
15
+ clickableValRef?: React.RefObject<HTMLButtonElement> | undefined;
16
+ hasChildren?: boolean;
17
+ indentArray?: string[];
18
+ index: number;
19
+ initialOpenState: boolean;
20
+ properties?: string[];
21
+ propertyDataPath: string;
22
+ propertyElement?: JSX.Element | undefined;
23
+ renderExpandLink?: ExpandLinkHandler;
24
+ representation?: JSX.Element | JSX.Element[];
25
+ value?: JSONElement;
26
+ }
27
+ declare type JSONTreeItemProps = ComponentProps<JSONTreeItemPropsBase, 'li'>;
28
+ export declare function JSONTreeItem({ clickableKeyRef, clickableValRef, hasChildren, indentArray, index, initialOpenState, onFocus, properties, propertyDataPath, propertyElement, renderExpandLink, representation, value, ...otherProps }: JSONTreeItemProps): JSX.Element;
29
+ export declare namespace JSONTreeItem {
30
+ var propTypes: {
31
+ clickableKeyRef: PropTypes.Requireable<object>;
32
+ clickableValRef: PropTypes.Requireable<object>;
33
+ hasChildren: PropTypes.Requireable<boolean>;
34
+ indentArray: PropTypes.Requireable<(string | null | undefined)[]>;
35
+ index: PropTypes.Requireable<number>;
36
+ initialOpenState: PropTypes.Requireable<boolean>;
37
+ properties: PropTypes.Requireable<(string | null | undefined)[]>;
38
+ propertyDataPath: PropTypes.Requireable<string>;
39
+ propertyElement: PropTypes.Requireable<PropTypes.ReactNodeLike>;
40
+ renderExpandLink: PropTypes.Requireable<(...args: any[]) => any>;
41
+ representation: PropTypes.Requireable<PropTypes.ReactNodeLike>;
42
+ value: PropTypes.Requireable<string | number | boolean | object>;
43
+ };
44
+ }
45
+ export {};
@@ -0,0 +1,17 @@
1
+ import { JSONElement, JSONTreeClickKeyHandler, JSONTreeClickValueHandler } from './JSONTree';
2
+ declare type renderTreeItemsProps = {
3
+ defaultOpen?: boolean;
4
+ expandChildren?: boolean | 'withShiftModifier';
5
+ expandChildrenOnShiftKey?: boolean;
6
+ indent?: number;
7
+ indentLevel?: number;
8
+ obj: JSONElement;
9
+ onClickKey?: JSONTreeClickKeyHandler;
10
+ onClickValue?: JSONTreeClickValueHandler;
11
+ overflow?: 'wrap' | 'scroll';
12
+ path?: (string | number)[];
13
+ shift?: boolean;
14
+ updateShift: ((newShift: boolean) => void) | undefined;
15
+ };
16
+ export declare function renderTreeItems({ defaultOpen, expandChildren, expandChildrenOnShiftKey, indent, indentLevel, obj, onClickKey, onClickValue, overflow, path, shift, updateShift, }: renderTreeItemsProps): JSX.Element | JSX.Element[];
17
+ export {};
@@ -6,7 +6,7 @@ interface MarkdownAnchorHeadingPropsBase {
6
6
  level: 1 | 2 | 3 | 4 | 5 | 6;
7
7
  }
8
8
  declare type MarkdownAnchorHeadingProps = ComponentProps<MarkdownAnchorHeadingPropsBase, 'h1'>;
9
- declare function MarkdownAnchorHeading({ level, children }: MarkdownAnchorHeadingProps): JSX.Element;
9
+ declare function MarkdownAnchorHeading({ level, children, ...otherProps }: MarkdownAnchorHeadingProps): JSX.Element;
10
10
  declare namespace MarkdownAnchorHeading {
11
11
  var propTypes: {
12
12
  children: PropTypes.Requireable<PropTypes.ReactNodeLike>;
@@ -5,7 +5,7 @@ interface MarkdownBlockquotePropsBase {
5
5
  children: React.ReactNode[];
6
6
  }
7
7
  declare type MarkdownBlockquoteProps = ComponentProps<MarkdownBlockquotePropsBase, 'blockquote'>;
8
- declare function MarkdownBlockquote({ children }: MarkdownBlockquoteProps): JSX.Element;
8
+ declare function MarkdownBlockquote({ children, ...otherProps }: MarkdownBlockquoteProps): JSX.Element;
9
9
  declare namespace MarkdownBlockquote {
10
10
  var propTypes: {
11
11
  children: PropTypes.Requireable<PropTypes.ReactNodeLike>;
@@ -5,7 +5,7 @@ interface MarkdownCodePropsBase {
5
5
  literal: string;
6
6
  }
7
7
  declare type MarkdownCodeProps = ComponentProps<MarkdownCodePropsBase, 'code'>;
8
- declare function MarkdownCode({ literal }: MarkdownCodeProps): JSX.Element;
8
+ declare function MarkdownCode({ literal, ...otherProps }: MarkdownCodeProps): JSX.Element;
9
9
  declare namespace MarkdownCode {
10
10
  var propTypes: {
11
11
  literal: PropTypes.Requireable<string>;
@@ -5,7 +5,7 @@ interface MarkdownCodeBlockPropsBase {
5
5
  literal: string;
6
6
  }
7
7
  declare type MarkdownCodeBlockProps = ComponentProps<MarkdownCodeBlockPropsBase, 'div'>;
8
- declare function MarkdownCodeBlock({ literal, language }: MarkdownCodeBlockProps): JSX.Element;
8
+ declare function MarkdownCodeBlock({ literal, language, ...otherProps }: MarkdownCodeBlockProps): JSX.Element;
9
9
  declare namespace MarkdownCodeBlock {
10
10
  var propTypes: {
11
11
  literal: PropTypes.Requireable<string>;
@@ -6,7 +6,7 @@ interface MarkdownHeadingPropsBase {
6
6
  level: 1 | 2 | 3 | 4 | 5 | 6;
7
7
  }
8
8
  declare type MarkdownHeadingProps = ComponentProps<MarkdownHeadingPropsBase, 'h1'>;
9
- declare function MarkdownHeading({ level, children }: MarkdownHeadingProps): JSX.Element;
9
+ declare function MarkdownHeading({ level, children, ...otherProps }: MarkdownHeadingProps): JSX.Element;
10
10
  declare namespace MarkdownHeading {
11
11
  var propTypes: {
12
12
  children: PropTypes.Requireable<PropTypes.ReactNodeLike>;
@@ -6,7 +6,7 @@ interface MarkdownImagePropsBase {
6
6
  title?: string;
7
7
  }
8
8
  declare type MarkdownImageProps = ComponentProps<MarkdownImagePropsBase, 'img'>;
9
- declare function MarkdownImage({ src, title, alt }: MarkdownImageProps): JSX.Element;
9
+ declare function MarkdownImage({ src, title, alt, ...otherProps }: MarkdownImageProps): JSX.Element;
10
10
  declare namespace MarkdownImage {
11
11
  var propTypes: {
12
12
  alt: PropTypes.Requireable<string>;
@@ -5,7 +5,7 @@ interface MarkdownItemPropsBase {
5
5
  children: React.ReactNode[];
6
6
  }
7
7
  declare type MarkdownItemProps = ComponentProps<MarkdownItemPropsBase, 'li'>;
8
- declare function MarkdownItem({ children }: MarkdownItemProps): JSX.Element;
8
+ declare function MarkdownItem({ children, ...otherProps }: MarkdownItemProps): JSX.Element;
9
9
  declare namespace MarkdownItem {
10
10
  var propTypes: {
11
11
  children: PropTypes.Requireable<PropTypes.ReactNodeLike>;
@@ -18,7 +18,7 @@ interface MarkdownListUnorderedPropsBase extends MarkdownListPropsBase {
18
18
  declare type MarkdownListOrderedProps = ComponentProps<MarkdownListOrderedPropsBase, 'ol'>;
19
19
  declare type MarkdownListUnorderedProps = ComponentProps<MarkdownListUnorderedPropsBase, 'ul'>;
20
20
  declare type MarkdownListProps = MarkdownListOrderedProps | MarkdownListUnorderedProps;
21
- declare function MarkdownList({ children, type }: MarkdownListProps): JSX.Element;
21
+ declare function MarkdownList({ children, type, ...otherProps }: MarkdownListProps): JSX.Element;
22
22
  declare namespace MarkdownList {
23
23
  var propTypes: {
24
24
  children: PropTypes.Requireable<PropTypes.ReactNodeLike>;
@@ -5,7 +5,7 @@ interface MarkdownParagraphPropsBase {
5
5
  children: React.ReactNode[];
6
6
  }
7
7
  declare type MarkdownParagraphProps = ComponentProps<MarkdownParagraphPropsBase, 'p'>;
8
- declare function MarkdownParagraph({ children }: MarkdownParagraphProps): JSX.Element;
8
+ declare function MarkdownParagraph({ children, ...otherProps }: MarkdownParagraphProps): JSX.Element;
9
9
  declare namespace MarkdownParagraph {
10
10
  var propTypes: {
11
11
  children: PropTypes.Requireable<PropTypes.ReactNodeLike>;
@@ -37,8 +37,6 @@ interface ModalPropsBase {
37
37
  * and a reason, which is either 'escapeKey' or 'clickAway'.
38
38
  *
39
39
  * Generally, use this callback to toggle the `open` prop.
40
- *
41
- * This callback must return focus to the invoking element or other element that follows the logical flow of the application.
42
40
  */
43
41
  onRequestClose?: ModalRequestCloseHandler;
44
42
  /**
@@ -46,12 +44,13 @@ interface ModalPropsBase {
46
44
  */
47
45
  open?: boolean;
48
46
  /**
49
- * Ref of the invoking element (or other element that follows the logical flow of the application) to be focused after the `Modal` is closed.
50
- * If you are not using this prop, then you *must* manually return focus to the invoking element in `onRequestClose`.
47
+ * Pass the ref of the invoking element (or other element that follows the logical flow of the application) to automatically move focus
48
+ * to the invoking element on `Modal` close. If using a ref is not possible, you *must* pass a function that sets focus to the appropriate element.
49
+ * This function will be called after `onRequestClose`.
51
50
  */
52
51
  returnFocus?: React.MutableRefObject<(React.Component & {
53
52
  focus: () => void;
54
- }) | HTMLElement | null>;
53
+ }) | HTMLElement | null> | (() => void);
55
54
  }
56
55
  declare const defaultProps: Required<Pick<ModalPropsBase, 'initialFocus' | 'open' | 'divider'>>;
57
56
  declare type ModalProps = ClassComponentProps<ModalPropsBase, typeof defaultProps, 'div'>;
@@ -176,6 +176,7 @@ declare class Normal extends Component<NormalProps, NormalState> {
176
176
  private removeValue;
177
177
  private renderButtons;
178
178
  private renderMenu;
179
+ private getSelectedItemsContent;
179
180
  render(): JSX.Element;
180
181
  }
181
182
  export default Normal;