@eccenca/gui-elements 25.0.0 → 25.1.0-changeupgradedtoreact18cmem6639.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 (493) hide show
  1. package/CHANGELOG.md +124 -0
  2. package/dist/cjs/cmem/ActivityControl/ActivityControlWidget.js +30 -26
  3. package/dist/cjs/cmem/ActivityControl/ActivityControlWidget.js.map +1 -1
  4. package/dist/cjs/cmem/ActivityControl/ActivityExecutionErrorReportModal.js +11 -5
  5. package/dist/cjs/cmem/ActivityControl/ActivityExecutionErrorReportModal.js.map +1 -1
  6. package/dist/cjs/cmem/ActivityControl/SilkActivityControl.js +1 -3
  7. package/dist/cjs/cmem/ActivityControl/SilkActivityControl.js.map +1 -1
  8. package/dist/cjs/cmem/ContentBlobToggler/ContentBlobToggler.js +13 -6
  9. package/dist/cjs/cmem/ContentBlobToggler/ContentBlobToggler.js.map +1 -1
  10. package/dist/cjs/cmem/ContentBlobToggler/StringPreviewContentBlobToggler.js +49 -11
  11. package/dist/cjs/cmem/ContentBlobToggler/StringPreviewContentBlobToggler.js.map +1 -1
  12. package/dist/cjs/cmem/markdown/Markdown.js +2 -2
  13. package/dist/cjs/cmem/markdown/Markdown.js.map +1 -1
  14. package/dist/cjs/cmem/react-flow/ReactFlow/ReactFlowV12.js.map +1 -1
  15. package/dist/cjs/cmem/react-flow/StickyNoteModal/StickyNoteModal.js +1 -1
  16. package/dist/cjs/cmem/react-flow/StickyNoteModal/StickyNoteModal.js.map +1 -1
  17. package/dist/cjs/cmem/react-flow/configuration/graph.js +0 -2
  18. package/dist/cjs/cmem/react-flow/configuration/graph.js.map +1 -1
  19. package/dist/cjs/cmem/react-flow/configuration/linking.js +0 -2
  20. package/dist/cjs/cmem/react-flow/configuration/linking.js.map +1 -1
  21. package/dist/cjs/cmem/react-flow/configuration/workflow.js +0 -2
  22. package/dist/cjs/cmem/react-flow/configuration/workflow.js.map +1 -1
  23. package/dist/cjs/common/Intent/index.js +1 -1
  24. package/dist/cjs/common/Intent/index.js.map +1 -1
  25. package/dist/cjs/common/index.js +1 -0
  26. package/dist/cjs/common/index.js.map +1 -1
  27. package/dist/cjs/common/utils/CssCustomProperties.js.map +1 -1
  28. package/dist/cjs/common/utils/colorHash.js +26 -12
  29. package/dist/cjs/common/utils/colorHash.js.map +1 -1
  30. package/dist/cjs/components/Application/ApplicationSidebarNavigation.js.map +1 -1
  31. package/dist/cjs/components/Application/ApplicationTitle.js +5 -1
  32. package/dist/cjs/components/Application/ApplicationTitle.js.map +1 -1
  33. package/dist/cjs/components/Application/ApplicationViewability.js +33 -0
  34. package/dist/cjs/components/Application/ApplicationViewability.js.map +1 -0
  35. package/dist/cjs/components/Application/index.js +1 -0
  36. package/dist/cjs/components/Application/index.js.map +1 -1
  37. package/dist/cjs/components/AutoSuggestion/AutoSuggestion.js +1 -1
  38. package/dist/cjs/components/AutoSuggestion/AutoSuggestion.js.map +1 -1
  39. package/dist/cjs/components/AutoSuggestion/AutoSuggestionList.js.map +1 -1
  40. package/dist/cjs/components/AutocompleteField/AutoCompleteField.js +2 -9
  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 +6 -2
  44. package/dist/cjs/components/Button/Button.js.map +1 -1
  45. package/dist/cjs/components/ColorField/ColorField.js +114 -0
  46. package/dist/cjs/components/ColorField/ColorField.js.map +1 -0
  47. package/dist/cjs/components/ContentGroup/ContentGroup.js +19 -19
  48. package/dist/cjs/components/ContentGroup/ContentGroup.js.map +1 -1
  49. package/dist/cjs/components/ContextOverlay/ContextMenu.js +4 -4
  50. package/dist/cjs/components/ContextOverlay/ContextMenu.js.map +1 -1
  51. package/dist/cjs/components/ContextOverlay/ContextOverlay.js +3 -2
  52. package/dist/cjs/components/ContextOverlay/ContextOverlay.js.map +1 -1
  53. package/dist/cjs/components/DecoupledOverlay/DecoupledOverlay.js +48 -0
  54. package/dist/cjs/components/DecoupledOverlay/DecoupledOverlay.js.map +1 -0
  55. package/dist/cjs/components/Icon/IconButton.js +2 -2
  56. package/dist/cjs/components/Icon/IconButton.js.map +1 -1
  57. package/dist/cjs/components/Icon/canonicalIconNames.js +10 -1
  58. package/dist/cjs/components/Icon/canonicalIconNames.js.map +1 -1
  59. package/dist/cjs/components/Icon/transformIcon.js +14 -0
  60. package/dist/cjs/components/Icon/transformIcon.js.map +1 -0
  61. package/dist/cjs/components/MultiSelect/MultiSelect.js +63 -24
  62. package/dist/cjs/components/MultiSelect/MultiSelect.js.map +1 -1
  63. package/dist/cjs/components/NotAvailable/NotAvailable.js +42 -0
  64. package/dist/cjs/components/NotAvailable/NotAvailable.js.map +1 -0
  65. package/dist/cjs/components/Notification/Notification.js.map +1 -1
  66. package/dist/cjs/components/OverviewItem/OverviewItemDepiction.js.map +1 -1
  67. package/dist/cjs/components/RadioButton/RadioButton.js +5 -2
  68. package/dist/cjs/components/RadioButton/RadioButton.js.map +1 -1
  69. package/dist/cjs/components/Select/Select.js +6 -4
  70. package/dist/cjs/components/Select/Select.js.map +1 -1
  71. package/dist/cjs/components/Skeleton/Skeleton.js.map +1 -1
  72. package/dist/cjs/components/Table/Table.js.map +1 -1
  73. package/dist/cjs/components/Table/TableContainer.js +1 -1
  74. package/dist/cjs/components/Table/TableContainer.js.map +1 -1
  75. package/dist/cjs/components/Table/TableExpandRow.js +2 -2
  76. package/dist/cjs/components/Table/TableExpandRow.js.map +1 -1
  77. package/dist/cjs/components/TextField/useTextValidation.js +17 -8
  78. package/dist/cjs/components/TextField/useTextValidation.js.map +1 -1
  79. package/dist/cjs/components/Tooltip/Tooltip.js +11 -7
  80. package/dist/cjs/components/Tooltip/Tooltip.js.map +1 -1
  81. package/dist/cjs/components/Typography/InlineText.js +29 -0
  82. package/dist/cjs/components/Typography/InlineText.js.map +1 -0
  83. package/dist/cjs/components/Typography/index.js +1 -0
  84. package/dist/cjs/components/Typography/index.js.map +1 -1
  85. package/dist/cjs/components/VisualTour/VisualTour.js +30 -36
  86. package/dist/cjs/components/VisualTour/VisualTour.js.map +1 -1
  87. package/dist/cjs/components/index.js +3 -0
  88. package/dist/cjs/components/index.js.map +1 -1
  89. package/dist/cjs/extensions/codemirror/CodeMirror.js +59 -21
  90. package/dist/cjs/extensions/codemirror/CodeMirror.js.map +1 -1
  91. package/dist/cjs/extensions/codemirror/hooks/useCodemirrorModeExtension.hooks.js +1 -1
  92. package/dist/cjs/extensions/codemirror/hooks/useCodemirrorModeExtension.hooks.js.map +1 -1
  93. package/dist/cjs/extensions/codemirror/tests/codemirrorTestHelper.js +2 -2
  94. package/dist/cjs/extensions/codemirror/tests/codemirrorTestHelper.js.map +1 -1
  95. package/dist/cjs/extensions/codemirror/toolbars/EditorAppearanceConfigMenu.js +23 -0
  96. package/dist/cjs/extensions/codemirror/toolbars/EditorAppearanceConfigMenu.js.map +1 -0
  97. package/dist/cjs/extensions/codemirror/toolbars/markdown.toolbar.js +5 -2
  98. package/dist/cjs/extensions/codemirror/toolbars/markdown.toolbar.js.map +1 -1
  99. package/dist/cjs/extensions/react-flow/edges/EdgeLabel.js +8 -3
  100. package/dist/cjs/extensions/react-flow/edges/EdgeLabel.js.map +1 -1
  101. package/dist/cjs/extensions/react-flow/edges/EdgeNew.js +6 -4
  102. package/dist/cjs/extensions/react-flow/edges/EdgeNew.js.map +1 -1
  103. package/dist/cjs/extensions/react-flow/edges/EdgeTools.js +2 -2
  104. package/dist/cjs/extensions/react-flow/edges/EdgeTools.js.map +1 -1
  105. package/dist/cjs/extensions/react-flow/handles/HandleContent.js +5 -2
  106. package/dist/cjs/extensions/react-flow/handles/HandleContent.js.map +1 -1
  107. package/dist/cjs/extensions/react-flow/handles/HandleDefault.js +1 -1
  108. package/dist/cjs/extensions/react-flow/handles/HandleDefault.js.map +1 -1
  109. package/dist/cjs/extensions/react-flow/handles/HandleTools.js +2 -2
  110. package/dist/cjs/extensions/react-flow/handles/HandleTools.js.map +1 -1
  111. package/dist/cjs/extensions/react-flow/markers/ReactFlowMarkers.js.map +1 -1
  112. package/dist/cjs/extensions/react-flow/minimap/MiniMap.js +1 -1
  113. package/dist/cjs/extensions/react-flow/minimap/MiniMap.js.map +1 -1
  114. package/dist/cjs/extensions/react-flow/minimap/MiniMapV12.js.map +1 -1
  115. package/dist/cjs/extensions/react-flow/nodes/NodeContent.js +7 -5
  116. package/dist/cjs/extensions/react-flow/nodes/NodeContent.js.map +1 -1
  117. package/dist/cjs/extensions/react-flow/nodes/NodeDefault.js +5 -2
  118. package/dist/cjs/extensions/react-flow/nodes/NodeDefault.js.map +1 -1
  119. package/dist/cjs/extensions/react-flow/nodes/NodeTools.js +6 -2
  120. package/dist/cjs/extensions/react-flow/nodes/NodeTools.js.map +1 -1
  121. package/dist/cjs/extensions/react-flow/nodes/nodeUtils.js.map +1 -1
  122. package/dist/esm/cmem/ActivityControl/ActivityControlWidget.js +19 -14
  123. package/dist/esm/cmem/ActivityControl/ActivityControlWidget.js.map +1 -1
  124. package/dist/esm/cmem/ActivityControl/ActivityExecutionErrorReportModal.js +4 -1
  125. package/dist/esm/cmem/ActivityControl/ActivityExecutionErrorReportModal.js.map +1 -1
  126. package/dist/esm/cmem/ActivityControl/SilkActivityControl.js +1 -3
  127. package/dist/esm/cmem/ActivityControl/SilkActivityControl.js.map +1 -1
  128. package/dist/esm/cmem/ContentBlobToggler/ContentBlobToggler.js +9 -5
  129. package/dist/esm/cmem/ContentBlobToggler/ContentBlobToggler.js.map +1 -1
  130. package/dist/esm/cmem/ContentBlobToggler/StringPreviewContentBlobToggler.js +57 -9
  131. package/dist/esm/cmem/ContentBlobToggler/StringPreviewContentBlobToggler.js.map +1 -1
  132. package/dist/esm/cmem/markdown/Markdown.js +1 -1
  133. package/dist/esm/cmem/markdown/Markdown.js.map +1 -1
  134. package/dist/esm/cmem/react-flow/ReactFlow/ReactFlowV12.js.map +1 -1
  135. package/dist/esm/cmem/react-flow/StickyNoteModal/StickyNoteModal.js +1 -1
  136. package/dist/esm/cmem/react-flow/StickyNoteModal/StickyNoteModal.js.map +1 -1
  137. package/dist/esm/cmem/react-flow/configuration/graph.js +0 -2
  138. package/dist/esm/cmem/react-flow/configuration/graph.js.map +1 -1
  139. package/dist/esm/cmem/react-flow/configuration/linking.js +0 -2
  140. package/dist/esm/cmem/react-flow/configuration/linking.js.map +1 -1
  141. package/dist/esm/cmem/react-flow/configuration/workflow.js +0 -2
  142. package/dist/esm/cmem/react-flow/configuration/workflow.js.map +1 -1
  143. package/dist/esm/common/Intent/index.js +1 -1
  144. package/dist/esm/common/Intent/index.js.map +1 -1
  145. package/dist/esm/common/index.js +2 -1
  146. package/dist/esm/common/index.js.map +1 -1
  147. package/dist/esm/common/utils/CssCustomProperties.js.map +1 -1
  148. package/dist/esm/common/utils/colorHash.js +26 -13
  149. package/dist/esm/common/utils/colorHash.js.map +1 -1
  150. package/dist/esm/common/utils/reduceToText.js +1 -1
  151. package/dist/esm/components/Application/ApplicationSidebarNavigation.js.map +1 -1
  152. package/dist/esm/components/Application/ApplicationTitle.js +5 -1
  153. package/dist/esm/components/Application/ApplicationTitle.js.map +1 -1
  154. package/dist/esm/components/Application/ApplicationViewability.js +28 -0
  155. package/dist/esm/components/Application/ApplicationViewability.js.map +1 -0
  156. package/dist/esm/components/Application/index.js +1 -0
  157. package/dist/esm/components/Application/index.js.map +1 -1
  158. package/dist/esm/components/AutoSuggestion/AutoSuggestion.js +1 -1
  159. package/dist/esm/components/AutoSuggestion/AutoSuggestion.js.map +1 -1
  160. package/dist/esm/components/AutoSuggestion/AutoSuggestionList.js.map +1 -1
  161. package/dist/esm/components/AutocompleteField/AutoCompleteField.js +9 -16
  162. package/dist/esm/components/AutocompleteField/AutoCompleteField.js.map +1 -1
  163. package/dist/esm/components/AutocompleteField/autoCompleteFieldUtils.js.map +1 -1
  164. package/dist/esm/components/Button/Button.js +6 -2
  165. package/dist/esm/components/Button/Button.js.map +1 -1
  166. package/dist/esm/components/ColorField/ColorField.js +140 -0
  167. package/dist/esm/components/ColorField/ColorField.js.map +1 -0
  168. package/dist/esm/components/ContentGroup/ContentGroup.js +1 -1
  169. package/dist/esm/components/ContentGroup/ContentGroup.js.map +1 -1
  170. package/dist/esm/components/ContextOverlay/ContextMenu.js +4 -4
  171. package/dist/esm/components/ContextOverlay/ContextMenu.js.map +1 -1
  172. package/dist/esm/components/ContextOverlay/ContextOverlay.js +3 -2
  173. package/dist/esm/components/ContextOverlay/ContextOverlay.js.map +1 -1
  174. package/dist/esm/components/DecoupledOverlay/DecoupledOverlay.js +42 -0
  175. package/dist/esm/components/DecoupledOverlay/DecoupledOverlay.js.map +1 -0
  176. package/dist/esm/components/Icon/IconButton.js +2 -2
  177. package/dist/esm/components/Icon/IconButton.js.map +1 -1
  178. package/dist/esm/components/Icon/canonicalIconNames.js +10 -1
  179. package/dist/esm/components/Icon/canonicalIconNames.js.map +1 -1
  180. package/dist/esm/components/Icon/transformIcon.js +21 -0
  181. package/dist/esm/components/Icon/transformIcon.js.map +1 -0
  182. package/dist/esm/components/MultiSelect/MultiSelect.js +66 -27
  183. package/dist/esm/components/MultiSelect/MultiSelect.js.map +1 -1
  184. package/dist/esm/components/NotAvailable/NotAvailable.js +46 -0
  185. package/dist/esm/components/NotAvailable/NotAvailable.js.map +1 -0
  186. package/dist/esm/components/Notification/Notification.js.map +1 -1
  187. package/dist/esm/components/OverviewItem/OverviewItemDepiction.js.map +1 -1
  188. package/dist/esm/components/RadioButton/RadioButton.js +6 -2
  189. package/dist/esm/components/RadioButton/RadioButton.js.map +1 -1
  190. package/dist/esm/components/Select/Select.js +3 -1
  191. package/dist/esm/components/Select/Select.js.map +1 -1
  192. package/dist/esm/components/Skeleton/Skeleton.js.map +1 -1
  193. package/dist/esm/components/Table/Table.js.map +1 -1
  194. package/dist/esm/components/Table/TableContainer.js +1 -1
  195. package/dist/esm/components/Table/TableContainer.js.map +1 -1
  196. package/dist/esm/components/Table/TableExpandRow.js +1 -1
  197. package/dist/esm/components/Table/TableExpandRow.js.map +1 -1
  198. package/dist/esm/components/TextField/useTextValidation.js +39 -8
  199. package/dist/esm/components/TextField/useTextValidation.js.map +1 -1
  200. package/dist/esm/components/Tooltip/Tooltip.js +11 -7
  201. package/dist/esm/components/Tooltip/Tooltip.js.map +1 -1
  202. package/dist/esm/components/Typography/InlineText.js +33 -0
  203. package/dist/esm/components/Typography/InlineText.js.map +1 -0
  204. package/dist/esm/components/Typography/index.js +1 -0
  205. package/dist/esm/components/Typography/index.js.map +1 -1
  206. package/dist/esm/components/VisualTour/VisualTour.js +31 -37
  207. package/dist/esm/components/VisualTour/VisualTour.js.map +1 -1
  208. package/dist/esm/components/index.js +3 -0
  209. package/dist/esm/components/index.js.map +1 -1
  210. package/dist/esm/extensions/codemirror/CodeMirror.js +62 -24
  211. package/dist/esm/extensions/codemirror/CodeMirror.js.map +1 -1
  212. package/dist/esm/extensions/codemirror/hooks/useCodemirrorModeExtension.hooks.js +1 -1
  213. package/dist/esm/extensions/codemirror/hooks/useCodemirrorModeExtension.hooks.js.map +1 -1
  214. package/dist/esm/extensions/codemirror/tests/codemirrorTestHelper.js +3 -3
  215. package/dist/esm/extensions/codemirror/tests/codemirrorTestHelper.js.map +1 -1
  216. package/dist/esm/extensions/codemirror/toolbars/EditorAppearanceConfigMenu.js +47 -0
  217. package/dist/esm/extensions/codemirror/toolbars/EditorAppearanceConfigMenu.js.map +1 -0
  218. package/dist/esm/extensions/codemirror/toolbars/markdown.toolbar.js +16 -2
  219. package/dist/esm/extensions/codemirror/toolbars/markdown.toolbar.js.map +1 -1
  220. package/dist/esm/extensions/react-flow/edges/EdgeLabel.js +4 -2
  221. package/dist/esm/extensions/react-flow/edges/EdgeLabel.js.map +1 -1
  222. package/dist/esm/extensions/react-flow/edges/EdgeNew.js +3 -1
  223. package/dist/esm/extensions/react-flow/edges/EdgeNew.js.map +1 -1
  224. package/dist/esm/extensions/react-flow/edges/EdgeTools.js +1 -1
  225. package/dist/esm/extensions/react-flow/edges/EdgeTools.js.map +1 -1
  226. package/dist/esm/extensions/react-flow/handles/HandleContent.js +1 -1
  227. package/dist/esm/extensions/react-flow/handles/HandleContent.js.map +1 -1
  228. package/dist/esm/extensions/react-flow/handles/HandleDefault.js +1 -1
  229. package/dist/esm/extensions/react-flow/handles/HandleDefault.js.map +1 -1
  230. package/dist/esm/extensions/react-flow/handles/HandleTools.js +1 -1
  231. package/dist/esm/extensions/react-flow/handles/HandleTools.js.map +1 -1
  232. package/dist/esm/extensions/react-flow/markers/ReactFlowMarkers.js.map +1 -1
  233. package/dist/esm/extensions/react-flow/minimap/MiniMap.js +1 -1
  234. package/dist/esm/extensions/react-flow/minimap/MiniMap.js.map +1 -1
  235. package/dist/esm/extensions/react-flow/minimap/MiniMapV12.js.map +1 -1
  236. package/dist/esm/extensions/react-flow/nodes/NodeContent.js +4 -2
  237. package/dist/esm/extensions/react-flow/nodes/NodeContent.js.map +1 -1
  238. package/dist/esm/extensions/react-flow/nodes/NodeDefault.js +1 -1
  239. package/dist/esm/extensions/react-flow/nodes/NodeDefault.js.map +1 -1
  240. package/dist/esm/extensions/react-flow/nodes/NodeTools.js +2 -1
  241. package/dist/esm/extensions/react-flow/nodes/NodeTools.js.map +1 -1
  242. package/dist/esm/extensions/react-flow/nodes/nodeUtils.js.map +1 -1
  243. package/dist/types/cmem/ActivityControl/ActivityControlWidget.d.ts +13 -4
  244. package/dist/types/cmem/ActivityControl/ActivityExecutionErrorReportModal.d.ts +1 -1
  245. package/dist/types/cmem/ActivityControl/SilkActivityControl.d.ts +4 -4
  246. package/dist/types/cmem/ContentBlobToggler/ContentBlobToggler.d.ts +5 -1
  247. package/dist/types/cmem/ContentBlobToggler/StringPreviewContentBlobToggler.d.ts +27 -11
  248. package/dist/types/cmem/markdown/Markdown.d.ts +2 -1
  249. package/dist/types/cmem/react-flow/configuration/graph.d.ts +2 -1
  250. package/dist/types/cmem/react-flow/configuration/linking.d.ts +2 -1
  251. package/dist/types/cmem/react-flow/configuration/workflow.d.ts +2 -1
  252. package/dist/types/common/index.d.ts +2 -1
  253. package/dist/types/common/utils/CssCustomProperties.d.ts +2 -2
  254. package/dist/types/common/utils/colorHash.d.ts +5 -4
  255. package/dist/types/components/Accordion/AccordionItem.d.ts +1 -1
  256. package/dist/types/components/Application/ApplicationSidebarNavigation.d.ts +2 -0
  257. package/dist/types/components/Application/ApplicationViewability.d.ts +36 -0
  258. package/dist/types/components/Application/index.d.ts +1 -0
  259. package/dist/types/components/AutoSuggestion/AutoSuggestion.d.ts +2 -2
  260. package/dist/types/components/AutocompleteField/AutoCompleteField.d.ts +2 -12
  261. package/dist/types/components/AutocompleteField/autoCompleteFieldUtils.d.ts +1 -1
  262. package/dist/types/components/Button/Button.d.ts +3 -3
  263. package/dist/types/components/Card/CardHeader.d.ts +1 -1
  264. package/dist/types/components/ColorField/ColorField.d.ts +30 -0
  265. package/dist/types/components/ContentGroup/ContentGroup.d.ts +1 -1
  266. package/dist/types/components/ContextOverlay/ContextMenu.d.ts +9 -3
  267. package/dist/types/components/ContextOverlay/ContextOverlay.d.ts +8 -2
  268. package/dist/types/components/DecoupledOverlay/DecoupledOverlay.d.ts +22 -0
  269. package/dist/types/components/Depiction/Depiction.d.ts +1 -1
  270. package/dist/types/components/Dialog/SimpleDialog.d.ts +1 -1
  271. package/dist/types/components/Form/FieldItem.d.ts +1 -1
  272. package/dist/types/components/Form/FieldSet.d.ts +3 -3
  273. package/dist/types/components/HoverToggler/HoverToggler.d.ts +2 -2
  274. package/dist/types/components/Icon/IconButton.d.ts +1 -1
  275. package/dist/types/components/Icon/canonicalIconNames.d.ts +9 -1
  276. package/dist/types/components/Icon/transformIcon.d.ts +2 -0
  277. package/dist/types/components/Label/Label.d.ts +3 -3
  278. package/dist/types/components/Menu/MenuItem.d.ts +1 -1
  279. package/dist/types/components/MultiSelect/MultiSelect.d.ts +17 -5
  280. package/dist/types/components/NotAvailable/NotAvailable.d.ts +32 -0
  281. package/dist/types/components/Notification/Notification.d.ts +2 -2
  282. package/dist/types/components/OverviewItem/OverviewItemActions.d.ts +1 -1
  283. package/dist/types/components/PropertyValuePair/PropertyValueList.d.ts +1 -1
  284. package/dist/types/components/RadioButton/RadioButton.d.ts +8 -2
  285. package/dist/types/components/Select/Select.d.ts +2 -1
  286. package/dist/types/components/Skeleton/Skeleton.d.ts +1 -1
  287. package/dist/types/components/Structure/TitleSubsection.d.ts +3 -6
  288. package/dist/types/components/SuggestField/index.d.ts +2 -2
  289. package/dist/types/components/Table/TableContainer.d.ts +3 -3
  290. package/dist/types/components/Tabs/Tab.d.ts +4 -10
  291. package/dist/types/components/Tabs/TabTitle.d.ts +1 -1
  292. package/dist/types/components/TextField/TextArea.d.ts +1 -1
  293. package/dist/types/components/Typography/InlineText.d.ts +13 -0
  294. package/dist/types/components/Typography/index.d.ts +1 -0
  295. package/dist/types/components/index.d.ts +3 -0
  296. package/dist/types/extensions/codemirror/CodeMirror.d.ts +12 -9
  297. package/dist/types/extensions/codemirror/hooks/useCodemirrorModeExtension.hooks.d.ts +1 -1
  298. package/dist/types/extensions/codemirror/tests/codemirrorTestHelper.d.ts +1 -1
  299. package/dist/types/extensions/codemirror/toolbars/EditorAppearanceConfigMenu.d.ts +24 -0
  300. package/dist/types/extensions/codemirror/toolbars/markdown.toolbar.d.ts +2 -0
  301. package/dist/types/extensions/react-flow/edges/EdgeLabel.d.ts +3 -3
  302. package/dist/types/extensions/react-flow/edges/EdgeTools.d.ts +1 -1
  303. package/dist/types/extensions/react-flow/handles/HandleContent.d.ts +2 -2
  304. package/dist/types/extensions/react-flow/handles/HandleTools.d.ts +2 -2
  305. package/dist/types/extensions/react-flow/nodes/NodeContent.d.ts +3 -3
  306. package/dist/types/extensions/react-flow/nodes/NodeTools.d.ts +2 -2
  307. package/package.json +65 -61
  308. package/src/_shame.scss +1 -35
  309. package/src/cmem/ActivityControl/ActivityControlWidget.stories.tsx +3 -8
  310. package/src/cmem/ActivityControl/ActivityControlWidget.tsx +74 -41
  311. package/src/cmem/ActivityControl/ActivityExecutionErrorReportModal.tsx +6 -4
  312. package/src/cmem/ActivityControl/SilkActivityControl.tsx +5 -5
  313. package/src/cmem/ContentBlobToggler/ContentBlobToggler.tsx +16 -6
  314. package/src/cmem/ContentBlobToggler/StringPreviewContentBlobToggler.tsx +72 -19
  315. package/src/cmem/ContentBlobToggler/stories/StringPreviewContentBlobToggler.stories.tsx +27 -0
  316. package/src/cmem/ContentBlobToggler/tests/StringPreviewContentBlobToggler.test.tsx +98 -0
  317. package/src/cmem/markdown/Markdown.stories.tsx +2 -2
  318. package/src/cmem/markdown/Markdown.tsx +2 -1
  319. package/src/cmem/markdown/markdown.scss +1 -1
  320. package/src/cmem/react-flow/ReactFlow/ReactFlowV12.tsx +1 -0
  321. package/src/cmem/react-flow/StickyNoteModal/StickyNoteModal.tsx +1 -1
  322. package/src/cmem/react-flow/configuration/graph.ts +2 -3
  323. package/src/cmem/react-flow/configuration/linking.ts +2 -3
  324. package/src/cmem/react-flow/configuration/workflow.ts +2 -3
  325. package/src/common/Intent/index.ts +2 -1
  326. package/src/common/index.ts +2 -1
  327. package/src/common/scss/_accessibility-defaults.scss +101 -0
  328. package/src/common/utils/CssCustomProperties.ts +5 -3
  329. package/src/common/utils/colorHash.ts +38 -20
  330. package/src/components/Accordion/AccordionItem.tsx +1 -1
  331. package/src/components/Accordion/Stories/AccordionItem.stories.tsx +1 -1
  332. package/src/components/Application/ApplicationSidebarNavigation.tsx +5 -2
  333. package/src/components/Application/ApplicationTitle.tsx +7 -1
  334. package/src/components/Application/ApplicationViewability.tsx +61 -0
  335. package/src/components/Application/_colors.scss +15 -0
  336. package/src/components/Application/_content.scss +7 -0
  337. package/src/components/Application/_header.scss +45 -21
  338. package/src/components/Application/_sidebar.scss +6 -0
  339. package/src/components/Application/_toolbar.scss +3 -3
  340. package/src/components/Application/_viewability.scss +13 -0
  341. package/src/components/Application/application.scss +1 -0
  342. package/src/components/Application/index.ts +1 -0
  343. package/src/components/Application/stories/ApplicationViewability.stories.tsx +37 -0
  344. package/src/components/Application/stories/ColorPalettes.stories.tsx +4 -3
  345. package/src/components/Application/tests/ApplicationViewability.test.tsx +43 -0
  346. package/src/components/AutoSuggestion/AutoSuggestion.scss +3 -1
  347. package/src/components/AutoSuggestion/AutoSuggestion.tsx +4 -4
  348. package/src/components/AutoSuggestion/AutoSuggestionList.tsx +1 -1
  349. package/src/components/AutoSuggestion/tests/ExtendedCodeEditor.test.tsx +1 -1
  350. package/src/components/AutocompleteField/AutoCompleteField.tsx +9 -18
  351. package/src/components/AutocompleteField/autoCompleteFieldUtils.tsx +1 -1
  352. package/src/components/Badge/Badge.stories.tsx +1 -1
  353. package/src/components/Badge/Badge.test.tsx +22 -0
  354. package/src/components/Breadcrumb/breadcrumb.scss +2 -2
  355. package/src/components/Button/Button.test.tsx +16 -2
  356. package/src/components/Button/Button.tsx +11 -6
  357. package/src/components/Button/button.scss +2 -0
  358. package/src/components/Card/CardHeader.tsx +1 -1
  359. package/src/components/Card/card.scss +6 -0
  360. package/src/components/Card/stories/Card.stories.tsx +1 -1
  361. package/src/components/Checkbox/Stories/Checkbox.stories.tsx +1 -1
  362. package/src/components/Checkbox/checkbox.scss +23 -3
  363. package/src/components/ColorField/ColorField.stories.tsx +72 -0
  364. package/src/components/ColorField/ColorField.test.tsx +101 -0
  365. package/src/components/ColorField/ColorField.tsx +200 -0
  366. package/src/components/ColorField/_colorfield.scss +67 -0
  367. package/src/components/ContentGroup/ContentGroup.stories.tsx +1 -1
  368. package/src/components/ContentGroup/ContentGroup.tsx +3 -3
  369. package/src/components/ContentGroup/_contentgroup.scss +9 -0
  370. package/src/components/ContextOverlay/ContextMenu.tsx +10 -4
  371. package/src/components/ContextOverlay/ContextOverlay.tsx +23 -4
  372. package/src/components/DecoupledOverlay/DecoupledOverlay.stories.tsx +30 -0
  373. package/src/components/DecoupledOverlay/DecoupledOverlay.tsx +100 -0
  374. package/src/components/DecoupledOverlay/_decoupledoverlay.scss +46 -0
  375. package/src/components/Depiction/Depiction.tsx +1 -1
  376. package/src/components/Depiction/depiction.scss +6 -0
  377. package/src/components/Dialog/SimpleDialog.tsx +1 -1
  378. package/src/components/Dialog/dialog.scss +10 -2
  379. package/src/components/Dialog/stories/Modal.stories.tsx +1 -1
  380. package/src/components/FlexibleLayout/flexiblelayout.scss +16 -0
  381. package/src/components/Form/FieldItem.tsx +1 -1
  382. package/src/components/Form/FieldSet.tsx +3 -3
  383. package/src/components/Form/Stories/FieldItem.stories.tsx +1 -1
  384. package/src/components/Form/Stories/FieldSet.stories.tsx +1 -1
  385. package/src/components/Form/form.scss +2 -2
  386. package/src/components/Grid/grid.scss +17 -0
  387. package/src/components/Grid/stories/Grid.stories.tsx +10 -7
  388. package/src/components/Grid/stories/GridColumn.stories.tsx +1 -1
  389. package/src/components/Grid/stories/GridRow.stories.tsx +14 -8
  390. package/src/components/HoverToggler/HoverToggler.tsx +2 -2
  391. package/src/components/Icon/IconButton.tsx +3 -3
  392. package/src/components/Icon/canonicalIconNames.tsx +11 -1
  393. package/src/components/Icon/stories/IconButton.stories.tsx +1 -1
  394. package/src/components/Icon/stories/TestIcon.stories.tsx +1 -1
  395. package/src/components/Icon/transformIcon.tsx +17 -0
  396. package/src/components/Label/Label.tsx +3 -3
  397. package/src/components/Link/Link.stories.tsx +30 -0
  398. package/src/components/Link/link.scss +33 -8
  399. package/src/components/Menu/MenuItem.tsx +1 -1
  400. package/src/components/Menu/Stories/MenuItem.stories.tsx +1 -1
  401. package/src/components/MultiSelect/MultiSelect.tsx +104 -32
  402. package/src/components/MultiSuggestField/MultiSuggestField.stories.tsx +40 -1
  403. package/src/components/MultiSuggestField/_multisuggestfield.scss +18 -0
  404. package/src/components/MultiSuggestField/tests/MultiSuggestField.test.tsx +89 -37
  405. package/src/components/NotAvailable/NotAvailable.stories.tsx +15 -0
  406. package/src/components/NotAvailable/NotAvailable.tsx +71 -0
  407. package/src/components/Notification/Notification.stories.tsx +2 -1
  408. package/src/components/Notification/Notification.tsx +3 -3
  409. package/src/components/Notification/notification.scss +6 -0
  410. package/src/components/OverviewItem/OverviewItemActions.tsx +1 -1
  411. package/src/components/OverviewItem/OverviewItemDepiction.tsx +1 -1
  412. package/src/components/OverviewItem/overviewitem.scss +9 -0
  413. package/src/components/OverviewItem/stories/OverviewItem.stories.tsx +29 -1
  414. package/src/components/OverviewItem/stories/OverviewItemActions.stories.tsx +3 -3
  415. package/src/components/OverviewItem/stories/OverviewItemDepiction.stories.tsx +1 -1
  416. package/src/components/OverviewItem/stories/OverviewItemDescription.stories.tsx +2 -2
  417. package/src/components/OverviewItem/stories/OverviewItemLine.stories.tsx +1 -1
  418. package/src/components/Pagination/Stories/Pagination.stories.tsx +32 -0
  419. package/src/components/Pagination/pagination.scss +55 -5
  420. package/src/components/PropertyValuePair/PropertyValueList.tsx +1 -1
  421. package/src/components/PropertyValuePair/propertyvalue.scss +23 -1
  422. package/src/components/RadioButton/RadioButton.tsx +15 -3
  423. package/src/components/RadioButton/Stories/RadioButton.stories.tsx +1 -1
  424. package/src/components/RadioButton/radiobutton.scss +18 -1
  425. package/src/components/Select/Select.tsx +8 -6
  426. package/src/components/Separation/separation.scss +6 -0
  427. package/src/components/Skeleton/Skeleton.tsx +2 -2
  428. package/src/components/Structure/TitleSubsection.tsx +1 -1
  429. package/src/components/Table/Table.tsx +1 -1
  430. package/src/components/Table/TableContainer.tsx +4 -4
  431. package/src/components/Table/TableExpandRow.tsx +1 -1
  432. package/src/components/Table/table.scss +22 -0
  433. package/src/components/Tabs/TabTitle.tsx +1 -1
  434. package/src/components/Tabs/stories/TabTitle.stories.tsx +7 -2
  435. package/src/components/Tabs/tabs.scss +2 -2
  436. package/src/components/Tag/stories/Tag.stories.tsx +1 -1
  437. package/src/components/Tag/stories/TagList.stories.tsx +3 -3
  438. package/src/components/Tag/tag.scss +19 -9
  439. package/src/components/TextField/TextArea.tsx +1 -1
  440. package/src/components/TextField/stories/TextArea.stories.tsx +1 -1
  441. package/src/components/TextField/stories/TextField.stories.tsx +24 -3
  442. package/src/components/TextField/tests/useTextValidation.test.tsx +83 -0
  443. package/src/components/TextField/textfield.scss +20 -0
  444. package/src/components/TextField/useTextValidation.ts +17 -8
  445. package/src/components/TextReducer/TextReducer.stories.tsx +4 -1
  446. package/src/components/TextReducer/TextReducer.test.tsx +3 -3
  447. package/src/components/Toolbar/toolbar.scss +1 -2
  448. package/src/components/Tooltip/Tooltip.test.tsx +40 -5
  449. package/src/components/Tooltip/Tooltip.tsx +15 -11
  450. package/src/components/Typography/InlineText.tsx +24 -0
  451. package/src/components/Typography/_reset.scss +2 -0
  452. package/src/components/Typography/index.ts +1 -0
  453. package/src/components/Typography/stories/InlineText.stories.tsx +27 -0
  454. package/src/components/Typography/typography.scss +37 -3
  455. package/src/components/VisualTour/VisualTour.tsx +35 -55
  456. package/src/components/VisualTour/visualTour.scss +0 -34
  457. package/src/components/index.scss +2 -0
  458. package/src/components/index.ts +3 -0
  459. package/src/configuration/_customproperties.scss +32 -0
  460. package/src/configuration/stories/customproperties.stories.tsx +122 -0
  461. package/src/extensions/codemirror/CodeMirror.stories.tsx +9 -4
  462. package/src/extensions/codemirror/CodeMirror.tsx +93 -37
  463. package/src/extensions/codemirror/_codemirror.scss +18 -28
  464. package/src/extensions/codemirror/hooks/useCodemirrorModeExtension.hooks.ts +1 -2
  465. package/src/extensions/codemirror/tests/CodeEditor.test.tsx +138 -0
  466. package/src/extensions/codemirror/tests/EditorAppearanceConfigMenu.test.tsx +131 -0
  467. package/src/extensions/codemirror/tests/codemirrorTestHelper.ts +3 -3
  468. package/src/extensions/codemirror/toolbars/EditorAppearanceConfigMenu.tsx +59 -0
  469. package/src/extensions/codemirror/toolbars/markdown.toolbar.tsx +17 -3
  470. package/src/extensions/react-flow/_config.scss +3 -3
  471. package/src/extensions/react-flow/_react-flow_v12.scss +1 -1
  472. package/src/extensions/react-flow/edges/EdgeLabel.tsx +15 -11
  473. package/src/extensions/react-flow/edges/EdgeNew.tsx +6 -6
  474. package/src/extensions/react-flow/edges/EdgeTools.tsx +5 -6
  475. package/src/extensions/react-flow/edges/_edges.scss +3 -2
  476. package/src/extensions/react-flow/edges/stories/EdgeLabel.stories.tsx +2 -1
  477. package/src/extensions/react-flow/handles/HandleContent.tsx +4 -4
  478. package/src/extensions/react-flow/handles/HandleDefault.tsx +3 -3
  479. package/src/extensions/react-flow/handles/HandleTools.tsx +3 -3
  480. package/src/extensions/react-flow/handles/_handles.scss +3 -3
  481. package/src/extensions/react-flow/markers/ReactFlowMarkers.tsx +1 -1
  482. package/src/extensions/react-flow/minimap/MiniMap.tsx +2 -1
  483. package/src/extensions/react-flow/minimap/MiniMapV12.tsx +1 -1
  484. package/src/extensions/react-flow/nodes/NodeContent.tsx +20 -19
  485. package/src/extensions/react-flow/nodes/NodeDefault.tsx +1 -1
  486. package/src/extensions/react-flow/nodes/NodeDefaultV12.tsx +1 -2
  487. package/src/extensions/react-flow/nodes/NodeTools.tsx +8 -8
  488. package/src/extensions/react-flow/nodes/_nodes.scss +4 -3
  489. package/src/extensions/react-flow/nodes/nodeUtils.tsx +1 -0
  490. package/src/extensions/react-flow/nodes/stories/NodeContent.stories.tsx +3 -1
  491. package/src/includes/carbon-components/_requisits.scss +3 -1
  492. package/src/index.scss +2 -0
  493. package/src/test/setupTests.js +1 -1
