@eccenca/gui-elements 24.4.1 → 25.0.0-rc.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 (629) hide show
  1. package/CHANGELOG.md +136 -3
  2. package/README.md +63 -16
  3. package/dist/cjs/cmem/markdown/Markdown.js.map +1 -1
  4. package/dist/cjs/cmem/react-flow/ReactFlow/ReactFlow.js +67 -13
  5. package/dist/cjs/cmem/react-flow/ReactFlow/ReactFlow.js.map +1 -1
  6. package/dist/cjs/cmem/react-flow/ReactFlow/ReactFlowV12.js +45 -0
  7. package/dist/cjs/cmem/react-flow/ReactFlow/ReactFlowV12.js.map +1 -0
  8. package/dist/cjs/cmem/react-flow/ReactFlow/ReactFlowV9.js +30 -0
  9. package/dist/cjs/cmem/react-flow/ReactFlow/ReactFlowV9.js.map +1 -0
  10. package/dist/cjs/cmem/react-flow/StickyNoteModal/StickyNoteModal.js +2 -2
  11. package/dist/cjs/cmem/react-flow/StickyNoteModal/StickyNoteModal.js.map +1 -1
  12. package/dist/cjs/cmem/react-flow/configuration/graph.js +12 -10
  13. package/dist/cjs/cmem/react-flow/configuration/graph.js.map +1 -1
  14. package/dist/cjs/cmem/react-flow/configuration/linking.js +2 -0
  15. package/dist/cjs/cmem/react-flow/configuration/linking.js.map +1 -1
  16. package/dist/cjs/cmem/react-flow/configuration/unspecified.js +2 -1
  17. package/dist/cjs/cmem/react-flow/configuration/unspecified.js.map +1 -1
  18. package/dist/cjs/cmem/react-flow/configuration/workflow.js +2 -0
  19. package/dist/cjs/cmem/react-flow/configuration/workflow.js.map +1 -1
  20. package/dist/cjs/cmem/react-flow/extensions/scrollOnDragHook.js +9 -3
  21. package/dist/cjs/cmem/react-flow/extensions/scrollOnDragHook.js.map +1 -1
  22. package/dist/cjs/cmem/react-flow/index.js +5 -1
  23. package/dist/cjs/cmem/react-flow/index.js.map +1 -1
  24. package/dist/cjs/common/index.js +5 -0
  25. package/dist/cjs/common/index.js.map +1 -1
  26. package/dist/cjs/common/utils/CssCustomProperties.js +9 -3
  27. package/dist/cjs/common/utils/CssCustomProperties.js.map +1 -1
  28. package/dist/cjs/common/utils/colorCalculateDistance.js +27 -0
  29. package/dist/cjs/common/utils/colorCalculateDistance.js.map +1 -0
  30. package/dist/cjs/common/utils/colorHash.js +143 -0
  31. package/dist/cjs/common/utils/colorHash.js.map +1 -0
  32. package/dist/cjs/common/utils/getColorConfiguration.js +37 -4
  33. package/dist/cjs/common/utils/getColorConfiguration.js.map +1 -1
  34. package/dist/cjs/components/AutoSuggestion/AutoSuggestion.js +14 -11
  35. package/dist/cjs/components/AutoSuggestion/AutoSuggestion.js.map +1 -1
  36. package/dist/cjs/components/AutoSuggestion/AutoSuggestionList.js +4 -1
  37. package/dist/cjs/components/AutoSuggestion/AutoSuggestionList.js.map +1 -1
  38. package/dist/cjs/components/AutoSuggestion/ExtendedCodeEditor.js +1 -3
  39. package/dist/cjs/components/AutoSuggestion/ExtendedCodeEditor.js.map +1 -1
  40. package/dist/cjs/components/AutocompleteField/AutoCompleteField.js +18 -7
  41. package/dist/cjs/components/AutocompleteField/AutoCompleteField.js.map +1 -1
  42. package/dist/cjs/components/AutocompleteField/autoCompleteFieldUtils.js.map +1 -1
  43. package/dist/cjs/components/Button/Button.js +11 -26
  44. package/dist/cjs/components/Button/Button.js.map +1 -1
  45. package/dist/cjs/components/Chat/ChatArea.js +55 -0
  46. package/dist/cjs/components/Chat/ChatArea.js.map +1 -0
  47. package/dist/cjs/components/Chat/ChatContent.js +55 -0
  48. package/dist/cjs/components/Chat/ChatContent.js.map +1 -0
  49. package/dist/cjs/components/Chat/ChatContentCollapsed.js +24 -0
  50. package/dist/cjs/components/Chat/ChatContentCollapsed.js.map +1 -0
  51. package/dist/cjs/components/Chat/ChatField.js +53 -0
  52. package/dist/cjs/components/Chat/ChatField.js.map +1 -0
  53. package/dist/cjs/components/{AutocompleteField → Chat}/index.js +4 -7
  54. package/dist/cjs/components/Chat/index.js.map +1 -0
  55. package/dist/cjs/components/CodeAutocompleteField/index.js +6 -1
  56. package/dist/cjs/components/CodeAutocompleteField/index.js.map +1 -1
  57. package/dist/cjs/components/ContentGroup/ContentGroup.js +1 -1
  58. package/dist/cjs/components/ContentGroup/ContentGroup.js.map +1 -1
  59. package/dist/cjs/components/Dialog/Modal.js +15 -2
  60. package/dist/cjs/components/Dialog/Modal.js.map +1 -1
  61. package/dist/cjs/components/Dialog/ModalContext.js +45 -0
  62. package/dist/cjs/components/Dialog/ModalContext.js.map +1 -0
  63. package/dist/cjs/components/Dialog/SimpleDialog.js +2 -1
  64. package/dist/cjs/components/Dialog/SimpleDialog.js.map +1 -1
  65. package/dist/cjs/components/Dialog/index.js +1 -0
  66. package/dist/cjs/components/Dialog/index.js.map +1 -1
  67. package/dist/cjs/components/Form/FieldItem.js +2 -19
  68. package/dist/cjs/components/Form/FieldItem.js.map +1 -1
  69. package/dist/cjs/components/Form/FieldSet.js +2 -20
  70. package/dist/cjs/components/Form/FieldSet.js.map +1 -1
  71. package/dist/cjs/components/Icon/BaseIcon.js +2 -2
  72. package/dist/cjs/components/Icon/BaseIcon.js.map +1 -1
  73. package/dist/cjs/components/Icon/IconButton.js.map +1 -1
  74. package/dist/cjs/components/Icon/canonicalIconNames.js +7 -0
  75. package/dist/cjs/components/Icon/canonicalIconNames.js.map +1 -1
  76. package/dist/cjs/components/MultiSelect/MultiSelect.js +14 -27
  77. package/dist/cjs/components/MultiSelect/MultiSelect.js.map +1 -1
  78. package/dist/cjs/components/MultiSuggestField/index.js +18 -0
  79. package/dist/cjs/components/MultiSuggestField/index.js.map +1 -0
  80. package/dist/cjs/components/Notification/Notification.js +3 -23
  81. package/dist/cjs/components/Notification/Notification.js.map +1 -1
  82. package/dist/cjs/components/OverviewItem/OverviewItemList.js +1 -2
  83. package/dist/cjs/components/OverviewItem/OverviewItemList.js.map +1 -1
  84. package/dist/cjs/components/Spinner/Spinner.js +18 -11
  85. package/dist/cjs/components/Spinner/Spinner.js.map +1 -1
  86. package/dist/cjs/components/SuggestField/index.js +5 -2
  87. package/dist/cjs/components/SuggestField/index.js.map +1 -1
  88. package/dist/cjs/components/Table/Table.js.map +1 -1
  89. package/dist/cjs/components/Table/TableContainer.js.map +1 -1
  90. package/dist/cjs/components/Tabs/Tab.js +3 -2
  91. package/dist/cjs/components/Tabs/Tab.js.map +1 -1
  92. package/dist/cjs/components/TextField/SearchField.js.map +1 -1
  93. package/dist/cjs/components/TextField/TextArea.js +2 -2
  94. package/dist/cjs/components/TextField/TextArea.js.map +1 -1
  95. package/dist/cjs/components/TextReducer/TextReducer.js +83 -0
  96. package/dist/cjs/components/TextReducer/TextReducer.js.map +1 -0
  97. package/dist/cjs/components/Tooltip/Tooltip.js +3 -1
  98. package/dist/cjs/components/Tooltip/Tooltip.js.map +1 -1
  99. package/dist/cjs/components/Typography/OverflowText.js.map +1 -1
  100. package/dist/cjs/components/VisualTour/VisualTour.js +200 -0
  101. package/dist/cjs/components/VisualTour/VisualTour.js.map +1 -0
  102. package/dist/cjs/components/index.js +7 -7
  103. package/dist/cjs/components/index.js.map +1 -1
  104. package/dist/cjs/configuration/constants.js +3 -1
  105. package/dist/cjs/configuration/constants.js.map +1 -1
  106. package/dist/cjs/extensions/codemirror/CodeMirror.js +5 -3
  107. package/dist/cjs/extensions/codemirror/CodeMirror.js.map +1 -1
  108. package/dist/cjs/extensions/codemirror/hooks/useCodemirrorModeExtension.hooks.js +3 -0
  109. package/dist/cjs/extensions/codemirror/hooks/useCodemirrorModeExtension.hooks.js.map +1 -1
  110. package/dist/cjs/extensions/react-flow/edges/EdgeBezier.js +50 -0
  111. package/dist/cjs/extensions/react-flow/edges/EdgeBezier.js.map +1 -0
  112. package/dist/cjs/extensions/react-flow/edges/EdgeDefault.js +21 -3
  113. package/dist/cjs/extensions/react-flow/edges/EdgeDefault.js.map +1 -1
  114. package/dist/cjs/extensions/react-flow/edges/EdgeDefaultV12.js +46 -22
  115. package/dist/cjs/extensions/react-flow/edges/EdgeDefaultV12.js.map +1 -1
  116. package/dist/cjs/extensions/react-flow/edges/EdgeDefs.js +3 -0
  117. package/dist/cjs/extensions/react-flow/edges/EdgeDefs.js.map +1 -1
  118. package/dist/cjs/extensions/react-flow/edges/EdgeNew.js +41 -0
  119. package/dist/cjs/extensions/react-flow/edges/EdgeNew.js.map +1 -0
  120. package/dist/cjs/extensions/react-flow/edges/EdgeStep.js +19 -2
  121. package/dist/cjs/extensions/react-flow/edges/EdgeStep.js.map +1 -1
  122. package/dist/cjs/extensions/react-flow/edges/EdgeStraight.js +6 -0
  123. package/dist/cjs/extensions/react-flow/edges/EdgeStraight.js.map +1 -0
  124. package/dist/cjs/extensions/react-flow/edges/utils.js +12 -1
  125. package/dist/cjs/extensions/react-flow/edges/utils.js.map +1 -1
  126. package/dist/cjs/extensions/react-flow/handles/HandleDefault.js +14 -15
  127. package/dist/cjs/extensions/react-flow/handles/HandleDefault.js.map +1 -1
  128. package/dist/cjs/extensions/react-flow/index.js +6 -6
  129. package/dist/cjs/extensions/react-flow/index.js.map +1 -1
  130. package/dist/cjs/extensions/react-flow/markers/MarkerArrowClosedInverse.js +3 -0
  131. package/dist/cjs/extensions/react-flow/markers/MarkerArrowClosedInverse.js.map +1 -1
  132. package/dist/cjs/extensions/react-flow/markers/ReactFlowMarkers.js +17 -2
  133. package/dist/cjs/extensions/react-flow/markers/ReactFlowMarkers.js.map +1 -1
  134. package/dist/cjs/extensions/react-flow/minimap/MiniMap.js +21 -2
  135. package/dist/cjs/extensions/react-flow/minimap/MiniMap.js.map +1 -1
  136. package/dist/cjs/extensions/react-flow/minimap/MiniMapV12.js +51 -0
  137. package/dist/cjs/extensions/react-flow/minimap/MiniMapV12.js.map +1 -0
  138. package/dist/cjs/extensions/react-flow/nodes/NodeContent.js +57 -54
  139. package/dist/cjs/extensions/react-flow/nodes/NodeContent.js.map +1 -1
  140. package/dist/cjs/extensions/react-flow/nodes/NodeDefault.js +2 -2
  141. package/dist/cjs/extensions/react-flow/nodes/NodeDefault.js.map +1 -1
  142. package/dist/cjs/extensions/react-flow/nodes/nodeUtils.js +2 -1
  143. package/dist/cjs/extensions/react-flow/nodes/nodeUtils.js.map +1 -1
  144. package/dist/cjs/extensions/react-flow/versionsupport.js +13 -11
  145. package/dist/cjs/extensions/react-flow/versionsupport.js.map +1 -1
  146. package/dist/cjs/index.js +1 -3
  147. package/dist/cjs/index.js.map +1 -1
  148. package/dist/esm/cmem/markdown/Markdown.js.map +1 -1
  149. package/dist/esm/cmem/react-flow/ReactFlow/ReactFlow.js +67 -13
  150. package/dist/esm/cmem/react-flow/ReactFlow/ReactFlow.js.map +1 -1
  151. package/dist/esm/cmem/react-flow/ReactFlow/ReactFlowV12.js +66 -0
  152. package/dist/esm/cmem/react-flow/ReactFlow/ReactFlowV12.js.map +1 -0
  153. package/dist/esm/{legacy-replacements/Button/AffirmativeButton.js → cmem/react-flow/ReactFlow/ReactFlowV9.js} +12 -7
  154. package/dist/esm/cmem/react-flow/ReactFlow/ReactFlowV9.js.map +1 -0
  155. package/dist/esm/cmem/react-flow/StickyNoteModal/StickyNoteModal.js +3 -3
  156. package/dist/esm/cmem/react-flow/StickyNoteModal/StickyNoteModal.js.map +1 -1
  157. package/dist/esm/cmem/react-flow/configuration/graph.js +12 -10
  158. package/dist/esm/cmem/react-flow/configuration/graph.js.map +1 -1
  159. package/dist/esm/cmem/react-flow/configuration/linking.js +2 -0
  160. package/dist/esm/cmem/react-flow/configuration/linking.js.map +1 -1
  161. package/dist/esm/cmem/react-flow/configuration/unspecified.js +2 -1
  162. package/dist/esm/cmem/react-flow/configuration/unspecified.js.map +1 -1
  163. package/dist/esm/cmem/react-flow/configuration/workflow.js +2 -0
  164. package/dist/esm/cmem/react-flow/configuration/workflow.js.map +1 -1
  165. package/dist/esm/cmem/react-flow/extensions/scrollOnDragHook.js +7 -1
  166. package/dist/esm/cmem/react-flow/extensions/scrollOnDragHook.js.map +1 -1
  167. package/dist/esm/cmem/react-flow/index.js +2 -1
  168. package/dist/esm/cmem/react-flow/index.js.map +1 -1
  169. package/dist/esm/common/index.js +5 -0
  170. package/dist/esm/common/index.js.map +1 -1
  171. package/dist/esm/common/utils/CssCustomProperties.js +9 -3
  172. package/dist/esm/common/utils/CssCustomProperties.js.map +1 -1
  173. package/dist/esm/common/utils/colorCalculateDistance.js +21 -0
  174. package/dist/esm/common/utils/colorCalculateDistance.js.map +1 -0
  175. package/dist/esm/common/utils/colorHash.js +140 -0
  176. package/dist/esm/common/utils/colorHash.js.map +1 -0
  177. package/dist/esm/common/utils/getColorConfiguration.js +37 -4
  178. package/dist/esm/common/utils/getColorConfiguration.js.map +1 -1
  179. package/dist/esm/components/AutoSuggestion/AutoSuggestion.js +14 -12
  180. package/dist/esm/components/AutoSuggestion/AutoSuggestion.js.map +1 -1
  181. package/dist/esm/components/AutoSuggestion/AutoSuggestionList.js +4 -1
  182. package/dist/esm/components/AutoSuggestion/AutoSuggestionList.js.map +1 -1
  183. package/dist/esm/components/AutoSuggestion/ExtendedCodeEditor.js +1 -3
  184. package/dist/esm/components/AutoSuggestion/ExtendedCodeEditor.js.map +1 -1
  185. package/dist/esm/components/AutocompleteField/AutoCompleteField.js +17 -7
  186. package/dist/esm/components/AutocompleteField/AutoCompleteField.js.map +1 -1
  187. package/dist/esm/components/AutocompleteField/autoCompleteFieldUtils.js.map +1 -1
  188. package/dist/esm/components/Button/Button.js +11 -26
  189. package/dist/esm/components/Button/Button.js.map +1 -1
  190. package/dist/esm/components/Chat/ChatArea.js +59 -0
  191. package/dist/esm/components/Chat/ChatArea.js.map +1 -0
  192. package/dist/esm/components/Chat/ChatContent.js +59 -0
  193. package/dist/esm/components/Chat/ChatContent.js.map +1 -0
  194. package/dist/esm/components/Chat/ChatContentCollapsed.js +45 -0
  195. package/dist/esm/components/Chat/ChatContentCollapsed.js.map +1 -0
  196. package/dist/esm/components/Chat/ChatField.js +57 -0
  197. package/dist/esm/components/Chat/ChatField.js.map +1 -0
  198. package/dist/esm/components/Chat/index.js +5 -0
  199. package/dist/esm/components/Chat/index.js.map +1 -0
  200. package/dist/esm/components/CodeAutocompleteField/index.js +4 -1
  201. package/dist/esm/components/CodeAutocompleteField/index.js.map +1 -1
  202. package/dist/esm/components/ContentGroup/ContentGroup.js +1 -1
  203. package/dist/esm/components/ContentGroup/ContentGroup.js.map +1 -1
  204. package/dist/esm/components/Dialog/Modal.js +15 -2
  205. package/dist/esm/components/Dialog/Modal.js.map +1 -1
  206. package/dist/esm/components/Dialog/ModalContext.js +63 -0
  207. package/dist/esm/components/Dialog/ModalContext.js.map +1 -0
  208. package/dist/esm/components/Dialog/SimpleDialog.js +2 -1
  209. package/dist/esm/components/Dialog/SimpleDialog.js.map +1 -1
  210. package/dist/esm/components/Dialog/index.js +1 -0
  211. package/dist/esm/components/Dialog/index.js.map +1 -1
  212. package/dist/esm/components/Form/FieldItem.js +2 -19
  213. package/dist/esm/components/Form/FieldItem.js.map +1 -1
  214. package/dist/esm/components/Form/FieldSet.js +2 -20
  215. package/dist/esm/components/Form/FieldSet.js.map +1 -1
  216. package/dist/esm/components/Icon/BaseIcon.js +2 -2
  217. package/dist/esm/components/Icon/BaseIcon.js.map +1 -1
  218. package/dist/esm/components/Icon/IconButton.js.map +1 -1
  219. package/dist/esm/components/Icon/canonicalIconNames.js +7 -0
  220. package/dist/esm/components/Icon/canonicalIconNames.js.map +1 -1
  221. package/dist/esm/components/MultiSelect/MultiSelect.js +13 -27
  222. package/dist/esm/components/MultiSelect/MultiSelect.js.map +1 -1
  223. package/dist/esm/components/MultiSuggestField/index.js +2 -0
  224. package/dist/esm/components/MultiSuggestField/index.js.map +1 -0
  225. package/dist/esm/components/Notification/Notification.js +3 -23
  226. package/dist/esm/components/Notification/Notification.js.map +1 -1
  227. package/dist/esm/components/OverviewItem/OverviewItemList.js +1 -2
  228. package/dist/esm/components/OverviewItem/OverviewItemList.js.map +1 -1
  229. package/dist/esm/components/Spinner/Spinner.js +16 -14
  230. package/dist/esm/components/Spinner/Spinner.js.map +1 -1
  231. package/dist/esm/components/SuggestField/index.js +4 -1
  232. package/dist/esm/components/SuggestField/index.js.map +1 -1
  233. package/dist/esm/components/Table/Table.js.map +1 -1
  234. package/dist/esm/components/Table/TableContainer.js.map +1 -1
  235. package/dist/esm/components/Tabs/Tab.js +3 -2
  236. package/dist/esm/components/Tabs/Tab.js.map +1 -1
  237. package/dist/esm/components/TextField/SearchField.js.map +1 -1
  238. package/dist/esm/components/TextField/TextArea.js +2 -2
  239. package/dist/esm/components/TextField/TextArea.js.map +1 -1
  240. package/dist/esm/components/TextReducer/TextReducer.js +65 -0
  241. package/dist/esm/components/TextReducer/TextReducer.js.map +1 -0
  242. package/dist/esm/components/Tooltip/Tooltip.js +3 -1
  243. package/dist/esm/components/Tooltip/Tooltip.js.map +1 -1
  244. package/dist/esm/components/Typography/OverflowText.js.map +1 -1
  245. package/dist/esm/components/VisualTour/VisualTour.js +213 -0
  246. package/dist/esm/components/VisualTour/VisualTour.js.map +1 -0
  247. package/dist/esm/components/index.js +7 -7
  248. package/dist/esm/components/index.js.map +1 -1
  249. package/dist/esm/configuration/constants.js +2 -0
  250. package/dist/esm/configuration/constants.js.map +1 -1
  251. package/dist/esm/extensions/codemirror/CodeMirror.js +7 -5
  252. package/dist/esm/extensions/codemirror/CodeMirror.js.map +1 -1
  253. package/dist/esm/extensions/codemirror/hooks/useCodemirrorModeExtension.hooks.js +3 -0
  254. package/dist/esm/extensions/codemirror/hooks/useCodemirrorModeExtension.hooks.js.map +1 -1
  255. package/dist/esm/extensions/react-flow/edges/EdgeBezier.js +35 -0
  256. package/dist/esm/extensions/react-flow/edges/EdgeBezier.js.map +1 -0
  257. package/dist/esm/extensions/react-flow/edges/EdgeDefault.js +21 -3
  258. package/dist/esm/extensions/react-flow/edges/EdgeDefault.js.map +1 -1
  259. package/dist/esm/extensions/react-flow/edges/EdgeDefaultV12.js +24 -20
  260. package/dist/esm/extensions/react-flow/edges/EdgeDefaultV12.js.map +1 -1
  261. package/dist/esm/extensions/react-flow/edges/EdgeDefs.js +3 -0
  262. package/dist/esm/extensions/react-flow/edges/EdgeDefs.js.map +1 -1
  263. package/dist/esm/extensions/react-flow/edges/EdgeNew.js +45 -0
  264. package/dist/esm/extensions/react-flow/edges/EdgeNew.js.map +1 -0
  265. package/dist/esm/extensions/react-flow/edges/EdgeStep.js +19 -2
  266. package/dist/esm/extensions/react-flow/edges/EdgeStep.js.map +1 -1
  267. package/dist/esm/extensions/react-flow/edges/EdgeStraight.js +2 -0
  268. package/dist/esm/extensions/react-flow/edges/EdgeStraight.js.map +1 -0
  269. package/dist/esm/extensions/react-flow/edges/utils.js +27 -1
  270. package/dist/esm/extensions/react-flow/edges/utils.js.map +1 -1
  271. package/dist/esm/extensions/react-flow/handles/HandleDefault.js +16 -17
  272. package/dist/esm/extensions/react-flow/handles/HandleDefault.js.map +1 -1
  273. package/dist/esm/extensions/react-flow/index.js +6 -3
  274. package/dist/esm/extensions/react-flow/index.js.map +1 -1
  275. package/dist/esm/extensions/react-flow/markers/MarkerArrowClosedInverse.js +3 -0
  276. package/dist/esm/extensions/react-flow/markers/MarkerArrowClosedInverse.js.map +1 -1
  277. package/dist/esm/extensions/react-flow/markers/ReactFlowMarkers.js +17 -2
  278. package/dist/esm/extensions/react-flow/markers/ReactFlowMarkers.js.map +1 -1
  279. package/dist/esm/extensions/react-flow/minimap/MiniMap.js +22 -3
  280. package/dist/esm/extensions/react-flow/minimap/MiniMap.js.map +1 -1
  281. package/dist/esm/extensions/react-flow/minimap/MiniMapV12.js +36 -0
  282. package/dist/esm/extensions/react-flow/minimap/MiniMapV12.js.map +1 -0
  283. package/dist/esm/extensions/react-flow/nodes/NodeContent.js +84 -81
  284. package/dist/esm/extensions/react-flow/nodes/NodeContent.js.map +1 -1
  285. package/dist/esm/extensions/react-flow/nodes/NodeDefault.js +1 -1
  286. package/dist/esm/extensions/react-flow/nodes/NodeDefault.js.map +1 -1
  287. package/dist/esm/extensions/react-flow/nodes/nodeUtils.js +2 -1
  288. package/dist/esm/extensions/react-flow/nodes/nodeUtils.js.map +1 -1
  289. package/dist/esm/extensions/react-flow/versionsupport.js +15 -13
  290. package/dist/esm/extensions/react-flow/versionsupport.js.map +1 -1
  291. package/dist/esm/index.js +1 -2
  292. package/dist/esm/index.js.map +1 -1
  293. package/dist/types/cmem/markdown/Markdown.d.ts +1 -8
  294. package/dist/types/cmem/react-flow/ReactFlow/ReactFlow.d.ts +38 -6
  295. package/dist/types/cmem/react-flow/ReactFlow/ReactFlowV12.d.ts +7 -0
  296. package/dist/types/cmem/react-flow/ReactFlow/ReactFlowV9.d.ts +7 -0
  297. package/dist/types/cmem/react-flow/configuration/graph.d.ts +9 -9
  298. package/dist/types/cmem/react-flow/configuration/linking.d.ts +6 -6
  299. package/dist/types/cmem/react-flow/configuration/unspecified.d.ts +3 -3
  300. package/dist/types/cmem/react-flow/configuration/workflow.d.ts +4 -4
  301. package/dist/types/cmem/react-flow/extensions/scrollOnDragHook.d.ts +19 -16
  302. package/dist/types/cmem/react-flow/index.d.ts +2 -1
  303. package/dist/types/common/index.d.ts +5 -1
  304. package/dist/types/common/utils/CssCustomProperties.d.ts +6 -6
  305. package/dist/types/common/utils/colorCalculateDistance.d.ts +12 -0
  306. package/dist/types/common/utils/colorHash.d.ts +29 -0
  307. package/dist/types/common/utils/getColorConfiguration.d.ts +1 -1
  308. package/dist/types/components/AutoSuggestion/AutoSuggestion.d.ts +7 -17
  309. package/dist/types/components/AutoSuggestion/AutoSuggestionList.d.ts +4 -4
  310. package/dist/types/components/AutoSuggestion/ExtendedCodeEditor.d.ts +0 -1
  311. package/dist/types/components/AutocompleteField/AutoCompleteField.d.ts +18 -10
  312. package/dist/types/components/AutocompleteField/autoCompleteFieldUtils.d.ts +2 -2
  313. package/dist/types/components/AutocompleteField/interfaces.d.ts +2 -4
  314. package/dist/types/components/Button/Button.d.ts +13 -26
  315. package/dist/types/components/Chat/ChatArea.d.ts +34 -0
  316. package/dist/types/components/Chat/ChatContent.d.ts +49 -0
  317. package/dist/types/components/Chat/ChatContentCollapsed.d.ts +28 -0
  318. package/dist/types/components/Chat/ChatField.d.ts +20 -0
  319. package/dist/types/components/Chat/index.d.ts +4 -0
  320. package/dist/types/components/CodeAutocompleteField/index.d.ts +5 -1
  321. package/dist/types/components/Dialog/Modal.d.ts +11 -2
  322. package/dist/types/components/Dialog/ModalContext.d.ts +13 -0
  323. package/dist/types/components/Dialog/SimpleDialog.d.ts +0 -1
  324. package/dist/types/components/Dialog/index.d.ts +1 -0
  325. package/dist/types/components/Form/FieldItem.d.ts +1 -25
  326. package/dist/types/components/Form/FieldSet.d.ts +1 -21
  327. package/dist/types/components/Icon/BaseIcon.d.ts +1 -10
  328. package/dist/types/components/Icon/IconButton.d.ts +2 -1
  329. package/dist/types/components/Icon/canonicalIconNames.d.ts +7 -0
  330. package/dist/types/components/MultiSelect/MultiSelect.d.ts +17 -33
  331. package/dist/types/components/MultiSuggestField/index.d.ts +1 -0
  332. package/dist/types/components/Notification/Notification.d.ts +1 -24
  333. package/dist/types/components/OverviewItem/OverviewItemList.d.ts +1 -6
  334. package/dist/types/components/Spinner/Spinner.d.ts +16 -14
  335. package/dist/types/components/SuggestField/index.d.ts +6 -2
  336. package/dist/types/components/Table/Table.d.ts +1 -1
  337. package/dist/types/components/Table/TableContainer.d.ts +2 -2
  338. package/dist/types/components/Tabs/Tab.d.ts +4 -4
  339. package/dist/types/components/TextField/SearchField.d.ts +1 -1
  340. package/dist/types/components/TextReducer/TextReducer.d.ts +28 -0
  341. package/dist/types/components/Tooltip/Tooltip.d.ts +2 -1
  342. package/dist/types/components/Typography/OverflowText.d.ts +0 -5
  343. package/dist/types/components/VisualTour/VisualTour.d.ts +39 -0
  344. package/dist/types/components/index.d.ts +7 -7
  345. package/dist/types/configuration/constants.d.ts +2 -0
  346. package/dist/types/extensions/codemirror/CodeMirror.d.ts +9 -6
  347. package/dist/types/extensions/codemirror/hooks/useCodemirrorModeExtension.hooks.d.ts +2 -0
  348. package/dist/types/extensions/react-flow/edges/EdgeBezier.d.ts +20 -0
  349. package/dist/types/extensions/react-flow/edges/EdgeDefault.d.ts +29 -7
  350. package/dist/types/extensions/react-flow/edges/EdgeDefaultV12.d.ts +16 -27
  351. package/dist/types/extensions/react-flow/edges/EdgeDefs.d.ts +3 -0
  352. package/dist/types/extensions/react-flow/edges/EdgeLabel.d.ts +1 -1
  353. package/dist/types/extensions/react-flow/edges/EdgeNew.d.ts +3 -0
  354. package/dist/types/extensions/react-flow/edges/EdgeStep.d.ts +23 -5
  355. package/dist/types/extensions/react-flow/edges/EdgeStraight.d.ts +1 -0
  356. package/dist/types/extensions/react-flow/edges/utils.d.ts +2 -0
  357. package/dist/types/extensions/react-flow/handles/HandleDefault.d.ts +12 -6
  358. package/dist/types/extensions/react-flow/index.d.ts +6 -2
  359. package/dist/types/extensions/react-flow/markers/MarkerArrowClosedInverse.d.ts +3 -0
  360. package/dist/types/extensions/react-flow/markers/ReactFlowMarkers.d.ts +21 -2
  361. package/dist/types/extensions/react-flow/minimap/MiniMap.d.ts +18 -7
  362. package/dist/types/extensions/react-flow/minimap/MiniMapV12.d.ts +10 -0
  363. package/dist/types/extensions/react-flow/nodes/NodeContent.d.ts +15 -12
  364. package/dist/types/extensions/react-flow/nodes/NodeDefault.d.ts +7 -3
  365. package/dist/types/extensions/react-flow/nodes/nodeUtils.d.ts +12 -5
  366. package/dist/types/extensions/react-flow/versionsupport.d.ts +8 -4
  367. package/dist/types/index.d.ts +1 -2
  368. package/package.json +6 -6
  369. package/src/_shame.scss +1 -1
  370. package/src/cmem/markdown/Markdown.stories.tsx +0 -1
  371. package/src/cmem/markdown/Markdown.tsx +4 -12
  372. package/src/cmem/react-flow/ReactFlow/ReactFlow.stories.tsx +472 -366
  373. package/src/cmem/react-flow/ReactFlow/ReactFlow.tsx +176 -72
  374. package/src/cmem/react-flow/ReactFlow/ReactFlowV12.tsx +56 -0
  375. package/src/cmem/react-flow/ReactFlow/ReactFlowV9.tsx +29 -0
  376. package/src/cmem/react-flow/StickyNoteModal/StickyNoteModal.tsx +0 -1
  377. package/src/cmem/react-flow/_canvas.scss +1 -1
  378. package/src/cmem/react-flow/_edges.scss +13 -13
  379. package/src/cmem/react-flow/_handles.scss +18 -18
  380. package/src/cmem/react-flow/_minimap.scss +29 -19
  381. package/src/cmem/react-flow/configuration/_colors-graph.scss +19 -36
  382. package/src/cmem/react-flow/configuration/_colors-linking.scss +14 -26
  383. package/src/cmem/react-flow/configuration/_colors-workflow.scss +15 -27
  384. package/src/cmem/react-flow/configuration/graph.ts +13 -11
  385. package/src/cmem/react-flow/configuration/linking.ts +3 -1
  386. package/src/cmem/react-flow/configuration/unspecified.ts +2 -1
  387. package/src/cmem/react-flow/configuration/workflow.ts +3 -1
  388. package/src/cmem/react-flow/extensions/scrollOnDragHook.ts +19 -21
  389. package/src/cmem/react-flow/index.ts +2 -1
  390. package/src/cmem/react-flow/nodes/_colors.scss +20 -20
  391. package/src/common/index.ts +5 -0
  392. package/src/common/scss/_color-functions.scss +144 -0
  393. package/src/common/utils/CssCustomProperties.ts +22 -15
  394. package/src/common/utils/colorCalculateDistance.ts +28 -0
  395. package/src/common/utils/colorHash.ts +195 -0
  396. package/src/common/utils/getColorConfiguration.ts +45 -7
  397. package/src/components/Accordion/accordion.scss +6 -5
  398. package/src/components/Application/_colors.scss +15 -0
  399. package/src/components/Application/_header.scss +7 -7
  400. package/src/components/Application/_toolbar.scss +5 -5
  401. package/src/components/Application/application.scss +1 -0
  402. package/src/components/Application/stories/Application.stories.tsx +2 -2
  403. package/src/components/Application/stories/ColorPalettes.stories.tsx +885 -0
  404. package/src/components/AutoSuggestion/AutoSuggestion.tsx +16 -32
  405. package/src/components/AutoSuggestion/AutoSuggestionList.tsx +13 -6
  406. package/src/components/AutoSuggestion/ExtendedCodeEditor.tsx +1 -7
  407. package/src/components/AutocompleteField/AutoCompleteField.tsx +21 -13
  408. package/src/components/AutocompleteField/autoCompleteFieldUtils.tsx +2 -2
  409. package/src/components/AutocompleteField/interfaces.ts +1 -5
  410. package/src/components/Button/Button.stories.tsx +7 -5
  411. package/src/components/Button/Button.tsx +23 -63
  412. package/src/components/Button/button.scss +94 -32
  413. package/src/components/Card/card.scss +13 -13
  414. package/src/components/Chat/ChatArea.tsx +114 -0
  415. package/src/components/Chat/ChatContent.tsx +132 -0
  416. package/src/components/Chat/ChatContentCollapsed.tsx +64 -0
  417. package/src/components/Chat/ChatField.tsx +75 -0
  418. package/src/components/Chat/_chat.scss +86 -0
  419. package/src/components/Chat/index.ts +4 -0
  420. package/src/components/Chat/stories/ChatArea.stories.tsx +61 -0
  421. package/src/components/Chat/stories/ChatContent.stories.tsx +61 -0
  422. package/src/components/Chat/stories/ChatContentCollapsed.stories.tsx +24 -0
  423. package/src/components/Chat/stories/ChatField.stories.tsx +23 -0
  424. package/src/components/Checkbox/checkbox.scss +2 -2
  425. package/src/components/CodeAutocompleteField/index.ts +8 -1
  426. package/src/components/ContentGroup/ContentGroup.tsx +1 -1
  427. package/src/components/ContentGroup/_contentgroup.scss +8 -2
  428. package/src/components/Dialog/Modal.tsx +30 -2
  429. package/src/components/Dialog/ModalContext.tsx +48 -0
  430. package/src/components/Dialog/SimpleDialog.tsx +2 -1
  431. package/src/components/Dialog/dialog.scss +4 -1
  432. package/src/components/Dialog/index.ts +1 -0
  433. package/src/components/Dialog/stories/Modal.stories.tsx +143 -2
  434. package/src/components/Form/FieldItem.tsx +2 -57
  435. package/src/components/Form/FieldSet.tsx +1 -45
  436. package/src/components/Form/form.scss +2 -2
  437. package/src/components/Icon/BaseIcon.tsx +0 -14
  438. package/src/components/Icon/IconButton.tsx +2 -1
  439. package/src/components/Icon/canonicalIconNames.tsx +7 -0
  440. package/src/components/Icon/icon.scss +6 -0
  441. package/src/components/Icon/stories/Icon.stories.tsx +65 -5
  442. package/src/components/Icon/stories/IconButton.stories.tsx +2 -1
  443. package/src/components/Label/label.scss +1 -1
  444. package/src/components/Link/link.scss +1 -1
  445. package/src/components/Menu/menu.scss +4 -27
  446. package/src/components/MultiSelect/MultiSelect.tsx +23 -60
  447. package/src/components/MultiSuggestField/MultiSuggestField.stories.tsx +1 -1
  448. package/src/components/MultiSuggestField/index.ts +1 -0
  449. package/src/components/Notification/Notification.stories.tsx +24 -10
  450. package/src/components/Notification/Notification.tsx +3 -51
  451. package/src/components/Notification/notification.scss +10 -5
  452. package/src/components/OverviewItem/OverviewItemList.tsx +0 -7
  453. package/src/components/OverviewItem/overviewitem.scss +6 -9
  454. package/src/components/OverviewItem/stories/OverviewItemList.stories.tsx +0 -1
  455. package/src/components/Pagination/pagination.scss +1 -1
  456. package/src/components/ProgressBar/Stories/ProgressBar.stories.tsx +7 -1
  457. package/src/components/Select/Select.stories.tsx +1 -1
  458. package/src/components/Spinner/Spinner.tsx +30 -23
  459. package/src/components/Spinner/Stories/spinner.stories.tsx +1 -1
  460. package/src/components/Spinner/spinner.scss +10 -5
  461. package/src/components/Sticky/sticky.scss +7 -7
  462. package/src/components/SuggestField/index.ts +7 -1
  463. package/src/components/Table/Table.tsx +1 -2
  464. package/src/components/Table/TableContainer.tsx +2 -2
  465. package/src/components/Table/table.scss +34 -46
  466. package/src/components/Tabs/Tab.tsx +3 -2
  467. package/src/components/Tabs/stories/Tab.stories.tsx +1 -1
  468. package/src/components/Tabs/stories/TabPanel.stories.tsx +1 -1
  469. package/src/components/Tabs/stories/TabTitle.stories.tsx +1 -1
  470. package/src/components/Tag/tag.scss +89 -68
  471. package/src/components/TextField/SearchField.tsx +1 -6
  472. package/src/components/TextField/TextArea.tsx +2 -2
  473. package/src/components/TextField/stories/SearchField.stories.tsx +0 -4
  474. package/src/components/TextField/textfield.scss +31 -23
  475. package/src/components/TextReducer/TextReducer.stories.tsx +47 -0
  476. package/src/components/TextReducer/TextReducer.tsx +98 -0
  477. package/src/components/Tooltip/Tooltip.stories.tsx +2 -0
  478. package/src/components/Tooltip/Tooltip.test.tsx +63 -0
  479. package/src/components/Tooltip/Tooltip.tsx +7 -2
  480. package/src/components/Tooltip/tooltip.scss +7 -3
  481. package/src/components/Typography/OverflowText.tsx +1 -6
  482. package/src/components/Typography/typography.scss +1 -1
  483. package/src/components/VisualTour/VisualTour.tsx +381 -0
  484. package/src/components/VisualTour/stories/VisualTour.stories.tsx +112 -0
  485. package/src/components/VisualTour/stories/defaultTour.ts +42 -0
  486. package/src/components/VisualTour/visualTour.scss +83 -0
  487. package/src/components/index.scss +2 -0
  488. package/src/components/index.ts +7 -7
  489. package/src/configuration/_libprefix.scss +1 -0
  490. package/src/configuration/_palettes.scss +40 -0
  491. package/src/configuration/_variables.scss +21 -20
  492. package/src/configuration/constants.ts +2 -0
  493. package/src/extensions/codemirror/CodeMirror.tsx +15 -10
  494. package/src/extensions/codemirror/_codemirror.scss +2 -2
  495. package/src/extensions/codemirror/hooks/useCodemirrorModeExtension.hooks.ts +4 -0
  496. package/src/extensions/react-flow/_config.scss +7 -6
  497. package/src/extensions/react-flow/_react-flow.scss +1 -4
  498. package/src/extensions/react-flow/_react-flow_v12.scss +211 -3
  499. package/src/extensions/react-flow/edges/EdgeBezier.tsx +47 -0
  500. package/src/extensions/react-flow/edges/EdgeDefault.tsx +51 -13
  501. package/src/extensions/react-flow/edges/EdgeDefaultV12.tsx +79 -78
  502. package/src/extensions/react-flow/edges/EdgeDefs.tsx +3 -0
  503. package/src/extensions/react-flow/edges/EdgeLabel.tsx +1 -1
  504. package/src/extensions/react-flow/edges/EdgeNew.tsx +52 -0
  505. package/src/extensions/react-flow/edges/EdgeStep.tsx +41 -6
  506. package/src/extensions/react-flow/edges/EdgeStraight.tsx +1 -0
  507. package/src/extensions/react-flow/edges/_edges.scss +14 -4
  508. package/src/extensions/react-flow/edges/stories/EdgeDefault.stories.tsx +5 -6
  509. package/src/extensions/react-flow/edges/stories/EdgeDefaultV12.stories.tsx +32 -25
  510. package/src/extensions/react-flow/edges/utils.ts +19 -1
  511. package/src/extensions/react-flow/handles/HandleDefault.tsx +40 -35
  512. package/src/extensions/react-flow/handles/_handles.scss +2 -2
  513. package/src/extensions/react-flow/handles/stories/HandleDefault.stories.tsx +4 -6
  514. package/src/extensions/react-flow/index.ts +7 -5
  515. package/src/extensions/react-flow/markers/MarkerArrowClosedInverse.tsx +3 -0
  516. package/src/extensions/react-flow/markers/ReactFlowMarkers.tsx +58 -1
  517. package/src/extensions/react-flow/markers/_markers.scss +31 -0
  518. package/src/extensions/react-flow/minimap/MiniMap.stories.tsx +12 -18
  519. package/src/extensions/react-flow/minimap/MiniMap.tsx +44 -9
  520. package/src/extensions/react-flow/minimap/MiniMapV12.tsx +39 -0
  521. package/src/extensions/react-flow/minimap/_minimap.scss +14 -0
  522. package/src/extensions/react-flow/nodes/NodeContent.tsx +135 -113
  523. package/src/extensions/react-flow/nodes/NodeDefault.tsx +9 -5
  524. package/src/extensions/react-flow/nodes/_nodes.scss +29 -23
  525. package/src/extensions/react-flow/nodes/nodeUtils.tsx +15 -6
  526. package/src/extensions/react-flow/nodes/stories/NodeDefault.stories.tsx +3 -5
  527. package/src/extensions/react-flow/versionsupport.ts +17 -15
  528. package/src/extensions/uppy/_fileupload.scss +2 -2
  529. package/src/includes/blueprintjs/_colormap.scss +150 -0
  530. package/src/includes/blueprintjs/_variables.scss +39 -9
  531. package/src/includes/carbon-components/_variables.scss +23 -8
  532. package/src/index.scss +11 -0
  533. package/src/index.ts +1 -2
  534. package/dist/cjs/components/AutoSuggestion/index.js +0 -8
  535. package/dist/cjs/components/AutoSuggestion/index.js.map +0 -1
  536. package/dist/cjs/components/AutocompleteField/index.js.map +0 -1
  537. package/dist/cjs/components/CodeAutocompleteField/CodeAutocompleteField.js +0 -32
  538. package/dist/cjs/components/CodeAutocompleteField/CodeAutocompleteField.js.map +0 -1
  539. package/dist/cjs/components/MultiSuggestField/MultiSuggestField.js +0 -37
  540. package/dist/cjs/components/MultiSuggestField/MultiSuggestField.js.map +0 -1
  541. package/dist/cjs/components/SuggestField/SuggestField.js +0 -38
  542. package/dist/cjs/components/SuggestField/SuggestField.js.map +0 -1
  543. package/dist/cjs/extensions/react-flow/edges/edgeTypes.js +0 -28
  544. package/dist/cjs/extensions/react-flow/edges/edgeTypes.js.map +0 -1
  545. package/dist/cjs/extensions/react-flow/nodes/nodeTypes.js +0 -18
  546. package/dist/cjs/extensions/react-flow/nodes/nodeTypes.js.map +0 -1
  547. package/dist/cjs/legacy-replacements/Button/AffirmativeButton.js +0 -25
  548. package/dist/cjs/legacy-replacements/Button/AffirmativeButton.js.map +0 -1
  549. package/dist/cjs/legacy-replacements/Button/Button.js +0 -65
  550. package/dist/cjs/legacy-replacements/Button/Button.js.map +0 -1
  551. package/dist/cjs/legacy-replacements/Button/DismissiveButton.js +0 -25
  552. package/dist/cjs/legacy-replacements/Button/DismissiveButton.js.map +0 -1
  553. package/dist/cjs/legacy-replacements/Button/DisruptiveButton.js +0 -25
  554. package/dist/cjs/legacy-replacements/Button/DisruptiveButton.js.map +0 -1
  555. package/dist/cjs/legacy-replacements/Checkbox/Checkbox.js +0 -58
  556. package/dist/cjs/legacy-replacements/Checkbox/Checkbox.js.map +0 -1
  557. package/dist/cjs/legacy-replacements/Radio/RadioButton.js +0 -51
  558. package/dist/cjs/legacy-replacements/Radio/RadioButton.js.map +0 -1
  559. package/dist/cjs/legacy-replacements/Tabs/Tabs.js +0 -34
  560. package/dist/cjs/legacy-replacements/Tabs/Tabs.js.map +0 -1
  561. package/dist/cjs/legacy-replacements/TextField/TextField.js +0 -75
  562. package/dist/cjs/legacy-replacements/TextField/TextField.js.map +0 -1
  563. package/dist/cjs/legacy-replacements/index.js +0 -22
  564. package/dist/cjs/legacy-replacements/index.js.map +0 -1
  565. package/dist/esm/components/AutoSuggestion/index.js +0 -4
  566. package/dist/esm/components/AutoSuggestion/index.js.map +0 -1
  567. package/dist/esm/components/AutocompleteField/index.js +0 -7
  568. package/dist/esm/components/AutocompleteField/index.js.map +0 -1
  569. package/dist/esm/components/CodeAutocompleteField/CodeAutocompleteField.js +0 -37
  570. package/dist/esm/components/CodeAutocompleteField/CodeAutocompleteField.js.map +0 -1
  571. package/dist/esm/components/MultiSuggestField/MultiSuggestField.js +0 -42
  572. package/dist/esm/components/MultiSuggestField/MultiSuggestField.js.map +0 -1
  573. package/dist/esm/components/SuggestField/SuggestField.js +0 -43
  574. package/dist/esm/components/SuggestField/SuggestField.js.map +0 -1
  575. package/dist/esm/extensions/react-flow/edges/edgeTypes.js +0 -25
  576. package/dist/esm/extensions/react-flow/edges/edgeTypes.js.map +0 -1
  577. package/dist/esm/extensions/react-flow/nodes/nodeTypes.js +0 -15
  578. package/dist/esm/extensions/react-flow/nodes/nodeTypes.js.map +0 -1
  579. package/dist/esm/legacy-replacements/Button/AffirmativeButton.js.map +0 -1
  580. package/dist/esm/legacy-replacements/Button/Button.js +0 -69
  581. package/dist/esm/legacy-replacements/Button/Button.js.map +0 -1
  582. package/dist/esm/legacy-replacements/Button/DismissiveButton.js +0 -30
  583. package/dist/esm/legacy-replacements/Button/DismissiveButton.js.map +0 -1
  584. package/dist/esm/legacy-replacements/Button/DisruptiveButton.js +0 -30
  585. package/dist/esm/legacy-replacements/Button/DisruptiveButton.js.map +0 -1
  586. package/dist/esm/legacy-replacements/Checkbox/Checkbox.js +0 -63
  587. package/dist/esm/legacy-replacements/Checkbox/Checkbox.js.map +0 -1
  588. package/dist/esm/legacy-replacements/Radio/RadioButton.js +0 -56
  589. package/dist/esm/legacy-replacements/Radio/RadioButton.js.map +0 -1
  590. package/dist/esm/legacy-replacements/Tabs/Tabs.js +0 -39
  591. package/dist/esm/legacy-replacements/Tabs/Tabs.js.map +0 -1
  592. package/dist/esm/legacy-replacements/TextField/TextField.js +0 -82
  593. package/dist/esm/legacy-replacements/TextField/TextField.js.map +0 -1
  594. package/dist/esm/legacy-replacements/index.js +0 -10
  595. package/dist/esm/legacy-replacements/index.js.map +0 -1
  596. package/dist/types/components/AutoSuggestion/index.d.ts +0 -5
  597. package/dist/types/components/AutocompleteField/index.d.ts +0 -5
  598. package/dist/types/components/CodeAutocompleteField/CodeAutocompleteField.d.ts +0 -11
  599. package/dist/types/components/MultiSuggestField/MultiSuggestField.d.ts +0 -19
  600. package/dist/types/components/SuggestField/SuggestField.d.ts +0 -21
  601. package/dist/types/extensions/react-flow/edges/edgeTypes.d.ts +0 -16
  602. package/dist/types/extensions/react-flow/nodes/nodeTypes.d.ts +0 -13
  603. package/dist/types/legacy-replacements/Button/AffirmativeButton.d.ts +0 -3
  604. package/dist/types/legacy-replacements/Button/Button.d.ts +0 -6
  605. package/dist/types/legacy-replacements/Button/DismissiveButton.d.ts +0 -3
  606. package/dist/types/legacy-replacements/Button/DisruptiveButton.d.ts +0 -3
  607. package/dist/types/legacy-replacements/Checkbox/Checkbox.d.ts +0 -3
  608. package/dist/types/legacy-replacements/Radio/RadioButton.d.ts +0 -3
  609. package/dist/types/legacy-replacements/Tabs/Tabs.d.ts +0 -24
  610. package/dist/types/legacy-replacements/TextField/TextField.d.ts +0 -3
  611. package/dist/types/legacy-replacements/index.d.ts +0 -10
  612. package/src/components/AutoSuggestion/index.ts +0 -7
  613. package/src/components/AutocompleteField/AutoCompleteField.stories.tsx +0 -14
  614. package/src/components/AutocompleteField/index.ts +0 -6
  615. package/src/components/CodeAutocompleteField/CodeAutocompleteField.tsx +0 -22
  616. package/src/components/MultiSuggestField/MultiSuggestField.tsx +0 -35
  617. package/src/components/SuggestField/SuggestField.tsx +0 -33
  618. package/src/extensions/react-flow/edges/edgeTypes.ts +0 -29
  619. package/src/extensions/react-flow/nodes/nodeTypes.ts +0 -15
  620. package/src/legacy-replacements/Button/AffirmativeButton.tsx +0 -12
  621. package/src/legacy-replacements/Button/Button.tsx +0 -80
  622. package/src/legacy-replacements/Button/DismissiveButton.tsx +0 -12
  623. package/src/legacy-replacements/Button/DisruptiveButton.tsx +0 -12
  624. package/src/legacy-replacements/Checkbox/Checkbox.tsx +0 -59
  625. package/src/legacy-replacements/Radio/RadioButton.tsx +0 -37
  626. package/src/legacy-replacements/Tabs/Tabs.stories.tsx +0 -36
  627. package/src/legacy-replacements/Tabs/Tabs.tsx +0 -69
  628. package/src/legacy-replacements/TextField/TextField.tsx +0 -89
  629. package/src/legacy-replacements/index.ts +0 -11
