@eccenca/gui-elements 24.4.1-featurepreparefinalnextcmem6943.2 → 25.0.0-bugfixcenterednodecontentmenuitemscmem7184.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 (239) hide show
  1. package/CHANGELOG.md +93 -19
  2. package/dist/cjs/cmem/ActivityControl/SilkActivityControl.js +1 -3
  3. package/dist/cjs/cmem/ActivityControl/SilkActivityControl.js.map +1 -1
  4. package/dist/cjs/cmem/ContentBlobToggler/ContentBlobToggler.js +1 -0
  5. package/dist/cjs/cmem/ContentBlobToggler/ContentBlobToggler.js.map +1 -1
  6. package/dist/cjs/cmem/ContentBlobToggler/StringPreviewContentBlobToggler.js +34 -11
  7. package/dist/cjs/cmem/ContentBlobToggler/StringPreviewContentBlobToggler.js.map +1 -1
  8. package/dist/cjs/cmem/markdown/Markdown.js +1 -2
  9. package/dist/cjs/cmem/markdown/Markdown.js.map +1 -1
  10. package/dist/cjs/cmem/react-flow/ReactFlow/ReactFlowV12.js.map +1 -1
  11. package/dist/cjs/common/Intent/index.js +1 -1
  12. package/dist/cjs/common/Intent/index.js.map +1 -1
  13. package/dist/cjs/common/index.js +4 -0
  14. package/dist/cjs/common/index.js.map +1 -1
  15. package/dist/cjs/common/utils/reduceToText.js +94 -0
  16. package/dist/cjs/common/utils/reduceToText.js.map +1 -0
  17. package/dist/cjs/components/Application/ApplicationViewability.js +33 -0
  18. package/dist/cjs/components/Application/ApplicationViewability.js.map +1 -0
  19. package/dist/cjs/components/Application/index.js +1 -0
  20. package/dist/cjs/components/Application/index.js.map +1 -1
  21. package/dist/cjs/components/AutocompleteField/AutoCompleteField.js +1 -1
  22. package/dist/cjs/components/AutocompleteField/AutoCompleteField.js.map +1 -1
  23. package/dist/cjs/components/Button/Button.js +1 -1
  24. package/dist/cjs/components/Button/Button.js.map +1 -1
  25. package/dist/cjs/components/ContextOverlay/ContextMenu.js +2 -2
  26. package/dist/cjs/components/ContextOverlay/ContextMenu.js.map +1 -1
  27. package/dist/cjs/components/ContextOverlay/ContextOverlay.js +65 -18
  28. package/dist/cjs/components/ContextOverlay/ContextOverlay.js.map +1 -1
  29. package/dist/cjs/components/Dialog/Modal.js +15 -3
  30. package/dist/cjs/components/Dialog/Modal.js.map +1 -1
  31. package/dist/cjs/components/Dialog/ModalContext.js +51 -0
  32. package/dist/cjs/components/Dialog/ModalContext.js.map +1 -0
  33. package/dist/cjs/components/Dialog/index.js +1 -0
  34. package/dist/cjs/components/Dialog/index.js.map +1 -1
  35. package/dist/cjs/components/Icon/IconButton.js.map +1 -1
  36. package/dist/cjs/components/Icon/canonicalIconNames.js +25 -2
  37. package/dist/cjs/components/Icon/canonicalIconNames.js.map +1 -1
  38. package/dist/cjs/components/Spinner/Spinner.js +2 -1
  39. package/dist/cjs/components/Spinner/Spinner.js.map +1 -1
  40. package/dist/cjs/components/TextReducer/TextReducer.js +17 -63
  41. package/dist/cjs/components/TextReducer/TextReducer.js.map +1 -1
  42. package/dist/cjs/components/Typography/InlineText.js +29 -0
  43. package/dist/cjs/components/Typography/InlineText.js.map +1 -0
  44. package/dist/cjs/components/Typography/index.js +1 -0
  45. package/dist/cjs/components/Typography/index.js.map +1 -1
  46. package/dist/cjs/extensions/codemirror/CodeMirror.js +2 -2
  47. package/dist/cjs/extensions/codemirror/CodeMirror.js.map +1 -1
  48. package/dist/cjs/extensions/codemirror/hooks/useCodemirrorModeExtension.hooks.js +1 -1
  49. package/dist/cjs/extensions/codemirror/hooks/useCodemirrorModeExtension.hooks.js.map +1 -1
  50. package/dist/cjs/extensions/codemirror/tests/codemirrorTestHelper.js +2 -2
  51. package/dist/cjs/extensions/codemirror/tests/codemirrorTestHelper.js.map +1 -1
  52. package/dist/cjs/extensions/react-flow/edges/EdgeNew.js +1 -1
  53. package/dist/cjs/extensions/react-flow/edges/EdgeNew.js.map +1 -1
  54. package/dist/cjs/extensions/react-flow/handles/HandleDefault.js +1 -1
  55. package/dist/cjs/extensions/react-flow/handles/HandleDefault.js.map +1 -1
  56. package/dist/cjs/extensions/react-flow/minimap/MiniMap.js +1 -1
  57. package/dist/cjs/extensions/react-flow/minimap/MiniMap.js.map +1 -1
  58. package/dist/cjs/extensions/react-flow/minimap/MiniMapV12.js.map +1 -1
  59. package/dist/cjs/extensions/react-flow/nodes/NodeContent.js +2 -2
  60. package/dist/cjs/extensions/react-flow/nodes/NodeContent.js.map +1 -1
  61. package/dist/cjs/extensions/react-flow/nodes/nodeUtils.js.map +1 -1
  62. package/dist/esm/cmem/ActivityControl/SilkActivityControl.js +1 -3
  63. package/dist/esm/cmem/ActivityControl/SilkActivityControl.js.map +1 -1
  64. package/dist/esm/cmem/ContentBlobToggler/ContentBlobToggler.js +1 -0
  65. package/dist/esm/cmem/ContentBlobToggler/ContentBlobToggler.js.map +1 -1
  66. package/dist/esm/cmem/ContentBlobToggler/StringPreviewContentBlobToggler.js +32 -9
  67. package/dist/esm/cmem/ContentBlobToggler/StringPreviewContentBlobToggler.js.map +1 -1
  68. package/dist/esm/cmem/markdown/Markdown.js +1 -2
  69. package/dist/esm/cmem/markdown/Markdown.js.map +1 -1
  70. package/dist/esm/cmem/react-flow/ReactFlow/ReactFlowV12.js.map +1 -1
  71. package/dist/esm/common/Intent/index.js +1 -1
  72. package/dist/esm/common/Intent/index.js.map +1 -1
  73. package/dist/esm/common/index.js +4 -0
  74. package/dist/esm/common/index.js.map +1 -1
  75. package/dist/esm/common/utils/reduceToText.js +75 -0
  76. package/dist/esm/common/utils/reduceToText.js.map +1 -0
  77. package/dist/esm/components/Application/ApplicationViewability.js +28 -0
  78. package/dist/esm/components/Application/ApplicationViewability.js.map +1 -0
  79. package/dist/esm/components/Application/index.js +1 -0
  80. package/dist/esm/components/Application/index.js.map +1 -1
  81. package/dist/esm/components/AutocompleteField/AutoCompleteField.js +1 -1
  82. package/dist/esm/components/AutocompleteField/AutoCompleteField.js.map +1 -1
  83. package/dist/esm/components/Button/Button.js +1 -1
  84. package/dist/esm/components/Button/Button.js.map +1 -1
  85. package/dist/esm/components/ContextOverlay/ContextMenu.js +2 -2
  86. package/dist/esm/components/ContextOverlay/ContextMenu.js.map +1 -1
  87. package/dist/esm/components/ContextOverlay/ContextOverlay.js +69 -22
  88. package/dist/esm/components/ContextOverlay/ContextOverlay.js.map +1 -1
  89. package/dist/esm/components/Dialog/Modal.js +15 -3
  90. package/dist/esm/components/Dialog/Modal.js.map +1 -1
  91. package/dist/esm/components/Dialog/ModalContext.js +69 -0
  92. package/dist/esm/components/Dialog/ModalContext.js.map +1 -0
  93. package/dist/esm/components/Dialog/index.js +1 -0
  94. package/dist/esm/components/Dialog/index.js.map +1 -1
  95. package/dist/esm/components/Icon/IconButton.js.map +1 -1
  96. package/dist/esm/components/Icon/canonicalIconNames.js +25 -2
  97. package/dist/esm/components/Icon/canonicalIconNames.js.map +1 -1
  98. package/dist/esm/components/Spinner/Spinner.js +2 -1
  99. package/dist/esm/components/Spinner/Spinner.js.map +1 -1
  100. package/dist/esm/components/TextReducer/TextReducer.js +17 -41
  101. package/dist/esm/components/TextReducer/TextReducer.js.map +1 -1
  102. package/dist/esm/components/Typography/InlineText.js +33 -0
  103. package/dist/esm/components/Typography/InlineText.js.map +1 -0
  104. package/dist/esm/components/Typography/index.js +1 -0
  105. package/dist/esm/components/Typography/index.js.map +1 -1
  106. package/dist/esm/extensions/codemirror/CodeMirror.js +3 -3
  107. package/dist/esm/extensions/codemirror/CodeMirror.js.map +1 -1
  108. package/dist/esm/extensions/codemirror/hooks/useCodemirrorModeExtension.hooks.js +1 -1
  109. package/dist/esm/extensions/codemirror/hooks/useCodemirrorModeExtension.hooks.js.map +1 -1
  110. package/dist/esm/extensions/codemirror/tests/codemirrorTestHelper.js +3 -3
  111. package/dist/esm/extensions/codemirror/tests/codemirrorTestHelper.js.map +1 -1
  112. package/dist/esm/extensions/react-flow/edges/EdgeNew.js +1 -1
  113. package/dist/esm/extensions/react-flow/edges/EdgeNew.js.map +1 -1
  114. package/dist/esm/extensions/react-flow/handles/HandleDefault.js +1 -1
  115. package/dist/esm/extensions/react-flow/handles/HandleDefault.js.map +1 -1
  116. package/dist/esm/extensions/react-flow/minimap/MiniMap.js +1 -1
  117. package/dist/esm/extensions/react-flow/minimap/MiniMap.js.map +1 -1
  118. package/dist/esm/extensions/react-flow/minimap/MiniMapV12.js.map +1 -1
  119. package/dist/esm/extensions/react-flow/nodes/NodeContent.js +2 -2
  120. package/dist/esm/extensions/react-flow/nodes/NodeContent.js.map +1 -1
  121. package/dist/esm/extensions/react-flow/nodes/nodeUtils.js.map +1 -1
  122. package/dist/types/cmem/ContentBlobToggler/StringPreviewContentBlobToggler.d.ts +26 -10
  123. package/dist/types/cmem/react-flow/StickyNoteModal/StickyNoteModal.d.ts +1 -1
  124. package/dist/types/common/index.d.ts +3 -0
  125. package/dist/types/common/utils/reduceToText.d.ts +10 -0
  126. package/dist/types/components/Application/ApplicationViewability.d.ts +36 -0
  127. package/dist/types/components/Application/index.d.ts +1 -0
  128. package/dist/types/components/Button/Button.d.ts +14 -7
  129. package/dist/types/components/ContextOverlay/ContextMenu.d.ts +1 -1
  130. package/dist/types/components/Dialog/Modal.d.ts +9 -1
  131. package/dist/types/components/Dialog/ModalContext.d.ts +13 -0
  132. package/dist/types/components/Dialog/index.d.ts +1 -0
  133. package/dist/types/components/Icon/IconButton.d.ts +1 -1
  134. package/dist/types/components/Icon/canonicalIconNames.d.ts +23 -0
  135. package/dist/types/components/Spinner/Spinner.d.ts +11 -4
  136. package/dist/types/components/Structure/TitleSubsection.d.ts +1 -1
  137. package/dist/types/components/Tabs/Tab.d.ts +4 -4
  138. package/dist/types/components/TextReducer/TextReducer.d.ts +13 -1
  139. package/dist/types/components/Typography/InlineText.d.ts +13 -0
  140. package/dist/types/components/Typography/index.d.ts +1 -0
  141. package/dist/types/extensions/codemirror/hooks/useCodemirrorModeExtension.hooks.d.ts +1 -1
  142. package/dist/types/extensions/codemirror/tests/codemirrorTestHelper.d.ts +1 -1
  143. package/dist/types/extensions/react-flow/edges/EdgeLabel.d.ts +1 -1
  144. package/package.json +54 -53
  145. package/src/cmem/ActivityControl/SilkActivityControl.tsx +1 -1
  146. package/src/cmem/ContentBlobToggler/ContentBlobToggler.tsx +1 -1
  147. package/src/cmem/ContentBlobToggler/StringPreviewContentBlobToggler.tsx +65 -17
  148. package/src/cmem/ContentBlobToggler/stories/StringPreviewContentBlobToggler.stories.tsx +27 -0
  149. package/src/cmem/ContentBlobToggler/tests/StringPreviewContentBlobToggler.test.tsx +98 -0
  150. package/src/cmem/markdown/Markdown.tsx +1 -2
  151. package/src/cmem/react-flow/ReactFlow/ReactFlowV12.tsx +1 -0
  152. package/src/cmem/react-flow/StickyNoteModal/StickyNoteModal.tsx +1 -1
  153. package/src/cmem/react-flow/_minimap.scss +10 -0
  154. package/src/cmem/react-flow/configuration/_colors-graph.scss +12 -12
  155. package/src/cmem/react-flow/configuration/_colors-linking.scss +8 -8
  156. package/src/cmem/react-flow/configuration/_colors-workflow.scss +11 -11
  157. package/src/common/Intent/index.ts +2 -1
  158. package/src/common/index.ts +6 -0
  159. package/src/common/scss/_color-functions.scss +5 -0
  160. package/src/common/utils/reduceToText.tsx +82 -0
  161. package/src/components/Application/ApplicationViewability.tsx +61 -0
  162. package/src/components/Application/_content.scss +7 -0
  163. package/src/components/Application/_header.scss +12 -3
  164. package/src/components/Application/_viewability.scss +13 -0
  165. package/src/components/Application/application.scss +1 -0
  166. package/src/components/Application/index.ts +1 -0
  167. package/src/components/Application/stories/ApplicationViewability.stories.tsx +37 -0
  168. package/src/components/Application/tests/ApplicationViewability.test.tsx +43 -0
  169. package/src/components/AutoSuggestion/tests/ExtendedCodeEditor.test.tsx +1 -1
  170. package/src/components/AutocompleteField/AutoCompleteField.tsx +1 -0
  171. package/src/components/Button/Button.stories.tsx +7 -1
  172. package/src/components/Button/Button.tsx +16 -9
  173. package/src/components/Button/button.scss +86 -24
  174. package/src/components/Card/card.scss +6 -0
  175. package/src/components/Chat/stories/ChatField.stories.tsx +6 -1
  176. package/src/components/Checkbox/checkbox.scss +14 -2
  177. package/src/components/ContentGroup/_contentgroup.scss +9 -0
  178. package/src/components/ContextOverlay/ContextMenu.tsx +4 -1
  179. package/src/components/ContextOverlay/ContextOverlay.tsx +77 -18
  180. package/src/components/ContextOverlay/tests/ContextMenu.test.tsx +43 -0
  181. package/src/components/ContextOverlay/tests/ContextOverlay.test.tsx +71 -0
  182. package/src/components/Depiction/depiction.scss +6 -0
  183. package/src/components/Dialog/Modal.tsx +28 -3
  184. package/src/components/Dialog/ModalContext.tsx +56 -0
  185. package/src/components/Dialog/index.ts +1 -0
  186. package/src/components/Dialog/stories/Modal.stories.tsx +10 -7
  187. package/src/components/Dialog/stories/ModalContext.stories.tsx +153 -0
  188. package/src/components/FlexibleLayout/flexiblelayout.scss +16 -0
  189. package/src/components/Grid/grid.scss +17 -0
  190. package/src/components/Grid/stories/Grid.stories.tsx +10 -7
  191. package/src/components/Grid/stories/GridRow.stories.tsx +13 -7
  192. package/src/components/Icon/IconButton.tsx +1 -1
  193. package/src/components/Icon/canonicalIconNames.tsx +25 -2
  194. package/src/components/Icon/icon.scss +6 -0
  195. package/src/components/Icon/stories/Icon.stories.tsx +65 -5
  196. package/src/components/Icon/stories/IconButton.stories.tsx +2 -1
  197. package/src/components/Notification/Notification.stories.tsx +20 -6
  198. package/src/components/Notification/notification.scss +14 -3
  199. package/src/components/OverviewItem/overviewitem.scss +9 -0
  200. package/src/components/OverviewItem/stories/OverviewItem.stories.tsx +28 -0
  201. package/src/components/OverviewItem/stories/OverviewItemActions.stories.tsx +2 -2
  202. package/src/components/OverviewItem/stories/OverviewItemDescription.stories.tsx +1 -1
  203. package/src/components/OverviewItem/stories/OverviewItemLine.stories.tsx +1 -1
  204. package/src/components/ProgressBar/Stories/ProgressBar.stories.tsx +7 -1
  205. package/src/components/PropertyValuePair/propertyvalue.scss +23 -1
  206. package/src/components/Select/Select.stories.tsx +1 -1
  207. package/src/components/Separation/separation.scss +6 -0
  208. package/src/components/Spinner/Spinner.tsx +13 -3
  209. package/src/components/Spinner/Stories/spinner.stories.tsx +1 -1
  210. package/src/components/Spinner/spinner.scss +5 -1
  211. package/src/components/Table/table.scss +22 -0
  212. package/src/components/Tag/stories/TagList.stories.tsx +2 -2
  213. package/src/components/Tag/tag.scss +105 -74
  214. package/src/components/TextField/textfield.scss +23 -15
  215. package/src/components/TextReducer/TextReducer.stories.tsx +2 -1
  216. package/src/components/TextReducer/TextReducer.test.tsx +44 -0
  217. package/src/components/TextReducer/TextReducer.tsx +17 -44
  218. package/src/components/Typography/InlineText.tsx +24 -0
  219. package/src/components/Typography/index.ts +1 -0
  220. package/src/components/Typography/stories/InlineText.stories.tsx +27 -0
  221. package/src/components/Typography/typography.scss +23 -2
  222. package/src/components/VisualTour/stories/VisualTour.stories.tsx +1 -1
  223. package/src/configuration/_palettes.scss +2 -1
  224. package/src/extensions/codemirror/CodeMirror.tsx +4 -4
  225. package/src/extensions/codemirror/hooks/useCodemirrorModeExtension.hooks.ts +1 -2
  226. package/src/extensions/codemirror/tests/codemirrorTestHelper.ts +3 -3
  227. package/src/extensions/react-flow/_config.scss +8 -3
  228. package/src/extensions/react-flow/_react-flow_v12.scss +10 -14
  229. package/src/extensions/react-flow/edges/EdgeLabel.tsx +1 -1
  230. package/src/extensions/react-flow/edges/EdgeNew.tsx +2 -1
  231. package/src/extensions/react-flow/edges/_edges.scss +15 -7
  232. package/src/extensions/react-flow/edges/stories/EdgeDefault.stories.tsx +5 -5
  233. package/src/extensions/react-flow/handles/HandleDefault.tsx +2 -2
  234. package/src/extensions/react-flow/minimap/MiniMap.tsx +2 -1
  235. package/src/extensions/react-flow/minimap/MiniMapV12.tsx +1 -1
  236. package/src/extensions/react-flow/nodes/NodeContent.tsx +2 -2
  237. package/src/extensions/react-flow/nodes/_nodes.scss +4 -3
  238. package/src/extensions/react-flow/nodes/nodeUtils.tsx +1 -0
  239. package/src/extensions/react-flow/nodes/stories/NodeContent.stories.tsx +2 -2
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@eccenca/gui-elements",
3
3
  "description": "GUI elements based on other libraries, usable in React application, written in Typescript.",
