@eccenca/gui-elements 24.4.1 → 25.0.0-featurecolorwheelinputcmem7327.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +223 -3
- package/README.md +63 -16
- 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/markdown/Markdown.js +1 -2
- package/dist/cjs/cmem/markdown/Markdown.js.map +1 -1
- package/dist/cjs/cmem/react-flow/ReactFlow/ReactFlow.js +67 -13
- package/dist/cjs/cmem/react-flow/ReactFlow/ReactFlow.js.map +1 -1
- package/dist/cjs/cmem/react-flow/ReactFlow/ReactFlowV12.js +45 -0
- package/dist/cjs/cmem/react-flow/ReactFlow/ReactFlowV12.js.map +1 -0
- package/dist/cjs/cmem/react-flow/ReactFlow/ReactFlowV9.js +30 -0
- package/dist/cjs/cmem/react-flow/ReactFlow/ReactFlowV9.js.map +1 -0
- package/dist/cjs/cmem/react-flow/StickyNoteModal/StickyNoteModal.js +2 -2
- package/dist/cjs/cmem/react-flow/StickyNoteModal/StickyNoteModal.js.map +1 -1
- package/dist/cjs/cmem/react-flow/configuration/graph.js +12 -10
- package/dist/cjs/cmem/react-flow/configuration/graph.js.map +1 -1
- package/dist/cjs/cmem/react-flow/configuration/linking.js +2 -0
- package/dist/cjs/cmem/react-flow/configuration/linking.js.map +1 -1
- package/dist/cjs/cmem/react-flow/configuration/unspecified.js +2 -1
- package/dist/cjs/cmem/react-flow/configuration/unspecified.js.map +1 -1
- package/dist/cjs/cmem/react-flow/configuration/workflow.js +2 -0
- package/dist/cjs/cmem/react-flow/configuration/workflow.js.map +1 -1
- package/dist/cjs/cmem/react-flow/extensions/scrollOnDragHook.js +9 -3
- package/dist/cjs/cmem/react-flow/extensions/scrollOnDragHook.js.map +1 -1
- package/dist/cjs/cmem/react-flow/index.js +5 -1
- package/dist/cjs/cmem/react-flow/index.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/common/index.js +10 -0
- package/dist/cjs/common/index.js.map +1 -1
- package/dist/cjs/common/utils/CssCustomProperties.js +9 -3
- package/dist/cjs/common/utils/CssCustomProperties.js.map +1 -1
- package/dist/cjs/common/utils/colorCalculateDistance.js +27 -0
- package/dist/cjs/common/utils/colorCalculateDistance.js.map +1 -0
- package/dist/cjs/common/utils/colorHash.js +157 -0
- package/dist/cjs/common/utils/colorHash.js.map +1 -0
- package/dist/cjs/common/utils/getColorConfiguration.js +37 -4
- package/dist/cjs/common/utils/getColorConfiguration.js.map +1 -1
- package/dist/cjs/common/utils/reduceToText.js +94 -0
- package/dist/cjs/common/utils/reduceToText.js.map +1 -0
- 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/AutoSuggestion/AutoSuggestion.js +14 -11
- package/dist/cjs/components/AutoSuggestion/AutoSuggestion.js.map +1 -1
- package/dist/cjs/components/AutoSuggestion/AutoSuggestionList.js +4 -1
- package/dist/cjs/components/AutoSuggestion/AutoSuggestionList.js.map +1 -1
- package/dist/cjs/components/AutoSuggestion/ExtendedCodeEditor.js +1 -3
- package/dist/cjs/components/AutoSuggestion/ExtendedCodeEditor.js.map +1 -1
- package/dist/cjs/components/AutocompleteField/AutoCompleteField.js +18 -7
- package/dist/cjs/components/AutocompleteField/AutoCompleteField.js.map +1 -1
- package/dist/cjs/components/AutocompleteField/autoCompleteFieldUtils.js.map +1 -1
- package/dist/cjs/components/Button/Button.js +11 -26
- package/dist/cjs/components/Button/Button.js.map +1 -1
- package/dist/cjs/components/Chat/ChatArea.js +55 -0
- package/dist/cjs/components/Chat/ChatArea.js.map +1 -0
- package/dist/cjs/components/Chat/ChatContent.js +55 -0
- package/dist/cjs/components/Chat/ChatContent.js.map +1 -0
- package/dist/cjs/components/Chat/ChatContentCollapsed.js +24 -0
- package/dist/cjs/components/Chat/ChatContentCollapsed.js.map +1 -0
- package/dist/cjs/components/Chat/ChatField.js +53 -0
- package/dist/cjs/components/Chat/ChatField.js.map +1 -0
- package/dist/cjs/components/{AutocompleteField → Chat}/index.js +4 -7
- package/dist/cjs/components/Chat/index.js.map +1 -0
- package/dist/cjs/components/CodeAutocompleteField/index.js +6 -1
- package/dist/cjs/components/CodeAutocompleteField/index.js.map +1 -1
- package/dist/cjs/components/ContentGroup/ContentGroup.js +1 -1
- package/dist/cjs/components/ContentGroup/ContentGroup.js.map +1 -1
- package/dist/cjs/components/ContextOverlay/ContextMenu.js +2 -2
- package/dist/cjs/components/ContextOverlay/ContextMenu.js.map +1 -1
- package/dist/cjs/components/ContextOverlay/ContextOverlay.js +69 -22
- 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/Dialog/Modal.js +15 -2
- package/dist/cjs/components/Dialog/Modal.js.map +1 -1
- package/dist/cjs/components/Dialog/ModalContext.js +51 -0
- package/dist/cjs/components/Dialog/ModalContext.js.map +1 -0
- package/dist/cjs/components/Dialog/SimpleDialog.js +2 -1
- package/dist/cjs/components/Dialog/SimpleDialog.js.map +1 -1
- package/dist/cjs/components/Dialog/index.js +1 -0
- package/dist/cjs/components/Dialog/index.js.map +1 -1
- package/dist/cjs/components/Form/FieldItem.js +2 -19
- package/dist/cjs/components/Form/FieldItem.js.map +1 -1
- package/dist/cjs/components/Form/FieldSet.js +2 -20
- package/dist/cjs/components/Form/FieldSet.js.map +1 -1
- package/dist/cjs/components/Icon/BaseIcon.js +2 -2
- package/dist/cjs/components/Icon/BaseIcon.js.map +1 -1
- package/dist/cjs/components/Icon/IconButton.js.map +1 -1
- package/dist/cjs/components/Icon/canonicalIconNames.js +31 -2
- 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 +16 -28
- package/dist/cjs/components/MultiSelect/MultiSelect.js.map +1 -1
- package/dist/cjs/components/MultiSuggestField/index.js +18 -0
- package/dist/cjs/components/MultiSuggestField/index.js.map +1 -0
- package/dist/cjs/components/Notification/Notification.js +3 -23
- package/dist/cjs/components/Notification/Notification.js.map +1 -1
- package/dist/cjs/components/OverviewItem/OverviewItemList.js +1 -2
- package/dist/cjs/components/OverviewItem/OverviewItemList.js.map +1 -1
- package/dist/cjs/components/RadioButton/RadioButton.js +5 -2
- package/dist/cjs/components/RadioButton/RadioButton.js.map +1 -1
- package/dist/cjs/components/Spinner/Spinner.js +18 -11
- package/dist/cjs/components/Spinner/Spinner.js.map +1 -1
- package/dist/cjs/components/SuggestField/index.js +5 -2
- package/dist/cjs/components/SuggestField/index.js.map +1 -1
- package/dist/cjs/components/Table/Table.js.map +1 -1
- package/dist/cjs/components/Table/TableContainer.js.map +1 -1
- package/dist/cjs/components/Tabs/Tab.js +3 -2
- package/dist/cjs/components/Tabs/Tab.js.map +1 -1
- package/dist/cjs/components/TextField/SearchField.js.map +1 -1
- package/dist/cjs/components/TextField/TextArea.js +2 -2
- package/dist/cjs/components/TextField/TextArea.js.map +1 -1
- package/dist/cjs/components/TextReducer/TextReducer.js +37 -0
- package/dist/cjs/components/TextReducer/TextReducer.js.map +1 -0
- package/dist/cjs/components/Tooltip/Tooltip.js +3 -1
- package/dist/cjs/components/Tooltip/Tooltip.js.map +1 -1
- package/dist/cjs/{legacy-replacements/Button/DisruptiveButton.js → components/Typography/InlineText.js} +12 -8
- package/dist/cjs/components/Typography/InlineText.js.map +1 -0
- package/dist/cjs/components/Typography/OverflowText.js.map +1 -1
- 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 +192 -0
- package/dist/cjs/components/VisualTour/VisualTour.js.map +1 -0
- package/dist/cjs/components/index.js +8 -7
- package/dist/cjs/components/index.js.map +1 -1
- package/dist/cjs/configuration/constants.js +3 -1
- package/dist/cjs/configuration/constants.js.map +1 -1
- package/dist/cjs/extensions/codemirror/CodeMirror.js +17 -6
- package/dist/cjs/extensions/codemirror/CodeMirror.js.map +1 -1
- package/dist/cjs/extensions/codemirror/hooks/useCodemirrorModeExtension.hooks.js +3 -0
- 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/EdgeBezier.js +50 -0
- package/dist/cjs/extensions/react-flow/edges/EdgeBezier.js.map +1 -0
- package/dist/cjs/extensions/react-flow/edges/EdgeDefault.js +21 -3
- package/dist/cjs/extensions/react-flow/edges/EdgeDefault.js.map +1 -1
- package/dist/cjs/extensions/react-flow/edges/EdgeDefaultV12.js +46 -22
- package/dist/cjs/extensions/react-flow/edges/EdgeDefaultV12.js.map +1 -1
- package/dist/cjs/extensions/react-flow/edges/EdgeDefs.js +3 -0
- package/dist/cjs/extensions/react-flow/edges/EdgeDefs.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 +41 -0
- package/dist/cjs/extensions/react-flow/edges/EdgeNew.js.map +1 -0
- package/dist/cjs/extensions/react-flow/edges/EdgeStep.js +19 -2
- package/dist/cjs/extensions/react-flow/edges/EdgeStep.js.map +1 -1
- package/dist/cjs/extensions/react-flow/edges/EdgeStraight.js +6 -0
- package/dist/cjs/extensions/react-flow/edges/EdgeStraight.js.map +1 -0
- package/dist/cjs/extensions/react-flow/edges/utils.js +12 -1
- package/dist/cjs/extensions/react-flow/edges/utils.js.map +1 -1
- package/dist/cjs/extensions/react-flow/handles/HandleDefault.js +15 -16
- package/dist/cjs/extensions/react-flow/handles/HandleDefault.js.map +1 -1
- package/dist/cjs/extensions/react-flow/index.js +6 -6
- package/dist/cjs/extensions/react-flow/index.js.map +1 -1
- package/dist/cjs/extensions/react-flow/markers/MarkerArrowClosedInverse.js +3 -0
- package/dist/cjs/extensions/react-flow/markers/MarkerArrowClosedInverse.js.map +1 -1
- package/dist/cjs/extensions/react-flow/markers/ReactFlowMarkers.js +17 -2
- package/dist/cjs/extensions/react-flow/markers/ReactFlowMarkers.js.map +1 -1
- package/dist/cjs/extensions/react-flow/minimap/MiniMap.js +21 -2
- package/dist/cjs/extensions/react-flow/minimap/MiniMap.js.map +1 -1
- package/dist/cjs/extensions/react-flow/minimap/MiniMapV12.js +51 -0
- package/dist/cjs/extensions/react-flow/minimap/MiniMapV12.js.map +1 -0
- package/dist/cjs/extensions/react-flow/nodes/NodeContent.js +57 -54
- package/dist/cjs/extensions/react-flow/nodes/NodeContent.js.map +1 -1
- package/dist/cjs/extensions/react-flow/nodes/NodeDefault.js +2 -2
- package/dist/cjs/extensions/react-flow/nodes/NodeDefault.js.map +1 -1
- package/dist/cjs/extensions/react-flow/nodes/nodeUtils.js +2 -1
- package/dist/cjs/extensions/react-flow/nodes/nodeUtils.js.map +1 -1
- package/dist/cjs/extensions/react-flow/versionsupport.js +13 -11
- package/dist/cjs/extensions/react-flow/versionsupport.js.map +1 -1
- package/dist/cjs/index.js +1 -3
- package/dist/cjs/index.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/markdown/Markdown.js +1 -2
- package/dist/esm/cmem/markdown/Markdown.js.map +1 -1
- package/dist/esm/cmem/react-flow/ReactFlow/ReactFlow.js +67 -13
- package/dist/esm/cmem/react-flow/ReactFlow/ReactFlow.js.map +1 -1
- package/dist/esm/cmem/react-flow/ReactFlow/ReactFlowV12.js +66 -0
- package/dist/esm/cmem/react-flow/ReactFlow/ReactFlowV12.js.map +1 -0
- package/dist/esm/{legacy-replacements/Button/AffirmativeButton.js → cmem/react-flow/ReactFlow/ReactFlowV9.js} +12 -7
- package/dist/esm/cmem/react-flow/ReactFlow/ReactFlowV9.js.map +1 -0
- package/dist/esm/cmem/react-flow/StickyNoteModal/StickyNoteModal.js +3 -3
- package/dist/esm/cmem/react-flow/StickyNoteModal/StickyNoteModal.js.map +1 -1
- package/dist/esm/cmem/react-flow/configuration/graph.js +12 -10
- package/dist/esm/cmem/react-flow/configuration/graph.js.map +1 -1
- package/dist/esm/cmem/react-flow/configuration/linking.js +2 -0
- package/dist/esm/cmem/react-flow/configuration/linking.js.map +1 -1
- package/dist/esm/cmem/react-flow/configuration/unspecified.js +2 -1
- package/dist/esm/cmem/react-flow/configuration/unspecified.js.map +1 -1
- package/dist/esm/cmem/react-flow/configuration/workflow.js +2 -0
- package/dist/esm/cmem/react-flow/configuration/workflow.js.map +1 -1
- package/dist/esm/cmem/react-flow/extensions/scrollOnDragHook.js +7 -1
- package/dist/esm/cmem/react-flow/extensions/scrollOnDragHook.js.map +1 -1
- package/dist/esm/cmem/react-flow/index.js +2 -1
- package/dist/esm/cmem/react-flow/index.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/common/index.js +10 -0
- package/dist/esm/common/index.js.map +1 -1
- package/dist/esm/common/utils/CssCustomProperties.js +9 -3
- package/dist/esm/common/utils/CssCustomProperties.js.map +1 -1
- package/dist/esm/common/utils/colorCalculateDistance.js +21 -0
- package/dist/esm/common/utils/colorCalculateDistance.js.map +1 -0
- package/dist/esm/common/utils/colorHash.js +153 -0
- package/dist/esm/common/utils/colorHash.js.map +1 -0
- package/dist/esm/common/utils/getColorConfiguration.js +37 -4
- package/dist/esm/common/utils/getColorConfiguration.js.map +1 -1
- package/dist/esm/common/utils/reduceToText.js +75 -0
- package/dist/esm/common/utils/reduceToText.js.map +1 -0
- 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/AutoSuggestion/AutoSuggestion.js +14 -12
- package/dist/esm/components/AutoSuggestion/AutoSuggestion.js.map +1 -1
- package/dist/esm/components/AutoSuggestion/AutoSuggestionList.js +4 -1
- package/dist/esm/components/AutoSuggestion/AutoSuggestionList.js.map +1 -1
- package/dist/esm/components/AutoSuggestion/ExtendedCodeEditor.js +1 -3
- package/dist/esm/components/AutoSuggestion/ExtendedCodeEditor.js.map +1 -1
- package/dist/esm/components/AutocompleteField/AutoCompleteField.js +17 -7
- package/dist/esm/components/AutocompleteField/AutoCompleteField.js.map +1 -1
- package/dist/esm/components/AutocompleteField/autoCompleteFieldUtils.js.map +1 -1
- package/dist/esm/components/Button/Button.js +11 -26
- package/dist/esm/components/Button/Button.js.map +1 -1
- package/dist/esm/components/Chat/ChatArea.js +59 -0
- package/dist/esm/components/Chat/ChatArea.js.map +1 -0
- package/dist/esm/components/Chat/ChatContent.js +59 -0
- package/dist/esm/components/Chat/ChatContent.js.map +1 -0
- package/dist/esm/components/Chat/ChatContentCollapsed.js +45 -0
- package/dist/esm/components/Chat/ChatContentCollapsed.js.map +1 -0
- package/dist/esm/components/Chat/ChatField.js +57 -0
- package/dist/esm/components/Chat/ChatField.js.map +1 -0
- package/dist/esm/components/Chat/index.js +5 -0
- package/dist/esm/components/Chat/index.js.map +1 -0
- package/dist/esm/components/CodeAutocompleteField/index.js +4 -1
- package/dist/esm/components/CodeAutocompleteField/index.js.map +1 -1
- package/dist/esm/components/ContentGroup/ContentGroup.js +1 -1
- package/dist/esm/components/ContentGroup/ContentGroup.js.map +1 -1
- package/dist/esm/components/ContextOverlay/ContextMenu.js +2 -2
- package/dist/esm/components/ContextOverlay/ContextMenu.js.map +1 -1
- package/dist/esm/components/ContextOverlay/ContextOverlay.js +70 -23
- 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/Dialog/Modal.js +15 -2
- package/dist/esm/components/Dialog/Modal.js.map +1 -1
- package/dist/esm/components/Dialog/ModalContext.js +69 -0
- package/dist/esm/components/Dialog/ModalContext.js.map +1 -0
- package/dist/esm/components/Dialog/SimpleDialog.js +2 -1
- package/dist/esm/components/Dialog/SimpleDialog.js.map +1 -1
- package/dist/esm/components/Dialog/index.js +1 -0
- package/dist/esm/components/Dialog/index.js.map +1 -1
- package/dist/esm/components/Form/FieldItem.js +2 -19
- package/dist/esm/components/Form/FieldItem.js.map +1 -1
- package/dist/esm/components/Form/FieldSet.js +2 -20
- package/dist/esm/components/Form/FieldSet.js.map +1 -1
- package/dist/esm/components/Icon/BaseIcon.js +2 -2
- package/dist/esm/components/Icon/BaseIcon.js.map +1 -1
- package/dist/esm/components/Icon/IconButton.js.map +1 -1
- package/dist/esm/components/Icon/canonicalIconNames.js +31 -2
- 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 +16 -29
- package/dist/esm/components/MultiSelect/MultiSelect.js.map +1 -1
- package/dist/esm/components/MultiSuggestField/index.js +2 -0
- package/dist/esm/components/MultiSuggestField/index.js.map +1 -0
- package/dist/esm/components/Notification/Notification.js +3 -23
- package/dist/esm/components/Notification/Notification.js.map +1 -1
- package/dist/esm/components/OverviewItem/OverviewItemList.js +1 -2
- package/dist/esm/components/OverviewItem/OverviewItemList.js.map +1 -1
- package/dist/esm/components/RadioButton/RadioButton.js +6 -2
- package/dist/esm/components/RadioButton/RadioButton.js.map +1 -1
- package/dist/esm/components/Spinner/Spinner.js +16 -14
- package/dist/esm/components/Spinner/Spinner.js.map +1 -1
- package/dist/esm/components/SuggestField/index.js +4 -1
- package/dist/esm/components/SuggestField/index.js.map +1 -1
- package/dist/esm/components/Table/Table.js.map +1 -1
- package/dist/esm/components/Table/TableContainer.js.map +1 -1
- package/dist/esm/components/Tabs/Tab.js +3 -2
- package/dist/esm/components/Tabs/Tab.js.map +1 -1
- package/dist/esm/components/TextField/SearchField.js.map +1 -1
- package/dist/esm/components/TextField/TextArea.js +2 -2
- package/dist/esm/components/TextField/TextArea.js.map +1 -1
- package/dist/esm/components/TextReducer/TextReducer.js +41 -0
- package/dist/esm/components/TextReducer/TextReducer.js.map +1 -0
- package/dist/esm/components/Tooltip/Tooltip.js +3 -1
- package/dist/esm/components/Tooltip/Tooltip.js.map +1 -1
- package/dist/esm/{legacy-replacements/Button/DisruptiveButton.js → components/Typography/InlineText.js} +10 -7
- package/dist/esm/components/Typography/InlineText.js.map +1 -0
- package/dist/esm/components/Typography/OverflowText.js.map +1 -1
- 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 +205 -0
- package/dist/esm/components/VisualTour/VisualTour.js.map +1 -0
- package/dist/esm/components/index.js +8 -7
- package/dist/esm/components/index.js.map +1 -1
- package/dist/esm/configuration/constants.js +2 -0
- package/dist/esm/configuration/constants.js.map +1 -1
- package/dist/esm/extensions/codemirror/CodeMirror.js +19 -8
- package/dist/esm/extensions/codemirror/CodeMirror.js.map +1 -1
- package/dist/esm/extensions/codemirror/hooks/useCodemirrorModeExtension.hooks.js +3 -0
- 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/EdgeBezier.js +35 -0
- package/dist/esm/extensions/react-flow/edges/EdgeBezier.js.map +1 -0
- package/dist/esm/extensions/react-flow/edges/EdgeDefault.js +21 -3
- package/dist/esm/extensions/react-flow/edges/EdgeDefault.js.map +1 -1
- package/dist/esm/extensions/react-flow/edges/EdgeDefaultV12.js +24 -20
- package/dist/esm/extensions/react-flow/edges/EdgeDefaultV12.js.map +1 -1
- package/dist/esm/extensions/react-flow/edges/EdgeDefs.js +3 -0
- package/dist/esm/extensions/react-flow/edges/EdgeDefs.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 +45 -0
- package/dist/esm/extensions/react-flow/edges/EdgeNew.js.map +1 -0
- package/dist/esm/extensions/react-flow/edges/EdgeStep.js +19 -2
- package/dist/esm/extensions/react-flow/edges/EdgeStep.js.map +1 -1
- package/dist/esm/extensions/react-flow/edges/EdgeStraight.js +2 -0
- package/dist/esm/extensions/react-flow/edges/EdgeStraight.js.map +1 -0
- package/dist/esm/extensions/react-flow/edges/utils.js +27 -1
- package/dist/esm/extensions/react-flow/edges/utils.js.map +1 -1
- package/dist/esm/extensions/react-flow/handles/HandleDefault.js +17 -18
- package/dist/esm/extensions/react-flow/handles/HandleDefault.js.map +1 -1
- package/dist/esm/extensions/react-flow/index.js +6 -3
- package/dist/esm/extensions/react-flow/index.js.map +1 -1
- package/dist/esm/extensions/react-flow/markers/MarkerArrowClosedInverse.js +3 -0
- package/dist/esm/extensions/react-flow/markers/MarkerArrowClosedInverse.js.map +1 -1
- package/dist/esm/extensions/react-flow/markers/ReactFlowMarkers.js +17 -2
- package/dist/esm/extensions/react-flow/markers/ReactFlowMarkers.js.map +1 -1
- package/dist/esm/extensions/react-flow/minimap/MiniMap.js +22 -3
- package/dist/esm/extensions/react-flow/minimap/MiniMap.js.map +1 -1
- package/dist/esm/extensions/react-flow/minimap/MiniMapV12.js +36 -0
- package/dist/esm/extensions/react-flow/minimap/MiniMapV12.js.map +1 -0
- package/dist/esm/extensions/react-flow/nodes/NodeContent.js +84 -81
- package/dist/esm/extensions/react-flow/nodes/NodeContent.js.map +1 -1
- package/dist/esm/extensions/react-flow/nodes/NodeDefault.js +1 -1
- package/dist/esm/extensions/react-flow/nodes/NodeDefault.js.map +1 -1
- package/dist/esm/extensions/react-flow/nodes/nodeUtils.js +2 -1
- package/dist/esm/extensions/react-flow/nodes/nodeUtils.js.map +1 -1
- package/dist/esm/extensions/react-flow/versionsupport.js +15 -13
- package/dist/esm/extensions/react-flow/versionsupport.js.map +1 -1
- package/dist/esm/index.js +1 -2
- package/dist/esm/index.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/cmem/markdown/Markdown.d.ts +1 -8
- package/dist/types/cmem/react-flow/ReactFlow/ReactFlow.d.ts +38 -6
- package/dist/types/cmem/react-flow/ReactFlow/ReactFlowV12.d.ts +7 -0
- package/dist/types/cmem/react-flow/ReactFlow/ReactFlowV9.d.ts +7 -0
- package/dist/types/cmem/react-flow/StickyNoteModal/StickyNoteModal.d.ts +1 -1
- package/dist/types/cmem/react-flow/configuration/graph.d.ts +9 -9
- package/dist/types/cmem/react-flow/configuration/linking.d.ts +6 -6
- package/dist/types/cmem/react-flow/configuration/unspecified.d.ts +3 -3
- package/dist/types/cmem/react-flow/configuration/workflow.d.ts +4 -4
- package/dist/types/cmem/react-flow/extensions/scrollOnDragHook.d.ts +19 -16
- package/dist/types/cmem/react-flow/index.d.ts +2 -1
- package/dist/types/common/index.d.ts +9 -1
- package/dist/types/common/utils/CssCustomProperties.d.ts +6 -6
- package/dist/types/common/utils/colorCalculateDistance.d.ts +12 -0
- package/dist/types/common/utils/colorHash.d.ts +30 -0
- package/dist/types/common/utils/getColorConfiguration.d.ts +1 -1
- package/dist/types/common/utils/reduceToText.d.ts +10 -0
- package/dist/types/components/Application/ApplicationViewability.d.ts +36 -0
- package/dist/types/components/Application/index.d.ts +1 -0
- package/dist/types/components/AutoSuggestion/AutoSuggestion.d.ts +7 -17
- package/dist/types/components/AutoSuggestion/AutoSuggestionList.d.ts +4 -4
- package/dist/types/components/AutoSuggestion/ExtendedCodeEditor.d.ts +0 -1
- package/dist/types/components/AutocompleteField/AutoCompleteField.d.ts +18 -10
- package/dist/types/components/AutocompleteField/autoCompleteFieldUtils.d.ts +2 -2
- package/dist/types/components/AutocompleteField/interfaces.d.ts +2 -4
- package/dist/types/components/Button/Button.d.ts +13 -26
- package/dist/types/components/Chat/ChatArea.d.ts +34 -0
- package/dist/types/components/Chat/ChatContent.d.ts +49 -0
- package/dist/types/components/Chat/ChatContentCollapsed.d.ts +28 -0
- package/dist/types/components/Chat/ChatField.d.ts +20 -0
- package/dist/types/components/Chat/index.d.ts +4 -0
- package/dist/types/components/CodeAutocompleteField/index.d.ts +5 -1
- package/dist/types/components/ContextOverlay/ContextMenu.d.ts +1 -1
- package/dist/types/components/ContextOverlay/ContextOverlay.d.ts +7 -1
- package/dist/types/components/DecoupledOverlay/DecoupledOverlay.d.ts +20 -0
- package/dist/types/components/Dialog/Modal.d.ts +11 -2
- package/dist/types/components/Dialog/ModalContext.d.ts +13 -0
- package/dist/types/components/Dialog/SimpleDialog.d.ts +0 -1
- package/dist/types/components/Dialog/index.d.ts +1 -0
- package/dist/types/components/Form/FieldItem.d.ts +1 -25
- package/dist/types/components/Form/FieldSet.d.ts +1 -21
- package/dist/types/components/Icon/BaseIcon.d.ts +1 -10
- package/dist/types/components/Icon/IconButton.d.ts +2 -1
- package/dist/types/components/Icon/canonicalIconNames.d.ts +28 -0
- package/dist/types/components/Icon/transformIcon.d.ts +2 -0
- package/dist/types/components/MultiSelect/MultiSelect.d.ts +18 -34
- package/dist/types/components/MultiSuggestField/index.d.ts +1 -0
- package/dist/types/components/Notification/Notification.d.ts +1 -24
- package/dist/types/components/OverviewItem/OverviewItemList.d.ts +1 -6
- package/dist/types/components/RadioButton/RadioButton.d.ts +8 -2
- package/dist/types/components/Spinner/Spinner.d.ts +16 -14
- package/dist/types/components/Structure/TitleSubsection.d.ts +1 -1
- package/dist/types/components/SuggestField/index.d.ts +6 -2
- package/dist/types/components/Table/Table.d.ts +1 -1
- package/dist/types/components/Table/TableContainer.d.ts +2 -2
- package/dist/types/components/Tabs/Tab.d.ts +4 -4
- package/dist/types/components/TextField/SearchField.d.ts +1 -1
- package/dist/types/components/TextReducer/TextReducer.d.ts +40 -0
- package/dist/types/components/Tooltip/Tooltip.d.ts +2 -1
- package/dist/types/components/Typography/InlineText.d.ts +13 -0
- package/dist/types/components/Typography/OverflowText.d.ts +0 -5
- package/dist/types/components/Typography/index.d.ts +1 -0
- package/dist/types/components/VisualTour/VisualTour.d.ts +39 -0
- package/dist/types/components/index.d.ts +8 -7
- package/dist/types/configuration/constants.d.ts +2 -0
- package/dist/types/extensions/codemirror/CodeMirror.d.ts +9 -6
- package/dist/types/extensions/codemirror/hooks/useCodemirrorModeExtension.hooks.d.ts +2 -0
- package/dist/types/extensions/codemirror/tests/codemirrorTestHelper.d.ts +1 -1
- package/dist/types/extensions/react-flow/edges/EdgeBezier.d.ts +20 -0
- package/dist/types/extensions/react-flow/edges/EdgeDefault.d.ts +29 -7
- package/dist/types/extensions/react-flow/edges/EdgeDefaultV12.d.ts +16 -27
- package/dist/types/extensions/react-flow/edges/EdgeDefs.d.ts +3 -0
- package/dist/types/extensions/react-flow/edges/EdgeLabel.d.ts +1 -1
- package/dist/types/extensions/react-flow/edges/EdgeNew.d.ts +3 -0
- package/dist/types/extensions/react-flow/edges/EdgeStep.d.ts +23 -5
- package/dist/types/extensions/react-flow/edges/EdgeStraight.d.ts +1 -0
- package/dist/types/extensions/react-flow/edges/utils.d.ts +2 -0
- package/dist/types/extensions/react-flow/handles/HandleDefault.d.ts +12 -6
- package/dist/types/extensions/react-flow/index.d.ts +6 -2
- package/dist/types/extensions/react-flow/markers/MarkerArrowClosedInverse.d.ts +3 -0
- package/dist/types/extensions/react-flow/markers/ReactFlowMarkers.d.ts +21 -2
- package/dist/types/extensions/react-flow/minimap/MiniMap.d.ts +18 -7
- package/dist/types/extensions/react-flow/minimap/MiniMapV12.d.ts +10 -0
- package/dist/types/extensions/react-flow/nodes/NodeContent.d.ts +15 -12
- package/dist/types/extensions/react-flow/nodes/NodeDefault.d.ts +7 -3
- package/dist/types/extensions/react-flow/nodes/nodeUtils.d.ts +12 -5
- package/dist/types/extensions/react-flow/versionsupport.d.ts +8 -4
- package/dist/types/index.d.ts +1 -2
- package/package.json +57 -56
- package/src/_shame.scss +1 -1
- 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 +65 -17
- package/src/cmem/ContentBlobToggler/stories/StringPreviewContentBlobToggler.stories.tsx +27 -0
- package/src/cmem/ContentBlobToggler/tests/StringPreviewContentBlobToggler.test.tsx +98 -0
- package/src/cmem/markdown/Markdown.stories.tsx +0 -1
- package/src/cmem/markdown/Markdown.tsx +4 -13
- package/src/cmem/react-flow/ReactFlow/ReactFlow.stories.tsx +472 -366
- package/src/cmem/react-flow/ReactFlow/ReactFlow.tsx +176 -72
- package/src/cmem/react-flow/ReactFlow/ReactFlowV12.tsx +57 -0
- package/src/cmem/react-flow/ReactFlow/ReactFlowV9.tsx +29 -0
- package/src/cmem/react-flow/StickyNoteModal/StickyNoteModal.tsx +1 -2
- package/src/cmem/react-flow/_canvas.scss +1 -1
- package/src/cmem/react-flow/_edges.scss +13 -13
- package/src/cmem/react-flow/_handles.scss +18 -18
- package/src/cmem/react-flow/_minimap.scss +29 -19
- package/src/cmem/react-flow/configuration/_colors-graph.scss +19 -36
- package/src/cmem/react-flow/configuration/_colors-linking.scss +14 -26
- package/src/cmem/react-flow/configuration/_colors-workflow.scss +15 -27
- package/src/cmem/react-flow/configuration/graph.ts +13 -11
- package/src/cmem/react-flow/configuration/linking.ts +3 -1
- package/src/cmem/react-flow/configuration/unspecified.ts +2 -1
- package/src/cmem/react-flow/configuration/workflow.ts +3 -1
- package/src/cmem/react-flow/extensions/scrollOnDragHook.ts +19 -21
- package/src/cmem/react-flow/index.ts +2 -1
- package/src/cmem/react-flow/nodes/_colors.scss +20 -20
- package/src/common/Intent/index.ts +2 -1
- package/src/common/index.ts +12 -0
- package/src/common/scss/_color-functions.scss +144 -0
- package/src/common/utils/CssCustomProperties.ts +22 -15
- package/src/common/utils/colorCalculateDistance.ts +28 -0
- package/src/common/utils/colorHash.ts +213 -0
- package/src/common/utils/getColorConfiguration.ts +45 -7
- package/src/common/utils/reduceToText.tsx +82 -0
- package/src/components/Accordion/accordion.scss +6 -5
- package/src/components/Application/ApplicationViewability.tsx +61 -0
- package/src/components/Application/_colors.scss +30 -0
- package/src/components/Application/_content.scss +7 -0
- package/src/components/Application/_header.scss +19 -10
- package/src/components/Application/_toolbar.scss +5 -5
- package/src/components/Application/_viewability.scss +13 -0
- package/src/components/Application/application.scss +2 -0
- package/src/components/Application/index.ts +1 -0
- package/src/components/Application/stories/Application.stories.tsx +2 -2
- package/src/components/Application/stories/ApplicationViewability.stories.tsx +37 -0
- package/src/components/Application/stories/ColorPalettes.stories.tsx +885 -0
- package/src/components/Application/tests/ApplicationViewability.test.tsx +43 -0
- package/src/components/AutoSuggestion/AutoSuggestion.tsx +16 -32
- package/src/components/AutoSuggestion/AutoSuggestionList.tsx +13 -6
- package/src/components/AutoSuggestion/ExtendedCodeEditor.tsx +1 -7
- package/src/components/AutoSuggestion/tests/ExtendedCodeEditor.test.tsx +1 -1
- package/src/components/AutocompleteField/AutoCompleteField.tsx +21 -13
- package/src/components/AutocompleteField/autoCompleteFieldUtils.tsx +2 -2
- package/src/components/AutocompleteField/interfaces.ts +1 -5
- package/src/components/Button/Button.stories.tsx +7 -5
- package/src/components/Button/Button.tsx +23 -63
- package/src/components/Button/button.scss +94 -32
- package/src/components/Card/card.scss +19 -13
- package/src/components/Chat/ChatArea.tsx +114 -0
- package/src/components/Chat/ChatContent.tsx +132 -0
- package/src/components/Chat/ChatContentCollapsed.tsx +64 -0
- package/src/components/Chat/ChatField.tsx +75 -0
- package/src/components/Chat/_chat.scss +86 -0
- package/src/components/Chat/index.ts +4 -0
- package/src/components/Chat/stories/ChatArea.stories.tsx +61 -0
- package/src/components/Chat/stories/ChatContent.stories.tsx +61 -0
- package/src/components/Chat/stories/ChatContentCollapsed.stories.tsx +24 -0
- package/src/components/Chat/stories/ChatField.stories.tsx +23 -0
- package/src/components/Checkbox/checkbox.scss +14 -2
- package/src/components/CodeAutocompleteField/index.ts +8 -1
- package/src/components/ColorField/ColorField.stories.tsx +69 -0
- package/src/components/ColorField/ColorField.tsx +200 -0
- package/src/components/ColorField/_colorfield.scss +56 -0
- package/src/components/ContentGroup/ContentGroup.tsx +1 -1
- package/src/components/ContentGroup/_contentgroup.scss +17 -2
- package/src/components/ContextOverlay/ContextMenu.tsx +4 -1
- package/src/components/ContextOverlay/ContextOverlay.tsx +97 -19
- package/src/components/ContextOverlay/tests/ContextMenu.test.tsx +43 -0
- package/src/components/ContextOverlay/tests/ContextOverlay.test.tsx +71 -0
- 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/Dialog/Modal.tsx +30 -2
- package/src/components/Dialog/ModalContext.tsx +56 -0
- package/src/components/Dialog/SimpleDialog.tsx +2 -1
- package/src/components/Dialog/dialog.scss +4 -1
- package/src/components/Dialog/index.ts +1 -0
- package/src/components/Dialog/stories/Modal.stories.tsx +10 -7
- package/src/components/Dialog/stories/ModalContext.stories.tsx +153 -0
- package/src/components/FlexibleLayout/flexiblelayout.scss +16 -0
- package/src/components/Form/FieldItem.tsx +2 -57
- package/src/components/Form/FieldSet.tsx +1 -45
- package/src/components/Form/form.scss +2 -2
- 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/BaseIcon.tsx +0 -14
- package/src/components/Icon/IconButton.tsx +2 -1
- package/src/components/Icon/canonicalIconNames.tsx +31 -2
- package/src/components/Icon/icon.scss +6 -0
- package/src/components/Icon/stories/Icon.stories.tsx +65 -5
- package/src/components/Icon/stories/IconButton.stories.tsx +2 -1
- package/src/components/Icon/transformIcon.tsx +17 -0
- package/src/components/Label/label.scss +1 -1
- package/src/components/Link/Link.stories.tsx +30 -0
- package/src/components/Link/link.scss +29 -3
- package/src/components/Menu/menu.scss +4 -27
- package/src/components/MultiSelect/MultiSelect.tsx +36 -64
- package/src/components/MultiSuggestField/MultiSuggestField.stories.tsx +1 -1
- package/src/components/MultiSuggestField/index.ts +1 -0
- package/src/components/Notification/Notification.stories.tsx +24 -10
- package/src/components/Notification/Notification.tsx +3 -51
- package/src/components/Notification/notification.scss +17 -6
- package/src/components/OverviewItem/OverviewItemList.tsx +0 -7
- package/src/components/OverviewItem/overviewitem.scss +15 -9
- 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/OverviewItem/stories/OverviewItemList.stories.tsx +0 -1
- package/src/components/Pagination/pagination.scss +1 -1
- package/src/components/ProgressBar/Stories/ProgressBar.stories.tsx +7 -1
- package/src/components/PropertyValuePair/propertyvalue.scss +23 -1
- package/src/components/RadioButton/RadioButton.tsx +15 -3
- package/src/components/RadioButton/radiobutton.scss +13 -0
- package/src/components/Select/Select.stories.tsx +1 -1
- package/src/components/Separation/separation.scss +6 -0
- package/src/components/Spinner/Spinner.tsx +30 -23
- package/src/components/Spinner/Stories/spinner.stories.tsx +1 -1
- package/src/components/Spinner/spinner.scss +10 -5
- package/src/components/Sticky/sticky.scss +7 -7
- package/src/components/SuggestField/index.ts +7 -1
- package/src/components/Table/Table.tsx +1 -2
- package/src/components/Table/TableContainer.tsx +2 -2
- package/src/components/Table/table.scss +56 -46
- package/src/components/Tabs/Tab.tsx +3 -2
- package/src/components/Tabs/stories/Tab.stories.tsx +1 -1
- package/src/components/Tabs/stories/TabPanel.stories.tsx +1 -1
- package/src/components/Tabs/stories/TabTitle.stories.tsx +8 -3
- package/src/components/Tag/stories/TagList.stories.tsx +2 -2
- package/src/components/Tag/tag.scss +105 -74
- package/src/components/TextField/SearchField.tsx +1 -6
- package/src/components/TextField/TextArea.tsx +2 -2
- package/src/components/TextField/stories/SearchField.stories.tsx +0 -4
- package/src/components/TextField/textfield.scss +31 -23
- package/src/components/TextReducer/TextReducer.stories.tsx +48 -0
- package/src/components/TextReducer/TextReducer.test.tsx +44 -0
- package/src/components/TextReducer/TextReducer.tsx +71 -0
- package/src/components/Tooltip/Tooltip.stories.tsx +2 -0
- package/src/components/Tooltip/Tooltip.test.tsx +63 -0
- package/src/components/Tooltip/Tooltip.tsx +7 -2
- package/src/components/Tooltip/tooltip.scss +7 -3
- package/src/components/Typography/InlineText.tsx +24 -0
- package/src/components/Typography/OverflowText.tsx +1 -6
- 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 +29 -3
- package/src/components/VisualTour/VisualTour.tsx +361 -0
- package/src/components/VisualTour/stories/VisualTour.stories.tsx +112 -0
- package/src/components/VisualTour/stories/defaultTour.ts +42 -0
- package/src/components/VisualTour/visualTour.scss +49 -0
- package/src/components/index.scss +4 -0
- package/src/components/index.ts +8 -7
- package/src/configuration/_customproperties.scss +32 -0
- package/src/configuration/_libprefix.scss +1 -0
- package/src/configuration/_palettes.scss +40 -0
- package/src/configuration/_variables.scss +21 -20
- package/src/configuration/constants.ts +2 -0
- package/src/configuration/stories/customproperties.stories.tsx +118 -0
- package/src/extensions/codemirror/CodeMirror.tsx +32 -19
- package/src/extensions/codemirror/_codemirror.scss +2 -2
- package/src/extensions/codemirror/hooks/useCodemirrorModeExtension.hooks.ts +3 -0
- package/src/extensions/codemirror/tests/codemirrorTestHelper.ts +3 -3
- package/src/extensions/react-flow/_config.scss +13 -7
- package/src/extensions/react-flow/_react-flow.scss +1 -4
- package/src/extensions/react-flow/_react-flow_v12.scss +211 -3
- package/src/extensions/react-flow/edges/EdgeBezier.tsx +47 -0
- package/src/extensions/react-flow/edges/EdgeDefault.tsx +51 -13
- package/src/extensions/react-flow/edges/EdgeDefaultV12.tsx +79 -78
- package/src/extensions/react-flow/edges/EdgeDefs.tsx +3 -0
- package/src/extensions/react-flow/edges/EdgeLabel.tsx +6 -4
- package/src/extensions/react-flow/edges/EdgeNew.tsx +53 -0
- package/src/extensions/react-flow/edges/EdgeStep.tsx +41 -6
- package/src/extensions/react-flow/edges/EdgeStraight.tsx +1 -0
- package/src/extensions/react-flow/edges/_edges.scss +28 -13
- package/src/extensions/react-flow/edges/stories/EdgeDefault.stories.tsx +5 -6
- package/src/extensions/react-flow/edges/stories/EdgeDefaultV12.stories.tsx +32 -25
- package/src/extensions/react-flow/edges/utils.ts +19 -1
- package/src/extensions/react-flow/handles/HandleDefault.tsx +41 -36
- package/src/extensions/react-flow/handles/_handles.scss +2 -2
- package/src/extensions/react-flow/handles/stories/HandleDefault.stories.tsx +4 -6
- package/src/extensions/react-flow/index.ts +7 -5
- package/src/extensions/react-flow/markers/MarkerArrowClosedInverse.tsx +3 -0
- package/src/extensions/react-flow/markers/ReactFlowMarkers.tsx +58 -1
- package/src/extensions/react-flow/markers/_markers.scss +31 -0
- package/src/extensions/react-flow/minimap/MiniMap.stories.tsx +12 -18
- package/src/extensions/react-flow/minimap/MiniMap.tsx +45 -9
- package/src/extensions/react-flow/minimap/MiniMapV12.tsx +39 -0
- package/src/extensions/react-flow/minimap/_minimap.scss +14 -0
- package/src/extensions/react-flow/nodes/NodeContent.tsx +135 -113
- package/src/extensions/react-flow/nodes/NodeDefault.tsx +9 -5
- package/src/extensions/react-flow/nodes/_nodes.scss +32 -25
- package/src/extensions/react-flow/nodes/nodeUtils.tsx +16 -6
- package/src/extensions/react-flow/nodes/stories/NodeContent.stories.tsx +2 -2
- package/src/extensions/react-flow/nodes/stories/NodeDefault.stories.tsx +3 -5
- package/src/extensions/react-flow/versionsupport.ts +17 -15
- package/src/extensions/uppy/_fileupload.scss +2 -2
- package/src/includes/blueprintjs/_colormap.scss +150 -0
- package/src/includes/blueprintjs/_variables.scss +39 -9
- package/src/includes/carbon-components/_variables.scss +23 -8
- package/src/index.scss +12 -0
- package/src/index.ts +1 -2
- package/dist/cjs/components/AutoSuggestion/index.js +0 -8
- package/dist/cjs/components/AutoSuggestion/index.js.map +0 -1
- package/dist/cjs/components/AutocompleteField/index.js.map +0 -1
- package/dist/cjs/components/CodeAutocompleteField/CodeAutocompleteField.js +0 -32
- package/dist/cjs/components/CodeAutocompleteField/CodeAutocompleteField.js.map +0 -1
- package/dist/cjs/components/MultiSuggestField/MultiSuggestField.js +0 -37
- package/dist/cjs/components/MultiSuggestField/MultiSuggestField.js.map +0 -1
- package/dist/cjs/components/SuggestField/SuggestField.js +0 -38
- package/dist/cjs/components/SuggestField/SuggestField.js.map +0 -1
- package/dist/cjs/extensions/react-flow/edges/edgeTypes.js +0 -28
- package/dist/cjs/extensions/react-flow/edges/edgeTypes.js.map +0 -1
- package/dist/cjs/extensions/react-flow/nodes/nodeTypes.js +0 -18
- package/dist/cjs/extensions/react-flow/nodes/nodeTypes.js.map +0 -1
- package/dist/cjs/legacy-replacements/Button/AffirmativeButton.js +0 -25
- package/dist/cjs/legacy-replacements/Button/AffirmativeButton.js.map +0 -1
- package/dist/cjs/legacy-replacements/Button/Button.js +0 -65
- package/dist/cjs/legacy-replacements/Button/Button.js.map +0 -1
- package/dist/cjs/legacy-replacements/Button/DismissiveButton.js +0 -25
- package/dist/cjs/legacy-replacements/Button/DismissiveButton.js.map +0 -1
- package/dist/cjs/legacy-replacements/Button/DisruptiveButton.js.map +0 -1
- package/dist/cjs/legacy-replacements/Checkbox/Checkbox.js +0 -58
- package/dist/cjs/legacy-replacements/Checkbox/Checkbox.js.map +0 -1
- package/dist/cjs/legacy-replacements/Radio/RadioButton.js +0 -51
- package/dist/cjs/legacy-replacements/Radio/RadioButton.js.map +0 -1
- package/dist/cjs/legacy-replacements/Tabs/Tabs.js +0 -34
- package/dist/cjs/legacy-replacements/Tabs/Tabs.js.map +0 -1
- package/dist/cjs/legacy-replacements/TextField/TextField.js +0 -75
- package/dist/cjs/legacy-replacements/TextField/TextField.js.map +0 -1
- package/dist/cjs/legacy-replacements/index.js +0 -22
- package/dist/cjs/legacy-replacements/index.js.map +0 -1
- package/dist/esm/components/AutoSuggestion/index.js +0 -4
- package/dist/esm/components/AutoSuggestion/index.js.map +0 -1
- package/dist/esm/components/AutocompleteField/index.js +0 -7
- package/dist/esm/components/AutocompleteField/index.js.map +0 -1
- package/dist/esm/components/CodeAutocompleteField/CodeAutocompleteField.js +0 -37
- package/dist/esm/components/CodeAutocompleteField/CodeAutocompleteField.js.map +0 -1
- package/dist/esm/components/MultiSuggestField/MultiSuggestField.js +0 -42
- package/dist/esm/components/MultiSuggestField/MultiSuggestField.js.map +0 -1
- package/dist/esm/components/SuggestField/SuggestField.js +0 -43
- package/dist/esm/components/SuggestField/SuggestField.js.map +0 -1
- package/dist/esm/extensions/react-flow/edges/edgeTypes.js +0 -25
- package/dist/esm/extensions/react-flow/edges/edgeTypes.js.map +0 -1
- package/dist/esm/extensions/react-flow/nodes/nodeTypes.js +0 -15
- package/dist/esm/extensions/react-flow/nodes/nodeTypes.js.map +0 -1
- package/dist/esm/legacy-replacements/Button/AffirmativeButton.js.map +0 -1
- package/dist/esm/legacy-replacements/Button/Button.js +0 -69
- package/dist/esm/legacy-replacements/Button/Button.js.map +0 -1
- package/dist/esm/legacy-replacements/Button/DismissiveButton.js +0 -30
- package/dist/esm/legacy-replacements/Button/DismissiveButton.js.map +0 -1
- package/dist/esm/legacy-replacements/Button/DisruptiveButton.js.map +0 -1
- package/dist/esm/legacy-replacements/Checkbox/Checkbox.js +0 -63
- package/dist/esm/legacy-replacements/Checkbox/Checkbox.js.map +0 -1
- package/dist/esm/legacy-replacements/Radio/RadioButton.js +0 -56
- package/dist/esm/legacy-replacements/Radio/RadioButton.js.map +0 -1
- package/dist/esm/legacy-replacements/Tabs/Tabs.js +0 -39
- package/dist/esm/legacy-replacements/Tabs/Tabs.js.map +0 -1
- package/dist/esm/legacy-replacements/TextField/TextField.js +0 -82
- package/dist/esm/legacy-replacements/TextField/TextField.js.map +0 -1
- package/dist/esm/legacy-replacements/index.js +0 -10
- package/dist/esm/legacy-replacements/index.js.map +0 -1
- package/dist/types/components/AutoSuggestion/index.d.ts +0 -5
- package/dist/types/components/AutocompleteField/index.d.ts +0 -5
- package/dist/types/components/CodeAutocompleteField/CodeAutocompleteField.d.ts +0 -11
- package/dist/types/components/MultiSuggestField/MultiSuggestField.d.ts +0 -19
- package/dist/types/components/SuggestField/SuggestField.d.ts +0 -21
- package/dist/types/extensions/react-flow/edges/edgeTypes.d.ts +0 -16
- package/dist/types/extensions/react-flow/nodes/nodeTypes.d.ts +0 -13
- package/dist/types/legacy-replacements/Button/AffirmativeButton.d.ts +0 -3
- package/dist/types/legacy-replacements/Button/Button.d.ts +0 -6
- package/dist/types/legacy-replacements/Button/DismissiveButton.d.ts +0 -3
- package/dist/types/legacy-replacements/Button/DisruptiveButton.d.ts +0 -3
- package/dist/types/legacy-replacements/Checkbox/Checkbox.d.ts +0 -3
- package/dist/types/legacy-replacements/Radio/RadioButton.d.ts +0 -3
- package/dist/types/legacy-replacements/Tabs/Tabs.d.ts +0 -24
- package/dist/types/legacy-replacements/TextField/TextField.d.ts +0 -3
- package/dist/types/legacy-replacements/index.d.ts +0 -10
- package/src/components/AutoSuggestion/index.ts +0 -7
- package/src/components/AutocompleteField/AutoCompleteField.stories.tsx +0 -14
- package/src/components/AutocompleteField/index.ts +0 -6
- package/src/components/CodeAutocompleteField/CodeAutocompleteField.tsx +0 -22
- package/src/components/MultiSuggestField/MultiSuggestField.tsx +0 -35
- package/src/components/SuggestField/SuggestField.tsx +0 -33
- package/src/extensions/react-flow/edges/edgeTypes.ts +0 -29
- package/src/extensions/react-flow/nodes/nodeTypes.ts +0 -15
- package/src/legacy-replacements/Button/AffirmativeButton.tsx +0 -12
- package/src/legacy-replacements/Button/Button.tsx +0 -80
- package/src/legacy-replacements/Button/DismissiveButton.tsx +0 -12
- package/src/legacy-replacements/Button/DisruptiveButton.tsx +0 -12
- package/src/legacy-replacements/Checkbox/Checkbox.tsx +0 -59
- package/src/legacy-replacements/Radio/RadioButton.tsx +0 -37
- package/src/legacy-replacements/Tabs/Tabs.stories.tsx +0 -36
- package/src/legacy-replacements/Tabs/Tabs.tsx +0 -69
- package/src/legacy-replacements/TextField/TextField.tsx +0 -89
- package/src/legacy-replacements/index.ts +0 -11
|
@@ -2,11 +2,12 @@ import React from "react";
|
|
|
2
2
|
import {
|
|
3
3
|
Classes as BlueprintClasses,
|
|
4
4
|
Popover as BlueprintPopover,
|
|
5
|
+
PopoverInteractionKind as InteractionKind,
|
|
5
6
|
PopoverProps as BlueprintPopoverProps,
|
|
6
7
|
Utils as BlueprintUtils,
|
|
7
8
|
} from "@blueprintjs/core";
|
|
8
9
|
|
|
9
|
-
import { CLASSPREFIX as eccgui } from "../../
|
|
10
|
+
import { CLASSPREFIX as eccgui, WhiteSpaceContainer, WhiteSpaceContainerProps } from "../../index";
|
|
10
11
|
|
|
11
12
|
export interface ContextOverlayProps extends Omit<BlueprintPopoverProps, "position"> {
|
|
12
13
|
/**
|
|
@@ -23,6 +24,11 @@ export interface ContextOverlayProps extends Omit<BlueprintPopoverProps, "positi
|
|
|
23
24
|
* Currently experimental.
|
|
24
25
|
*/
|
|
25
26
|
usePlaceholder?: boolean;
|
|
27
|
+
/**
|
|
28
|
+
* Adds white space to each side of the overlay content.
|
|
29
|
+
* For more control use `WhiteSpaceContainer` directly as wrapper for the content children.
|
|
30
|
+
*/
|
|
31
|
+
paddingSize?: WhiteSpaceContainerProps["paddingTop"];
|
|
26
32
|
}
|
|
27
33
|
|
|
28
34
|
/**
|
|
@@ -35,10 +41,15 @@ export const ContextOverlay = ({
|
|
|
35
41
|
preventTopPosition,
|
|
36
42
|
className = "",
|
|
37
43
|
usePlaceholder = false,
|
|
44
|
+
paddingSize,
|
|
45
|
+
content,
|
|
38
46
|
...otherPopoverProps
|
|
39
47
|
}: ContextOverlayProps) => {
|
|
40
|
-
const placeholderRef = React.useRef(null);
|
|
41
|
-
const eventMemory = React.useRef<undefined | "
|
|
48
|
+
const placeholderRef = React.useRef<HTMLElement>(null);
|
|
49
|
+
const eventMemory = React.useRef<undefined | "mouseenter" | "focusin" | "click">(undefined);
|
|
50
|
+
const swapDelay = React.useRef<null | NodeJS.Timeout>(null);
|
|
51
|
+
const interactionKind = React.useRef<InteractionKind>(otherPopoverProps.interactionKind ?? InteractionKind.CLICK);
|
|
52
|
+
const swapDelayTime = 15;
|
|
42
53
|
const [placeholder, setPlaceholder] = React.useState<boolean>(
|
|
43
54
|
// use placeholder only for "simple" overlays without special states
|
|
44
55
|
!otherPopoverProps.disabled &&
|
|
@@ -48,30 +59,85 @@ export const ContextOverlay = ({
|
|
|
48
59
|
usePlaceholder
|
|
49
60
|
);
|
|
50
61
|
|
|
62
|
+
const swap = (ev: MouseEvent | globalThis.FocusEvent) => {
|
|
63
|
+
const waitForClick =
|
|
64
|
+
interactionKind.current === InteractionKind.CLICK ||
|
|
65
|
+
interactionKind.current === InteractionKind.CLICK_TARGET_ONLY;
|
|
66
|
+
|
|
67
|
+
if (swapDelay.current) {
|
|
68
|
+
clearTimeout(swapDelay.current);
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
const replacePlaceholder = () => {
|
|
72
|
+
eventMemory.current = ev.type as "mouseenter" | "focusin" | "click";
|
|
73
|
+
setPlaceholder(false);
|
|
74
|
+
};
|
|
75
|
+
|
|
76
|
+
if (waitForClick) {
|
|
77
|
+
ev.stopImmediatePropagation();
|
|
78
|
+
replacePlaceholder();
|
|
79
|
+
return;
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
swapDelay.current = setTimeout(
|
|
83
|
+
replacePlaceholder,
|
|
84
|
+
// we delay the swap for hover/focus to prevent unwanted effects
|
|
85
|
+
// (e.g. event hickup after replacing elements when it is not really necessary)
|
|
86
|
+
swapDelayTime
|
|
87
|
+
);
|
|
88
|
+
};
|
|
89
|
+
|
|
51
90
|
React.useEffect(() => {
|
|
91
|
+
interactionKind.current = otherPopoverProps.interactionKind ?? InteractionKind.CLICK;
|
|
92
|
+
const waitForClick =
|
|
93
|
+
interactionKind.current === InteractionKind.CLICK ||
|
|
94
|
+
interactionKind.current === InteractionKind.CLICK_TARGET_ONLY;
|
|
95
|
+
const removeEvents = () => {
|
|
96
|
+
if (placeholderRef.current) {
|
|
97
|
+
placeholderRef.current.removeEventListener("click", swap);
|
|
98
|
+
placeholderRef.current.removeEventListener("mouseenter", swap);
|
|
99
|
+
placeholderRef.current.removeEventListener("focusin", swap);
|
|
100
|
+
}
|
|
101
|
+
return;
|
|
102
|
+
};
|
|
52
103
|
if (placeholderRef.current) {
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
}
|
|
57
|
-
|
|
58
|
-
|
|
104
|
+
removeEvents(); // remove events in case of interaction kind changed during existence
|
|
105
|
+
if (waitForClick) {
|
|
106
|
+
placeholderRef.current.addEventListener("click", swap);
|
|
107
|
+
} else {
|
|
108
|
+
placeholderRef.current.addEventListener("mouseenter", swap);
|
|
109
|
+
placeholderRef.current.addEventListener("focusin", swap);
|
|
110
|
+
}
|
|
59
111
|
return () => {
|
|
60
|
-
|
|
61
|
-
(placeholderRef.current as HTMLElement).removeEventListener("mouseenter", swap);
|
|
62
|
-
(placeholderRef.current as HTMLElement).removeEventListener("focusin", swap);
|
|
63
|
-
}
|
|
112
|
+
removeEvents();
|
|
64
113
|
};
|
|
65
114
|
}
|
|
66
115
|
return () => {};
|
|
67
|
-
}, [!!placeholderRef.current]);
|
|
116
|
+
}, [!!placeholderRef.current, otherPopoverProps.interactionKind]);
|
|
68
117
|
|
|
69
118
|
const refocus = React.useCallback((node) => {
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
119
|
+
const target = node?.targetRef.current.children[0];
|
|
120
|
+
if (!eventMemory.current || !target) {
|
|
121
|
+
return;
|
|
122
|
+
}
|
|
123
|
+
switch (eventMemory.current) {
|
|
124
|
+
case "focusin":
|
|
73
125
|
target.focus();
|
|
74
|
-
|
|
126
|
+
break;
|
|
127
|
+
case "click":
|
|
128
|
+
target.click();
|
|
129
|
+
break;
|
|
130
|
+
case "mouseenter":
|
|
131
|
+
// re-check if the cursor is still over the element after swapping the placeholder before triggering the event to bubble up
|
|
132
|
+
(target as HTMLElement).addEventListener(
|
|
133
|
+
"mouseover",
|
|
134
|
+
() => (target as HTMLElement).dispatchEvent(new MouseEvent("mouseover", { bubbles: true })),
|
|
135
|
+
{
|
|
136
|
+
capture: true,
|
|
137
|
+
once: true,
|
|
138
|
+
}
|
|
139
|
+
);
|
|
140
|
+
break;
|
|
75
141
|
}
|
|
76
142
|
}, []);
|
|
77
143
|
|
|
@@ -87,7 +153,7 @@ export const ContextOverlay = ({
|
|
|
87
153
|
PlaceholderElement,
|
|
88
154
|
{
|
|
89
155
|
...otherPopoverProps?.targetProps,
|
|
90
|
-
className: `${BlueprintClasses.POPOVER_TARGET} ${targetClassName}`,
|
|
156
|
+
className: `${BlueprintClasses.POPOVER_TARGET} ${targetClassName} ${eccgui}-contextoverlay__wrapper--placeholder`,
|
|
91
157
|
ref: placeholderRef,
|
|
92
158
|
},
|
|
93
159
|
React.cloneElement(childTarget, {
|
|
@@ -110,6 +176,18 @@ export const ContextOverlay = ({
|
|
|
110
176
|
) : (
|
|
111
177
|
<BlueprintPopover
|
|
112
178
|
placement="bottom"
|
|
179
|
+
content={content ? (
|
|
180
|
+
paddingSize ? (
|
|
181
|
+
<WhiteSpaceContainer
|
|
182
|
+
paddingTop={paddingSize}
|
|
183
|
+
paddingRight={paddingSize}
|
|
184
|
+
paddingBottom={paddingSize}
|
|
185
|
+
paddingLeft={paddingSize}
|
|
186
|
+
>
|
|
187
|
+
{content}
|
|
188
|
+
</WhiteSpaceContainer>
|
|
189
|
+
) : content
|
|
190
|
+
) : undefined}
|
|
113
191
|
{...otherPopoverProps}
|
|
114
192
|
className={targetClassName}
|
|
115
193
|
portalClassName={portalClassNameFinal.trim() ?? undefined}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import { fireEvent, render, screen } from "@testing-library/react";
|
|
3
|
+
|
|
4
|
+
import "@testing-library/jest-dom";
|
|
5
|
+
|
|
6
|
+
import { CLASSPREFIX as eccgui } from "../../../configuration/constants";
|
|
7
|
+
|
|
8
|
+
import ContextMenu from "./../ContextMenu";
|
|
9
|
+
import { Default as ContextMenuStory } from "./../ContextMenu.stories";
|
|
10
|
+
|
|
11
|
+
const overlayWrapper = `${eccgui}-contextoverlay`;
|
|
12
|
+
const placeholderClass = `${overlayWrapper}__wrapper--placeholder`;
|
|
13
|
+
|
|
14
|
+
const checkForPlaceholderClass = (container: HTMLElement, tobe: number) => {
|
|
15
|
+
expect(container.getElementsByClassName(placeholderClass).length).toBe(tobe);
|
|
16
|
+
};
|
|
17
|
+
|
|
18
|
+
describe("ContextMenu", () => {
|
|
19
|
+
it("should render placeholder automatically", () => {
|
|
20
|
+
const { container } = render(<ContextMenu {...ContextMenuStory.args} />);
|
|
21
|
+
checkForPlaceholderClass(container, 1);
|
|
22
|
+
});
|
|
23
|
+
it("should not render placeholder when `preventPlaceholder===true`", () => {
|
|
24
|
+
const { container } = render(<ContextMenu {...ContextMenuStory.args} preventPlaceholder={true} />);
|
|
25
|
+
checkForPlaceholderClass(container, 0);
|
|
26
|
+
});
|
|
27
|
+
it("should render placeholder when `preventPlaceholder===false`", () => {
|
|
28
|
+
const { container } = render(<ContextMenu {...ContextMenuStory.args} preventPlaceholder={false} />);
|
|
29
|
+
checkForPlaceholderClass(container, 1);
|
|
30
|
+
});
|
|
31
|
+
it("if no placeholder is used the menu should be displayed on click", async () => {
|
|
32
|
+
const { container } = render(<ContextMenu {...ContextMenuStory.args} preventPlaceholder={true} />);
|
|
33
|
+
checkForPlaceholderClass(container, 0);
|
|
34
|
+
fireEvent.click(container.getElementsByClassName(overlayWrapper)[0]);
|
|
35
|
+
expect(await screen.findByText("First option")).toBeVisible();
|
|
36
|
+
});
|
|
37
|
+
it("if placeholder is used the menu should be displayed on click", async () => {
|
|
38
|
+
const { container } = render(<ContextMenu {...ContextMenuStory.args} preventPlaceholder={false} />);
|
|
39
|
+
checkForPlaceholderClass(container, 1);
|
|
40
|
+
fireEvent.click(container.getElementsByClassName(overlayWrapper)[0]);
|
|
41
|
+
expect(await screen.findByText("First option")).toBeVisible();
|
|
42
|
+
});
|
|
43
|
+
});
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import { PopoverInteractionKind } from "@blueprintjs/core";
|
|
3
|
+
import { fireEvent, render, screen, waitFor } from "@testing-library/react";
|
|
4
|
+
|
|
5
|
+
import "@testing-library/jest-dom";
|
|
6
|
+
|
|
7
|
+
import { CLASSPREFIX as eccgui } from "../../../configuration/constants";
|
|
8
|
+
|
|
9
|
+
import ContextOverlay from "./../ContextOverlay";
|
|
10
|
+
import { Default as ContextOverlayStory } from "./../ContextOverlay.stories";
|
|
11
|
+
|
|
12
|
+
const overlayWrapper = `${eccgui}-contextoverlay`;
|
|
13
|
+
const placeholderClass = `${overlayWrapper}__wrapper--placeholder`;
|
|
14
|
+
|
|
15
|
+
const checkForPlaceholderClass = (container: HTMLElement, tobe: number) => {
|
|
16
|
+
expect(container.getElementsByClassName(placeholderClass).length).toBe(tobe);
|
|
17
|
+
};
|
|
18
|
+
|
|
19
|
+
describe("ContextOverlay", () => {
|
|
20
|
+
it("should not render placeholder automatically", () => {
|
|
21
|
+
const { container } = render(<ContextOverlay {...ContextOverlayStory.args} />);
|
|
22
|
+
checkForPlaceholderClass(container, 0);
|
|
23
|
+
});
|
|
24
|
+
it("should render placeholder when `usePlaceholder===true`", () => {
|
|
25
|
+
const { container } = render(<ContextOverlay {...ContextOverlayStory.args} usePlaceholder={true} />);
|
|
26
|
+
checkForPlaceholderClass(container, 1);
|
|
27
|
+
});
|
|
28
|
+
it("should render no placeholder when `usePlaceholder===false`", () => {
|
|
29
|
+
const { container } = render(<ContextOverlay {...ContextOverlayStory.args} usePlaceholder={false} />);
|
|
30
|
+
checkForPlaceholderClass(container, 0);
|
|
31
|
+
});
|
|
32
|
+
it("if no placeholder is used the overlay should be displayed on click", async () => {
|
|
33
|
+
const { container } = render(<ContextOverlay {...ContextOverlayStory.args} usePlaceholder={false} />);
|
|
34
|
+
fireEvent.click(container.getElementsByClassName(overlayWrapper)[0]);
|
|
35
|
+
expect(await screen.findByText("Overlay:")).toBeVisible();
|
|
36
|
+
});
|
|
37
|
+
it("if no placeholder is used the overlay should be displayed on hover (hover interactionKind)", async () => {
|
|
38
|
+
const { container } = render(
|
|
39
|
+
<ContextOverlay
|
|
40
|
+
{...ContextOverlayStory.args}
|
|
41
|
+
usePlaceholder={false}
|
|
42
|
+
interactionKind={PopoverInteractionKind.HOVER}
|
|
43
|
+
/>
|
|
44
|
+
);
|
|
45
|
+
fireEvent.mouseEnter(container.getElementsByClassName(overlayWrapper)[0]);
|
|
46
|
+
expect(await screen.findByText("Overlay:")).toBeVisible();
|
|
47
|
+
});
|
|
48
|
+
it("if placeholder is used the overlay should be displayed on click", async () => {
|
|
49
|
+
const { container } = render(<ContextOverlay {...ContextOverlayStory.args} usePlaceholder={true} />);
|
|
50
|
+
fireEvent.click(container.getElementsByClassName(overlayWrapper)[0]);
|
|
51
|
+
expect(await screen.findByText("Overlay:")).toBeVisible();
|
|
52
|
+
});
|
|
53
|
+
it("if placeholder is used the overlay should be displayed on hover (hover interactionKind)", async () => {
|
|
54
|
+
const { container } = render(
|
|
55
|
+
<ContextOverlay
|
|
56
|
+
{...ContextOverlayStory.args}
|
|
57
|
+
usePlaceholder={true}
|
|
58
|
+
interactionKind={PopoverInteractionKind.HOVER}
|
|
59
|
+
/>
|
|
60
|
+
);
|
|
61
|
+
checkForPlaceholderClass(container, 1);
|
|
62
|
+
fireEvent.mouseEnter(container.getElementsByClassName(overlayWrapper)[0]);
|
|
63
|
+
await waitFor(async () => {
|
|
64
|
+
expect(screen.queryByDisplayValue("Overlay:")).toBeNull();
|
|
65
|
+
checkForPlaceholderClass(container, 0);
|
|
66
|
+
// we need to emulate another mouseover to simulate real user behaviour
|
|
67
|
+
fireEvent.mouseOver(container.getElementsByClassName(overlayWrapper)[0]);
|
|
68
|
+
expect(await screen.findByText("Overlay:")).toBeVisible();
|
|
69
|
+
});
|
|
70
|
+
});
|
|
71
|
+
});
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import { Meta, StoryFn } from "@storybook/react";
|
|
3
|
+
|
|
4
|
+
import { DecoupledOverlay, DecoupledOverlayProps, Tag, WhiteSpaceContainer } from "../../../index";
|
|
5
|
+
|
|
6
|
+
export default {
|
|
7
|
+
title: "Components/DecoupledOverlay",
|
|
8
|
+
component: DecoupledOverlay,
|
|
9
|
+
argTypes: {},
|
|
10
|
+
} as Meta<typeof DecoupledOverlay>;
|
|
11
|
+
|
|
12
|
+
const Template: StoryFn<typeof DecoupledOverlay> = (args: DecoupledOverlayProps) => {
|
|
13
|
+
return (
|
|
14
|
+
<>
|
|
15
|
+
<Tag id={"decoupledTarget"}>Decoupled target</Tag>
|
|
16
|
+
<DecoupledOverlay {...args} />
|
|
17
|
+
</>
|
|
18
|
+
);
|
|
19
|
+
};
|
|
20
|
+
|
|
21
|
+
export const Default = Template.bind({});
|
|
22
|
+
|
|
23
|
+
Default.args = {
|
|
24
|
+
children: (
|
|
25
|
+
<WhiteSpaceContainer marginTop={"small"} marginRight={"small"} marginBottom={"small"} marginLeft={"small"}>
|
|
26
|
+
Decoupled overlay
|
|
27
|
+
</WhiteSpaceContainer>
|
|
28
|
+
),
|
|
29
|
+
targetSelectorOrElement: "#decoupledTarget",
|
|
30
|
+
};
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import { createPortal } from "react-dom";
|
|
3
|
+
import { Classes as BlueprintClasses } from "@blueprintjs/core";
|
|
4
|
+
import { createPopper } from "@popperjs/core";
|
|
5
|
+
|
|
6
|
+
import { CLASSPREFIX as eccgui, ContextOverlayProps, TestableComponent, TooltipSize, WhiteSpaceContainer } from "../../index";
|
|
7
|
+
|
|
8
|
+
export interface DecoupledOverlayProps
|
|
9
|
+
extends React.HTMLAttributes<HTMLDivElement>,
|
|
10
|
+
TestableComponent,
|
|
11
|
+
Pick<ContextOverlayProps, "usePortal" | "portalContainer" | "placement" | "minimal" | "paddingSize"> {
|
|
12
|
+
/**
|
|
13
|
+
* Element that should be used. The step content is displayed as a tooltip instead of a modal.
|
|
14
|
+
* In case of an array, the first match is highlighted. */
|
|
15
|
+
targetSelectorOrElement: string | Element;
|
|
16
|
+
/**
|
|
17
|
+
* The size of the overlay.
|
|
18
|
+
* */
|
|
19
|
+
size?: TooltipSize;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
/**
|
|
23
|
+
* Use an overlay popover without the necessity to use a target that need to be rendered in place.
|
|
24
|
+
* The target is referenced by a selector string or element object.
|
|
25
|
+
* It can exist somewhere in the DOM, but it must exist when the overlay is rendered.
|
|
26
|
+
* It is always displayed, close it by removement.
|
|
27
|
+
*/
|
|
28
|
+
export const DecoupledOverlay = ({
|
|
29
|
+
targetSelectorOrElement,
|
|
30
|
+
usePortal = true,
|
|
31
|
+
portalContainer = document.body,
|
|
32
|
+
minimal = false,
|
|
33
|
+
placement = "auto",
|
|
34
|
+
size = "large",
|
|
35
|
+
paddingSize,
|
|
36
|
+
children,
|
|
37
|
+
}: DecoupledOverlayProps) => {
|
|
38
|
+
const overlayRef = React.useCallback(
|
|
39
|
+
(overlay: HTMLDivElement | null) => {
|
|
40
|
+
const target =
|
|
41
|
+
typeof targetSelectorOrElement === "string"
|
|
42
|
+
? document.querySelector(targetSelectorOrElement)
|
|
43
|
+
: targetSelectorOrElement;
|
|
44
|
+
if (overlay && target) {
|
|
45
|
+
createPopper(target, overlay, {
|
|
46
|
+
placement: placement,
|
|
47
|
+
modifiers: [
|
|
48
|
+
{
|
|
49
|
+
name: "offset",
|
|
50
|
+
options: {
|
|
51
|
+
offset: [0, 15],
|
|
52
|
+
},
|
|
53
|
+
},
|
|
54
|
+
],
|
|
55
|
+
});
|
|
56
|
+
}
|
|
57
|
+
},
|
|
58
|
+
[targetSelectorOrElement]
|
|
59
|
+
);
|
|
60
|
+
|
|
61
|
+
const overlay = (
|
|
62
|
+
<div
|
|
63
|
+
className={
|
|
64
|
+
`${eccgui}-decoupled-overlay` +
|
|
65
|
+
` ${eccgui}-decoupled-overlay--${size}` +
|
|
66
|
+
` ${BlueprintClasses.POPOVER}` +
|
|
67
|
+
(minimal ? ` ${BlueprintClasses.MINIMAL}` : "")
|
|
68
|
+
}
|
|
69
|
+
role="tooltip"
|
|
70
|
+
ref={overlayRef}
|
|
71
|
+
>
|
|
72
|
+
{!minimal && (
|
|
73
|
+
<div
|
|
74
|
+
className={`${eccgui}-decoupled-overlay__arrow ${BlueprintClasses.POPOVER_ARROW}`}
|
|
75
|
+
data-popper-arrow
|
|
76
|
+
aria-hidden
|
|
77
|
+
/>
|
|
78
|
+
)}
|
|
79
|
+
<div className={`${BlueprintClasses.POPOVER_CONTENT} ${eccgui}-decoupled-overlay__content`}>
|
|
80
|
+
{paddingSize ? (
|
|
81
|
+
<WhiteSpaceContainer
|
|
82
|
+
paddingTop={paddingSize}
|
|
83
|
+
paddingRight={paddingSize}
|
|
84
|
+
paddingBottom={paddingSize}
|
|
85
|
+
paddingLeft={paddingSize}
|
|
86
|
+
>
|
|
87
|
+
{children}
|
|
88
|
+
</WhiteSpaceContainer>
|
|
89
|
+
) : children}
|
|
90
|
+
</div>
|
|
91
|
+
</div>
|
|
92
|
+
);
|
|
93
|
+
|
|
94
|
+
return usePortal ? createPortal(overlay, portalContainer) : overlay;
|
|
95
|
+
};
|
|
96
|
+
|
|
97
|
+
export default DecoupledOverlay;
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
.#{$eccgui}-decoupled-overlay__arrow {
|
|
2
|
+
&::before {
|
|
3
|
+
background: $card-background-color;
|
|
4
|
+
}
|
|
5
|
+
|
|
6
|
+
.#{$eccgui}-decoupled-overlay[data-popper-placement="top"] & {
|
|
7
|
+
bottom: -0.5 * $eccgui-size-block-whitespace;
|
|
8
|
+
}
|
|
9
|
+
.#{$eccgui}-decoupled-overlay[data-popper-placement="right"] & {
|
|
10
|
+
left: -0.5 * $eccgui-size-block-whitespace;
|
|
11
|
+
}
|
|
12
|
+
.#{$eccgui}-decoupled-overlay[data-popper-placement="bottom"] & {
|
|
13
|
+
top: -0.5 * $eccgui-size-block-whitespace;
|
|
14
|
+
}
|
|
15
|
+
.#{$eccgui}-decoupled-overlay[data-popper-placement="left"] & {
|
|
16
|
+
right: -0.5 * $eccgui-size-block-whitespace;
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
.#{$eccgui}-decoupled-overlay {
|
|
21
|
+
&.#{$prefix-blueprintjs}-popover {
|
|
22
|
+
z-index: 8001;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
&--small {
|
|
26
|
+
@extend .#{$eccgui}-tooltip--small;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
&--medium {
|
|
30
|
+
@extend .#{$eccgui}-tooltip--medium;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
&--large {
|
|
34
|
+
@extend .#{$eccgui}-tooltip--large;
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
&:has(.#{$eccgui}-decoupled-overlay__arrow) {
|
|
38
|
+
.#{$eccgui}-decoupled-overlay__content {
|
|
39
|
+
min-height: 30px; // height of blueprint arrow
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
.#{$eccgui}-decoupled-overlay__content {
|
|
45
|
+
padding: 0.1px; // force margins of children to stay inside
|
|
46
|
+
}
|
|
@@ -5,11 +5,13 @@ import {
|
|
|
5
5
|
Overlay2Props as BlueprintOverlayProps,
|
|
6
6
|
} from "@blueprintjs/core";
|
|
7
7
|
|
|
8
|
+
import { preventReactFlowActionsClasses } from "../../cmem";
|
|
8
9
|
import { utils } from "../../common";
|
|
9
10
|
import { CLASSPREFIX as eccgui } from "../../configuration/constants";
|
|
10
11
|
import { TestableComponent } from "../interfaces";
|
|
11
12
|
|
|
12
13
|
import { Card } from "./../Card";
|
|
14
|
+
import { ModalContext } from "./ModalContext";
|
|
13
15
|
|
|
14
16
|
export interface ModalProps extends TestableComponent, BlueprintOverlayProps {
|
|
15
17
|
children: React.ReactNode | React.ReactNode[];
|
|
@@ -20,7 +22,7 @@ export interface ModalProps extends TestableComponent, BlueprintOverlayProps {
|
|
|
20
22
|
/**
|
|
21
23
|
* Size of the modal.
|
|
22
24
|
*/
|
|
23
|
-
size?:
|
|
25
|
+
size?: ModalSize;
|
|
24
26
|
/**
|
|
25
27
|
* Prevents that a backdrop area is displayed behind the modal elements.
|
|
26
28
|
*/
|
|
@@ -42,8 +44,18 @@ export interface ModalProps extends TestableComponent, BlueprintOverlayProps {
|
|
|
42
44
|
* If this option is used inflationary then this could harm the visibility of other overlays.
|
|
43
45
|
*/
|
|
44
46
|
forceTopPosition?: boolean;
|
|
47
|
+
/**
|
|
48
|
+
* Modal ID that should be globally unique. If a ModalContext is provided this can be used to track opening/closing of this modal.
|
|
49
|
+
*/
|
|
50
|
+
modalId?: string;
|
|
51
|
+
/**
|
|
52
|
+
* Prevents that pan and zooming actions of an existing react-flow instance are triggered while this Modal is open.
|
|
53
|
+
*/
|
|
54
|
+
preventReactFlowEvents?: boolean;
|
|
45
55
|
}
|
|
46
56
|
|
|
57
|
+
export type ModalSize = "tiny" | "small" | "regular" | "large" | "xlarge" | "fullscreen";
|
|
58
|
+
|
|
47
59
|
/**
|
|
48
60
|
* Displays contents on top of other elements, used to create dialogs.
|
|
49
61
|
* For most situations the usage of `SimpleDialog` and `AlertDialog` should be sufficient.
|
|
@@ -65,8 +77,24 @@ export const Modal = ({
|
|
|
65
77
|
onOpening,
|
|
66
78
|
"data-test-id": dataTestId,
|
|
67
79
|
"data-testid": dataTestid,
|
|
80
|
+
modalId,
|
|
81
|
+
preventReactFlowEvents = true,
|
|
68
82
|
...otherProps
|
|
69
83
|
}: ModalProps) => {
|
|
84
|
+
const modalContext = React.useContext(ModalContext)
|
|
85
|
+
const uniqueModalId = React.useRef<string>(modalId ?? Date.now().toString(36) + Math.random().toString(36).substring(2))
|
|
86
|
+
|
|
87
|
+
React.useEffect(() => {
|
|
88
|
+
return () => {
|
|
89
|
+
// Make sure to always remove flag when modal is removed
|
|
90
|
+
modalContext.setModalOpen(uniqueModalId.current, false)
|
|
91
|
+
}
|
|
92
|
+
}, [])
|
|
93
|
+
|
|
94
|
+
React.useEffect(() => {
|
|
95
|
+
modalContext.setModalOpen(uniqueModalId.current, otherProps.isOpen)
|
|
96
|
+
}, [otherProps.isOpen])
|
|
97
|
+
|
|
70
98
|
const backdropProps: React.HTMLProps<HTMLDivElement> | undefined =
|
|
71
99
|
!canOutsideClickClose && canEscapeKeyClose
|
|
72
100
|
? {
|
|
@@ -114,7 +142,7 @@ export const Modal = ({
|
|
|
114
142
|
<BlueprintOverlay
|
|
115
143
|
{...otherProps}
|
|
116
144
|
backdropProps={backdropProps}
|
|
117
|
-
className={overlayClassName}
|
|
145
|
+
className={`${overlayClassName} ${preventReactFlowEvents ? preventReactFlowActionsClasses : ""}`}
|
|
118
146
|
backdropClassName={`${eccgui}-dialog__backdrop`}
|
|
119
147
|
canOutsideClickClose={canOutsideClickClose}
|
|
120
148
|
canEscapeKeyClose={canEscapeKeyClose}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
|
|
3
|
+
export interface ModalContextProps {
|
|
4
|
+
/** Set that a specific modal is currently being open (or closed) */
|
|
5
|
+
setModalOpen: (modalId: string, isOpen: boolean) => void;
|
|
6
|
+
|
|
7
|
+
/** The currently opened modals ordered by when they have been opened. Oldest coming first. */
|
|
8
|
+
openModalStack(): string[] | undefined;
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
/** Can be provided in the application to react to modal related changes. */
|
|
12
|
+
export const ModalContext = React.createContext<ModalContextProps>({
|
|
13
|
+
setModalOpen: () => {},
|
|
14
|
+
openModalStack: () => [],
|
|
15
|
+
});
|
|
16
|
+
|
|
17
|
+
/** Default implementation for modal context props.
|
|
18
|
+
* Tracks open modals in a stack representation.
|
|
19
|
+
**/
|
|
20
|
+
export const useModalContext = (): ModalContextProps => {
|
|
21
|
+
// A stack of modal IDs. These should reflect a stacked opening of modals on top of each other.
|
|
22
|
+
const currentOpenModalStack = React.useRef<string[]>([]);
|
|
23
|
+
|
|
24
|
+
const setOpenModalStack = ((stackUpdateFunction: (old: string[]) => string[]) => {
|
|
25
|
+
currentOpenModalStack.current = stackUpdateFunction([...currentOpenModalStack.current])
|
|
26
|
+
})
|
|
27
|
+
|
|
28
|
+
const setModalOpen = React.useCallback((modalId: string, isOpen: boolean) => {
|
|
29
|
+
setOpenModalStack(old => {
|
|
30
|
+
if (isOpen) {
|
|
31
|
+
return [...old, modalId];
|
|
32
|
+
} else {
|
|
33
|
+
const idx = old.findIndex((id) => modalId === id);
|
|
34
|
+
switch (idx) {
|
|
35
|
+
case -1:
|
|
36
|
+
// Trying to close modal that has not been registered as open!
|
|
37
|
+
return old;
|
|
38
|
+
case old.length - 1:
|
|
39
|
+
return old.slice(0, idx);
|
|
40
|
+
default:
|
|
41
|
+
// Modal in between is closed. Consider all modals after it also as closed.
|
|
42
|
+
return old.slice(0, idx);
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
});
|
|
46
|
+
}, []);
|
|
47
|
+
|
|
48
|
+
const openModalStack = React.useCallback(() => {
|
|
49
|
+
return currentOpenModalStack.current.length ? [...currentOpenModalStack.current] : undefined
|
|
50
|
+
}, [])
|
|
51
|
+
|
|
52
|
+
return {
|
|
53
|
+
openModalStack,
|
|
54
|
+
setModalOpen,
|
|
55
|
+
};
|
|
56
|
+
};
|
|
@@ -136,7 +136,8 @@ export const modalPreventEvents = {
|
|
|
136
136
|
onDrag: (event: BaseSyntheticEvent) => event.stopPropagation(),
|
|
137
137
|
onDragStart: (event: BaseSyntheticEvent) => event.stopPropagation(),
|
|
138
138
|
onDragEnd: (event: BaseSyntheticEvent) => event.stopPropagation(),
|
|
139
|
-
|
|
139
|
+
// The following prevents some drop-downs to not close anymore when clicking outside of them
|
|
140
|
+
// onMouseDown: (event: BaseSyntheticEvent) => event.stopPropagation(),
|
|
140
141
|
onMouseUp: (event: BaseSyntheticEvent) => event.stopPropagation(),
|
|
141
142
|
onClick: (event: BaseSyntheticEvent) => event.stopPropagation(),
|
|
142
143
|
};
|
|
@@ -11,7 +11,10 @@ $eccgui-size-modal-large-width: math.div(9, 16) * 100vw !default;
|
|
|
11
11
|
$eccgui-size-modal-large-height: math.div(6, 9) * 100vh !default;
|
|
12
12
|
$eccgui-size-modal-xlarge-width: math.div(12, 16) * 100vw !default;
|
|
13
13
|
$eccgui-size-modal-xlarge-height: math.div(7, 9) * 100vh !default;
|
|
14
|
-
$eccgui-color-modal-backdrop:
|
|
14
|
+
$eccgui-color-modal-backdrop: eccgui-color-rgba(
|
|
15
|
+
eccgui-color-var("identity", "background", "900"),
|
|
16
|
+
$eccgui-opacity-muted
|
|
17
|
+
) !default;
|
|
15
18
|
|
|
16
19
|
@import "~@blueprintjs/core/src/components/dialog/dialog";
|
|
17
20
|
|
|
@@ -15,15 +15,18 @@ export default {
|
|
|
15
15
|
control: false,
|
|
16
16
|
},
|
|
17
17
|
},
|
|
18
|
+
decorators: [
|
|
19
|
+
(Story) => (
|
|
20
|
+
<OverlaysProvider>
|
|
21
|
+
<div style={{ height: "400px" }}>
|
|
22
|
+
<Story />
|
|
23
|
+
</div>
|
|
24
|
+
</OverlaysProvider>
|
|
25
|
+
),
|
|
26
|
+
],
|
|
18
27
|
} as Meta<typeof Modal>;
|
|
19
28
|
|
|
20
|
-
const Template: StoryFn<typeof Modal> = (args) =>
|
|
21
|
-
<OverlaysProvider>
|
|
22
|
-
<div style={{ height: "400px" }}>
|
|
23
|
-
<Modal {...args} />
|
|
24
|
-
</div>
|
|
25
|
-
</OverlaysProvider>
|
|
26
|
-
);
|
|
29
|
+
const Template: StoryFn<typeof Modal> = (args) => <Modal {...args} />;
|
|
27
30
|
|
|
28
31
|
export const Default = Template.bind({});
|
|
29
32
|
Default.args = {
|