@@ -0,0 +1,86 @@
1
+ .#{$eccgui}-chat__content {
2
+ @extend .bp5-elevation-1;
3
+
4
+ position: relative;
5
+ z-index: 0;
6
+ min-height: $button-height;
7
+ padding: $eccgui-size-inline-whitespace;
8
+ overflow: auto;
9
+ background-color: var(--#{$eccgui}-chat__content-background);
10
+ border-radius: 3 * $pt-border-radius;
11
+ }
12
+
13
+ .#{$eccgui}-chat__content--display-free {
14
+ --#{$eccgui}-chat__content-background: transparent;
15
+
16
+ padding: 1px 0;
17
+ box-shadow: none;
18
+ }
19
+
20
+ .#{$eccgui}-chat__content--display-bubble {
21
+ margin-left: 0.75 * $eccgui-size-block-whitespace;
22
+
23
+ &.#{$eccgui}-chat__content--align-right {
24
+ margin-right: 0.75 * $eccgui-size-block-whitespace;
25
+ margin-left: none;
26
+ }
27
+ }
28
+
29
+ .#{$eccgui}-chat__content-wrapper {
30
+ --#{$eccgui}-chat__content-background: #{$light-gray5};
31
+ &:has(.#{$eccgui}-chat__content--display-bubble) {
32
+ position: relative;
33
+
34
+ &::before {
35
+ @extend .bp5-elevation-1;
36
+
37
+ position: absolute;
38
+ top: calc(#{mini-units(3)} - #{0.5 * $eccgui-size-block-whitespace});
39
+ left: 0.25 * $eccgui-size-block-whitespace;
40
+ z-index: 1;
41
+ width: $eccgui-size-block-whitespace;
42
+ height: $eccgui-size-block-whitespace;
43
+ content: " ";
44
+ background-color: var(--#{$eccgui}-chat__content-background);
45
+ clip-path: polygon(-5px calc(100% + 5px), -5px -5px, calc(100% + 5px) calc(100% + 5px));
46
+ transform: rotate(45deg);
47
+ }
48
+ }
49
+ &:has(.#{$eccgui}-chat__content--display-bubble.#{$eccgui}-chat__content--align-right) {
50
+ &::before {
51
+ right: 0.25 * $eccgui-size-block-whitespace;
52
+ left: auto;
53
+ transform: rotate(225deg);
54
+ }
55
+ }
56
+ }
57
+
58
+ .#{$eccgui}-chat__content--limitheight {
59
+ max-height: 50vh;
60
+ }
61
+
62
+ .#{$eccgui}-chat__inputfield {
63
+ min-height: mini-units(9);
64
+ max-height: 39vh;
65
+ resize: none !important;
66
+ }
67
+
68
+ .#{$eccgui}-chat__area {
69
+ padding: 0.25rem;
70
+ background-color: $card-background-color;
71
+ }
72
+
73
+ .#{$eccgui}-chat__area-contentwidth {
74
+ width: 100%;
75
+ margin: 0 auto;
76
+
77
+ .#{$eccgui}-chat__area--small & {
78
+ max-width: 40rem;
79
+ }
80
+ .#{$eccgui}-chat__area--medium & {
81
+ max-width: 60rem;
82
+ }
83
+ .#{$eccgui}-chat__area--large & {
84
+ max-width: 80rem;
85
+ }
86
+ }
@@ -0,0 +1,4 @@
1
+ export * from "./ChatArea";
2
+ export * from "./ChatContent";
3
+ export * from "./ChatContentCollapsed";
4
+ export * from "./ChatField";
@@ -0,0 +1,61 @@
1
+ import React from "react";
2
+ import { Meta, StoryFn } from "@storybook/react";
3
+
4
+ import {
5
+ ChatArea,
6
+ ChatContent,
7
+ ChatContentCollapsed,
8
+ ChatField,
9
+ ContentGroup,
10
+ Spacing,
11
+ TitleSubsection,
12
+ } from "../../../index";
13
+
14
+ import { BasicExample as ContentGroupExample } from "./../../ContentGroup/ContentGroup.stories";
15
+ import { Default as ShortChatBubble, LongChatBubble } from "./ChatContent.stories";
16
+ import { Default as ChatFieldExample } from "./ChatField.stories";
17
+
18
+ export default {
19
+ title: "Components/Chat/ChatArea",
20
+ component: ChatArea,
21
+ argTypes: {},
22
+ } as Meta<typeof ChatArea>;
23
+
24
+ let forceupdate = 0;
25
+ const TemplateFull: StoryFn<typeof ChatArea> = (args) => (
26
+ <div style={args.useAbsoluteSpace ? { position: "relative", height: "75vh" } : undefined}>
27
+ <ChatArea {...args} key={forceupdate++} />
28
+ </div>
29
+ );
30
+
31
+ export const Default = TemplateFull.bind({});
32
+ Default.args = {
33
+ chatField: <ChatField {...ChatFieldExample.args} />,
34
+ children: [
35
+ <ChatContent {...ShortChatBubble.args} alignment="right" indentationSize="medium" />,
36
+ <ChatContentCollapsed textReducerProps={{ maxNodes: 1 }}>
37
+ <ChatContent
38
+ avatar={undefined}
39
+ displayType="free"
40
+ statusLine={
41
+ <>
42
+ <strong>Bot</strong> right now
43
+ </>
44
+ }
45
+ >
46
+ <TitleSubsection>Some technical content</TitleSubsection>
47
+ <Spacing size="small" />
48
+ <ContentGroup {...ContentGroupExample.args} style={{ marginRight: "2px" }} />
49
+ </ChatContent>
50
+ </ChatContentCollapsed>,
51
+ <ChatContent {...ShortChatBubble.args} alignment="right" indentationSize="medium" />,
52
+ <ChatContentCollapsed>
53
+ <ChatContent {...LongChatBubble.args} />
54
+ </ChatContentCollapsed>,
55
+ <ChatContent {...ShortChatBubble.args} alignment="right" indentationSize="medium" />,
56
+ <ChatContent {...ShortChatBubble.args} />,
57
+ ],
58
+ autoSpacingSize: "medium",
59
+ autoScrollTo: "last",
60
+ useAbsoluteSpace: true,
61
+ };
@@ -0,0 +1,61 @@
1
+ import React from "react";
2
+ import { LoremIpsum } from "react-lorem-ipsum";
3
+ import { Meta, StoryFn } from "@storybook/react";
4
+
5
+ import { ChatContent, Depiction, HtmlContentBlock, Icon, OverflowText } from "../../../index";
6
+
7
+ import canonicalIcons from "./../../Icon/canonicalIconNames";
8
+
9
+ const allIcons = new Map([
10
+ ...Object.keys(canonicalIcons).map((keyId) => {
11
+ return [`Icon: ${keyId}`, <Depiction image={<Icon name={keyId} />} />];
12
+ }),
13
+ ]);
14
+
15
+ const exampleImages = {
16
+ None: undefined,
17
+ ...Object.fromEntries(allIcons),
18
+ };
19
+
20
+ export default {
21
+ title: "Components/Chat/ChatContent",
22
+ component: ChatContent,
23
+ argTypes: {
24
+ avatar: {
25
+ control: "select",
26
+ options: Object.keys(exampleImages),
27
+ mapping: exampleImages,
28
+ },
29
+ },
30
+ } as Meta<typeof ChatContent>;
31
+
32
+ let update = 0;
33
+ const TemplateFull: StoryFn<typeof ChatContent> = (args) => <ChatContent {...args} key={update++} />;
34
+
35
+ export const Default = TemplateFull.bind({});
36
+ Default.args = {
37
+ children: (
38
+ <HtmlContentBlock>
39
+ <LoremIpsum p={1} avgSentencesPerParagraph={5} random={false} />
40
+ </HtmlContentBlock>
41
+ ),
42
+ avatar: <Depiction image={<Icon name={"application-useraccount"} />} />,
43
+ statusLine: (
44
+ <OverflowText>
45
+ <strong>Username</strong> 25 minutes ago
46
+ </OverflowText>
47
+ ),
48
+ };
49
+
50
+ export const LongChatBubble = TemplateFull.bind({});
51
+ LongChatBubble.args = {
52
+ ...Default.args,
53
+ avatar: undefined,
54
+ displayType: "simple",
55
+ children: (
56
+ <HtmlContentBlock>
57
+ <LoremIpsum p={7} avgSentencesPerParagraph={7} random={false} />
58
+ </HtmlContentBlock>
59
+ ),
60
+ limitHeight: true,
61
+ };
@@ -0,0 +1,24 @@
1
+ import React from "react";
2
+ import { Meta, StoryFn } from "@storybook/react";
3
+
4
+ import { ChatContent, ChatContentCollapsed } from "../../../index";
5
+
6
+ import { LongChatBubble } from "./ChatContent.stories";
7
+
8
+ export default {
9
+ title: "Components/Chat/ChatContentCollapsed",
10
+ component: ChatContentCollapsed,
11
+ argTypes: {},
12
+ } as Meta<typeof ChatContentCollapsed>;
13
+
14
+ let update = 0;
15
+ const TemplateFull: StoryFn<typeof ChatContentCollapsed> = (args) => (
16
+ <div key={update++}>
17
+ <ChatContentCollapsed {...args} />
18
+ </div>
19
+ );
20
+
21
+ export const Default = TemplateFull.bind({});
22
+ Default.args = {
23
+ children: <ChatContent {...LongChatBubble.args} />,
24
+ };
@@ -0,0 +1,23 @@
1
+ import React from "react";
2
+ import { Meta, StoryFn } from "@storybook/react";
3
+
4
+ import { ChatField, ContextMenu, MenuItem } from "../../../index";
5
+
6
+ export default {
7
+ title: "Components/Chat/ChatField",
8
+ component: ChatField,
9
+ argTypes: {},
10
+ } as Meta<typeof ChatField>;
11
+
12
+ let forceupdate = 0;
13
+ const TemplateFull: StoryFn<typeof ChatField> = (args) => <ChatField {...args} key={forceupdate++} />;
14
+
15
+ export const Default = TemplateFull.bind({});
16
+ Default.args = {
17
+ onTextSubmit: (value) => alert(value),
18
+ rightElement: (
19
+ <ContextMenu>
20
+ <MenuItem text="Just a test" />
21
+ </ContextMenu>
22
+ ),
23
+ };
@@ -24,9 +24,9 @@ $control-indicator-spacing: $eccgui-size-inline-whitespace !default;
24
24
  // $switch-background-color-active: rgba($gray1, 0.5) !default;