4
- "version": "24.4.1-featurepreparefinalnextcmem6943.2",
4
+ "version": "25.0.0-bugfixcenterednodecontentmenuitemscmem7184.0",
5
5
  "license": "Apache-2.0",
6
6
  "homepage": "https://github.com/eccenca/gui-elements",
7
7
  "bugs": "https://github.com/eccenca/gui-elements/issues",
@@ -68,28 +68,29 @@
68
68
  "autolint:all": "yarn autolint:scripts && yarn autolint:styles && yarn autolint:prettier"
69
69
  },
70
70
  "dependencies": {
71
- "@blueprintjs/colors": "^5.1.8",
72
- "@blueprintjs/core": "^5.18.0",
73
- "@blueprintjs/select": "^5.3.19",
74
- "@carbon/icons": "^11.58.0",
75
- "@carbon/react": "^1.80.1",
76
- "@codemirror/lang-html": "^6.4.9",
77
- "@codemirror/lang-javascript": "^6.2.3",
78
- "@codemirror/lang-json": "^6.0.1",
79
- "@codemirror/lang-markdown": "^6.3.2",
80
- "@codemirror/lang-sql": "^6.8.0",
71
+ "@blueprintjs/colors": "^5.1.11",
72
+ "@blueprintjs/core": "^5.19.1",
73
+ "@blueprintjs/select": "^5.3.21",
74
+ "@carbon/icons": "^11.70.0",
75
+ "@carbon/react": "^1.96.0",
76
+ "@codemirror/lang-html": "^6.4.11",
77
+ "@codemirror/lang-javascript": "^6.2.4",
78
+ "@codemirror/lang-json": "^6.0.2",
79
+ "@codemirror/lang-markdown": "^6.5.0",
80
+ "@codemirror/lang-sql": "^6.10.0",
81
81
  "@codemirror/lang-xml": "^6.1.0",
82
82
  "@codemirror/lang-yaml": "^6.1.2",
83
- "@codemirror/legacy-modes": "^6.5.0",
83
+ "@codemirror/legacy-modes": "^6.5.2",
84
84
  "@mavrin/remark-typograf": "^2.2.0",
85
- "@xyflow/react": "^12.6.0",
85
+ "@xyflow/react": "^12.9.3",
86
86
  "classnames": "^2.5.1",
87
- "codemirror": "^6.0.1",
87
+ "codemirror": "^6.0.2",
88
88
  "color": "^4.2.3",
89
89
  "compute-scroll-into-view": "^3.1.1",
90
+ "he": "^1.2.0",
90
91
  "jshint": "^2.13.6",
91
92
  "lodash": "^4.17.21",
92
- "n3": "^1.25.1",
93
+ "n3": "^1.26.0",
93
94
  "re-resizable": "^6.10.3",
94
95
  "react": "^16.13.1",
95
96
  "react-dom": "^16.14.0",
@@ -97,7 +98,7 @@
97
98
  "react-inlinesvg": "^3.0.3",
98
99
  "react-is": "^16.13.1",
99
100
  "react-markdown": "^10.1.0",
100
- "react-syntax-highlighter": "^15.6.1",
101
+ "react-syntax-highlighter": "^15.6.6",
101
102
  "rehype-external-links": "^3.0.0",
102
103
  "rehype-raw": "^7.0.0",
103
104
  "remark-definition-list": "^2.0.0",
@@ -106,54 +107,54 @@
106
107
  "reset-css": "^5.0.2",
107
108
  "unified": "^11.0.5",
108
109
  "wicg-inert": "^3.1.3",
109
- "xml-formatter": "^3.6.5"
110
+ "xml-formatter": "^3.6.7"
110
111
  },