@@ -1,17 +1,13 @@
1
1
  import React from "react";
2
2
 
3
- import { ValidIconName } from "../../components/Icon/canonicalIconNames";
4
- import { IconProps } from "../../components/Icon/Icon";
5
- import { TestIconProps } from "../../components/Icon/TestIcon";
6
- import { TestableComponent } from "../../components/interfaces";
7
- import { ProgressBarProps } from "../../components/ProgressBar/ProgressBar";
8
- import { SpinnerProps } from "../../components/Spinner/Spinner";
9
- import { CLASSPREFIX as eccgui } from "../../configuration/constants";
10
3
  import {
11
4
  Card,
12
5
  ContextMenu,
6
+ DecoupledOverlay,
13
7
  IconButton,
14
8
  MenuItem,
9
+ Notification,
10
+ NotificationProps,
15
11
  OverflowText,
16
12
  OverviewItem,
17
13
  OverviewItemActions,
@@ -21,22 +17,29 @@ import {
21
17
  ProgressBar,
22
18
  Spinner,
23
19
  Tooltip,
24
- } from "../../index";
20
+ } from "../../components";
21
+ import { ValidIconName } from "../../components/Icon/canonicalIconNames";
22
+ import { IconProps } from "../../components/Icon/Icon";
23
+ import { TestIconProps } from "../../components/Icon/TestIcon";
24
+ import { TestableComponent } from "../../components/interfaces";
25
+ import { ProgressBarProps } from "../../components/ProgressBar/ProgressBar";
26
+ import { SpinnerProps } from "../../components/Spinner/Spinner";
27
+ import { CLASSPREFIX as eccgui } from "../../configuration/constants";
25
28
 