25
25
  // $switch-background-color-disabled: $button-background-color-disabled !default;
26
26
  $switch-checked-background-color: $eccgui-color-accent !default;
27
- $switch-checked-background-color-hover: rgba($switch-checked-background-color, $eccgui-opacity-narrow) !default;
27
+ $switch-checked-background-color-hover: eccgui-color-rgba($switch-checked-background-color, $eccgui-opacity-narrow) !default;
28
28
  $switch-checked-background-color-active: $switch-checked-background-color-hover !default;
29
- $switch-checked-background-color-disabled: rgba($switch-checked-background-color, $eccgui-opacity-disabled) !default;
29
+ $switch-checked-background-color-disabled: eccgui-color-rgba($switch-checked-background-color, $eccgui-opacity-disabled) !default;
30
30
 
31
31
  @import "~@blueprintjs/core/src/components/forms/controls"; // Checkbox, Radio, Switch
32
32
 
@@ -1 +1,8 @@
1
- export * from "./CodeAutocompleteField";
1
+ import { AutoSuggestionList, AutoSuggestionListProps } from "./../AutoSuggestion/AutoSuggestionList";
2
+ import { ExtendedCodeEditor, ExtendedCodeEditorProps } from "./../AutoSuggestion/ExtendedCodeEditor";
3
+
4
+ export * from "./../AutoSuggestion/AutoSuggestion";
5
+
6
+ export { AutoSuggestionList, ExtendedCodeEditor };
7
+
8
+ export type { AutoSuggestionListProps, ExtendedCodeEditorProps };
@@ -189,7 +189,7 @@ export const ContentGroup = ({
189
189
  </div>
190
190
  </ToolbarSection>
191
191
  )}