111
112
  "devDependencies": {
112
- "@babel/core": "^7.26.10",
113
- "@babel/plugin-transform-class-properties": "^7.25.9",
114
- "@babel/plugin-transform-private-methods": "^7.25.9",
115
- "@babel/plugin-transform-private-property-in-object": "^7.25.9",
116
- "@babel/preset-env": "^7.26.9",
117
- "@babel/preset-flow": "^7.25.9",
118
- "@babel/preset-react": "^7.26.3",
119
- "@babel/preset-typescript": "^7.27.0",
120
- "@eslint/compat": "^1.2.8",
113
+ "@babel/core": "^7.28.5",
114
+ "@babel/plugin-transform-class-properties": "^7.27.1",
115
+ "@babel/plugin-transform-private-methods": "^7.27.1",
116
+ "@babel/plugin-transform-private-property-in-object": "^7.27.1",
117
+ "@babel/preset-env": "^7.28.5",
118
+ "@babel/preset-flow": "^7.27.1",
119
+ "@babel/preset-react": "^7.28.5",
120
+ "@babel/preset-typescript": "^7.28.5",
121
+ "@eslint/compat": "^1.4.1",
121
122
  "@eslint/eslintrc": "^3.3.1",
122
- "@eslint/js": "^9.24.0",
123
- "@storybook/addon-actions": "^8.6.12",
124
- "@storybook/addon-essentials": "^8.6.12",
125
- "@storybook/addon-jest": "^8.6.12",
126
- "@storybook/addon-links": "^8.6.12",
123
+ "@eslint/js": "^9.39.1",
124
+ "@storybook/addon-actions": "^8.6.14",
125
+ "@storybook/addon-essentials": "^8.6.14",
126
+ "@storybook/addon-jest": "^8.6.14",
127
+ "@storybook/addon-links": "^8.6.14",
127
128
  "@storybook/addon-webpack5-compiler-babel": "^3.0.6",
128
- "@storybook/cli": "^8.6.12",
129
+ "@storybook/cli": "^8.6.14",
129
130
  "@storybook/preset-scss": "^1.0.3",
130
- "@storybook/react": "^8.6.12",
131
- "@storybook/react-webpack5": "^8.6.12",
132
- "@storybook/test": "^8.6.12",
133
- "@testing-library/jest-dom": "^6.6.3",
131
+ "@storybook/react": "^8.6.14",
132
+ "@storybook/react-webpack5": "^8.6.14",
133
+ "@storybook/test": "^8.6.14",
134
+ "@testing-library/jest-dom": "^6.9.1",
134
135
  "@testing-library/react": "^12.1.5",
135
- "@types/codemirror": "^5.60.15",
136
136
  "@types/color": "^3.0.6",
137
- "@types/jest": "^29.5.14",
137
+ "@types/he": "^1.2.3",
138
+ "@types/jest": "^30.0.0",
138
139
  "@types/jshint": "^2.12.4",
139
- "@types/lodash": "^4.17.16",
140
- "@types/n3": "^1.24.2",
141
- "@types/react-is": "^19.0.0",
140
+ "@types/lodash": "^4.17.21",
141
+ "@types/n3": "^1.26.1",
142
+ "@types/react-is": "^19.2.0",
142
143
  "@types/react-syntax-highlighter": "^15.5.13",
143
- "@typescript-eslint/eslint-plugin": "^8.30.1",
144
- "@typescript-eslint/parser": "^8.30.1",
145
- "babel-jest": "^29.7.0",
146
- "chromatic": "^11.28.0",
147
- "eslint": "^9.24.0",
144
+ "@typescript-eslint/eslint-plugin": "^8.47.0",
145
+ "@typescript-eslint/parser": "^8.47.0",
146
+ "babel-jest": "^30.2.0",
147
+ "chromatic": "^13.3.4",
148
+ "eslint": "^9.39.1",
148
149
  "eslint-plugin-react": "^7.37.5",
149
- "eslint-plugin-react-hooks": "^5.2.0",
150
+ "eslint-plugin-react-hooks": "^7.0.1",
150
151
  "eslint-plugin-simple-import-sort": "^12.1.1",
151
152
  "husky": "4",
152
153
  "identity-obj-proxy": "^3.0.0",
153
- "jest": "^30.0.5",
154
- "jest-environment-jsdom": "^30.0.5",
154
+ "jest": "^30.2.0",
155
+ "jest-environment-jsdom": "^30.2.0",
155
156
  "jest-pnp-resolver": "^1.2.3",
156
- "lint-staged": "^15.5.1",
157
+ "lint-staged": "^15.5.2",
157
158
  "node-sass-package-importer": "^5.3.3",
158
159
  "path": "^0.12.7",
159
160
  "prettier": "^2.8.8",
@@ -163,7 +164,7 @@
163
164
  "rimraf": "^5.0.10",
164
165
  "sass": "1.62.1",
165
166
  "sass-loader": "10.3.1",
166
- "storybook": "^8.6.12",
167
+ "storybook": "^8.6.14",
167
168
  "stylelint": "^16.18.0",
168
169
  "stylelint-config-recess-order": "^6.0.0",
169
170
  "stylelint-config-standard-scss": "^14.0.0",
@@ -178,8 +179,8 @@
178
179
  "react": ">=16"
179
180
  },
