@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.
Files changed (763) hide show
  1. package/CHANGELOG.md +223 -3
  2. package/README.md +63 -16
  3. package/dist/cjs/cmem/ActivityControl/ActivityControlWidget.js +17 -13
  4. package/dist/cjs/cmem/ActivityControl/ActivityControlWidget.js.map +1 -1
  5. package/dist/cjs/cmem/ActivityControl/SilkActivityControl.js +1 -3
  6. package/dist/cjs/cmem/ActivityControl/SilkActivityControl.js.map +1 -1
  7. package/dist/cjs/cmem/ContentBlobToggler/ContentBlobToggler.js +1 -0
  8. package/dist/cjs/cmem/ContentBlobToggler/ContentBlobToggler.js.map +1 -1
  9. package/dist/cjs/cmem/ContentBlobToggler/StringPreviewContentBlobToggler.js +34 -11
  10. package/dist/cjs/cmem/ContentBlobToggler/StringPreviewContentBlobToggler.js.map +1 -1
  11. package/dist/cjs/cmem/markdown/Markdown.js +1 -2
  12. package/dist/cjs/cmem/markdown/Markdown.js.map +1 -1
  13. package/dist/cjs/cmem/react-flow/ReactFlow/ReactFlow.js +67 -13
  14. package/dist/cjs/cmem/react-flow/ReactFlow/ReactFlow.js.map +1 -1
  15. package/dist/cjs/cmem/react-flow/ReactFlow/ReactFlowV12.js +45 -0
  16. package/dist/cjs/cmem/react-flow/ReactFlow/ReactFlowV12.js.map +1 -0
  17. package/dist/cjs/cmem/react-flow/ReactFlow/ReactFlowV9.js +30 -0
  18. package/dist/cjs/cmem/react-flow/ReactFlow/ReactFlowV9.js.map +1 -0
  19. package/dist/cjs/cmem/react-flow/StickyNoteModal/StickyNoteModal.js +2 -2
  20. package/dist/cjs/cmem/react-flow/StickyNoteModal/StickyNoteModal.js.map +1 -1
  21. package/dist/cjs/cmem/react-flow/configuration/graph.js +12 -10
  22. package/dist/cjs/cmem/react-flow/configuration/graph.js.map +1 -1
  23. package/dist/cjs/cmem/react-flow/configuration/linking.js +2 -0
  24. package/dist/cjs/cmem/react-flow/configuration/linking.js.map +1 -1
  25. package/dist/cjs/cmem/react-flow/configuration/unspecified.js +2 -1
  26. package/dist/cjs/cmem/react-flow/configuration/unspecified.js.map +1 -1
  27. package/dist/cjs/cmem/react-flow/configuration/workflow.js +2 -0
  28. package/dist/cjs/cmem/react-flow/configuration/workflow.js.map +1 -1
  29. package/dist/cjs/cmem/react-flow/extensions/scrollOnDragHook.js +9 -3
  30. package/dist/cjs/cmem/react-flow/extensions/scrollOnDragHook.js.map +1 -1
  31. package/dist/cjs/cmem/react-flow/index.js +5 -1
  32. package/dist/cjs/cmem/react-flow/index.js.map +1 -1
  33. package/dist/cjs/common/Intent/index.js +1 -1
  34. package/dist/cjs/common/Intent/index.js.map +1 -1
  35. package/dist/cjs/common/index.js +10 -0
  36. package/dist/cjs/common/index.js.map +1 -1
  37. package/dist/cjs/common/utils/CssCustomProperties.js +9 -3
  38. package/dist/cjs/common/utils/CssCustomProperties.js.map +1 -1
  39. package/dist/cjs/common/utils/colorCalculateDistance.js +27 -0
  40. package/dist/cjs/common/utils/colorCalculateDistance.js.map +1 -0
  41. package/dist/cjs/common/utils/colorHash.js +157 -0
  42. package/dist/cjs/common/utils/colorHash.js.map +1 -0
  43. package/dist/cjs/common/utils/getColorConfiguration.js +37 -4
  44. package/dist/cjs/common/utils/getColorConfiguration.js.map +1 -1
  45. package/dist/cjs/common/utils/reduceToText.js +94 -0
  46. package/dist/cjs/common/utils/reduceToText.js.map +1 -0
  47. package/dist/cjs/components/Application/ApplicationViewability.js +33 -0
  48. package/dist/cjs/components/Application/ApplicationViewability.js.map +1 -0
  49. package/dist/cjs/components/Application/index.js +1 -0
  50. package/dist/cjs/components/Application/index.js.map +1 -1
  51. package/dist/cjs/components/AutoSuggestion/AutoSuggestion.js +14 -11
  52. package/dist/cjs/components/AutoSuggestion/AutoSuggestion.js.map +1 -1
  53. package/dist/cjs/components/AutoSuggestion/AutoSuggestionList.js +4 -1
  54. package/dist/cjs/components/AutoSuggestion/AutoSuggestionList.js.map +1 -1
  55. package/dist/cjs/components/AutoSuggestion/ExtendedCodeEditor.js +1 -3
  56. package/dist/cjs/components/AutoSuggestion/ExtendedCodeEditor.js.map +1 -1
  57. package/dist/cjs/components/AutocompleteField/AutoCompleteField.js +18 -7
  58. package/dist/cjs/components/AutocompleteField/AutoCompleteField.js.map +1 -1
  59. package/dist/cjs/components/AutocompleteField/autoCompleteFieldUtils.js.map +1 -1
  60. package/dist/cjs/components/Button/Button.js +11 -26
  61. package/dist/cjs/components/Button/Button.js.map +1 -1
  62. package/dist/cjs/components/Chat/ChatArea.js +55 -0
  63. package/dist/cjs/components/Chat/ChatArea.js.map +1 -0
  64. package/dist/cjs/components/Chat/ChatContent.js +55 -0
  65. package/dist/cjs/components/Chat/ChatContent.js.map +1 -0
  66. package/dist/cjs/components/Chat/ChatContentCollapsed.js +24 -0
  67. package/dist/cjs/components/Chat/ChatContentCollapsed.js.map +1 -0
  68. package/dist/cjs/components/Chat/ChatField.js +53 -0
  69. package/dist/cjs/components/Chat/ChatField.js.map +1 -0
  70. package/dist/cjs/components/{AutocompleteField → Chat}/index.js +4 -7
  71. package/dist/cjs/components/Chat/index.js.map +1 -0
  72. package/dist/cjs/components/CodeAutocompleteField/index.js +6 -1
  73. package/dist/cjs/components/CodeAutocompleteField/index.js.map +1 -1
  74. package/dist/cjs/components/ContentGroup/ContentGroup.js +1 -1
  75. package/dist/cjs/components/ContentGroup/ContentGroup.js.map +1 -1
  76. package/dist/cjs/components/ContextOverlay/ContextMenu.js +2 -2
  77. package/dist/cjs/components/ContextOverlay/ContextMenu.js.map +1 -1
  78. package/dist/cjs/components/ContextOverlay/ContextOverlay.js +69 -22
  79. package/dist/cjs/components/ContextOverlay/ContextOverlay.js.map +1 -1
  80. package/dist/cjs/components/DecoupledOverlay/DecoupledOverlay.js +47 -0
  81. package/dist/cjs/components/DecoupledOverlay/DecoupledOverlay.js.map +1 -0
  82. package/dist/cjs/components/Dialog/Modal.js +15 -2
  83. package/dist/cjs/components/Dialog/Modal.js.map +1 -1
  84. package/dist/cjs/components/Dialog/ModalContext.js +51 -0
  85. package/dist/cjs/components/Dialog/ModalContext.js.map +1 -0
  86. package/dist/cjs/components/Dialog/SimpleDialog.js +2 -1
  87. package/dist/cjs/components/Dialog/SimpleDialog.js.map +1 -1
  88. package/dist/cjs/components/Dialog/index.js +1 -0
  89. package/dist/cjs/components/Dialog/index.js.map +1 -1
  90. package/dist/cjs/components/Form/FieldItem.js +2 -19
  91. package/dist/cjs/components/Form/FieldItem.js.map +1 -1
  92. package/dist/cjs/components/Form/FieldSet.js +2 -20
  93. package/dist/cjs/components/Form/FieldSet.js.map +1 -1
  94. package/dist/cjs/components/Icon/BaseIcon.js +2 -2
  95. package/dist/cjs/components/Icon/BaseIcon.js.map +1 -1
  96. package/dist/cjs/components/Icon/IconButton.js.map +1 -1
  97. package/dist/cjs/components/Icon/canonicalIconNames.js +31 -2
  98. package/dist/cjs/components/Icon/canonicalIconNames.js.map +1 -1
  99. package/dist/cjs/components/Icon/transformIcon.js +14 -0
  100. package/dist/cjs/components/Icon/transformIcon.js.map +1 -0
  101. package/dist/cjs/components/MultiSelect/MultiSelect.js +16 -28
  102. package/dist/cjs/components/MultiSelect/MultiSelect.js.map +1 -1
  103. package/dist/cjs/components/MultiSuggestField/index.js +18 -0
  104. package/dist/cjs/components/MultiSuggestField/index.js.map +1 -0
  105. package/dist/cjs/components/Notification/Notification.js +3 -23
  106. package/dist/cjs/components/Notification/Notification.js.map +1 -1
  107. package/dist/cjs/components/OverviewItem/OverviewItemList.js +1 -2
  108. package/dist/cjs/components/OverviewItem/OverviewItemList.js.map +1 -1
  109. package/dist/cjs/components/RadioButton/RadioButton.js +5 -2
  110. package/dist/cjs/components/RadioButton/RadioButton.js.map +1 -1
  111. package/dist/cjs/components/Spinner/Spinner.js +18 -11
  112. package/dist/cjs/components/Spinner/Spinner.js.map +1 -1
  113. package/dist/cjs/components/SuggestField/index.js +5 -2
  114. package/dist/cjs/components/SuggestField/index.js.map +1 -1
  115. package/dist/cjs/components/Table/Table.js.map +1 -1
  116. package/dist/cjs/components/Table/TableContainer.js.map +1 -1
  117. package/dist/cjs/components/Tabs/Tab.js +3 -2
  118. package/dist/cjs/components/Tabs/Tab.js.map +1 -1
  119. package/dist/cjs/components/TextField/SearchField.js.map +1 -1
  120. package/dist/cjs/components/TextField/TextArea.js +2 -2
  121. package/dist/cjs/components/TextField/TextArea.js.map +1 -1
  122. package/dist/cjs/components/TextReducer/TextReducer.js +37 -0
  123. package/dist/cjs/components/TextReducer/TextReducer.js.map +1 -0
  124. package/dist/cjs/components/Tooltip/Tooltip.js +3 -1
  125. package/dist/cjs/components/Tooltip/Tooltip.js.map +1 -1
  126. package/dist/cjs/{legacy-replacements/Button/DisruptiveButton.js → components/Typography/InlineText.js} +12 -8
  127. package/dist/cjs/components/Typography/InlineText.js.map +1 -0
  128. package/dist/cjs/components/Typography/OverflowText.js.map +1 -1
  129. package/dist/cjs/components/Typography/index.js +1 -0
  130. package/dist/cjs/components/Typography/index.js.map +1 -1
  131. package/dist/cjs/components/VisualTour/VisualTour.js +192 -0
  132. package/dist/cjs/components/VisualTour/VisualTour.js.map +1 -0
  133. package/dist/cjs/components/index.js +8 -7
  134. package/dist/cjs/components/index.js.map +1 -1
  135. package/dist/cjs/configuration/constants.js +3 -1
  136. package/dist/cjs/configuration/constants.js.map +1 -1
  137. package/dist/cjs/extensions/codemirror/CodeMirror.js +17 -6
  138. package/dist/cjs/extensions/codemirror/CodeMirror.js.map +1 -1
  139. package/dist/cjs/extensions/codemirror/hooks/useCodemirrorModeExtension.hooks.js +3 -0
  140. package/dist/cjs/extensions/codemirror/hooks/useCodemirrorModeExtension.hooks.js.map +1 -1
  141. package/dist/cjs/extensions/codemirror/tests/codemirrorTestHelper.js +2 -2
  142. package/dist/cjs/extensions/codemirror/tests/codemirrorTestHelper.js.map +1 -1
  143. package/dist/cjs/extensions/react-flow/edges/EdgeBezier.js +50 -0
  144. package/dist/cjs/extensions/react-flow/edges/EdgeBezier.js.map +1 -0
  145. package/dist/cjs/extensions/react-flow/edges/EdgeDefault.js +21 -3
  146. package/dist/cjs/extensions/react-flow/edges/EdgeDefault.js.map +1 -1
  147. package/dist/cjs/extensions/react-flow/edges/EdgeDefaultV12.js +46 -22
  148. package/dist/cjs/extensions/react-flow/edges/EdgeDefaultV12.js.map +1 -1
  149. package/dist/cjs/extensions/react-flow/edges/EdgeDefs.js +3 -0
  150. package/dist/cjs/extensions/react-flow/edges/EdgeDefs.js.map +1 -1
  151. package/dist/cjs/extensions/react-flow/edges/EdgeLabel.js +1 -1
  152. package/dist/cjs/extensions/react-flow/edges/EdgeLabel.js.map +1 -1
  153. package/dist/cjs/extensions/react-flow/edges/EdgeNew.js +41 -0
  154. package/dist/cjs/extensions/react-flow/edges/EdgeNew.js.map +1 -0
  155. package/dist/cjs/extensions/react-flow/edges/EdgeStep.js +19 -2
  156. package/dist/cjs/extensions/react-flow/edges/EdgeStep.js.map +1 -1
  157. package/dist/cjs/extensions/react-flow/edges/EdgeStraight.js +6 -0
  158. package/dist/cjs/extensions/react-flow/edges/EdgeStraight.js.map +1 -0
  159. package/dist/cjs/extensions/react-flow/edges/utils.js +12 -1
  160. package/dist/cjs/extensions/react-flow/edges/utils.js.map +1 -1
  161. package/dist/cjs/extensions/react-flow/handles/HandleDefault.js +15 -16
  162. package/dist/cjs/extensions/react-flow/handles/HandleDefault.js.map +1 -1
  163. package/dist/cjs/extensions/react-flow/index.js +6 -6
  164. package/dist/cjs/extensions/react-flow/index.js.map +1 -1
  165. package/dist/cjs/extensions/react-flow/markers/MarkerArrowClosedInverse.js +3 -0
  166. package/dist/cjs/extensions/react-flow/markers/MarkerArrowClosedInverse.js.map +1 -1
  167. package/dist/cjs/extensions/react-flow/markers/ReactFlowMarkers.js +17 -2
  168. package/dist/cjs/extensions/react-flow/markers/ReactFlowMarkers.js.map +1 -1
  169. package/dist/cjs/extensions/react-flow/minimap/MiniMap.js +21 -2
  170. package/dist/cjs/extensions/react-flow/minimap/MiniMap.js.map +1 -1
  171. package/dist/cjs/extensions/react-flow/minimap/MiniMapV12.js +51 -0
  172. package/dist/cjs/extensions/react-flow/minimap/MiniMapV12.js.map +1 -0
  173. package/dist/cjs/extensions/react-flow/nodes/NodeContent.js +57 -54
  174. package/dist/cjs/extensions/react-flow/nodes/NodeContent.js.map +1 -1
  175. package/dist/cjs/extensions/react-flow/nodes/NodeDefault.js +2 -2
  176. package/dist/cjs/extensions/react-flow/nodes/NodeDefault.js.map +1 -1
  177. package/dist/cjs/extensions/react-flow/nodes/nodeUtils.js +2 -1
  178. package/dist/cjs/extensions/react-flow/nodes/nodeUtils.js.map +1 -1
  179. package/dist/cjs/extensions/react-flow/versionsupport.js +13 -11
  180. package/dist/cjs/extensions/react-flow/versionsupport.js.map +1 -1
  181. package/dist/cjs/index.js +1 -3
  182. package/dist/cjs/index.js.map +1 -1
  183. package/dist/esm/cmem/ActivityControl/ActivityControlWidget.js +19 -14
  184. package/dist/esm/cmem/ActivityControl/ActivityControlWidget.js.map +1 -1
  185. package/dist/esm/cmem/ActivityControl/SilkActivityControl.js +1 -3
  186. package/dist/esm/cmem/ActivityControl/SilkActivityControl.js.map +1 -1
  187. package/dist/esm/cmem/ContentBlobToggler/ContentBlobToggler.js +1 -0
  188. package/dist/esm/cmem/ContentBlobToggler/ContentBlobToggler.js.map +1 -1
  189. package/dist/esm/cmem/ContentBlobToggler/StringPreviewContentBlobToggler.js +32 -9
  190. package/dist/esm/cmem/ContentBlobToggler/StringPreviewContentBlobToggler.js.map +1 -1
  191. package/dist/esm/cmem/markdown/Markdown.js +1 -2
  192. package/dist/esm/cmem/markdown/Markdown.js.map +1 -1
  193. package/dist/esm/cmem/react-flow/ReactFlow/ReactFlow.js +67 -13
  194. package/dist/esm/cmem/react-flow/ReactFlow/ReactFlow.js.map +1 -1
  195. package/dist/esm/cmem/react-flow/ReactFlow/ReactFlowV12.js +66 -0
  196. package/dist/esm/cmem/react-flow/ReactFlow/ReactFlowV12.js.map +1 -0
  197. package/dist/esm/{legacy-replacements/Button/AffirmativeButton.js → cmem/react-flow/ReactFlow/ReactFlowV9.js} +12 -7
  198. package/dist/esm/cmem/react-flow/ReactFlow/ReactFlowV9.js.map +1 -0
  199. package/dist/esm/cmem/react-flow/StickyNoteModal/StickyNoteModal.js +3 -3
  200. package/dist/esm/cmem/react-flow/StickyNoteModal/StickyNoteModal.js.map +1 -1
  201. package/dist/esm/cmem/react-flow/configuration/graph.js +12 -10
  202. package/dist/esm/cmem/react-flow/configuration/graph.js.map +1 -1
  203. package/dist/esm/cmem/react-flow/configuration/linking.js +2 -0
  204. package/dist/esm/cmem/react-flow/configuration/linking.js.map +1 -1
  205. package/dist/esm/cmem/react-flow/configuration/unspecified.js +2 -1
  206. package/dist/esm/cmem/react-flow/configuration/unspecified.js.map +1 -1
  207. package/dist/esm/cmem/react-flow/configuration/workflow.js +2 -0
  208. package/dist/esm/cmem/react-flow/configuration/workflow.js.map +1 -1
  209. package/dist/esm/cmem/react-flow/extensions/scrollOnDragHook.js +7 -1
  210. package/dist/esm/cmem/react-flow/extensions/scrollOnDragHook.js.map +1 -1
  211. package/dist/esm/cmem/react-flow/index.js +2 -1
  212. package/dist/esm/cmem/react-flow/index.js.map +1 -1
  213. package/dist/esm/common/Intent/index.js +1 -1
  214. package/dist/esm/common/Intent/index.js.map +1 -1
  215. package/dist/esm/common/index.js +10 -0
  216. package/dist/esm/common/index.js.map +1 -1
  217. package/dist/esm/common/utils/CssCustomProperties.js +9 -3
  218. package/dist/esm/common/utils/CssCustomProperties.js.map +1 -1
  219. package/dist/esm/common/utils/colorCalculateDistance.js +21 -0
  220. package/dist/esm/common/utils/colorCalculateDistance.js.map +1 -0
  221. package/dist/esm/common/utils/colorHash.js +153 -0
  222. package/dist/esm/common/utils/colorHash.js.map +1 -0
  223. package/dist/esm/common/utils/getColorConfiguration.js +37 -4
  224. package/dist/esm/common/utils/getColorConfiguration.js.map +1 -1
  225. package/dist/esm/common/utils/reduceToText.js +75 -0
  226. package/dist/esm/common/utils/reduceToText.js.map +1 -0
  227. package/dist/esm/components/Application/ApplicationViewability.js +28 -0
  228. package/dist/esm/components/Application/ApplicationViewability.js.map +1 -0
  229. package/dist/esm/components/Application/index.js +1 -0
  230. package/dist/esm/components/Application/index.js.map +1 -1
  231. package/dist/esm/components/AutoSuggestion/AutoSuggestion.js +14 -12
  232. package/dist/esm/components/AutoSuggestion/AutoSuggestion.js.map +1 -1
  233. package/dist/esm/components/AutoSuggestion/AutoSuggestionList.js +4 -1
  234. package/dist/esm/components/AutoSuggestion/AutoSuggestionList.js.map +1 -1
  235. package/dist/esm/components/AutoSuggestion/ExtendedCodeEditor.js +1 -3
  236. package/dist/esm/components/AutoSuggestion/ExtendedCodeEditor.js.map +1 -1
  237. package/dist/esm/components/AutocompleteField/AutoCompleteField.js +17 -7
  238. package/dist/esm/components/AutocompleteField/AutoCompleteField.js.map +1 -1
  239. package/dist/esm/components/AutocompleteField/autoCompleteFieldUtils.js.map +1 -1
  240. package/dist/esm/components/Button/Button.js +11 -26
  241. package/dist/esm/components/Button/Button.js.map +1 -1
  242. package/dist/esm/components/Chat/ChatArea.js +59 -0
  243. package/dist/esm/components/Chat/ChatArea.js.map +1 -0
  244. package/dist/esm/components/Chat/ChatContent.js +59 -0
  245. package/dist/esm/components/Chat/ChatContent.js.map +1 -0
  246. package/dist/esm/components/Chat/ChatContentCollapsed.js +45 -0
  247. package/dist/esm/components/Chat/ChatContentCollapsed.js.map +1 -0
  248. package/dist/esm/components/Chat/ChatField.js +57 -0
  249. package/dist/esm/components/Chat/ChatField.js.map +1 -0
  250. package/dist/esm/components/Chat/index.js +5 -0
  251. package/dist/esm/components/Chat/index.js.map +1 -0
  252. package/dist/esm/components/CodeAutocompleteField/index.js +4 -1
  253. package/dist/esm/components/CodeAutocompleteField/index.js.map +1 -1
  254. package/dist/esm/components/ContentGroup/ContentGroup.js +1 -1
  255. package/dist/esm/components/ContentGroup/ContentGroup.js.map +1 -1
  256. package/dist/esm/components/ContextOverlay/ContextMenu.js +2 -2
  257. package/dist/esm/components/ContextOverlay/ContextMenu.js.map +1 -1
  258. package/dist/esm/components/ContextOverlay/ContextOverlay.js +70 -23
  259. package/dist/esm/components/ContextOverlay/ContextOverlay.js.map +1 -1
  260. package/dist/esm/components/DecoupledOverlay/DecoupledOverlay.js +41 -0
  261. package/dist/esm/components/DecoupledOverlay/DecoupledOverlay.js.map +1 -0
  262. package/dist/esm/components/Dialog/Modal.js +15 -2
  263. package/dist/esm/components/Dialog/Modal.js.map +1 -1
  264. package/dist/esm/components/Dialog/ModalContext.js +69 -0
  265. package/dist/esm/components/Dialog/ModalContext.js.map +1 -0
  266. package/dist/esm/components/Dialog/SimpleDialog.js +2 -1
  267. package/dist/esm/components/Dialog/SimpleDialog.js.map +1 -1
  268. package/dist/esm/components/Dialog/index.js +1 -0
  269. package/dist/esm/components/Dialog/index.js.map +1 -1
  270. package/dist/esm/components/Form/FieldItem.js +2 -19
  271. package/dist/esm/components/Form/FieldItem.js.map +1 -1
  272. package/dist/esm/components/Form/FieldSet.js +2 -20
  273. package/dist/esm/components/Form/FieldSet.js.map +1 -1
  274. package/dist/esm/components/Icon/BaseIcon.js +2 -2
  275. package/dist/esm/components/Icon/BaseIcon.js.map +1 -1
  276. package/dist/esm/components/Icon/IconButton.js.map +1 -1
  277. package/dist/esm/components/Icon/canonicalIconNames.js +31 -2
  278. package/dist/esm/components/Icon/canonicalIconNames.js.map +1 -1
  279. package/dist/esm/components/Icon/transformIcon.js +21 -0
  280. package/dist/esm/components/Icon/transformIcon.js.map +1 -0
  281. package/dist/esm/components/MultiSelect/MultiSelect.js +16 -29
  282. package/dist/esm/components/MultiSelect/MultiSelect.js.map +1 -1
  283. package/dist/esm/components/MultiSuggestField/index.js +2 -0
  284. package/dist/esm/components/MultiSuggestField/index.js.map +1 -0
  285. package/dist/esm/components/Notification/Notification.js +3 -23
  286. package/dist/esm/components/Notification/Notification.js.map +1 -1
  287. package/dist/esm/components/OverviewItem/OverviewItemList.js +1 -2
  288. package/dist/esm/components/OverviewItem/OverviewItemList.js.map +1 -1
  289. package/dist/esm/components/RadioButton/RadioButton.js +6 -2
  290. package/dist/esm/components/RadioButton/RadioButton.js.map +1 -1
  291. package/dist/esm/components/Spinner/Spinner.js +16 -14
  292. package/dist/esm/components/Spinner/Spinner.js.map +1 -1
  293. package/dist/esm/components/SuggestField/index.js +4 -1
  294. package/dist/esm/components/SuggestField/index.js.map +1 -1
  295. package/dist/esm/components/Table/Table.js.map +1 -1
  296. package/dist/esm/components/Table/TableContainer.js.map +1 -1
  297. package/dist/esm/components/Tabs/Tab.js +3 -2
  298. package/dist/esm/components/Tabs/Tab.js.map +1 -1
  299. package/dist/esm/components/TextField/SearchField.js.map +1 -1
  300. package/dist/esm/components/TextField/TextArea.js +2 -2
  301. package/dist/esm/components/TextField/TextArea.js.map +1 -1
  302. package/dist/esm/components/TextReducer/TextReducer.js +41 -0
  303. package/dist/esm/components/TextReducer/TextReducer.js.map +1 -0
  304. package/dist/esm/components/Tooltip/Tooltip.js +3 -1
  305. package/dist/esm/components/Tooltip/Tooltip.js.map +1 -1
  306. package/dist/esm/{legacy-replacements/Button/DisruptiveButton.js → components/Typography/InlineText.js} +10 -7
  307. package/dist/esm/components/Typography/InlineText.js.map +1 -0
  308. package/dist/esm/components/Typography/OverflowText.js.map +1 -1
  309. package/dist/esm/components/Typography/index.js +1 -0
  310. package/dist/esm/components/Typography/index.js.map +1 -1
  311. package/dist/esm/components/VisualTour/VisualTour.js +205 -0
  312. package/dist/esm/components/VisualTour/VisualTour.js.map +1 -0
  313. package/dist/esm/components/index.js +8 -7
  314. package/dist/esm/components/index.js.map +1 -1
  315. package/dist/esm/configuration/constants.js +2 -0
  316. package/dist/esm/configuration/constants.js.map +1 -1
  317. package/dist/esm/extensions/codemirror/CodeMirror.js +19 -8
  318. package/dist/esm/extensions/codemirror/CodeMirror.js.map +1 -1
  319. package/dist/esm/extensions/codemirror/hooks/useCodemirrorModeExtension.hooks.js +3 -0
  320. package/dist/esm/extensions/codemirror/hooks/useCodemirrorModeExtension.hooks.js.map +1 -1
  321. package/dist/esm/extensions/codemirror/tests/codemirrorTestHelper.js +3 -3
  322. package/dist/esm/extensions/codemirror/tests/codemirrorTestHelper.js.map +1 -1
  323. package/dist/esm/extensions/react-flow/edges/EdgeBezier.js +35 -0
  324. package/dist/esm/extensions/react-flow/edges/EdgeBezier.js.map +1 -0
  325. package/dist/esm/extensions/react-flow/edges/EdgeDefault.js +21 -3
  326. package/dist/esm/extensions/react-flow/edges/EdgeDefault.js.map +1 -1
  327. package/dist/esm/extensions/react-flow/edges/EdgeDefaultV12.js +24 -20
  328. package/dist/esm/extensions/react-flow/edges/EdgeDefaultV12.js.map +1 -1
  329. package/dist/esm/extensions/react-flow/edges/EdgeDefs.js +3 -0
  330. package/dist/esm/extensions/react-flow/edges/EdgeDefs.js.map +1 -1
  331. package/dist/esm/extensions/react-flow/edges/EdgeLabel.js +1 -1
  332. package/dist/esm/extensions/react-flow/edges/EdgeLabel.js.map +1 -1
  333. package/dist/esm/extensions/react-flow/edges/EdgeNew.js +45 -0
  334. package/dist/esm/extensions/react-flow/edges/EdgeNew.js.map +1 -0
  335. package/dist/esm/extensions/react-flow/edges/EdgeStep.js +19 -2
  336. package/dist/esm/extensions/react-flow/edges/EdgeStep.js.map +1 -1
  337. package/dist/esm/extensions/react-flow/edges/EdgeStraight.js +2 -0
  338. package/dist/esm/extensions/react-flow/edges/EdgeStraight.js.map +1 -0
  339. package/dist/esm/extensions/react-flow/edges/utils.js +27 -1
  340. package/dist/esm/extensions/react-flow/edges/utils.js.map +1 -1
  341. package/dist/esm/extensions/react-flow/handles/HandleDefault.js +17 -18
  342. package/dist/esm/extensions/react-flow/handles/HandleDefault.js.map +1 -1
  343. package/dist/esm/extensions/react-flow/index.js +6 -3
  344. package/dist/esm/extensions/react-flow/index.js.map +1 -1
  345. package/dist/esm/extensions/react-flow/markers/MarkerArrowClosedInverse.js +3 -0
  346. package/dist/esm/extensions/react-flow/markers/MarkerArrowClosedInverse.js.map +1 -1
  347. package/dist/esm/extensions/react-flow/markers/ReactFlowMarkers.js +17 -2
  348. package/dist/esm/extensions/react-flow/markers/ReactFlowMarkers.js.map +1 -1
  349. package/dist/esm/extensions/react-flow/minimap/MiniMap.js +22 -3
  350. package/dist/esm/extensions/react-flow/minimap/MiniMap.js.map +1 -1
  351. package/dist/esm/extensions/react-flow/minimap/MiniMapV12.js +36 -0
  352. package/dist/esm/extensions/react-flow/minimap/MiniMapV12.js.map +1 -0
  353. package/dist/esm/extensions/react-flow/nodes/NodeContent.js +84 -81
  354. package/dist/esm/extensions/react-flow/nodes/NodeContent.js.map +1 -1
  355. package/dist/esm/extensions/react-flow/nodes/NodeDefault.js +1 -1
  356. package/dist/esm/extensions/react-flow/nodes/NodeDefault.js.map +1 -1
  357. package/dist/esm/extensions/react-flow/nodes/nodeUtils.js +2 -1
  358. package/dist/esm/extensions/react-flow/nodes/nodeUtils.js.map +1 -1
  359. package/dist/esm/extensions/react-flow/versionsupport.js +15 -13
  360. package/dist/esm/extensions/react-flow/versionsupport.js.map +1 -1
  361. package/dist/esm/index.js +1 -2
  362. package/dist/esm/index.js.map +1 -1
  363. package/dist/types/cmem/ActivityControl/ActivityControlWidget.d.ts +9 -0
  364. package/dist/types/cmem/ContentBlobToggler/StringPreviewContentBlobToggler.d.ts +26 -10
  365. package/dist/types/cmem/markdown/Markdown.d.ts +1 -8
  366. package/dist/types/cmem/react-flow/ReactFlow/ReactFlow.d.ts +38 -6
  367. package/dist/types/cmem/react-flow/ReactFlow/ReactFlowV12.d.ts +7 -0
  368. package/dist/types/cmem/react-flow/ReactFlow/ReactFlowV9.d.ts +7 -0
  369. package/dist/types/cmem/react-flow/StickyNoteModal/StickyNoteModal.d.ts +1 -1
  370. package/dist/types/cmem/react-flow/configuration/graph.d.ts +9 -9
  371. package/dist/types/cmem/react-flow/configuration/linking.d.ts +6 -6
  372. package/dist/types/cmem/react-flow/configuration/unspecified.d.ts +3 -3
  373. package/dist/types/cmem/react-flow/configuration/workflow.d.ts +4 -4
  374. package/dist/types/cmem/react-flow/extensions/scrollOnDragHook.d.ts +19 -16
  375. package/dist/types/cmem/react-flow/index.d.ts +2 -1
  376. package/dist/types/common/index.d.ts +9 -1
  377. package/dist/types/common/utils/CssCustomProperties.d.ts +6 -6
  378. package/dist/types/common/utils/colorCalculateDistance.d.ts +12 -0
  379. package/dist/types/common/utils/colorHash.d.ts +30 -0
  380. package/dist/types/common/utils/getColorConfiguration.d.ts +1 -1
  381. package/dist/types/common/utils/reduceToText.d.ts +10 -0
  382. package/dist/types/components/Application/ApplicationViewability.d.ts +36 -0
  383. package/dist/types/components/Application/index.d.ts +1 -0
  384. package/dist/types/components/AutoSuggestion/AutoSuggestion.d.ts +7 -17
  385. package/dist/types/components/AutoSuggestion/AutoSuggestionList.d.ts +4 -4
  386. package/dist/types/components/AutoSuggestion/ExtendedCodeEditor.d.ts +0 -1
  387. package/dist/types/components/AutocompleteField/AutoCompleteField.d.ts +18 -10
  388. package/dist/types/components/AutocompleteField/autoCompleteFieldUtils.d.ts +2 -2
  389. package/dist/types/components/AutocompleteField/interfaces.d.ts +2 -4
  390. package/dist/types/components/Button/Button.d.ts +13 -26
  391. package/dist/types/components/Chat/ChatArea.d.ts +34 -0
  392. package/dist/types/components/Chat/ChatContent.d.ts +49 -0
  393. package/dist/types/components/Chat/ChatContentCollapsed.d.ts +28 -0
  394. package/dist/types/components/Chat/ChatField.d.ts +20 -0
  395. package/dist/types/components/Chat/index.d.ts +4 -0
  396. package/dist/types/components/CodeAutocompleteField/index.d.ts +5 -1
  397. package/dist/types/components/ContextOverlay/ContextMenu.d.ts +1 -1
  398. package/dist/types/components/ContextOverlay/ContextOverlay.d.ts +7 -1
  399. package/dist/types/components/DecoupledOverlay/DecoupledOverlay.d.ts +20 -0
  400. package/dist/types/components/Dialog/Modal.d.ts +11 -2
  401. package/dist/types/components/Dialog/ModalContext.d.ts +13 -0
  402. package/dist/types/components/Dialog/SimpleDialog.d.ts +0 -1
  403. package/dist/types/components/Dialog/index.d.ts +1 -0
  404. package/dist/types/components/Form/FieldItem.d.ts +1 -25
  405. package/dist/types/components/Form/FieldSet.d.ts +1 -21
  406. package/dist/types/components/Icon/BaseIcon.d.ts +1 -10
  407. package/dist/types/components/Icon/IconButton.d.ts +2 -1
  408. package/dist/types/components/Icon/canonicalIconNames.d.ts +28 -0
  409. package/dist/types/components/Icon/transformIcon.d.ts +2 -0
  410. package/dist/types/components/MultiSelect/MultiSelect.d.ts +18 -34
  411. package/dist/types/components/MultiSuggestField/index.d.ts +1 -0
  412. package/dist/types/components/Notification/Notification.d.ts +1 -24
  413. package/dist/types/components/OverviewItem/OverviewItemList.d.ts +1 -6
  414. package/dist/types/components/RadioButton/RadioButton.d.ts +8 -2
  415. package/dist/types/components/Spinner/Spinner.d.ts +16 -14
  416. package/dist/types/components/Structure/TitleSubsection.d.ts +1 -1
  417. package/dist/types/components/SuggestField/index.d.ts +6 -2
  418. package/dist/types/components/Table/Table.d.ts +1 -1
  419. package/dist/types/components/Table/TableContainer.d.ts +2 -2
  420. package/dist/types/components/Tabs/Tab.d.ts +4 -4
  421. package/dist/types/components/TextField/SearchField.d.ts +1 -1
  422. package/dist/types/components/TextReducer/TextReducer.d.ts +40 -0
  423. package/dist/types/components/Tooltip/Tooltip.d.ts +2 -1
  424. package/dist/types/components/Typography/InlineText.d.ts +13 -0
  425. package/dist/types/components/Typography/OverflowText.d.ts +0 -5
  426. package/dist/types/components/Typography/index.d.ts +1 -0
  427. package/dist/types/components/VisualTour/VisualTour.d.ts +39 -0
  428. package/dist/types/components/index.d.ts +8 -7
  429. package/dist/types/configuration/constants.d.ts +2 -0
  430. package/dist/types/extensions/codemirror/CodeMirror.d.ts +9 -6
  431. package/dist/types/extensions/codemirror/hooks/useCodemirrorModeExtension.hooks.d.ts +2 -0
  432. package/dist/types/extensions/codemirror/tests/codemirrorTestHelper.d.ts +1 -1
  433. package/dist/types/extensions/react-flow/edges/EdgeBezier.d.ts +20 -0
  434. package/dist/types/extensions/react-flow/edges/EdgeDefault.d.ts +29 -7
  435. package/dist/types/extensions/react-flow/edges/EdgeDefaultV12.d.ts +16 -27
  436. package/dist/types/extensions/react-flow/edges/EdgeDefs.d.ts +3 -0
  437. package/dist/types/extensions/react-flow/edges/EdgeLabel.d.ts +1 -1
  438. package/dist/types/extensions/react-flow/edges/EdgeNew.d.ts +3 -0
  439. package/dist/types/extensions/react-flow/edges/EdgeStep.d.ts +23 -5
  440. package/dist/types/extensions/react-flow/edges/EdgeStraight.d.ts +1 -0
  441. package/dist/types/extensions/react-flow/edges/utils.d.ts +2 -0
  442. package/dist/types/extensions/react-flow/handles/HandleDefault.d.ts +12 -6
  443. package/dist/types/extensions/react-flow/index.d.ts +6 -2
  444. package/dist/types/extensions/react-flow/markers/MarkerArrowClosedInverse.d.ts +3 -0
  445. package/dist/types/extensions/react-flow/markers/ReactFlowMarkers.d.ts +21 -2
  446. package/dist/types/extensions/react-flow/minimap/MiniMap.d.ts +18 -7
  447. package/dist/types/extensions/react-flow/minimap/MiniMapV12.d.ts +10 -0
  448. package/dist/types/extensions/react-flow/nodes/NodeContent.d.ts +15 -12
  449. package/dist/types/extensions/react-flow/nodes/NodeDefault.d.ts +7 -3
  450. package/dist/types/extensions/react-flow/nodes/nodeUtils.d.ts +12 -5
  451. package/dist/types/extensions/react-flow/versionsupport.d.ts +8 -4
  452. package/dist/types/index.d.ts +1 -2
  453. package/package.json +57 -56
  454. package/src/_shame.scss +1 -1
  455. package/src/cmem/ActivityControl/ActivityControlWidget.tsx +68 -35
  456. package/src/cmem/ActivityControl/SilkActivityControl.tsx +1 -1
  457. package/src/cmem/ContentBlobToggler/ContentBlobToggler.tsx +1 -1
  458. package/src/cmem/ContentBlobToggler/StringPreviewContentBlobToggler.tsx +65 -17
  459. package/src/cmem/ContentBlobToggler/stories/StringPreviewContentBlobToggler.stories.tsx +27 -0
  460. package/src/cmem/ContentBlobToggler/tests/StringPreviewContentBlobToggler.test.tsx +98 -0
  461. package/src/cmem/markdown/Markdown.stories.tsx +0 -1
  462. package/src/cmem/markdown/Markdown.tsx +4 -13
  463. package/src/cmem/react-flow/ReactFlow/ReactFlow.stories.tsx +472 -366
  464. package/src/cmem/react-flow/ReactFlow/ReactFlow.tsx +176 -72
  465. package/src/cmem/react-flow/ReactFlow/ReactFlowV12.tsx +57 -0
  466. package/src/cmem/react-flow/ReactFlow/ReactFlowV9.tsx +29 -0
  467. package/src/cmem/react-flow/StickyNoteModal/StickyNoteModal.tsx +1 -2
  468. package/src/cmem/react-flow/_canvas.scss +1 -1
  469. package/src/cmem/react-flow/_edges.scss +13 -13
  470. package/src/cmem/react-flow/_handles.scss +18 -18
  471. package/src/cmem/react-flow/_minimap.scss +29 -19
  472. package/src/cmem/react-flow/configuration/_colors-graph.scss +19 -36
  473. package/src/cmem/react-flow/configuration/_colors-linking.scss +14 -26
  474. package/src/cmem/react-flow/configuration/_colors-workflow.scss +15 -27
  475. package/src/cmem/react-flow/configuration/graph.ts +13 -11
  476. package/src/cmem/react-flow/configuration/linking.ts +3 -1
  477. package/src/cmem/react-flow/configuration/unspecified.ts +2 -1
  478. package/src/cmem/react-flow/configuration/workflow.ts +3 -1
  479. package/src/cmem/react-flow/extensions/scrollOnDragHook.ts +19 -21
  480. package/src/cmem/react-flow/index.ts +2 -1
  481. package/src/cmem/react-flow/nodes/_colors.scss +20 -20
  482. package/src/common/Intent/index.ts +2 -1
  483. package/src/common/index.ts +12 -0
  484. package/src/common/scss/_color-functions.scss +144 -0
  485. package/src/common/utils/CssCustomProperties.ts +22 -15
  486. package/src/common/utils/colorCalculateDistance.ts +28 -0
  487. package/src/common/utils/colorHash.ts +213 -0
  488. package/src/common/utils/getColorConfiguration.ts +45 -7
  489. package/src/common/utils/reduceToText.tsx +82 -0
  490. package/src/components/Accordion/accordion.scss +6 -5
  491. package/src/components/Application/ApplicationViewability.tsx +61 -0
  492. package/src/components/Application/_colors.scss +30 -0
  493. package/src/components/Application/_content.scss +7 -0
  494. package/src/components/Application/_header.scss +19 -10
  495. package/src/components/Application/_toolbar.scss +5 -5
  496. package/src/components/Application/_viewability.scss +13 -0
  497. package/src/components/Application/application.scss +2 -0
  498. package/src/components/Application/index.ts +1 -0
  499. package/src/components/Application/stories/Application.stories.tsx +2 -2
  500. package/src/components/Application/stories/ApplicationViewability.stories.tsx +37 -0
  501. package/src/components/Application/stories/ColorPalettes.stories.tsx +885 -0
  502. package/src/components/Application/tests/ApplicationViewability.test.tsx +43 -0
  503. package/src/components/AutoSuggestion/AutoSuggestion.tsx +16 -32
  504. package/src/components/AutoSuggestion/AutoSuggestionList.tsx +13 -6
  505. package/src/components/AutoSuggestion/ExtendedCodeEditor.tsx +1 -7
  506. package/src/components/AutoSuggestion/tests/ExtendedCodeEditor.test.tsx +1 -1
  507. package/src/components/AutocompleteField/AutoCompleteField.tsx +21 -13
  508. package/src/components/AutocompleteField/autoCompleteFieldUtils.tsx +2 -2
  509. package/src/components/AutocompleteField/interfaces.ts +1 -5
  510. package/src/components/Button/Button.stories.tsx +7 -5
  511. package/src/components/Button/Button.tsx +23 -63
  512. package/src/components/Button/button.scss +94 -32
  513. package/src/components/Card/card.scss +19 -13
  514. package/src/components/Chat/ChatArea.tsx +114 -0
  515. package/src/components/Chat/ChatContent.tsx +132 -0
  516. package/src/components/Chat/ChatContentCollapsed.tsx +64 -0
  517. package/src/components/Chat/ChatField.tsx +75 -0
  518. package/src/components/Chat/_chat.scss +86 -0
  519. package/src/components/Chat/index.ts +4 -0
  520. package/src/components/Chat/stories/ChatArea.stories.tsx +61 -0
  521. package/src/components/Chat/stories/ChatContent.stories.tsx +61 -0
  522. package/src/components/Chat/stories/ChatContentCollapsed.stories.tsx +24 -0
  523. package/src/components/Chat/stories/ChatField.stories.tsx +23 -0
  524. package/src/components/Checkbox/checkbox.scss +14 -2
  525. package/src/components/CodeAutocompleteField/index.ts +8 -1
  526. package/src/components/ColorField/ColorField.stories.tsx +69 -0
  527. package/src/components/ColorField/ColorField.tsx +200 -0
  528. package/src/components/ColorField/_colorfield.scss +56 -0
  529. package/src/components/ContentGroup/ContentGroup.tsx +1 -1
  530. package/src/components/ContentGroup/_contentgroup.scss +17 -2
  531. package/src/components/ContextOverlay/ContextMenu.tsx +4 -1
  532. package/src/components/ContextOverlay/ContextOverlay.tsx +97 -19
  533. package/src/components/ContextOverlay/tests/ContextMenu.test.tsx +43 -0
  534. package/src/components/ContextOverlay/tests/ContextOverlay.test.tsx +71 -0
  535. package/src/components/DecoupledOverlay/DecoupledOverlay.stories.tsx +30 -0
  536. package/src/components/DecoupledOverlay/DecoupledOverlay.tsx +97 -0
  537. package/src/components/DecoupledOverlay/_decoupledoverlay.scss +46 -0
  538. package/src/components/Depiction/depiction.scss +6 -0
  539. package/src/components/Dialog/Modal.tsx +30 -2
  540. package/src/components/Dialog/ModalContext.tsx +56 -0
  541. package/src/components/Dialog/SimpleDialog.tsx +2 -1
  542. package/src/components/Dialog/dialog.scss +4 -1
  543. package/src/components/Dialog/index.ts +1 -0
  544. package/src/components/Dialog/stories/Modal.stories.tsx +10 -7
  545. package/src/components/Dialog/stories/ModalContext.stories.tsx +153 -0
  546. package/src/components/FlexibleLayout/flexiblelayout.scss +16 -0
  547. package/src/components/Form/FieldItem.tsx +2 -57
  548. package/src/components/Form/FieldSet.tsx +1 -45
  549. package/src/components/Form/form.scss +2 -2
  550. package/src/components/Grid/grid.scss +17 -0
  551. package/src/components/Grid/stories/Grid.stories.tsx +10 -7
  552. package/src/components/Grid/stories/GridRow.stories.tsx +13 -7
  553. package/src/components/Icon/BaseIcon.tsx +0 -14
  554. package/src/components/Icon/IconButton.tsx +2 -1
  555. package/src/components/Icon/canonicalIconNames.tsx +31 -2
  556. package/src/components/Icon/icon.scss +6 -0
  557. package/src/components/Icon/stories/Icon.stories.tsx +65 -5
  558. package/src/components/Icon/stories/IconButton.stories.tsx +2 -1
  559. package/src/components/Icon/transformIcon.tsx +17 -0
  560. package/src/components/Label/label.scss +1 -1
  561. package/src/components/Link/Link.stories.tsx +30 -0
  562. package/src/components/Link/link.scss +29 -3
  563. package/src/components/Menu/menu.scss +4 -27
  564. package/src/components/MultiSelect/MultiSelect.tsx +36 -64
  565. package/src/components/MultiSuggestField/MultiSuggestField.stories.tsx +1 -1
  566. package/src/components/MultiSuggestField/index.ts +1 -0
  567. package/src/components/Notification/Notification.stories.tsx +24 -10
  568. package/src/components/Notification/Notification.tsx +3 -51
  569. package/src/components/Notification/notification.scss +17 -6
  570. package/src/components/OverviewItem/OverviewItemList.tsx +0 -7
  571. package/src/components/OverviewItem/overviewitem.scss +15 -9
  572. package/src/components/OverviewItem/stories/OverviewItem.stories.tsx +28 -0
  573. package/src/components/OverviewItem/stories/OverviewItemActions.stories.tsx +2 -2
  574. package/src/components/OverviewItem/stories/OverviewItemDescription.stories.tsx +1 -1
  575. package/src/components/OverviewItem/stories/OverviewItemLine.stories.tsx +1 -1
  576. package/src/components/OverviewItem/stories/OverviewItemList.stories.tsx +0 -1
  577. package/src/components/Pagination/pagination.scss +1 -1
  578. package/src/components/ProgressBar/Stories/ProgressBar.stories.tsx +7 -1
  579. package/src/components/PropertyValuePair/propertyvalue.scss +23 -1
  580. package/src/components/RadioButton/RadioButton.tsx +15 -3
  581. package/src/components/RadioButton/radiobutton.scss +13 -0
  582. package/src/components/Select/Select.stories.tsx +1 -1
  583. package/src/components/Separation/separation.scss +6 -0
  584. package/src/components/Spinner/Spinner.tsx +30 -23
  585. package/src/components/Spinner/Stories/spinner.stories.tsx +1 -1
  586. package/src/components/Spinner/spinner.scss +10 -5
  587. package/src/components/Sticky/sticky.scss +7 -7
  588. package/src/components/SuggestField/index.ts +7 -1
  589. package/src/components/Table/Table.tsx +1 -2
  590. package/src/components/Table/TableContainer.tsx +2 -2
  591. package/src/components/Table/table.scss +56 -46
  592. package/src/components/Tabs/Tab.tsx +3 -2
  593. package/src/components/Tabs/stories/Tab.stories.tsx +1 -1
  594. package/src/components/Tabs/stories/TabPanel.stories.tsx +1 -1
  595. package/src/components/Tabs/stories/TabTitle.stories.tsx +8 -3
  596. package/src/components/Tag/stories/TagList.stories.tsx +2 -2
  597. package/src/components/Tag/tag.scss +105 -74
  598. package/src/components/TextField/SearchField.tsx +1 -6
  599. package/src/components/TextField/TextArea.tsx +2 -2
  600. package/src/components/TextField/stories/SearchField.stories.tsx +0 -4
  601. package/src/components/TextField/textfield.scss +31 -23
  602. package/src/components/TextReducer/TextReducer.stories.tsx +48 -0
  603. package/src/components/TextReducer/TextReducer.test.tsx +44 -0
  604. package/src/components/TextReducer/TextReducer.tsx +71 -0
  605. package/src/components/Tooltip/Tooltip.stories.tsx +2 -0
  606. package/src/components/Tooltip/Tooltip.test.tsx +63 -0
  607. package/src/components/Tooltip/Tooltip.tsx +7 -2
  608. package/src/components/Tooltip/tooltip.scss +7 -3
  609. package/src/components/Typography/InlineText.tsx +24 -0
  610. package/src/components/Typography/OverflowText.tsx +1 -6
  611. package/src/components/Typography/_reset.scss +1 -0
  612. package/src/components/Typography/index.ts +1 -0
  613. package/src/components/Typography/stories/InlineText.stories.tsx +27 -0
  614. package/src/components/Typography/typography.scss +29 -3
  615. package/src/components/VisualTour/VisualTour.tsx +361 -0
  616. package/src/components/VisualTour/stories/VisualTour.stories.tsx +112 -0
  617. package/src/components/VisualTour/stories/defaultTour.ts +42 -0
  618. package/src/components/VisualTour/visualTour.scss +49 -0
  619. package/src/components/index.scss +4 -0
  620. package/src/components/index.ts +8 -7
  621. package/src/configuration/_customproperties.scss +32 -0
  622. package/src/configuration/_libprefix.scss +1 -0
  623. package/src/configuration/_palettes.scss +40 -0
  624. package/src/configuration/_variables.scss +21 -20
  625. package/src/configuration/constants.ts +2 -0
  626. package/src/configuration/stories/customproperties.stories.tsx +118 -0
  627. package/src/extensions/codemirror/CodeMirror.tsx +32 -19
  628. package/src/extensions/codemirror/_codemirror.scss +2 -2
  629. package/src/extensions/codemirror/hooks/useCodemirrorModeExtension.hooks.ts +3 -0
  630. package/src/extensions/codemirror/tests/codemirrorTestHelper.ts +3 -3
  631. package/src/extensions/react-flow/_config.scss +13 -7
  632. package/src/extensions/react-flow/_react-flow.scss +1 -4
  633. package/src/extensions/react-flow/_react-flow_v12.scss +211 -3
  634. package/src/extensions/react-flow/edges/EdgeBezier.tsx +47 -0
  635. package/src/extensions/react-flow/edges/EdgeDefault.tsx +51 -13
  636. package/src/extensions/react-flow/edges/EdgeDefaultV12.tsx +79 -78
  637. package/src/extensions/react-flow/edges/EdgeDefs.tsx +3 -0
  638. package/src/extensions/react-flow/edges/EdgeLabel.tsx +6 -4
  639. package/src/extensions/react-flow/edges/EdgeNew.tsx +53 -0
  640. package/src/extensions/react-flow/edges/EdgeStep.tsx +41 -6
  641. package/src/extensions/react-flow/edges/EdgeStraight.tsx +1 -0
  642. package/src/extensions/react-flow/edges/_edges.scss +28 -13
  643. package/src/extensions/react-flow/edges/stories/EdgeDefault.stories.tsx +5 -6
  644. package/src/extensions/react-flow/edges/stories/EdgeDefaultV12.stories.tsx +32 -25
  645. package/src/extensions/react-flow/edges/utils.ts +19 -1
  646. package/src/extensions/react-flow/handles/HandleDefault.tsx +41 -36
  647. package/src/extensions/react-flow/handles/_handles.scss +2 -2
  648. package/src/extensions/react-flow/handles/stories/HandleDefault.stories.tsx +4 -6
  649. package/src/extensions/react-flow/index.ts +7 -5
  650. package/src/extensions/react-flow/markers/MarkerArrowClosedInverse.tsx +3 -0
  651. package/src/extensions/react-flow/markers/ReactFlowMarkers.tsx +58 -1
  652. package/src/extensions/react-flow/markers/_markers.scss +31 -0
  653. package/src/extensions/react-flow/minimap/MiniMap.stories.tsx +12 -18
  654. package/src/extensions/react-flow/minimap/MiniMap.tsx +45 -9
  655. package/src/extensions/react-flow/minimap/MiniMapV12.tsx +39 -0
  656. package/src/extensions/react-flow/minimap/_minimap.scss +14 -0
  657. package/src/extensions/react-flow/nodes/NodeContent.tsx +135 -113
  658. package/src/extensions/react-flow/nodes/NodeDefault.tsx +9 -5
  659. package/src/extensions/react-flow/nodes/_nodes.scss +32 -25
  660. package/src/extensions/react-flow/nodes/nodeUtils.tsx +16 -6
  661. package/src/extensions/react-flow/nodes/stories/NodeContent.stories.tsx +2 -2
  662. package/src/extensions/react-flow/nodes/stories/NodeDefault.stories.tsx +3 -5
  663. package/src/extensions/react-flow/versionsupport.ts +17 -15
  664. package/src/extensions/uppy/_fileupload.scss +2 -2
  665. package/src/includes/blueprintjs/_colormap.scss +150 -0
  666. package/src/includes/blueprintjs/_variables.scss +39 -9
  667. package/src/includes/carbon-components/_variables.scss +23 -8
  668. package/src/index.scss +12 -0
  669. package/src/index.ts +1 -2
  670. package/dist/cjs/components/AutoSuggestion/index.js +0 -8
  671. package/dist/cjs/components/AutoSuggestion/index.js.map +0 -1
  672. package/dist/cjs/components/AutocompleteField/index.js.map +0 -1
  673. package/dist/cjs/components/CodeAutocompleteField/CodeAutocompleteField.js +0 -32
  674. package/dist/cjs/components/CodeAutocompleteField/CodeAutocompleteField.js.map +0 -1
  675. package/dist/cjs/components/MultiSuggestField/MultiSuggestField.js +0 -37
  676. package/dist/cjs/components/MultiSuggestField/MultiSuggestField.js.map +0 -1
  677. package/dist/cjs/components/SuggestField/SuggestField.js +0 -38
  678. package/dist/cjs/components/SuggestField/SuggestField.js.map +0 -1
  679. package/dist/cjs/extensions/react-flow/edges/edgeTypes.js +0 -28
  680. package/dist/cjs/extensions/react-flow/edges/edgeTypes.js.map +0 -1
  681. package/dist/cjs/extensions/react-flow/nodes/nodeTypes.js +0 -18
  682. package/dist/cjs/extensions/react-flow/nodes/nodeTypes.js.map +0 -1
  683. package/dist/cjs/legacy-replacements/Button/AffirmativeButton.js +0 -25
  684. package/dist/cjs/legacy-replacements/Button/AffirmativeButton.js.map +0 -1
  685. package/dist/cjs/legacy-replacements/Button/Button.js +0 -65
  686. package/dist/cjs/legacy-replacements/Button/Button.js.map +0 -1
  687. package/dist/cjs/legacy-replacements/Button/DismissiveButton.js +0 -25
  688. package/dist/cjs/legacy-replacements/Button/DismissiveButton.js.map +0 -1
  689. package/dist/cjs/legacy-replacements/Button/DisruptiveButton.js.map +0 -1
  690. package/dist/cjs/legacy-replacements/Checkbox/Checkbox.js +0 -58
  691. package/dist/cjs/legacy-replacements/Checkbox/Checkbox.js.map +0 -1
  692. package/dist/cjs/legacy-replacements/Radio/RadioButton.js +0 -51
  693. package/dist/cjs/legacy-replacements/Radio/RadioButton.js.map +0 -1
  694. package/dist/cjs/legacy-replacements/Tabs/Tabs.js +0 -34
  695. package/dist/cjs/legacy-replacements/Tabs/Tabs.js.map +0 -1
  696. package/dist/cjs/legacy-replacements/TextField/TextField.js +0 -75
  697. package/dist/cjs/legacy-replacements/TextField/TextField.js.map +0 -1
  698. package/dist/cjs/legacy-replacements/index.js +0 -22
  699. package/dist/cjs/legacy-replacements/index.js.map +0 -1
  700. package/dist/esm/components/AutoSuggestion/index.js +0 -4
  701. package/dist/esm/components/AutoSuggestion/index.js.map +0 -1
  702. package/dist/esm/components/AutocompleteField/index.js +0 -7
  703. package/dist/esm/components/AutocompleteField/index.js.map +0 -1
  704. package/dist/esm/components/CodeAutocompleteField/CodeAutocompleteField.js +0 -37
  705. package/dist/esm/components/CodeAutocompleteField/CodeAutocompleteField.js.map +0 -1
  706. package/dist/esm/components/MultiSuggestField/MultiSuggestField.js +0 -42
  707. package/dist/esm/components/MultiSuggestField/MultiSuggestField.js.map +0 -1
  708. package/dist/esm/components/SuggestField/SuggestField.js +0 -43
  709. package/dist/esm/components/SuggestField/SuggestField.js.map +0 -1
  710. package/dist/esm/extensions/react-flow/edges/edgeTypes.js +0 -25
  711. package/dist/esm/extensions/react-flow/edges/edgeTypes.js.map +0 -1
  712. package/dist/esm/extensions/react-flow/nodes/nodeTypes.js +0 -15
  713. package/dist/esm/extensions/react-flow/nodes/nodeTypes.js.map +0 -1
  714. package/dist/esm/legacy-replacements/Button/AffirmativeButton.js.map +0 -1
  715. package/dist/esm/legacy-replacements/Button/Button.js +0 -69
  716. package/dist/esm/legacy-replacements/Button/Button.js.map +0 -1
  717. package/dist/esm/legacy-replacements/Button/DismissiveButton.js +0 -30
  718. package/dist/esm/legacy-replacements/Button/DismissiveButton.js.map +0 -1
  719. package/dist/esm/legacy-replacements/Button/DisruptiveButton.js.map +0 -1
  720. package/dist/esm/legacy-replacements/Checkbox/Checkbox.js +0 -63
  721. package/dist/esm/legacy-replacements/Checkbox/Checkbox.js.map +0 -1
  722. package/dist/esm/legacy-replacements/Radio/RadioButton.js +0 -56
  723. package/dist/esm/legacy-replacements/Radio/RadioButton.js.map +0 -1
  724. package/dist/esm/legacy-replacements/Tabs/Tabs.js +0 -39
  725. package/dist/esm/legacy-replacements/Tabs/Tabs.js.map +0 -1
  726. package/dist/esm/legacy-replacements/TextField/TextField.js +0 -82
  727. package/dist/esm/legacy-replacements/TextField/TextField.js.map +0 -1
  728. package/dist/esm/legacy-replacements/index.js +0 -10
  729. package/dist/esm/legacy-replacements/index.js.map +0 -1
  730. package/dist/types/components/AutoSuggestion/index.d.ts +0 -5
  731. package/dist/types/components/AutocompleteField/index.d.ts +0 -5
  732. package/dist/types/components/CodeAutocompleteField/CodeAutocompleteField.d.ts +0 -11
  733. package/dist/types/components/MultiSuggestField/MultiSuggestField.d.ts +0 -19
  734. package/dist/types/components/SuggestField/SuggestField.d.ts +0 -21
  735. package/dist/types/extensions/react-flow/edges/edgeTypes.d.ts +0 -16
  736. package/dist/types/extensions/react-flow/nodes/nodeTypes.d.ts +0 -13
  737. package/dist/types/legacy-replacements/Button/AffirmativeButton.d.ts +0 -3
  738. package/dist/types/legacy-replacements/Button/Button.d.ts +0 -6
  739. package/dist/types/legacy-replacements/Button/DismissiveButton.d.ts +0 -3
  740. package/dist/types/legacy-replacements/Button/DisruptiveButton.d.ts +0 -3
  741. package/dist/types/legacy-replacements/Checkbox/Checkbox.d.ts +0 -3
  742. package/dist/types/legacy-replacements/Radio/RadioButton.d.ts +0 -3
  743. package/dist/types/legacy-replacements/Tabs/Tabs.d.ts +0 -24
  744. package/dist/types/legacy-replacements/TextField/TextField.d.ts +0 -3
  745. package/dist/types/legacy-replacements/index.d.ts +0 -10
  746. package/src/components/AutoSuggestion/index.ts +0 -7
  747. package/src/components/AutocompleteField/AutoCompleteField.stories.tsx +0 -14
  748. package/src/components/AutocompleteField/index.ts +0 -6
  749. package/src/components/CodeAutocompleteField/CodeAutocompleteField.tsx +0 -22
  750. package/src/components/MultiSuggestField/MultiSuggestField.tsx +0 -35
  751. package/src/components/SuggestField/SuggestField.tsx +0 -33
  752. package/src/extensions/react-flow/edges/edgeTypes.ts +0 -29
  753. package/src/extensions/react-flow/nodes/nodeTypes.ts +0 -15
  754. package/src/legacy-replacements/Button/AffirmativeButton.tsx +0 -12
  755. package/src/legacy-replacements/Button/Button.tsx +0 -80
  756. package/src/legacy-replacements/Button/DismissiveButton.tsx +0 -12
  757. package/src/legacy-replacements/Button/DisruptiveButton.tsx +0 -12
  758. package/src/legacy-replacements/Checkbox/Checkbox.tsx +0 -59
  759. package/src/legacy-replacements/Radio/RadioButton.tsx +0 -37
  760. package/src/legacy-replacements/Tabs/Tabs.stories.tsx +0 -36
  761. package/src/legacy-replacements/Tabs/Tabs.tsx +0 -69
  762. package/src/legacy-replacements/TextField/TextField.tsx +0 -89
  763. 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 "../../configuration/constants";
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 | "afterhover" | "afterfocus">(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
- const swap = (ev: MouseEvent | globalThis.FocusEvent) => {
54
- eventMemory.current = ev.type === "focusin" ? "afterfocus" : "afterhover";
55
- setPlaceholder(false);
56
- };
57
- (placeholderRef.current as HTMLElement).addEventListener("mouseenter", swap);
58
- (placeholderRef.current as HTMLElement).addEventListener("focusin", swap);
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
- if (placeholderRef.current) {
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
- if (eventMemory.current === "afterfocus" && node) {
71
- const target = node.targetRef.current.children[0];
72
- if (target) {
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
+ }
@@ -220,3 +220,9 @@ $eccgui-size-depiction-border-radius: $pt-border-radius !default;
220
220
  position: fixed;
221
221
  left: -5000rem;
222
222
  }
223
+
224
+ @media print {
225
+ .#{$eccgui}-depiction {
226
+ print-color-adjust: exact;
227
+ }
228
+ }
@@ -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?: "tiny" | "small" | "regular" | "large" | "xlarge" | "fullscreen";
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
- onMouseDown: (event: BaseSyntheticEvent) => event.stopPropagation(),
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: rgba(invert($eccgui-color-workspace-background), 0.69) !default;
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
 
@@ -1,3 +1,4 @@
1
1
  export * from "./Modal";
2
2
  export * from "./SimpleDialog";
3
3
  export * from "./AlertDialog";
4
+ export * from "./ModalContext";
@@ -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 = {