192
- {!isCollapsed && handlerToggleCollapse && actionOptions && (
192
+ {(!isCollapsed || !handlerToggleCollapse) && actionOptions && (
193
193
  <ToolbarSection className={`${eccgui}-contentgroup__header__options`}>
194
194
  <Spacing vertical size="small" />
195
195
  {actionOptions}
@@ -1,5 +1,11 @@
1
- $eccgui-color-scontentgroup-border-main: rgba($eccgui-color-workspace-text, $eccgui-opacity-muted) !default;
2
- $eccgui-color-scontentgroup-border-sub: rgba($eccgui-color-workspace-text, $eccgui-opacity-disabled) !default;
1
+ $eccgui-color-scontentgroup-border-main: eccgui-color-rgba(
2
+ $eccgui-color-workspace-text,
3
+ $eccgui-opacity-muted
4
+ ) !default;
5
+ $eccgui-color-scontentgroup-border-sub: eccgui-color-rgba(
6
+ $eccgui-color-workspace-text,
7
+ $eccgui-opacity-disabled
8
+ ) !default;
3
9
 
4
10
  .#{$eccgui}-contentgroup {
5
11
  --#{$eccgui}-color-contentgroup-border-main: #{$eccgui-color-scontentgroup-border-main};
@@ -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,48 @@
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 [openModalStack, setOpenModalStack] = React.useState<string[]>([]);
23
+
24
+ const setModalOpen = React.useCallback((modalId: string, isOpen: boolean) => {
25
+ setOpenModalStack((old) => {
26
+ if (isOpen) {
27
+ return [...old, modalId];
28
+ } else {
29
+ const idx = old.findIndex((id) => modalId === id);
30
+ switch (idx) {
31
+ case -1:
32
+ // Trying to close modal that has not been registered as open!
33
+ return old;
34
+ case old.length - 1:
35
+ return old.slice(0, idx);
36
+ default:
37
+ // Modal in between is closed. Consider all modals after it also as closed.
38
+ return old.slice(0, idx);
39
+ }
40
+ }
41
+ });
42
+ }, []);
43
+
44
+ return {
45
+ openModalStack: openModalStack.length ? [...openModalStack] : undefined,
46
+ setModalOpen,
47
+ };
48
+ };
@@ -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";
@@ -1,11 +1,20 @@
1
1
  import React from "react";
2
- import { OverlaysProvider } from "@blueprintjs/core";
2
+ import { Classes, OverlaysProvider } from "@blueprintjs/core";
3
3
  import { Meta, StoryFn } from "@storybook/react";
4
4
  import { fn } from "@storybook/test";
5
5
 
6
6
  import { SimpleCard } from "../../Card/stories/Card.stories";
7
7
 
8
- import { Card, Modal } from "./../../../../index";
8
+ import {
9
+ Button,
10
+ Card,
11
+ CardContent,
12
+ Modal,
13
+ ModalContext,
14
+ ModalSize,
15
+ Spacing,
16
+ useModalContext,
17
+ } from "./../../../../index";
9
18
 
10
19
  export default {
11
20
  title: "Components/Dialog/Modal",
@@ -33,3 +42,135 @@ Default.args = {
33
42
  onOpening: fn(),
34
43
  onClosing: fn(),
35
44
  };
45
+
46
+ const ContextTemplate = ({ children }: React.HTMLAttributes<HTMLDivElement>) => {
47
+ const { setModalOpen, openModalStack } = useModalContext();
48
+
49
+ return (
50
+ <OverlaysProvider>
51
+ <div style={{ height: "70vh", position: "relative" }} id={"modalPortal"}>
52
+ <ModalContext.Provider value={{ setModalOpen, openModalStack }}>{children}</ModalContext.Provider>
53
+ </div>
54
+ </OverlaysProvider>
55
+ );
56
+ };
57
+
58
+ const ModalContent = ({ children }: React.HTMLAttributes<HTMLDivElement>) => {
59
+ return (
60
+ <Card style={{ height: "100%" }}>
61
+ <CardContent>{children}</CardContent>
62
+ </Card>
63
+ );
64
+ };
65
+
66
+ /** Component for nested modals. */
67
+ const ExampleModal = ({
68
+ id,
69
+ size,
70
+ children,
71
+ }: {
72
+ id?: string;
73
+ size: ModalSize;
74
+ children?: React.HTMLAttributes<HTMLDivElement>["children"];
75
+ }) => {
76
+ const [isOpen, setIsOpen] = React.useState(true);
77
+ const [portalElement, setPortalElement] = React.useState<HTMLElement | undefined>();
78
+
79
+ React.useEffect(() => {
80
+ setPortalElement(document.getElementById("modalPortal")!);
81
+ }, []);
82
+
83
+ return (
84
+ <Modal
85
+ modalId={id}
86
+ size={size}
87
+ isOpen={isOpen}
88
+ usePortal={true}
89
+ portalContainer={portalElement}
90
+ hasBackdrop={true}
91
+ onOpened={() => {
92
+ // workaround, Blueprint attach a class to body tht prevents scrolling, probably it is attached to the wrong portal
93
+ document.body.classList.remove(Classes.OVERLAY_OPEN);
94
+ }}
95
+ >
96
+ <ModalContent>
97
+ Modal with constant modal ID "{id}".
98
+ <Spacing />
99
+ <TrackingContent />
100
+ <Spacing />
101
+ {children}
102
+ <Spacing />
103
+ <Button key={"close"} onClick={() => setIsOpen(false)}>
104
+ Close
105
+ </Button>
106
+ </ModalContent>
107
+ </Modal>
108
+ );
109
+ };
110
+
111
+ const InnerModal = () => {
112
+ return <ExampleModal id="innerModal" size="small" />;
113
+ };
114
+
115
+ const MiddleModal = () => {
116
+ return (
117
+ <ExampleModal id="middleModal" size="regular">
118
+ <InnerModal />
119
+ </ExampleModal>
120
+ );
121
+ };
122
+
123
+ /** Shows the current stack of open modals. */
124
+ const TrackingContent = () => {
125
+ const modalContext = React.useContext(ModalContext);
126
+
127
+ return (
128
+ <ul>
129
+ {(modalContext.openModalStack ?? []).map((modalId, idx) => (
130
+ <li key={modalId}>
131
+ {idx + 1}. {modalId}
132
+ </li>
133
+ ))}
134
+ </ul>
135
+ );
136
+ };
137
+
138
+ /**
139
+ * `ModalContext` can be used as provider to track a stack of modals.
140
+ *
141
+ * ```(Javascript)
142
+ * const ContextTemplate = () => {
143
+ * const { setModalOpen, openModalStack } = useModalContext();
144
+ * return (
145
+ * <ModalContext.Provider value={{ setModalOpen, openModalStack }}>
146
+ * <SimpleDialog size="large" isOpen>
147
+ * <OtherModal />
148
+ * </SimpleDialog>
149
+ * </ModalContext.Provider>
150
+ * );
151
+ * };
152
+ *
153
+ * const OtherModal = () => {
154
+ * const modalContext = React.useContext(ModalContext);
155
+ * return (
156
+ * <SimpleDialog size="small">
157
+ * <ul>
158
+ * {(modalContext.openModalStack ?? []).map((modalId, idx) => (
159
+ * <li key={modalId}>
160
+ * {idx + 1}. {modalId}
161
+ * </li>
162
+ * ))}
163
+ * </ul>
164
+ * </SimpleDialog>
165
+ * );
166
+ * };
167
+ * ```
168
+ */
169
+ export const NestedModalWithContext = ContextTemplate.bind({});
170
+ NestedModalWithContext.args = {
171
+ children: [
172
+ <ExampleModal id="rootModal" size="large">
173
+ <MiddleModal />
174
+ </ExampleModal>,
175
+ ],
176
+ };