@eccenca/gui-elements 25.0.0 → 25.1.0-rc.1
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/CHANGELOG.md +65 -0
- package/dist/cjs/cmem/ActivityControl/ActivityControlWidget.js +17 -13
- package/dist/cjs/cmem/ActivityControl/ActivityControlWidget.js.map +1 -1
- package/dist/cjs/cmem/ActivityControl/SilkActivityControl.js +1 -3
- package/dist/cjs/cmem/ActivityControl/SilkActivityControl.js.map +1 -1
- package/dist/cjs/cmem/ContentBlobToggler/ContentBlobToggler.js +1 -0
- package/dist/cjs/cmem/ContentBlobToggler/ContentBlobToggler.js.map +1 -1
- package/dist/cjs/cmem/ContentBlobToggler/StringPreviewContentBlobToggler.js +34 -11
- package/dist/cjs/cmem/ContentBlobToggler/StringPreviewContentBlobToggler.js.map +1 -1
- package/dist/cjs/cmem/react-flow/ReactFlow/ReactFlowV12.js.map +1 -1
- package/dist/cjs/common/Intent/index.js +1 -1
- package/dist/cjs/common/Intent/index.js.map +1 -1
- package/dist/cjs/components/Application/ApplicationViewability.js +33 -0
- package/dist/cjs/components/Application/ApplicationViewability.js.map +1 -0
- package/dist/cjs/components/Application/index.js +1 -0
- package/dist/cjs/components/Application/index.js.map +1 -1
- package/dist/cjs/components/ContextOverlay/ContextOverlay.js +6 -6
- package/dist/cjs/components/ContextOverlay/ContextOverlay.js.map +1 -1
- package/dist/cjs/components/DecoupledOverlay/DecoupledOverlay.js +47 -0
- package/dist/cjs/components/DecoupledOverlay/DecoupledOverlay.js.map +1 -0
- package/dist/cjs/components/Icon/IconButton.js.map +1 -1
- package/dist/cjs/components/Icon/canonicalIconNames.js +3 -0
- package/dist/cjs/components/Icon/canonicalIconNames.js.map +1 -1
- package/dist/cjs/components/Icon/transformIcon.js +14 -0
- package/dist/cjs/components/Icon/transformIcon.js.map +1 -0
- package/dist/cjs/components/MultiSelect/MultiSelect.js +2 -1
- package/dist/cjs/components/MultiSelect/MultiSelect.js.map +1 -1
- package/dist/cjs/components/Typography/InlineText.js +29 -0
- package/dist/cjs/components/Typography/InlineText.js.map +1 -0
- package/dist/cjs/components/Typography/index.js +1 -0
- package/dist/cjs/components/Typography/index.js.map +1 -1
- package/dist/cjs/components/VisualTour/VisualTour.js +24 -32
- package/dist/cjs/components/VisualTour/VisualTour.js.map +1 -1
- package/dist/cjs/components/index.js +1 -0
- package/dist/cjs/components/index.js.map +1 -1
- package/dist/cjs/extensions/codemirror/CodeMirror.js +18 -6
- package/dist/cjs/extensions/codemirror/CodeMirror.js.map +1 -1
- package/dist/cjs/extensions/codemirror/hooks/useCodemirrorModeExtension.hooks.js +1 -1
- package/dist/cjs/extensions/codemirror/hooks/useCodemirrorModeExtension.hooks.js.map +1 -1
- package/dist/cjs/extensions/codemirror/tests/codemirrorTestHelper.js +2 -2
- package/dist/cjs/extensions/codemirror/tests/codemirrorTestHelper.js.map +1 -1
- package/dist/cjs/extensions/react-flow/edges/EdgeLabel.js +1 -1
- package/dist/cjs/extensions/react-flow/edges/EdgeLabel.js.map +1 -1
- package/dist/cjs/extensions/react-flow/edges/EdgeNew.js +1 -1
- package/dist/cjs/extensions/react-flow/edges/EdgeNew.js.map +1 -1
- package/dist/cjs/extensions/react-flow/handles/HandleDefault.js +1 -1
- package/dist/cjs/extensions/react-flow/handles/HandleDefault.js.map +1 -1
- package/dist/cjs/extensions/react-flow/minimap/MiniMap.js +1 -1
- package/dist/cjs/extensions/react-flow/minimap/MiniMap.js.map +1 -1
- package/dist/cjs/extensions/react-flow/minimap/MiniMapV12.js.map +1 -1
- package/dist/cjs/extensions/react-flow/nodes/nodeUtils.js.map +1 -1
- package/dist/esm/cmem/ActivityControl/ActivityControlWidget.js +19 -14
- package/dist/esm/cmem/ActivityControl/ActivityControlWidget.js.map +1 -1
- package/dist/esm/cmem/ActivityControl/SilkActivityControl.js +1 -3
- package/dist/esm/cmem/ActivityControl/SilkActivityControl.js.map +1 -1
- package/dist/esm/cmem/ContentBlobToggler/ContentBlobToggler.js +1 -0
- package/dist/esm/cmem/ContentBlobToggler/ContentBlobToggler.js.map +1 -1
- package/dist/esm/cmem/ContentBlobToggler/StringPreviewContentBlobToggler.js +32 -9
- package/dist/esm/cmem/ContentBlobToggler/StringPreviewContentBlobToggler.js.map +1 -1
- package/dist/esm/cmem/react-flow/ReactFlow/ReactFlowV12.js.map +1 -1
- package/dist/esm/common/Intent/index.js +1 -1
- package/dist/esm/common/Intent/index.js.map +1 -1
- package/dist/esm/components/Application/ApplicationViewability.js +28 -0
- package/dist/esm/components/Application/ApplicationViewability.js.map +1 -0
- package/dist/esm/components/Application/index.js +1 -0
- package/dist/esm/components/Application/index.js.map +1 -1
- package/dist/esm/components/ContextOverlay/ContextOverlay.js +3 -3
- package/dist/esm/components/ContextOverlay/ContextOverlay.js.map +1 -1
- package/dist/esm/components/DecoupledOverlay/DecoupledOverlay.js +41 -0
- package/dist/esm/components/DecoupledOverlay/DecoupledOverlay.js.map +1 -0
- package/dist/esm/components/Icon/IconButton.js.map +1 -1
- package/dist/esm/components/Icon/canonicalIconNames.js +3 -0
- package/dist/esm/components/Icon/canonicalIconNames.js.map +1 -1
- package/dist/esm/components/Icon/transformIcon.js +21 -0
- package/dist/esm/components/Icon/transformIcon.js.map +1 -0
- package/dist/esm/components/MultiSelect/MultiSelect.js +3 -2
- package/dist/esm/components/MultiSelect/MultiSelect.js.map +1 -1
- package/dist/esm/components/Typography/InlineText.js +33 -0
- package/dist/esm/components/Typography/InlineText.js.map +1 -0
- package/dist/esm/components/Typography/index.js +1 -0
- package/dist/esm/components/Typography/index.js.map +1 -1
- package/dist/esm/components/VisualTour/VisualTour.js +25 -33
- package/dist/esm/components/VisualTour/VisualTour.js.map +1 -1
- package/dist/esm/components/index.js +1 -0
- package/dist/esm/components/index.js.map +1 -1
- package/dist/esm/extensions/codemirror/CodeMirror.js +19 -7
- package/dist/esm/extensions/codemirror/CodeMirror.js.map +1 -1
- package/dist/esm/extensions/codemirror/hooks/useCodemirrorModeExtension.hooks.js +1 -1
- package/dist/esm/extensions/codemirror/hooks/useCodemirrorModeExtension.hooks.js.map +1 -1
- package/dist/esm/extensions/codemirror/tests/codemirrorTestHelper.js +3 -3
- package/dist/esm/extensions/codemirror/tests/codemirrorTestHelper.js.map +1 -1
- package/dist/esm/extensions/react-flow/edges/EdgeLabel.js +1 -1
- package/dist/esm/extensions/react-flow/edges/EdgeLabel.js.map +1 -1
- package/dist/esm/extensions/react-flow/edges/EdgeNew.js +1 -1
- package/dist/esm/extensions/react-flow/edges/EdgeNew.js.map +1 -1
- package/dist/esm/extensions/react-flow/handles/HandleDefault.js +1 -1
- package/dist/esm/extensions/react-flow/handles/HandleDefault.js.map +1 -1
- package/dist/esm/extensions/react-flow/minimap/MiniMap.js +1 -1
- package/dist/esm/extensions/react-flow/minimap/MiniMap.js.map +1 -1
- package/dist/esm/extensions/react-flow/minimap/MiniMapV12.js.map +1 -1
- package/dist/esm/extensions/react-flow/nodes/nodeUtils.js.map +1 -1
- package/dist/types/cmem/ActivityControl/ActivityControlWidget.d.ts +9 -0
- package/dist/types/cmem/ContentBlobToggler/StringPreviewContentBlobToggler.d.ts +26 -10
- package/dist/types/components/Application/ApplicationViewability.d.ts +36 -0
- package/dist/types/components/Application/index.d.ts +1 -0
- package/dist/types/components/ContextOverlay/ContextOverlay.d.ts +7 -1
- package/dist/types/components/DecoupledOverlay/DecoupledOverlay.d.ts +20 -0
- package/dist/types/components/Icon/IconButton.d.ts +1 -1
- package/dist/types/components/Icon/canonicalIconNames.d.ts +2 -0
- package/dist/types/components/Icon/transformIcon.d.ts +2 -0
- package/dist/types/components/MultiSelect/MultiSelect.d.ts +1 -1
- package/dist/types/components/Structure/TitleSubsection.d.ts +1 -1
- package/dist/types/components/Tabs/Tab.d.ts +2 -2
- package/dist/types/components/Typography/InlineText.d.ts +13 -0
- package/dist/types/components/Typography/index.d.ts +1 -0
- package/dist/types/components/index.d.ts +1 -0
- package/dist/types/extensions/codemirror/hooks/useCodemirrorModeExtension.hooks.d.ts +1 -1
- package/dist/types/extensions/codemirror/tests/codemirrorTestHelper.d.ts +1 -1
- package/package.json +50 -51
- package/src/cmem/ActivityControl/ActivityControlWidget.tsx +68 -35
- package/src/cmem/ActivityControl/SilkActivityControl.tsx +1 -1
- package/src/cmem/ContentBlobToggler/ContentBlobToggler.tsx +1 -1
- package/src/cmem/ContentBlobToggler/StringPreviewContentBlobToggler.tsx +66 -18
- package/src/cmem/ContentBlobToggler/stories/StringPreviewContentBlobToggler.stories.tsx +27 -0
- package/src/cmem/ContentBlobToggler/tests/StringPreviewContentBlobToggler.test.tsx +98 -0
- package/src/cmem/react-flow/ReactFlow/ReactFlowV12.tsx +1 -0
- package/src/common/Intent/index.ts +2 -1
- package/src/components/Application/ApplicationViewability.tsx +61 -0
- package/src/components/Application/_colors.scss +15 -0
- package/src/components/Application/_content.scss +7 -0
- package/src/components/Application/_header.scss +12 -3
- package/src/components/Application/_viewability.scss +13 -0
- package/src/components/Application/application.scss +1 -0
- package/src/components/Application/index.ts +1 -0
- package/src/components/Application/stories/ApplicationViewability.stories.tsx +37 -0
- package/src/components/Application/tests/ApplicationViewability.test.tsx +43 -0
- package/src/components/AutoSuggestion/tests/ExtendedCodeEditor.test.tsx +1 -1
- package/src/components/Card/card.scss +6 -0
- package/src/components/Checkbox/checkbox.scss +14 -2
- package/src/components/ContentGroup/_contentgroup.scss +9 -0
- package/src/components/ContextOverlay/ContextOverlay.tsx +20 -1
- package/src/components/DecoupledOverlay/DecoupledOverlay.stories.tsx +30 -0
- package/src/components/DecoupledOverlay/DecoupledOverlay.tsx +97 -0
- package/src/components/DecoupledOverlay/_decoupledoverlay.scss +46 -0
- package/src/components/Depiction/depiction.scss +6 -0
- package/src/components/FlexibleLayout/flexiblelayout.scss +16 -0
- package/src/components/Grid/grid.scss +17 -0
- package/src/components/Grid/stories/Grid.stories.tsx +10 -7
- package/src/components/Grid/stories/GridRow.stories.tsx +13 -7
- package/src/components/Icon/IconButton.tsx +1 -1
- package/src/components/Icon/canonicalIconNames.tsx +3 -0
- package/src/components/Icon/transformIcon.tsx +17 -0
- package/src/components/Link/Link.stories.tsx +30 -0
- package/src/components/Link/link.scss +28 -2
- package/src/components/MultiSelect/MultiSelect.tsx +12 -3
- package/src/components/Notification/notification.scss +6 -0
- package/src/components/OverviewItem/overviewitem.scss +9 -0
- package/src/components/OverviewItem/stories/OverviewItem.stories.tsx +28 -0
- package/src/components/OverviewItem/stories/OverviewItemActions.stories.tsx +2 -2
- package/src/components/OverviewItem/stories/OverviewItemDescription.stories.tsx +1 -1
- package/src/components/OverviewItem/stories/OverviewItemLine.stories.tsx +1 -1
- package/src/components/PropertyValuePair/propertyvalue.scss +23 -1
- package/src/components/Separation/separation.scss +6 -0
- package/src/components/Table/table.scss +22 -0
- package/src/components/Tabs/stories/TabTitle.stories.tsx +7 -2
- package/src/components/Tag/stories/TagList.stories.tsx +2 -2
- package/src/components/Tag/tag.scss +19 -9
- package/src/components/TextReducer/TextReducer.test.tsx +3 -3
- package/src/components/Typography/InlineText.tsx +24 -0
- package/src/components/Typography/_reset.scss +1 -0
- package/src/components/Typography/index.ts +1 -0
- package/src/components/Typography/stories/InlineText.stories.tsx +27 -0
- package/src/components/Typography/typography.scss +28 -2
- package/src/components/VisualTour/VisualTour.tsx +30 -50
- package/src/components/VisualTour/visualTour.scss +0 -34
- package/src/components/index.scss +1 -0
- package/src/components/index.ts +1 -0
- package/src/configuration/_customproperties.scss +32 -0
- package/src/configuration/stories/customproperties.stories.tsx +118 -0
- package/src/extensions/codemirror/CodeMirror.tsx +20 -9
- package/src/extensions/codemirror/hooks/useCodemirrorModeExtension.hooks.ts +1 -2
- package/src/extensions/codemirror/tests/codemirrorTestHelper.ts +3 -3
- package/src/extensions/react-flow/_config.scss +3 -3
- package/src/extensions/react-flow/edges/EdgeLabel.tsx +5 -3
- package/src/extensions/react-flow/edges/EdgeNew.tsx +2 -1
- package/src/extensions/react-flow/edges/_edges.scss +3 -2
- package/src/extensions/react-flow/handles/HandleDefault.tsx +2 -2
- package/src/extensions/react-flow/minimap/MiniMap.tsx +2 -1
- package/src/extensions/react-flow/minimap/MiniMapV12.tsx +1 -1
- package/src/extensions/react-flow/nodes/_nodes.scss +4 -3
- package/src/extensions/react-flow/nodes/nodeUtils.tsx +1 -0
- package/src/extensions/react-flow/nodes/stories/NodeContent.stories.tsx +2 -2
- package/src/index.scss +1 -0
|
@@ -1,27 +1,43 @@
|
|
|
1
1
|
import React from "react";
|
|
2
|
-
import { ContentBlobTogglerProps } from "
|
|
2
|
+
import { ContentBlobTogglerProps } from "./../../index";
|
|
3
3
|
export interface StringPreviewContentBlobTogglerProps extends Omit<ContentBlobTogglerProps, "previewContent" | "enableToggler"> {
|
|
4
4
|
/**
|
|
5
|
-
The preview content will be cut to this length if it is too long.
|
|
5
|
+
* The preview content will be cut to this length if it is too long.
|
|
6
6
|
*/
|
|
7
7
|
previewMaxLength?: number;
|
|
8
8
|
/**
|
|
9
|
-
The content string.
|
|
9
|
+
* The content string.
|
|
10
|
+
* If it is smaller than `previewMaxLength` this will be displayed in full, else `fullviewContent` will be displayed.
|
|
10
11
|
*/
|
|
11
12
|
content: string;
|
|
12
|
-
/**
|
|
13
|
-
|
|
14
|
-
|
|
13
|
+
/**
|
|
14
|
+
* Use only parts of `content` in the preview.
|
|
15
|
+
* `firstMarkdownSection` uses the content until the first double line return.
|
|
16
|
+
* Currently overwritten by `firstNonEmptyLineOnly`.
|
|
17
|
+
*/
|
|
18
|
+
useOnly?: "firstNonEmptyLine" | "firstMarkdownSection";
|
|
19
|
+
/**
|
|
20
|
+
* If enabled the preview is rendered as Markdown.
|
|
21
|
+
*/
|
|
15
22
|
renderPreviewAsMarkdown?: boolean;
|
|
16
|
-
/**
|
|
23
|
+
/**
|
|
24
|
+
* White-listing of HTML elements that will be rendered when renderPreviewAsMarkdown is enabled.
|
|
25
|
+
*/
|
|
17
26
|
allowedHtmlElementsInPreview?: string[];
|
|
18
|
-
/**
|
|
27
|
+
/**
|
|
28
|
+
* Allows to add non-string elements at the end of the content if the full description is shown, i.e. no toggler is necessary.
|
|
19
29
|
* This allows to add non-string elements to both the full-view content and the pure string content.
|
|
20
30
|
*/
|
|
21
31
|
noTogglerContentSuffix?: JSX.Element;
|
|
32
|
+
/**
|
|
33
|
+
* If only the first non-empty line should be shown in the preview.
|
|
34
|
+
* This will in addition also be shortened according to `previewMaxLength`.
|
|
35
|
+
* @deprecated (v26) use `useOnly="firstNonEmptyLine"` instead
|
|
36
|
+
*/
|
|
37
|
+
firstNonEmptyLineOnly?: boolean;
|
|
22
38
|
}
|
|
23
|
-
/** Version of the content toggler for text
|
|
24
|
-
export declare function StringPreviewContentBlobToggler({ className, previewMaxLength, toggleExtendText, toggleReduceText, content, fullviewContent, startExtended,
|
|
39
|
+
/** Version of the content toggler for text centric content. */
|
|
40
|
+
export declare function StringPreviewContentBlobToggler({ className, previewMaxLength, toggleExtendText, toggleReduceText, content, fullviewContent, startExtended, useOnly, renderPreviewAsMarkdown, allowedHtmlElementsInPreview, noTogglerContentSuffix, firstNonEmptyLineOnly, }: StringPreviewContentBlobTogglerProps): React.JSX.Element;
|
|
25
41
|
/**
|
|
26
42
|
* Takes the first non-empty line from a preview string.
|
|
27
43
|
*/
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
type media = "print" | "screen";
|
|
3
|
+
interface ApplicationViewabilityShow {
|
|
4
|
+
/**
|
|
5
|
+
* Show on media type.
|
|
6
|
+
* If used, `hide` cannot be set.
|
|
7
|
+
*/
|
|
8
|
+
show: media;
|
|
9
|
+
hide?: never;
|
|
10
|
+
}
|
|
11
|
+
interface ApplicationViewabilityHide {
|
|
12
|
+
/**
|
|
13
|
+
* Hide on media type.
|
|
14
|
+
* If used, `show` cannot be set.
|
|
15
|
+
*/
|
|
16
|
+
hide: media;
|
|
17
|
+
show?: never;
|
|
18
|
+
}
|
|
19
|
+
interface ApplicationViewabilityUndecided {
|
|
20
|
+
/**
|
|
21
|
+
* Only one child allowed.
|
|
22
|
+
* Need to process the `className` property.
|
|
23
|
+
*/
|
|
24
|
+
children: React.ReactElement<{
|
|
25
|
+
className?: string;
|
|
26
|
+
}>;
|
|
27
|
+
}
|
|
28
|
+
export type ApplicationViewabilityProps = ApplicationViewabilityUndecided & (ApplicationViewabilityShow | ApplicationViewabilityHide);
|
|
29
|
+
/**
|
|
30
|
+
* Sets the viewability of the the contained element regarding media.
|
|
31
|
+
* Can be used to hide elements, e.g. when the page is printed.
|
|
32
|
+
*/
|
|
33
|
+
export declare const ApplicationViewability: ({ children, show, hide }: ApplicationViewabilityProps) => React.ReactElement<{
|
|
34
|
+
className?: string;
|
|
35
|
+
}, string | React.JSXElementConstructor<any>>;
|
|
36
|
+
export default ApplicationViewability;
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import React from "react";
|
|
2
2
|
import { PopoverProps as BlueprintPopoverProps } from "@blueprintjs/core";
|
|
3
|
+
import { WhiteSpaceContainerProps } from "../../index";
|
|
3
4
|
export interface ContextOverlayProps extends Omit<BlueprintPopoverProps, "position"> {
|
|
4
5
|
/**
|
|
5
6
|
* `target` element to use as toggler for the overlay display.
|
|
@@ -15,10 +16,15 @@ export interface ContextOverlayProps extends Omit<BlueprintPopoverProps, "positi
|
|
|
15
16
|
* Currently experimental.
|
|
16
17
|
*/
|
|
17
18
|
usePlaceholder?: boolean;
|
|
19
|
+
/**
|
|
20
|
+
* Adds white space to each side of the overlay content.
|
|
21
|
+
* For more control use `WhiteSpaceContainer` directly as wrapper for the content children.
|
|
22
|
+
*/
|
|
23
|
+
paddingSize?: WhiteSpaceContainerProps["paddingTop"];
|
|
18
24
|
}
|
|
19
25
|
/**
|
|
20
26
|
* Element displays connected content by interacting with a target element.
|
|
21
27
|
* Full list of available option can be seen at https://blueprintjs.com/docs/#popover2-package/popover2
|
|
22
28
|
*/
|
|
23
|
-
export declare const ContextOverlay: ({ children, portalClassName, preventTopPosition, className, usePlaceholder, ...otherPopoverProps }: ContextOverlayProps) => React.JSX.Element | null;
|
|
29
|
+
export declare const ContextOverlay: ({ children, portalClassName, preventTopPosition, className, usePlaceholder, paddingSize, content, ...otherPopoverProps }: ContextOverlayProps) => React.JSX.Element | null;
|
|
24
30
|
export default ContextOverlay;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import { ContextOverlayProps, TestableComponent, TooltipSize } from "../../index";
|
|
3
|
+
export interface DecoupledOverlayProps extends React.HTMLAttributes<HTMLDivElement>, TestableComponent, Pick<ContextOverlayProps, "usePortal" | "portalContainer" | "placement" | "minimal" | "paddingSize"> {
|
|
4
|
+
/**
|
|
5
|
+
* Element that should be used. The step content is displayed as a tooltip instead of a modal.
|
|
6
|
+
* In case of an array, the first match is highlighted. */
|
|
7
|
+
targetSelectorOrElement: string | Element;
|
|
8
|
+
/**
|
|
9
|
+
* The size of the overlay.
|
|
10
|
+
* */
|
|
11
|
+
size?: TooltipSize;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Use an overlay popover without the necessity to use a target that need to be rendered in place.
|
|
15
|
+
* The target is referenced by a selector string or element object.
|
|
16
|
+
* It can exist somewhere in the DOM, but it must exist when the overlay is rendered.
|
|
17
|
+
* It is always displayed, close it by removement.
|
|
18
|
+
*/
|
|
19
|
+
export declare const DecoupledOverlay: ({ targetSelectorOrElement, usePortal, portalContainer, minimal, placement, size, paddingSize, children, }: DecoupledOverlayProps) => React.JSX.Element;
|
|
20
|
+
export default DecoupledOverlay;
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import React from "react";
|
|
2
2
|
import { ButtonProps } from "../Button/Button";
|
|
3
|
+
import { TestableComponent } from "../interfaces";
|
|
3
4
|
import { ValidIconName } from "./canonicalIconNames";
|
|
4
5
|
import { TestIconProps } from "./TestIcon";
|
|
5
|
-
import { TestableComponent } from "../interfaces";
|
|
6
6
|
interface ExtendedButtonProps extends Omit<ButtonProps, "name" | "icon" | "rightIcon" | "text" | "minimal" | "tooltip">, TestableComponent {
|
|
7
7
|
/**
|
|
8
8
|
* Canonical icon name, or an array of strings.
|
|
@@ -162,8 +162,10 @@ declare const canonicalIcons: {
|
|
|
162
162
|
"state-checked": icons.CarbonIconType;
|
|
163
163
|
"state-checkedsimple": icons.CarbonIconType;
|
|
164
164
|
"state-confirmed": icons.CarbonIconType;
|
|
165
|
+
"state-confirmed-all": icons.CarbonIconType;
|
|
165
166
|
"state-danger": icons.CarbonIconType;
|
|
166
167
|
"state-declined": icons.CarbonIconType;
|
|
168
|
+
"state-declined-all": icons.CarbonIconType;
|
|
167
169
|
"state-flagged": icons.CarbonIconType;
|
|
168
170
|
"state-info": icons.CarbonIconType;
|
|
169
171
|
"state-locked": icons.CarbonIconType;
|
|
@@ -39,7 +39,7 @@ interface MultiSuggestFieldCommonProps<T> extends TestableComponent, Pick<Bluepr
|
|
|
39
39
|
/**
|
|
40
40
|
* prop to listen for query changes, when text is entered in the multi-select input
|
|
41
41
|
*/
|
|
42
|
-
runOnQueryChange?: (query: string) => Promise<T[] | undefined
|
|
42
|
+
runOnQueryChange?: (query: string) => Promise<T[] | undefined> | (T[] | undefined);
|
|
43
43
|
/**
|
|
44
44
|
* Whether the component should take up the full width of its container.
|
|
45
45
|
* This overrides `tagInputProps.fill`.
|
|
@@ -132,7 +132,7 @@ export declare const TitleSubsection: ({ children, className, useHtmlElement, ..
|
|
|
132
132
|
onBlurCapture?: React.FocusEventHandler<HTMLElement> | undefined;
|
|
133
133
|
onChange?: React.FormEventHandler<HTMLElement> | undefined;
|
|
134
134
|
onChangeCapture?: React.FormEventHandler<HTMLElement> | undefined;
|
|
135
|
-
onBeforeInput?: React.
|
|
135
|
+
onBeforeInput?: React.InputEventHandler<HTMLElement> | undefined;
|
|
136
136
|
onBeforeInputCapture?: React.FormEventHandler<HTMLElement> | undefined;
|
|
137
137
|
onInput?: React.FormEventHandler<HTMLElement> | undefined;
|
|
138
138
|
onInputCapture?: React.FormEventHandler<HTMLElement> | undefined;
|
|
@@ -154,7 +154,7 @@ export declare const transformTabProperties: ({ title, dontShrink, className, ba
|
|
|
154
154
|
onBlurCapture?: React.FocusEventHandler<HTMLDivElement> | undefined;
|
|
155
155
|
onChange?: React.FormEventHandler<HTMLDivElement> | undefined;
|
|
156
156
|
onChangeCapture?: React.FormEventHandler<HTMLDivElement> | undefined;
|
|
157
|
-
onBeforeInput?: React.
|
|
157
|
+
onBeforeInput?: React.InputEventHandler<HTMLDivElement> | undefined;
|
|
158
158
|
onBeforeInputCapture?: React.FormEventHandler<HTMLDivElement> | undefined;
|
|
159
159
|
onInput?: React.FormEventHandler<HTMLDivElement> | undefined;
|
|
160
160
|
onInputCapture?: React.FormEventHandler<HTMLDivElement> | undefined;
|
|
@@ -432,7 +432,7 @@ export declare const transformTabProperties: ({ title, dontShrink, className, ba
|
|
|
432
432
|
onBlurCapture?: React.FocusEventHandler<HTMLDivElement> | undefined;
|
|
433
433
|
onChange?: React.FormEventHandler<HTMLDivElement> | undefined;
|
|
434
434
|
onChangeCapture?: React.FormEventHandler<HTMLDivElement> | undefined;
|
|
435
|
-
onBeforeInput?: React.
|
|
435
|
+
onBeforeInput?: React.InputEventHandler<HTMLDivElement> | undefined;
|
|
436
436
|
onBeforeInputCapture?: React.FormEventHandler<HTMLDivElement> | undefined;
|
|
437
437
|
onInput?: React.FormEventHandler<HTMLDivElement> | undefined;
|
|
438
438
|
onInputCapture?: React.FormEventHandler<HTMLDivElement> | undefined;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import { TestableComponent } from "../interfaces";
|
|
3
|
+
export interface InlineTextProps extends React.HTMLAttributes<HTMLElement>, TestableComponent {
|
|
4
|
+
/**
|
|
5
|
+
* Additional CSS class name.
|
|
6
|
+
*/
|
|
7
|
+
className?: string;
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* Forces all children to be displayed as inline content.
|
|
11
|
+
*/
|
|
12
|
+
export declare const InlineText: ({ className, children, ...otherProps }: InlineTextProps) => React.JSX.Element;
|
|
13
|
+
export default InlineText;
|
|
@@ -9,6 +9,7 @@ export * from "./Checkbox/Checkbox";
|
|
|
9
9
|
export * from "./CodeAutocompleteField";
|
|
10
10
|
export * from "./ContentGroup/ContentGroup";
|
|
11
11
|
export * from "./ContextOverlay";
|
|
12
|
+
export * from "./DecoupledOverlay/DecoupledOverlay";
|
|
12
13
|
export * from "./Depiction/Depiction";
|
|
13
14
|
export * from "./Dialog";
|
|
14
15
|
export * from "./FlexibleLayout";
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
+
import { html } from "@codemirror/lang-html";
|
|
1
2
|
import { javascript } from "@codemirror/lang-javascript";
|
|
2
3
|
import { json } from "@codemirror/lang-json";
|
|
3
4
|
import { markdown } from "@codemirror/lang-markdown";
|
|
4
5
|
import { sql } from "@codemirror/lang-sql";
|
|
5
6
|
import { xml } from "@codemirror/lang-xml";
|
|
6
7
|
import { yaml } from "@codemirror/lang-yaml";
|
|
7
|
-
import { html } from "@codemirror/lang-html";
|
|
8
8
|
import { StreamParser } from "@codemirror/language";
|
|
9
9
|
declare const supportedModes: {
|
|
10
10
|
readonly markdown: typeof markdown;
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
* 'EditorView is not a constructor'
|
|
6
6
|
* This errors do not exist during compilation only during testing.
|
|
7
7
|
*/
|
|
8
|
-
import {
|
|
8
|
+
import { Compartment, Extension } from "@codemirror/state";
|
|
9
9
|
/** placeholder extension, current error '_view.placeholder is not a function' */
|
|
10
10
|
export declare const adaptedPlaceholder: (text?: string) => Extension;
|
|
11
11
|
/** current error '_view.Editor is not a constructor' */
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@eccenca/gui-elements",
|
|
3
3
|
"description": "GUI elements based on other libraries, usable in React application, written in Typescript.",
|
|
4
|
-
"version": "25.0.
|
|
4
|
+
"version": "25.1.0-rc.1",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"homepage": "https://github.com/eccenca/gui-elements",
|
|
7
7
|
"bugs": "https://github.com/eccenca/gui-elements/issues",
|
|
@@ -68,29 +68,29 @@
|
|
|
68
68
|
"autolint:all": "yarn autolint:scripts && yarn autolint:styles && yarn autolint:prettier"
|
|
69
69
|
},
|
|
70
70
|
"dependencies": {
|
|
71
|
-
"@blueprintjs/colors": "^5.1.
|
|
72
|
-
"@blueprintjs/core": "^5.
|
|
73
|
-
"@blueprintjs/select": "^5.3.
|
|
74
|
-
"@carbon/icons": "^11.
|
|
75
|
-
"@carbon/react": "^1.
|
|
76
|
-
"@codemirror/lang-html": "^6.4.
|
|
77
|
-
"@codemirror/lang-javascript": "^6.2.
|
|
78
|
-
"@codemirror/lang-json": "^6.0.
|
|
79
|
-
"@codemirror/lang-markdown": "^6.
|
|
80
|
-
"@codemirror/lang-sql": "^6.
|
|
71
|
+
"@blueprintjs/colors": "^5.1.11",
|
|
72
|
+
"@blueprintjs/core": "^5.19.1",
|
|
73
|
+
"@blueprintjs/select": "^5.3.21",
|
|
74
|
+
"@carbon/icons": "^11.70.0",
|
|
75
|
+
"@carbon/react": "^1.96.0",
|
|
76
|
+
"@codemirror/lang-html": "^6.4.11",
|
|
77
|
+
"@codemirror/lang-javascript": "^6.2.4",
|
|
78
|
+
"@codemirror/lang-json": "^6.0.2",
|
|
79
|
+
"@codemirror/lang-markdown": "^6.5.0",
|
|
80
|
+
"@codemirror/lang-sql": "^6.10.0",
|
|
81
81
|
"@codemirror/lang-xml": "^6.1.0",
|
|
82
82
|
"@codemirror/lang-yaml": "^6.1.2",
|
|
83
|
-
"@codemirror/legacy-modes": "^6.5.
|
|
83
|
+
"@codemirror/legacy-modes": "^6.5.2",
|
|
84
84
|
"@mavrin/remark-typograf": "^2.2.0",
|
|
85
|
-
"@xyflow/react": "^12.
|
|
85
|
+
"@xyflow/react": "^12.9.3",
|
|
86
86
|
"classnames": "^2.5.1",
|
|
87
|
-
"codemirror": "^6.0.
|
|
87
|
+
"codemirror": "^6.0.2",
|
|
88
88
|
"color": "^4.2.3",
|
|
89
89
|
"compute-scroll-into-view": "^3.1.1",
|
|
90
90
|
"he": "^1.2.0",
|
|
91
91
|
"jshint": "^2.13.6",
|
|
92
92
|
"lodash": "^4.17.21",
|
|
93
|
-
"n3": "^1.
|
|
93
|
+
"n3": "^1.26.0",
|
|
94
94
|
"re-resizable": "^6.10.3",
|
|
95
95
|
"react": "^16.13.1",
|
|
96
96
|
"react-dom": "^16.14.0",
|
|
@@ -98,7 +98,7 @@
|
|
|
98
98
|
"react-inlinesvg": "^3.0.3",
|
|
99
99
|
"react-is": "^16.13.1",
|
|
100
100
|
"react-markdown": "^10.1.0",
|
|
101
|
-
"react-syntax-highlighter": "^15.6.
|
|
101
|
+
"react-syntax-highlighter": "^15.6.6",
|
|
102
102
|
"rehype-external-links": "^3.0.0",
|
|
103
103
|
"rehype-raw": "^7.0.0",
|
|
104
104
|
"remark-definition-list": "^2.0.0",
|
|
@@ -107,55 +107,54 @@
|
|
|
107
107
|
"reset-css": "^5.0.2",
|
|
108
108
|
"unified": "^11.0.5",
|
|
109
109
|
"wicg-inert": "^3.1.3",
|
|
110
|
-
"xml-formatter": "^3.6.
|
|
110
|
+
"xml-formatter": "^3.6.7"
|
|
111
111
|
},
|
|
112
112
|
"devDependencies": {
|
|
113
|
-
"@babel/core": "^7.
|
|
114
|
-
"@babel/plugin-transform-class-properties": "^7.
|
|
115
|
-
"@babel/plugin-transform-private-methods": "^7.
|
|
116
|
-
"@babel/plugin-transform-private-property-in-object": "^7.
|
|
117
|
-
"@babel/preset-env": "^7.
|
|
118
|
-
"@babel/preset-flow": "^7.
|
|
119
|
-
"@babel/preset-react": "^7.
|
|
120
|
-
"@babel/preset-typescript": "^7.
|
|
121
|
-
"@eslint/compat": "^1.
|
|
113
|
+
"@babel/core": "^7.28.5",
|
|
114
|
+
"@babel/plugin-transform-class-properties": "^7.27.1",
|
|
115
|
+
"@babel/plugin-transform-private-methods": "^7.27.1",
|
|
116
|
+
"@babel/plugin-transform-private-property-in-object": "^7.27.1",
|
|
117
|
+
"@babel/preset-env": "^7.28.5",
|
|
118
|
+
"@babel/preset-flow": "^7.27.1",
|
|
119
|
+
"@babel/preset-react": "^7.28.5",
|
|
120
|
+
"@babel/preset-typescript": "^7.28.5",
|
|
121
|
+
"@eslint/compat": "^1.4.1",
|
|
122
122
|
"@eslint/eslintrc": "^3.3.1",
|
|
123
|
-
"@eslint/js": "^9.
|
|
124
|
-
"@storybook/addon-actions": "^8.6.
|
|
125
|
-
"@storybook/addon-essentials": "^8.6.
|
|
126
|
-
"@storybook/addon-jest": "^8.6.
|
|
127
|
-
"@storybook/addon-links": "^8.6.
|
|
123
|
+
"@eslint/js": "^9.39.1",
|
|
124
|
+
"@storybook/addon-actions": "^8.6.14",
|
|
125
|
+
"@storybook/addon-essentials": "^8.6.14",
|
|
126
|
+
"@storybook/addon-jest": "^8.6.14",
|
|
127
|
+
"@storybook/addon-links": "^8.6.14",
|
|
128
128
|
"@storybook/addon-webpack5-compiler-babel": "^3.0.6",
|
|
129
|
-
"@storybook/cli": "^8.6.
|
|
129
|
+
"@storybook/cli": "^8.6.14",
|
|
130
130
|
"@storybook/preset-scss": "^1.0.3",
|
|
131
|
-
"@storybook/react": "^8.6.
|
|
132
|
-
"@storybook/react-webpack5": "^8.6.
|
|
133
|
-
"@storybook/test": "^8.6.
|
|
134
|
-
"@testing-library/jest-dom": "^6.
|
|
131
|
+
"@storybook/react": "^8.6.14",
|
|
132
|
+
"@storybook/react-webpack5": "^8.6.14",
|
|
133
|
+
"@storybook/test": "^8.6.14",
|
|
134
|
+
"@testing-library/jest-dom": "^6.9.1",
|
|
135
135
|
"@testing-library/react": "^12.1.5",
|
|
136
|
-
"@types/codemirror": "^5.60.15",
|
|
137
136
|
"@types/color": "^3.0.6",
|
|
138
137
|
"@types/he": "^1.2.3",
|
|
139
|
-
"@types/jest": "^
|
|
138
|
+
"@types/jest": "^30.0.0",
|
|
140
139
|
"@types/jshint": "^2.12.4",
|
|
141
|
-
"@types/lodash": "^4.17.
|
|
142
|
-
"@types/n3": "^1.
|
|
143
|
-
"@types/react-is": "^19.
|
|
140
|
+
"@types/lodash": "^4.17.21",
|
|
141
|
+
"@types/n3": "^1.26.1",
|
|
142
|
+
"@types/react-is": "^19.2.0",
|
|
144
143
|
"@types/react-syntax-highlighter": "^15.5.13",
|
|
145
|
-
"@typescript-eslint/eslint-plugin": "^8.
|
|
146
|
-
"@typescript-eslint/parser": "^8.
|
|
147
|
-
"babel-jest": "^
|
|
148
|
-
"chromatic": "^
|
|
149
|
-
"eslint": "^9.
|
|
144
|
+
"@typescript-eslint/eslint-plugin": "^8.47.0",
|
|
145
|
+
"@typescript-eslint/parser": "^8.47.0",
|
|
146
|
+
"babel-jest": "^30.2.0",
|
|
147
|
+
"chromatic": "^13.3.4",
|
|
148
|
+
"eslint": "^9.39.1",
|
|
150
149
|
"eslint-plugin-react": "^7.37.5",
|
|
151
|
-
"eslint-plugin-react-hooks": "^
|
|
150
|
+
"eslint-plugin-react-hooks": "^7.0.1",
|
|
152
151
|
"eslint-plugin-simple-import-sort": "^12.1.1",
|
|
153
152
|
"husky": "4",
|
|
154
153
|
"identity-obj-proxy": "^3.0.0",
|
|
155
154
|
"jest": "^30.2.0",
|
|
156
155
|
"jest-environment-jsdom": "^30.2.0",
|
|
157
156
|
"jest-pnp-resolver": "^1.2.3",
|
|
158
|
-
"lint-staged": "^15.5.
|
|
157
|
+
"lint-staged": "^15.5.2",
|
|
159
158
|
"node-sass-package-importer": "^5.3.3",
|
|
160
159
|
"path": "^0.12.7",
|
|
161
160
|
"prettier": "^2.8.8",
|
|
@@ -165,7 +164,7 @@
|
|
|
165
164
|
"rimraf": "^5.0.10",
|
|
166
165
|
"sass": "1.62.1",
|
|
167
166
|
"sass-loader": "10.3.1",
|
|
168
|
-
"storybook": "^8.6.
|
|
167
|
+
"storybook": "^8.6.14",
|
|
169
168
|
"stylelint": "^16.18.0",
|
|
170
169
|
"stylelint-config-recess-order": "^6.0.0",
|
|
171
170
|
"stylelint-config-standard-scss": "^14.0.0",
|
|
@@ -180,8 +179,8 @@
|
|
|
180
179
|
"react": ">=16"
|
|
181
180
|
},
|
|
182
181
|
"resolutions": {
|
|
183
|
-
"**/@types/react": "^17.0.
|
|
184
|
-
"node-sass-package-importer/**/postcss": "^8.
|
|
182
|
+
"**/@types/react": "^17.0.90",
|
|
183
|
+
"node-sass-package-importer/**/postcss": "^8.5.6",
|
|
185
184
|
"string-width": "^4.2.3",
|
|
186
185
|
"wrap-ansi": "^7.0.0",
|
|
187
186
|
"hast-util-from-parse5": "8.0.0"
|
|
@@ -1,17 +1,20 @@
|
|
|
1
1
|
import React from "react";
|
|
2
2
|
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
9
|
-
import {
|
|
3
|
+
import {ValidIconName} from "../../components/Icon/canonicalIconNames";
|
|
4
|
+
import {IconProps} from "../../components/Icon/Icon";
|
|
5
|
+
import {TestIconProps} from "../../components/Icon/TestIcon";
|
|
6
|
+
import {TestableComponent} from "../../components/interfaces";
|
|
7
|
+
import {ProgressBarProps} from "../../components/ProgressBar/ProgressBar";
|
|
8
|
+
import {SpinnerProps} from "../../components/Spinner/Spinner";
|
|
9
|
+
import {CLASSPREFIX as eccgui} from "../../configuration/constants";
|
|
10
10
|
import {
|
|
11
11
|
Card,
|
|
12
12
|
ContextMenu,
|
|
13
|
+
DecoupledOverlay,
|
|
13
14
|
IconButton,
|
|
14
15
|
MenuItem,
|
|
16
|
+
Notification,
|
|
17
|
+
NotificationProps,
|
|
15
18
|
OverflowText,
|
|
16
19
|
OverviewItem,
|
|
17
20
|
OverviewItemActions,
|
|
@@ -97,7 +100,7 @@ interface IActivityContextMenu extends TestableComponent {
|
|
|
97
100
|
export interface ActivityControlWidgetAction extends TestableComponent {
|
|
98
101
|
// The action that should be triggered
|
|
99
102
|
action: () => void;
|
|
100
|
-
// The tooltip that should be shown over the action icon
|
|
103
|
+
// The tooltip that should be shown over the action icon on hover
|
|
101
104
|
tooltip?: string;
|
|
102
105
|
// The icon of the action button
|
|
103
106
|
icon: ValidIconName | React.ReactElement<TestIconProps>;
|
|
@@ -105,6 +108,16 @@ export interface ActivityControlWidgetAction extends TestableComponent {
|
|
|
105
108
|
disabled?: boolean;
|
|
106
109
|
// Warning state
|
|
107
110
|
hasStateWarning?: boolean;
|
|
111
|
+
// Active state
|
|
112
|
+
active?: boolean
|
|
113
|
+
/** A notification that is shown in an overlay pointing at the activity action button. */
|
|
114
|
+
notification?: {
|
|
115
|
+
message: string
|
|
116
|
+
onClose: () => void
|
|
117
|
+
intent?: NotificationProps["intent"]
|
|
118
|
+
// Timeout in ms before notification is closed. Default: none
|
|
119
|
+
timeout?: number
|
|
120
|
+
}
|
|
108
121
|
}
|
|
109
122
|
|
|
110
123
|
interface IActivityMenuAction extends ActivityControlWidgetAction {
|
|
@@ -209,28 +222,11 @@ export function ActivityControlWidget(props: ActivityControlWidgetProps) {
|
|
|
209
222
|
data-test-id={dataTestIdLegacy ? `${dataTestIdLegacy}-actions` : undefined}
|
|
210
223
|
>
|
|
211
224
|
{activityActions &&
|
|
212
|
-
activityActions.map((action, idx) =>
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
? action.icon
|
|
218
|
-
: action["data-test-id"] ?? action["data-testid"] ?? idx
|
|
219
|
-
}
|
|
220
|
-
data-test-id={action["data-test-id"]}
|
|
221
|
-
data-testid={action["data-testid"]}
|
|
222
|
-
name={action.icon}
|
|
223
|
-
text={action.tooltip}
|
|
224
|
-
onClick={action.action}
|
|
225
|
-
disabled={action.disabled}
|
|
226
|
-
intent={action.hasStateWarning ? "warning" : undefined}
|
|
227
|
-
tooltipProps={{
|
|
228
|
-
hoverOpenDelay: 200,
|
|
229
|
-
placement: "bottom",
|
|
230
|
-
}}
|
|
231
|
-
/>
|
|
232
|
-
);
|
|
233
|
-
})}
|
|
225
|
+
activityActions.map((action, idx) => <ActivityActionButton
|
|
226
|
+
key={idx}
|
|
227
|
+
action={action}
|
|
228
|
+
/>
|
|
229
|
+
)}
|
|
234
230
|
{additionalActions}
|
|
235
231
|
{activityContextMenu && activityContextMenu.menuItems.length > 0 && (
|
|
236
232
|
<ContextMenu
|
|
@@ -241,11 +237,7 @@ export function ActivityControlWidget(props: ActivityControlWidgetProps) {
|
|
|
241
237
|
return (
|
|
242
238
|
<MenuItem
|
|
243
239
|
icon={menuAction.icon}
|
|
244
|
-
key={
|
|
245
|
-
typeof menuAction.icon === "string"
|
|
246
|
-
? menuAction.icon
|
|
247
|
-
: menuAction["data-test-id"] ?? idx
|
|
248
|
-
}
|
|
240
|
+
key={idx}
|
|
249
241
|
onClick={menuAction.action}
|
|
250
242
|
text={menuAction.tooltip}
|
|
251
243
|
/>
|
|
@@ -267,3 +259,44 @@ export function ActivityControlWidget(props: ActivityControlWidgetProps) {
|
|
|
267
259
|
<div className={classname}>{widget}</div>
|
|
268
260
|
);
|
|
269
261
|
}
|
|
262
|
+
|
|
263
|
+
interface ActivityActionButtonProps {
|
|
264
|
+
action: ActivityControlWidgetAction
|
|
265
|
+
}
|
|
266
|
+
|
|
267
|
+
const ActivityActionButton = ({action}: ActivityActionButtonProps) => {
|
|
268
|
+
const actionButtonRef = React.useRef(null);
|
|
269
|
+
const ActionButton = () => (
|
|
270
|
+
<IconButton
|
|
271
|
+
data-test-id={action["data-test-id"]}
|
|
272
|
+
data-testid={action["data-testid"]}
|
|
273
|
+
name={action.icon}
|
|
274
|
+
text={action.tooltip}
|
|
275
|
+
onClick={action.action}
|
|
276
|
+
disabled={action.disabled}
|
|
277
|
+
intent={action.hasStateWarning ? "warning" : undefined}
|
|
278
|
+
tooltipProps={{
|
|
279
|
+
hoverOpenDelay: 200,
|
|
280
|
+
placement: "bottom"
|
|
281
|
+
}}
|
|
282
|
+
active={action.active}
|
|
283
|
+
/>
|
|
284
|
+
)
|
|
285
|
+
return action.notification ?
|
|
286
|
+
<>
|
|
287
|
+
<span ref={actionButtonRef}>
|
|
288
|
+
<ActionButton/>
|
|
289
|
+
</span>
|
|
290
|
+
{actionButtonRef.current && (
|
|
291
|
+
<DecoupledOverlay targetSelectorOrElement={actionButtonRef.current} paddingSize={"small"}>
|
|
292
|
+
<Notification
|
|
293
|
+
message={action.notification.message}
|
|
294
|
+
intent={action.notification.intent ?? "neutral"}
|
|
295
|
+
onDismiss={action.notification.onClose}
|
|
296
|
+
timeout={action.notification.timeout}
|
|
297
|
+
/>
|
|
298
|
+
</DecoupledOverlay>
|
|
299
|
+
)}
|
|
300
|
+
</> :
|
|
301
|
+
<ActionButton/>
|
|
302
|
+
}
|