180
181
  "resolutions": {
181
- "**/@types/react": "^17.0.85",
182
- "node-sass-package-importer/**/postcss": "^8.4.49",
182
+ "**/@types/react": "^17.0.90",
183
+ "node-sass-package-importer/**/postcss": "^8.5.6",
183
184
  "string-width": "^4.2.3",
184
185
  "wrap-ansi": "^7.0.0",
185
186
  "hast-util-from-parse5": "8.0.0"
@@ -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
 
@@ -58,7 +58,7 @@ export function ContentBlobToggler({
58
58
  {previewContent}
59
59
  {enableToggler && (
60
60
  <>
61
- &hellip;{" "}
61
+ {" "}&hellip;{" "}
62
62
  <Link
63
63
  href="#more"
64
64
  data-test-id={"content-blob-toggler-more-link"}
@@ -1,30 +1,46 @@
1
1
  import React from "react";
2
2
 
3
- import { ContentBlobToggler, ContentBlobTogglerProps, Markdown } from "./..";
3
+ import { ContentBlobToggler, ContentBlobTogglerProps, InlineText, Markdown, utils } from "./../../index";
4
4
 
5
5
  export interface StringPreviewContentBlobTogglerProps
6
6
  extends Omit<ContentBlobTogglerProps, "previewContent" | "enableToggler"> {
7
7
  /**
8
- The preview content will be cut to this length if it is too long.
8
+ * The preview content will be cut to this length if it is too long.
9
9
  */
10
10
  previewMaxLength?: number;
11
11
  /**
12
- The content string. If it is smaller than previewMaxLength this will be displayed in full, else fullviewContent will be displayed.
12
+ * The content string.
13
+ * If it is smaller than `previewMaxLength` this will be displayed in full, else `fullviewContent` will be displayed.
13
14
  */
14
15
  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. */
16
+ /**
17
+ * Use only parts of `content` in the preview.
18
+ * `firstMarkdownSection` uses the content until the first double line return.
19
+ * Currently overwritten by `firstNonEmptyLineOnly`.
20
+ */
21
+ useOnly?: "firstNonEmptyLine" | "firstMarkdownSection";
22
+ /**
23
+ * If enabled the preview is rendered as Markdown.
24
+ */
18
25
  renderPreviewAsMarkdown?: boolean;
19
- /** White-listing of HTML elements that will be rendered when renderPreviewAsMarkdown is enabled. */
26
+ /**
27
+ * White-listing of HTML elements that will be rendered when renderPreviewAsMarkdown is enabled.
28
+ */
20
29
  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.
30
+ /**
31
+ * 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
32
  * This allows to add non-string elements to both the full-view content and the pure string content.
23
33
  */
24
34
  noTogglerContentSuffix?: JSX.Element;
35
+ /**
36
+ * If only the first non-empty line should be shown in the preview.
37
+ * This will in addition also be shortened according to `previewMaxLength`.
38
+ * @deprecated (v26) use `useOnly="firstNonEmptyLine"` instead
39
+ */
40
+ firstNonEmptyLineOnly?: boolean;
25
41
  }
26
42
 
27
- /** Version of the content toggler for text only content. */
43
+ /** Version of the content toggler for text centric content. */
28
44
  export function StringPreviewContentBlobToggler({
29
45
  className = "",
30
46
  previewMaxLength,
@@ -33,14 +49,28 @@ export function StringPreviewContentBlobToggler({
33
49
  content,
34
50
  fullviewContent,
35
51
  startExtended,
36
- firstNonEmptyLineOnly,
52
+ useOnly,
37
53
  renderPreviewAsMarkdown = false,
38
54
  allowedHtmlElementsInPreview,
39
55
  noTogglerContentSuffix,
56
+ firstNonEmptyLineOnly,
40
57
  }: StringPreviewContentBlobTogglerProps) {
41
- const previewMaybeFirstLine = firstNonEmptyLineOnly ? firstNonEmptyLine(content) : content;
42
- const previewString = previewMaxLength ? previewMaybeFirstLine.substr(0, previewMaxLength) : previewMaybeFirstLine;
43
- const enableToggler = previewString !== content;
58
+ // need to test `firstNonEmptyLineOnly` until property is removed
59
+ const useOnlyTest: StringPreviewContentBlobTogglerProps["useOnly"] = firstNonEmptyLineOnly
60
+ ? "firstNonEmptyLine"
61
+ : useOnly;
62
+
63
+ let previewString = content;
64
+ switch (useOnlyTest) {
65
+ case "firstNonEmptyLine":
66
+ previewString = useOnlyPart(content, regexFirstNonEmptyLine);
67
+ break;
68
+ case "firstMarkdownSection":
69
+ previewString = useOnlyPart(content, regexFirstMarkdownSection);
70
+ }
71
+
72
+ let enableToggler = previewString !== content;
73
+
44
74
  let previewContent = renderPreviewAsMarkdown ? (
45
75
  <Markdown key="markdown-content" allowedElements={allowedHtmlElementsInPreview}>
46
76
  {previewString}
@@ -48,6 +78,15 @@ export function StringPreviewContentBlobToggler({
48
78
  ) : (
49
79
  previewString
50
80
  );
81
+
82
+ if (
83
+ previewMaxLength &&
84
+ utils.reduceToText(previewContent, { decodeHtmlEntities: true }).length > previewMaxLength
85
+ ) {
86
+ previewContent = utils.reduceToText(previewContent, { decodeHtmlEntities: true }).slice(0, previewMaxLength);
87
+ enableToggler = true;
88
+ }
89
+
51
90
  if (!enableToggler && noTogglerContentSuffix) {
52
91
  previewContent = (
53
92
  <>
@@ -60,7 +99,7 @@ export function StringPreviewContentBlobToggler({
60
99
  return (
61
100
  <ContentBlobToggler
62
101
  className={className}
63
- previewContent={previewContent}
102
+ previewContent={<InlineText>{previewContent}</InlineText>}
64
103
  toggleExtendText={toggleExtendText}
65
104
  toggleReduceText={toggleReduceText}
66
105
  fullviewContent={fullviewContent}
@@ -70,15 +109,24 @@ export function StringPreviewContentBlobToggler({
70
109
  );
71
110
  }
72
111
 
73
- const newLineRegex = new RegExp("\r|\n"); // eslint-disable-line
112
+ const regexFirstNonEmptyLine = new RegExp("\r|\n"); // eslint-disable-line
113
+ const regexFirstMarkdownSection = new RegExp("\r\n\r\n|\n\n"); // eslint-disable-line
74
114
 
75
115
  /**
76
116
  * Takes the first non-empty line from a preview string.
77
117
  */
78
118
  function firstNonEmptyLine(preview: string) {
119
+ return useOnlyPart(preview, regexFirstNonEmptyLine);
120
+ }
121
+
122
+ /**
123
+ * Returns only the first part from a preview string.
124
+ * Or the full string as fallback.
125
+ */
126
+ function useOnlyPart(preview: string, regexTest: RegExp): string {
79
127
  const previewString = preview.trim();
80
- const result = newLineRegex.exec(previewString);
81
- return result !== null ? previewString.substr(0, result.index) : previewString;
128
+ const result = regexTest.exec(previewString);
129
+ return result !== null ? result.input.slice(0, result.index) : previewString;
82
130
  }
83
131
 
84
132
  export const stringPreviewContentBlobTogglerUtils = {
@@ -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
+ });
@@ -2,7 +2,6 @@ import React from "react";
2
2
  import ReactMarkdown from "react-markdown";
3
3
  import { Prism as SyntaxHighlighter } from "react-syntax-highlighter";
4
4
  // @ts-ignore: No declaration file for module (TODO: should be @ts-expect-error but GUI elements is used inside project with `noImplicitAny=false`)
5
- import remarkTypograf from "@mavrin/remark-typograf";
6
5
  import rehypeExternalLinks from "rehype-external-links";
7
6
  import rehypeRaw from "rehype-raw";
8
7
  import { remarkDefinitionList } from "remark-definition-list";
@@ -55,7 +54,7 @@ const configDefault = {
55
54
  @see https://github.com/remarkjs/react-markdown#api
56
55
  */
57
56
  // @see https://github.com/remarkjs/remark/blob/main/doc/plugins.md#list-of-plugins
58
- remarkPlugins: [remarkGfm, remarkTypograf, remarkDefinitionList] as PluggableList,
57
+ remarkPlugins: [remarkGfm, remarkDefinitionList] as PluggableList,
59
58
  // @see https://github.com/rehypejs/rehype/blob/main/doc/plugins.md#list-of-plugins
60
59
  rehypePlugins: [] as PluggableList,
61
60
  allowedElements: [
@@ -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;
@@ -40,7 +40,7 @@ export interface StickyNoteModalProps {
40
40
  /**
41
41
  * Forward other properties to the `SimpleModal` element that is used for this dialog.
42
42
  */
43
- simpleDialogProps?: Omit<SimpleDialogProps, "size" | "title" | "hasBorder" | "isOpen" | "onClose" | "actions">;
43
+ simpleDialogProps?: Omit<SimpleDialogProps, "size" | "title" | "hasBorder" | "isOpen" | "onClose" | "actions" | "children">;
44
44
  /**
45
45
  * Code editor props
46
46
  */
@@ -1,3 +1,13 @@
1
+ .#{$eccgui}-graphviz__minimap__node--default {
2
+ &:not([fill]) {
3
+ fill: $reactflow-node-border-color;
4
+ }
5
+
6
+ &:not([stroke]) {
7
+ stroke: $reactflow-node-border-color;
8
+ }
9
+ }
10
+
1
11
  @mixin mapnodestyles($type) {
2
12
  .#{$eccgui}-graphviz__minimap__node--#{$type} {
3
13
  @include mapcoloring($type);
@@ -1,20 +1,20 @@
1
1
  .#{$eccgui}-configuration--colors__react-flow-graph {
2
- --#{$eccgui}-graph-node: #{eccgui-color-var("layout", "purple", 700)};
3
- --#{$eccgui}-graph-node-bright: #{eccgui-color-var("layout", "purple", 100)};
4
- --#{$eccgui}-class-node: #{eccgui-color-var("layout", "magenta", 900)};
5
- --#{$eccgui}-class-node-bright: #{eccgui-color-var("layout", "magenta", 100)};
6
- --#{$eccgui}-instance-node: #{eccgui-color-var("layout", "magenta", 500)};
7
- --#{$eccgui}-instance-node-bright: #{eccgui-color-var("layout", "magenta", 100)};
2
+ --#{$eccgui}-graph-node: #{eccgui-color-var("layout", "magenta", 900)};
3
+ --#{$eccgui}-graph-node-bright: #{eccgui-color-var("layout", "magenta", 100)};
4
+ --#{$eccgui}-class-node: #{eccgui-color-var("layout", "purple", 700)};
5
+ --#{$eccgui}-class-node-bright: #{eccgui-color-var("layout", "purple", 100)};
6
+ --#{$eccgui}-instance-node: #{eccgui-color-var("layout", "purple", 500)};
7
+ --#{$eccgui}-instance-node-bright: #{eccgui-color-var("layout", "purple", 100)};
8
8
  --#{$eccgui}-property-node: #{eccgui-color-var("layout", "teal", 700)};
9
9
  --#{$eccgui}-property-node-bright: #{eccgui-color-var("layout", "teal", 100)};
10
10
  --#{$eccgui}-implicit-edge: #{eccgui-color-var("identity", "text", 700)};
11
11
  --#{$eccgui}-implicit-edge-bright: #{eccgui-color-var("identity", "text", 100)};
12
- --#{$eccgui}-import-edge: #{eccgui-color-var("layout", "purple", 700)};
13
- --#{$eccgui}-import-edge-bright: #{eccgui-color-var("layout", "purple", 100)};
14
- --#{$eccgui}-subclass-edge: #{eccgui-color-var("layout", "magenta", 900)};
15
- --#{$eccgui}-subclass-edge-bright: #{eccgui-color-var("layout", "magenta", 100)};
12
+ --#{$eccgui}-import-edge: #{eccgui-color-var("layout", "magenta", 900)};
13
+ --#{$eccgui}-import-edge-bright: #{eccgui-color-var("layout", "magenta", 100)};
14
+ --#{$eccgui}-subclass-edge: #{eccgui-color-var("layout", "purple", 700)};
15
+ --#{$eccgui}-subclass-edge-bright: #{eccgui-color-var("layout", "purple", 100)};
16
16
  --#{$eccgui}-subproperty-edge: #{eccgui-color-var("layout", "teal", 700)};
17
17
  --#{$eccgui}-subproperty-edge-bright: #{eccgui-color-var("layout", "teal", 100)};
18
- --#{$eccgui}-rdftype-edge: #{eccgui-color-var("layout", "magenta", 500)};
19
- --#{$eccgui}-rdftype-edge-bright: #{eccgui-color-var("layout", "magenta", 100)};
18
+ --#{$eccgui}-rdftype-edge: #{eccgui-color-var("layout", "purple", 500)};
19
+ --#{$eccgui}-rdftype-edge-bright: #{eccgui-color-var("layout", "purple", 100)};
20
20
  }
@@ -1,16 +1,16 @@
1
1
  .#{eccgui}-configuration--colors__react-flow-linking {
2
- --#{$eccgui}-sourcepath-node: #{eccgui-color-var("layout", "violet", 700)};
3
- --#{$eccgui}-sourcepath-node-bright: #{eccgui-color-var("layout", "violet", 100)};
4
- --#{$eccgui}-targetpath-node: #{eccgui-color-var("layout", "cyan", 900)};
5
- --#{$eccgui}-targetpath-node-bright: #{eccgui-color-var("layout", "cyan", 100)};
2
+ --#{$eccgui}-sourcepath-node: #{eccgui-color-var("layout", "purple", 700)};
3
+ --#{$eccgui}-sourcepath-node-bright: #{eccgui-color-var("layout", "purple", 300)};
4
+ --#{$eccgui}-targetpath-node: #{eccgui-color-var("layout", "petrol", 700)};
5
+ --#{$eccgui}-targetpath-node-bright: #{eccgui-color-var("layout", "petrol", 300)};
6
6
  --#{$eccgui}-transformation-node: #{eccgui-color-var("layout", "pink", 700)};
7
- --#{$eccgui}-transformation-node-bright: #{eccgui-color-var("layout", "pink", 100)};
7
+ --#{$eccgui}-transformation-node-bright: #{eccgui-color-var("layout", "pink", 300)};
8
8
  --#{$eccgui}-comparator-node: #{eccgui-color-var("layout", "teal", 700)};
9
- --#{$eccgui}-comparator-node-bright: #{eccgui-color-var("layout", "teal", 100)};
9
+ --#{$eccgui}-comparator-node-bright: #{eccgui-color-var("layout", "teal", 300)};
10
10
  --#{$eccgui}-aggregator-node: #{eccgui-color-var("layout", "cyan", 700)};
11
11
  --#{$eccgui}-aggregator-node-bright: #{eccgui-color-var("layout", "cyan", 100)};
12
12
  --#{$eccgui}-value-edge: #{eccgui-color-var("layout", "grey", 700)};
13
- --#{$eccgui}-value-edge-bright: #{eccgui-color-var("layout", "grey", 100)};
13
+ --#{$eccgui}-value-edge-bright: #{eccgui-color-var("layout", "grey", 300)};
14
14
  --#{$eccgui}-score-edge: #{eccgui-color-var("layout", "cyan", 900)};
15
- --#{$eccgui}-score-edge-bright: #{eccgui-color-var("layout", "cyan", 100)};
15
+ --#{$eccgui}-score-edge-bright: #{eccgui-color-var("layout", "cyan", 300)};
16
16
  }
@@ -1,16 +1,16 @@
1
1
  .#{$eccgui}-configuration--colors__react-flow-workflow {
2
2
  --#{$eccgui}-project-node: #{eccgui-color-var("layout", "magenta", 700)};
3
- --#{$eccgui}-project-node-bright: #{eccgui-color-var("layout", "magenta", 100)};
4
- --#{$eccgui}-dataset-node: #{eccgui-color-var("layout", "cyan", 900)};
5
- --#{$eccgui}-dataset-node-bright: #{eccgui-color-var("layout", "cyan", 100)};
6
- --#{$eccgui}-linking-node: #{eccgui-color-var("layout", "teal", 900)};
7
- --#{$eccgui}-linking-node-bright: #{eccgui-color-var("layout", "teal", 100)};
8
- --#{$eccgui}-transform-node: #{eccgui-color-var("layout", "pink", 700)};
9
- --#{$eccgui}-transform-node-bright: #{eccgui-color-var("layout", "pink", 100)};
3
+ --#{$eccgui}-project-node-bright: #{eccgui-color-var("layout", "magenta", 300)};
4
+ --#{$eccgui}-dataset-node: #{eccgui-color-var("layout", "petrol", 700)};
5
+ --#{$eccgui}-dataset-node-bright: #{eccgui-color-var("layout", "petrol", 300)};
6
+ --#{$eccgui}-linking-node: #{eccgui-color-var("layout", "cyan", 700)};
7
+ --#{$eccgui}-linking-node-bright: #{eccgui-color-var("layout", "cyan", 300)};
8
+ --#{$eccgui}-transform-node: #{eccgui-color-var("layout", "teal", 700)};
9
+ --#{$eccgui}-transform-node-bright: #{eccgui-color-var("layout", "teal", 300)};
10
10
  --#{$eccgui}-task-node: #{eccgui-color-var("layout", "lime", 700)};
11
- --#{$eccgui}-task-node-bright: #{eccgui-color-var("layout", "lime", 100)};
11
+ --#{$eccgui}-task-node-bright: #{eccgui-color-var("layout", "lime", 300)};
12
12
  --#{$eccgui}-workflow-node: #{eccgui-color-var("layout", "purple", 700)};
13
- --#{$eccgui}-workflow-node-bright: #{eccgui-color-var("layout", "purple", 100)};
14
- --#{$eccgui}-replaceableInput: #{eccgui-color-var("layout", "amber", 700)};
15
- --#{$eccgui}-replaceableInput-bright: #{eccgui-color-var("layout", "amber", 100)};
13
+ --#{$eccgui}-workflow-node-bright: #{eccgui-color-var("layout", "purple", 300)};
14
+ --#{$eccgui}-replaceable-input: #{eccgui-color-var("layout", "amber", 700)};
15
+ --#{$eccgui}-replaceable-input-bright: #{eccgui-color-var("layout", "amber", 300)};
16
16
  }
@@ -1,6 +1,7 @@
1
- import { CLASSPREFIX as eccgui } from "../../configuration/constants";
2
1
  import { Intent as BlueprintIntent } from "@blueprintjs/core";
3
2
 
3
+ import { CLASSPREFIX as eccgui } from "../../configuration/constants";
4
+
4
5
  export type IntentBlueprint = BlueprintIntent;
5
6
  export const DefinitionsBlueprint = BlueprintIntent;
6
7
 
@@ -1,3 +1,5 @@
1
+ import { decode } from "he";
2
+
1
3
  import { invisibleZeroWidthCharacters } from "./utils/characters";
2
4
  import { colorCalculateDistance } from "./utils/colorCalculateDistance";
3
5
  import decideContrastColorValue from "./utils/colorDecideContrastvalue";
@@ -6,6 +8,8 @@ import getColorConfiguration from "./utils/getColorConfiguration";
6
8
  import { getScrollParent } from "./utils/getScrollParent";
7
9
  import { getGlobalVar, setGlobalVar } from "./utils/globalVars";
8
10
  import { openInNewTab } from "./utils/openInNewTab";
11
+ import { reduceToText } from "./utils/reduceToText";
12
+ export type { DecodeOptions as DecodeHtmlEntitiesOptions } from "he";
9
13
  export type { IntentTypes as IntentBaseTypes } from "./Intent";
10
14
 
11
15
  export const utils = {
@@ -19,4 +23,6 @@ export const utils = {
19
23
  getScrollParent,
20
24
  getEnabledColorsFromPalette,
21
25
  textToColorHash,
26
+ reduceToText,
27
+ decodeHtmlEntities: decode,
22
28
  };