26
29
  export interface ActivityControlWidgetProps extends TestableComponent {
27
30
  /**
28
31
  * The label to be shown
29
32
  */
30
- label?: string | JSX.Element;
33
+ label?: string | React.JSX.Element;
31
34
  /**
32
35
  * Element that wraps around the label.
33
36
  * Default: `<OverflowText inline={true} />`
34
37
  */
35
- labelWrapper?: JSX.Element;
38
+ labelWrapper?: React.JSX.Element;
36
39
  /**
37
40
  * To add tags in addition to the widget status description
38
41
  */
39
- tags?: JSX.Element;
42
+ tags?: React.JSX.Element;
40
43
  /**
41
44
  * The progress bar parameters if it should be show by a progres bar
42
45
  */
@@ -80,7 +83,7 @@ export interface ActivityControlWidgetProps extends TestableComponent {
80
83
  /**
81
84
  * execution timer messages for waiting and running times.
82
85
  */
83
- timerExecutionMsg?: JSX.Element | null;
86
+ timerExecutionMsg?: React.JSX.Element | null;
84
87
  /**
85
88
  * additional actions that can serve as a complex component, positioned between the default actions and the context menu
86
89
  */
@@ -97,7 +100,7 @@ interface IActivityContextMenu extends TestableComponent {
97
100
  export interface ActivityControlWidgetAction extends TestableComponent {
98
101
  // The action that should be triggered
99
102
  action: () => void;
100
- // The tooltip that should be shown over the action icon
103
+ // The tooltip that should be shown over the action icon on hover
101
104
  tooltip?: string;
102
105
  // The icon of the action button
103
106
  icon: ValidIconName | React.ReactElement<TestIconProps>;
@@ -105,6 +108,16 @@ export interface ActivityControlWidgetAction extends TestableComponent {
105
108
  disabled?: boolean;
106
109
  // Warning state
107
110
  hasStateWarning?: boolean;
111
+ // Active state
112
+ active?: boolean
113
+ /** A notification that is shown in an overlay pointing at the activity action button. */
114
+ notification?: {
115
+ message: string
116
+ onClose: () => void
117
+ intent?: NotificationProps["intent"]
118
+ // Timeout in ms before notification is closed. Default: none
119
+ timeout?: number
120
+ }
108
121
  }
109
122
 
110
123
  interface IActivityMenuAction extends ActivityControlWidgetAction {
@@ -146,7 +159,7 @@ export function ActivityControlWidget(props: ActivityControlWidgetProps) {
146
159
  keepColors
147
160
  >
148
161
  {progressSpinnerFinishedIcon ? (
149
- React.cloneElement(progressSpinnerFinishedIcon as JSX.Element, { small, large: !small })
162
+ React.cloneElement(progressSpinnerFinishedIcon as React.JSX.Element, { small, large: !small })
150
163
  ) : (
151
164
  <Spinner
152
165
  position="inline"
@@ -209,28 +222,11 @@ export function ActivityControlWidget(props: ActivityControlWidgetProps) {
209
222
  data-test-id={dataTestIdLegacy ? `${dataTestIdLegacy}-actions` : undefined}
210
223
  >
211
224
  {activityActions &&
212
- activityActions.map((action, idx) => {
213
- return (
214
- <IconButton
215
- key={
216
- typeof action.icon === "string"
217
- ? action.icon
218
- : action["data-test-id"] ?? action["data-testid"] ?? idx
219
- }
220
- data-test-id={action["data-test-id"]}
221
- data-testid={action["data-testid"]}
222
- name={action.icon}
223
- text={action.tooltip}
224
- onClick={action.action}
225
- disabled={action.disabled}
226
- intent={action.hasStateWarning ? "warning" : undefined}
227
- tooltipProps={{
228
- hoverOpenDelay: 200,
229
- placement: "bottom",
230
- }}
231
- />
232
- );
233
- })}
225
+ activityActions.map((action, idx) => <ActivityActionButton
226
+ key={idx}
227
+ action={action}
228
+ />
229
+ )}
234
230
  {additionalActions}
235
231
  {activityContextMenu && activityContextMenu.menuItems.length > 0 && (
236
232
  <ContextMenu
@@ -241,11 +237,7 @@ export function ActivityControlWidget(props: ActivityControlWidgetProps) {
241
237
  return (
242
238
  <MenuItem
243
239
  icon={menuAction.icon}
244
- key={
245
- typeof menuAction.icon === "string"
246
- ? menuAction.icon
247
- : menuAction["data-test-id"] ?? idx
248
- }
240
+ key={idx}
249
241
  onClick={menuAction.action}
250
242
  text={menuAction.tooltip}
251
243
  />
@@ -267,3 +259,44 @@ export function ActivityControlWidget(props: ActivityControlWidgetProps) {
267
259
  <div className={classname}>{widget}</div>
268
260
  );
269
261
  }
262
+
263
+ interface ActivityActionButtonProps {
264
+ action: ActivityControlWidgetAction
265
+ }
266
+
267
+ const ActivityActionButton = ({action}: ActivityActionButtonProps) => {
268
+ const actionButtonRef = React.useRef(null);
269
+ const ActionButton = () => (
270
+ <IconButton
271
+ data-test-id={action["data-test-id"]}
272
+ data-testid={action["data-testid"]}
273
+ name={action.icon}
274
+ text={action.tooltip}
275
+ onClick={action.action}
276
+ disabled={action.disabled}
277
+ intent={action.hasStateWarning ? "warning" : undefined}
278
+ tooltipProps={{
279
+ hoverOpenDelay: 200,
280
+ placement: "bottom"
281
+ }}
282
+ active={action.active}
283
+ />
284
+ )
285
+ return action.notification ?
286
+ <>
287
+ <span ref={actionButtonRef}>
288
+ <ActionButton/>
289
+ </span>
290
+ {actionButtonRef.current && (
291
+ <DecoupledOverlay targetSelectorOrElement={actionButtonRef.current} paddingSize={"small"}>
292
+ <Notification
293
+ message={action.notification.message}
294
+ intent={action.notification.intent ?? "neutral"}
295
+ onDismiss={action.notification.onClose}
296
+ timeout={action.notification.timeout}
297
+ />
298
+ </DecoupledOverlay>
299
+ )}
300
+ </> :
301
+ <ActionButton/>
302
+ }
@@ -1,6 +1,8 @@
1
- import React, { useState } from "react";
2
-
3
- import { Button, HtmlContentBlock, IconButton, SimpleDialog } from "../../index";
1
+ import React, {useState} from "react";
2
+ import SimpleDialog from "../../components/Dialog/SimpleDialog";
3
+ import IconButton from "../../components/Icon/IconButton";
4
+ import Button from "../../components/Button/Button";
5
+ import HtmlContentBlock from "../../components/Typography/HtmlContentBlock";
4
6
 
5
7
  interface ActivityExecutionErrorReportModalProps {
6
8
  // Title of the modal
@@ -8,7 +10,7 @@ interface ActivityExecutionErrorReportModalProps {
8
10
  // Called when the close button is clicked
9
11
  onDiscard: () => any;
10
12
  // The error report
11
- report: JSX.Element;
13
+ report: React.JSX.Element;
12
14
  // Value of the download button
13
15
  downloadButtonValue: string;
14
16
  // Value of the close button
@@ -15,11 +15,11 @@ const progressBreakpointAnimation = 99;
15
15
 
16
16
  export interface SilkActivityControlProps extends TestableComponent {
17
17
  // The label of this activity
18
- label: string | JSX.Element;
18
+ label: string | React.JSX.Element;
19
19
  /**
20
20
  * To add tags in addition to the widget status description
21
21
  */
22
- tags?: JSX.Element;
22
+ tags?: React.JSX.Element;
23
23
  // Initial state
24
24
  initialStatus?: SilkActivityStatusProps;
25
25
  // Register a function in order to receive callbacks
@@ -80,7 +80,7 @@ export interface SilkActivityControlLayoutProps {
80
80
  // what type of progrss display should be uses, horizontal progress bar, circular spinner, or none of that
81
81
  visualization?: "none" | "progressbar" | "spinner";
82
82
  // wrapper around label
83
- labelWrapper?: JSX.Element;
83
+ labelWrapper?: React.JSX.Element;
84
84
  }
85
85
 
86
86
  const defaultLayout: SilkActivityControlLayoutProps = {
@@ -94,7 +94,7 @@ interface IErrorReportAction {
94
94
  // The title of the error report modal
95
95
  title?: string;
96
96
  // The element that will be rendered in the modal, either as Markdown or object
97
- renderReport: (report: string | SilkActivityExecutionReportProps) => JSX.Element;
97
+ renderReport: (report: string | SilkActivityExecutionReportProps) => React.JSX.Element;
98
98
  // What version of the report should be handed to the renderReport function, if false SilkActivityExecutionReportProps, if true the Markdown string
99
99
  renderMarkdown: boolean;
100
100
  // The function to fetch the error report. It returns undefined if something went wrong.
@@ -196,7 +196,7 @@ export function useSilkActivityControl({
196
196
  registerForUpdates(updateActivityStatus);
197
197
  return unregisterFromUpdates;
198
198
  },
199
- // eslint-disable-next-line react-hooks/exhaustive-deps
199
+
200
200
  []
201
201
  );
202
202
 
@@ -1,6 +1,8 @@
1
1
  import React, { useState } from "react";
2
2
 
3
- import { Link, Spacing } from "../../index";
3
+ import Link from "../../components/Link/Link";
4
+ import Spacing from "../../components/Separation/Spacing";
5
+ import InlineText from "../../components/Typography/InlineText";
4
6
 
5
7
  export interface ContentBlobTogglerProps extends React.HTMLAttributes<HTMLDivElement> {
6
8
  /**
@@ -31,6 +33,10 @@ export interface ContentBlobTogglerProps extends React.HTMLAttributes<HTMLDivEle
31
33
  Callback if toggler is necessary. Default: true
32
34
  */
33
35
  enableToggler?: boolean;
36
+ /**
37
+ * Force always inline rendering.
38
+ */
39
+ forceInline?: boolean;
34
40
  }
35
41
 
36
42
  /** Shows a preview with the option to expand to a full view (and back). */
@@ -42,27 +48,29 @@ export function ContentBlobToggler({
42
48
  fullviewContent,
43
49
  startExtended = false,
44
50
  enableToggler = true,
51
+ forceInline = false,
45
52
  ...otherProps
46
53
  }: ContentBlobTogglerProps) {
47
54
  const [isExtended, setViewState] = useState(startExtended);
48
- const handlerToggleView = (event: any) => {
55
+ const handlerToggleView = (event: React.MouseEvent<HTMLAnchorElement>) => {
49
56
  event.preventDefault();
50
57
  event.stopPropagation();
51
58
  setViewState(!isExtended);
52
59
  };
53
60
 
54
- return (
61
+ const tooglerDisplay = (
55
62
  <div className={className} {...otherProps}>
56
63
  {!isExtended ? (
57
64
  <>
58
65
  {previewContent}
59
66
  {enableToggler && (
60
67
  <>
68
+ {" "}
61
69
  &hellip;{" "}
62
70
  <Link
63
71
  href="#more"
64
72
  data-test-id={"content-blob-toggler-more-link"}
65
- onClick={(e: any) => {
73
+ onClick={(e: React.MouseEvent<HTMLAnchorElement>) => {
66
74
  handlerToggleView(e);
67
75
  }}
68
76
  >
@@ -76,11 +84,11 @@ export function ContentBlobToggler({
76
84
  {fullviewContent}
77
85
  {enableToggler && (
78
86
  <div>
79
- <Spacing size="small" />
87
+ {forceInline ? <> </> : <Spacing size="small" />}
80
88
  <Link
81
89
  data-test-id={"content-blob-toggler-less-link"}
82
90
  href="#less"
83
- onClick={(e: any) => {
91
+ onClick={(e: React.MouseEvent<HTMLAnchorElement>) => {
84
92
  handlerToggleView(e);
85
93
  }}
86
94
  >
@@ -92,4 +100,6 @@ export function ContentBlobToggler({
92
100
  )}
93
101
  </div>
94
102
  );
103
+
104
+ return forceInline ? <InlineText>{tooglerDisplay}</InlineText> : tooglerDisplay;
95
105
  }
@@ -1,30 +1,49 @@
1
1
  import React from "react";
2
+ import {ContentBlobToggler, ContentBlobTogglerProps} from "./ContentBlobToggler";
3
+ import {Markdown} from "../markdown/Markdown";
4
+ import {utils} from "../../common";
5
+ import InlineText from "../../components/Typography/InlineText";
2
6
 
3
- import { ContentBlobToggler, ContentBlobTogglerProps, Markdown } from "./..";
4
7
 
5
8
  export interface StringPreviewContentBlobTogglerProps
6
9
  extends Omit<ContentBlobTogglerProps, "previewContent" | "enableToggler"> {
7
10
  /**
8
- The preview content will be cut to this length if it is too long.
11
+ * The preview content will be cut to this length if it is too long.
9
12
  */
10
13
  previewMaxLength?: number;
11
14
  /**
12
- The content string. If it is smaller than previewMaxLength this will be displayed in full, else fullviewContent will be displayed.
15
+ * The content string.
16
+ * If it is smaller than `previewMaxLength` this will be displayed in full, else `fullviewContent` will be displayed.
13
17
  */
14
18
  content: string;
15
- /** If only the first non-empty line should be shown in the preview. This will in addition also be shortened according to previewMaxLength. */
16
- firstNonEmptyLineOnly?: boolean;
17
- /** If enabled the preview is rendered as markdown. */
19
+ /**
20
+ * Use only parts of `content` in the preview.
21
+ * `firstMarkdownSection` uses the content until the first double line return.
22
+ * Currently overwritten by `firstNonEmptyLineOnly`.
23
+ */
24
+ useOnly?: "firstNonEmptyLine" | "firstMarkdownSection";
25
+ /**
26
+ * If enabled the preview is rendered as Markdown.
27
+ */
18
28
  renderPreviewAsMarkdown?: boolean;
19
- /** White-listing of HTML elements that will be rendered when renderPreviewAsMarkdown is enabled. */
29
+ /**
30
+ * White-listing of HTML elements that will be rendered when renderPreviewAsMarkdown is enabled.
31
+ */
20
32
  allowedHtmlElementsInPreview?: string[];
21
- /** Allows to add non-string elements at the end of the content if the full description is shown, i.e. no toggler is necessary.
33
+ /**
34
+ * Allows to add non-string elements at the end of the content if the full description is shown, i.e. no toggler is necessary.
22
35
  * This allows to add non-string elements to both the full-view content and the pure string content.
23
36
  */
24
- noTogglerContentSuffix?: JSX.Element;
37
+ noTogglerContentSuffix?: React.JSX.Element;
38
+ /**
39
+ * If only the first non-empty line should be shown in the preview.
40
+ * This will in addition also be shortened according to `previewMaxLength`.
41
+ * @deprecated (v26) use `useOnly="firstNonEmptyLine"` instead
42
+ */
43
+ firstNonEmptyLineOnly?: boolean;
25
44
  }
26
45
 
27
- /** Version of the content toggler for text only content. */
46
+ /** Version of the content toggler for text centric content. */
28
47
  export function StringPreviewContentBlobToggler({
29
48
  className = "",
30
49
  previewMaxLength,
@@ -33,14 +52,29 @@ export function StringPreviewContentBlobToggler({
33
52
  content,
34
53
  fullviewContent,
35
54
  startExtended,
36
- firstNonEmptyLineOnly,
55
+ useOnly,
37
56
  renderPreviewAsMarkdown = false,
38
57
  allowedHtmlElementsInPreview,
39
58
  noTogglerContentSuffix,
59
+ firstNonEmptyLineOnly,
60
+ ...otherContentBlobTogglerProps
40
61
  }: StringPreviewContentBlobTogglerProps) {
41
- const previewMaybeFirstLine = firstNonEmptyLineOnly ? firstNonEmptyLine(content) : content;
42
- const previewString = previewMaxLength ? previewMaybeFirstLine.substr(0, previewMaxLength) : previewMaybeFirstLine;
43
- const enableToggler = previewString !== content;
62
+ // need to test `firstNonEmptyLineOnly` until property is removed
63
+ const useOnlyTest: StringPreviewContentBlobTogglerProps["useOnly"] = firstNonEmptyLineOnly
64
+ ? "firstNonEmptyLine"
65
+ : useOnly;
66
+
67
+ let previewString = content;
68
+ switch (useOnlyTest) {
69
+ case "firstNonEmptyLine":
70
+ previewString = useOnlyPart(content, regexFirstNonEmptyLine);
71
+ break;
72
+ case "firstMarkdownSection":
73
+ previewString = useOnlyPart(content, regexFirstMarkdownSection);
74
+ }
75
+
76
+ let enableToggler = previewString !== content;
77
+
44
78
  let previewContent = renderPreviewAsMarkdown ? (
45
79
  <Markdown key="markdown-content" allowedElements={allowedHtmlElementsInPreview}>
46
80
  {previewString}
@@ -48,6 +82,15 @@ export function StringPreviewContentBlobToggler({
48
82
  ) : (
49
83
  previewString
50
84
  );
85
+
86
+ if (
87
+ previewMaxLength &&
88
+ utils.reduceToText(previewContent, { decodeHtmlEntities: true }).length > previewMaxLength
89
+ ) {
90
+ previewContent = utils.reduceToText(previewContent, { decodeHtmlEntities: true }).slice(0, previewMaxLength);
91
+ enableToggler = true;
92
+ }
93
+
51
94
  if (!enableToggler && noTogglerContentSuffix) {
52
95
  previewContent = (
53
96
  <>
@@ -60,27 +103,37 @@ export function StringPreviewContentBlobToggler({
60
103
  return (
61
104
  <ContentBlobToggler
62
105
  className={className}
63
- previewContent={previewContent}
106
+ previewContent={<InlineText>{previewContent}</InlineText>}
64
107
  toggleExtendText={toggleExtendText}
65
108
  toggleReduceText={toggleReduceText}
66
109
  fullviewContent={fullviewContent}
67
110
  startExtended={startExtended}
68
111
  enableToggler={enableToggler}
112
+ {...otherContentBlobTogglerProps}
69
113
  />
70
114
  );
71
115
  }
72
116
 
73
- const newLineRegex = new RegExp("\r|\n"); // eslint-disable-line
117
+ const regexFirstNonEmptyLine = new RegExp("\r|\n"); // eslint-disable-line
118
+ const regexFirstMarkdownSection = new RegExp("\r\n\r\n|\n\n"); // eslint-disable-line
74
119
 
75
120
  /**
76
121
  * Takes the first non-empty line from a preview string.
77
122
  */
78
123
  function firstNonEmptyLine(preview: string) {
124
+ return useOnlyPart(preview, regexFirstNonEmptyLine);
125
+ }
126
+
127
+ /**
128
+ * Returns only the first part from a preview string.
129
+ * Or the full string as fallback.
130
+ */
131
+ function useOnlyPart(preview: string, regexTest: RegExp): string {
79
132
  const previewString = preview.trim();
80
- const result = newLineRegex.exec(previewString);
81
- return result !== null ? previewString.substr(0, result.index) : previewString;
133
+ const result = regexTest.exec(previewString);
134
+ return result !== null ? result.input.slice(0, result.index) : previewString;
82
135
  }
83
136
 
84
137
  export const stringPreviewContentBlobTogglerUtils = {
85
138
  firstNonEmptyLine,
86
- };
139
+ };
@@ -0,0 +1,27 @@
1
+ import React from "react";
2
+ import { Meta, StoryFn } from "@storybook/react";
3
+
4
+ import { Markdown, StringPreviewContentBlobToggler } from "../../../index";
5
+
6
+ const config = {
7
+ title: "CMEM/ContentBlobToggler/StringPreview",
8
+ component: StringPreviewContentBlobToggler,
9
+ } as Meta<typeof StringPreviewContentBlobToggler>;
10
+ export default config;
11
+
12
+ const Template: StoryFn<typeof StringPreviewContentBlobToggler> = (args) => (
13
+ <StringPreviewContentBlobToggler {...args} />
14
+ );
15
+
16
+ const initialTeststring =
17
+ "A library for GUI elements.\nIn order to create graphical user interfaces, please have look at the documentation at [Github](https://github.com/eccenca/gui-elements).";
18
+
19
+ export const Default = Template.bind({});
20
+ Default.args = {
21
+ content: initialTeststring,
22
+ fullviewContent: <Markdown htmlContentBlockProps={{ large: true }}>{initialTeststring}</Markdown>,
23
+ previewMaxLength: 64,
24
+ renderPreviewAsMarkdown: true,
25
+ toggleExtendText: "show more",
26
+ toggleReduceText: "show less",
27
+ };
@@ -0,0 +1,98 @@
1
+ import React from "react";
2
+ import { render, RenderResult } from "@testing-library/react";
3
+
4
+ import "@testing-library/jest-dom";
5
+
6
+ import {
7
+ StringPreviewContentBlobToggler,
8
+ StringPreviewContentBlobTogglerProps,
9
+ } from "../StringPreviewContentBlobToggler";
10
+
11
+ import { Default as StringPreviewContentBlobTogglerStory } from "./../stories/StringPreviewContentBlobToggler.stories";
12
+
13
+ describe("StringPreviewContentBlobToggler", () => {
14
+ const textMustExist = (queryByText: RenderResult["queryByText"], text: string) => {
15
+ expect(queryByText(text, { exact: false })).not.toBeNull();
16
+ };
17
+ const textMustNotExist = (queryByText: RenderResult["queryByText"], text: string) => {
18
+ expect(queryByText(text, { exact: false })).toBeNull();
19
+ };
20
+ it("should cut preview and show toggler to extend", () => {
21
+ const { queryByText } = render(
22
+ <StringPreviewContentBlobToggler
23
+ {...(StringPreviewContentBlobTogglerStory.args as StringPreviewContentBlobTogglerProps)}
24
+ />
25
+ );
26
+ textMustExist(queryByText, "A library for GUI elements.");
27
+ textMustNotExist(
28
+ queryByText,
29
+ "In order to create graphical user interfaces, please have look at the documentation at"
30
+ );
31
+ textMustExist(queryByText, "show more");
32
+ });
33
+ it("should display full view if `startExtended` is enabled, and show toggler to reduce", () => {
34
+ const { queryByText } = render(
35
+ <StringPreviewContentBlobToggler
36
+ {...(StringPreviewContentBlobTogglerStory.args as StringPreviewContentBlobTogglerProps)}
37
+ startExtended
38
+ />
39
+ );
40
+ textMustExist(
41
+ queryByText,
42
+ "In order to create graphical user interfaces, please have look at the documentation at"
43
+ );
44
+ textMustExist(queryByText, "show less");
45
+ });
46
+ it('should display only first content line on `useOnly={"firstNonEmptyLine"}`', () => {
47
+ const { queryByText } = render(
48
+ <StringPreviewContentBlobToggler
49
+ {...(StringPreviewContentBlobTogglerStory.args as StringPreviewContentBlobTogglerProps)}
50
+ useOnly={"firstNonEmptyLine"}
51
+ />
52
+ );
53
+ textMustExist(queryByText, "A library for GUI elements.");
54
+ textMustNotExist(queryByText, "In order to create");
55
+ });
56
+ it('should use first Markdown paragraph as preview content on `useOnly={"firstMarkdownSection"}` but shorten it', () => {
57
+ const { queryByText } = render(
58
+ <StringPreviewContentBlobToggler
59
+ {...(StringPreviewContentBlobTogglerStory.args as StringPreviewContentBlobTogglerProps)}
60
+ useOnly={"firstMarkdownSection"}
61
+ />
62
+ );
63
+ textMustExist(queryByText, "A library for GUI elements.");
64
+ textMustExist(queryByText, "In order to create");
65
+ textMustNotExist(queryByText, "please have look at the documentation at");
66
+ });
67
+ it("should display full preview and no toggler if content is short enough", () => {
68
+ const { queryByText } = render(
69
+ <StringPreviewContentBlobToggler
70
+ {...(StringPreviewContentBlobTogglerStory.args as StringPreviewContentBlobTogglerProps)}
71
+ previewMaxLength={144}
72
+ />
73
+ );
74
+ textMustExist(queryByText, "A library for GUI elements.");
75
+ textMustExist(
76
+ queryByText,
77
+ "In order to create graphical user interfaces, please have look at the documentation at"
78
+ );
79
+ textMustNotExist(queryByText, "https://github.com/"); // test if Markdown was rendered
80
+ textMustNotExist(queryByText, "show more");
81
+ });
82
+ it("should not use Markdown rendering on `renderPreviewAsMarkdown={false}`", () => {
83
+ const { queryByText } = render(
84
+ <StringPreviewContentBlobToggler
85
+ {...(StringPreviewContentBlobTogglerStory.args as StringPreviewContentBlobTogglerProps)}
86
+ previewMaxLength={144}
87
+ renderPreviewAsMarkdown={false}
88
+ />
89
+ );
90
+ textMustExist(queryByText, "A library for GUI elements.");
91
+ textMustExist(
92
+ queryByText,
93
+ "In order to create graphical user interfaces, please have look at the documentation at"
94
+ );
95
+ textMustExist(queryByText, "https://github.com/"); // test if Markdown was rendered
96
+ textMustExist(queryByText, "show more");
97
+ });
98
+ });
@@ -36,7 +36,7 @@ This is a paragraph.
36
36
  * another line
37
37
  3. third item
38
38
 
39
- This is a paragraph with a [text link](http://example.com/) and a footnote reference [^1].
39
+ This is a paragraph with a [text link](http://example.com/), some \`inline code\`, and a footnote reference [^1].
40
40
 
41
41
  ## Headline level 2
42
42
  ### Headline level 3
@@ -44,7 +44,7 @@ This is a paragraph with a [text link](http://example.com/) and a footnote refer
44
44
  ##### Headline level 5
45
45
  ###### Headline level 6
46
46
 
47
- This is a code block.
47
+ This is a code block.
48
48
 
49
49
  \`\`\`
50
50
  another code block
@@ -8,8 +8,9 @@ import { remarkDefinitionList } from "remark-definition-list";
8
8
  import remarkGfm from "remark-gfm";
9
9
  import { PluggableList } from "unified";
10
10
 
11
+ import { TestableComponent } from "../../components";
12
+ import { HtmlContentBlock, HtmlContentBlockProps } from "../../components/Typography";
11
13
  import { CLASSPREFIX as eccgui } from "../../configuration/constants";
12
- import { HtmlContentBlock, HtmlContentBlockProps, TestableComponent } from "../../index";
13
14
 
14
15
  export interface MarkdownProps extends TestableComponent {
15
16
  children: string;
@@ -55,8 +55,8 @@
55
55
  a[href=""]:not(#{$eccgui-selector-text-spot-highlight}) {
56
56
  font-size: $eccgui-size-typo-caption;
57
57
  line-height: $eccgui-size-typo-caption-lineheight;
58
- text-decoration: none;
59
58
  vertical-align: super;
59
+ text-decoration: none;
60
60
 
61
61
  &::before {
62
62
  content: "[";
@@ -9,6 +9,7 @@ import {
9
9
  } from "@xyflow/react";
10
10
 
11
11
  import { CLASSPREFIX as eccgui } from "../../../configuration/constants";
12
+
12
13
  import { EdgeNew } from "./../../../extensions/react-flow/edges/EdgeNew";
13
14
 
14
15
  export type ReactFlowV12ContainerProps = ReactFlowV12Props;
@@ -130,7 +130,7 @@ export const StickyNoteModal: React.FC<StickyNoteModalProps> = React.memo(
130
130
  name={translate("noteLabel")}
131
131
  id={"sticky-note-input"}
132
132
  mode="markdown"
133
- preventLineNumbers
133
+ useToolbar
134
134
  onChange={(value) => {
135
135
  refNote.current = value;
136
136
  }}