@eccenca/gui-elements 24.4.1 → 25.0.0-featurecolorwheelinputcmem7327.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (763) hide show
  1. package/CHANGELOG.md +223 -3
  2. package/README.md +63 -16
  3. package/dist/cjs/cmem/ActivityControl/ActivityControlWidget.js +17 -13
  4. package/dist/cjs/cmem/ActivityControl/ActivityControlWidget.js.map +1 -1
  5. package/dist/cjs/cmem/ActivityControl/SilkActivityControl.js +1 -3
  6. package/dist/cjs/cmem/ActivityControl/SilkActivityControl.js.map +1 -1
  7. package/dist/cjs/cmem/ContentBlobToggler/ContentBlobToggler.js +1 -0
  8. package/dist/cjs/cmem/ContentBlobToggler/ContentBlobToggler.js.map +1 -1
  9. package/dist/cjs/cmem/ContentBlobToggler/StringPreviewContentBlobToggler.js +34 -11
  10. package/dist/cjs/cmem/ContentBlobToggler/StringPreviewContentBlobToggler.js.map +1 -1
  11. package/dist/cjs/cmem/markdown/Markdown.js +1 -2
  12. package/dist/cjs/cmem/markdown/Markdown.js.map +1 -1
  13. package/dist/cjs/cmem/react-flow/ReactFlow/ReactFlow.js +67 -13
  14. package/dist/cjs/cmem/react-flow/ReactFlow/ReactFlow.js.map +1 -1
  15. package/dist/cjs/cmem/react-flow/ReactFlow/ReactFlowV12.js +45 -0
  16. package/dist/cjs/cmem/react-flow/ReactFlow/ReactFlowV12.js.map +1 -0
  17. package/dist/cjs/cmem/react-flow/ReactFlow/ReactFlowV9.js +30 -0
  18. package/dist/cjs/cmem/react-flow/ReactFlow/ReactFlowV9.js.map +1 -0
  19. package/dist/cjs/cmem/react-flow/StickyNoteModal/StickyNoteModal.js +2 -2
  20. package/dist/cjs/cmem/react-flow/StickyNoteModal/StickyNoteModal.js.map +1 -1
  21. package/dist/cjs/cmem/react-flow/configuration/graph.js +12 -10
  22. package/dist/cjs/cmem/react-flow/configuration/graph.js.map +1 -1
  23. package/dist/cjs/cmem/react-flow/configuration/linking.js +2 -0
  24. package/dist/cjs/cmem/react-flow/configuration/linking.js.map +1 -1
  25. package/dist/cjs/cmem/react-flow/configuration/unspecified.js +2 -1
  26. package/dist/cjs/cmem/react-flow/configuration/unspecified.js.map +1 -1
  27. package/dist/cjs/cmem/react-flow/configuration/workflow.js +2 -0
  28. package/dist/cjs/cmem/react-flow/configuration/workflow.js.map +1 -1
  29. package/dist/cjs/cmem/react-flow/extensions/scrollOnDragHook.js +9 -3
  30. package/dist/cjs/cmem/react-flow/extensions/scrollOnDragHook.js.map +1 -1
  31. package/dist/cjs/cmem/react-flow/index.js +5 -1
  32. package/dist/cjs/cmem/react-flow/index.js.map +1 -1
  33. package/dist/cjs/common/Intent/index.js +1 -1
  34. package/dist/cjs/common/Intent/index.js.map +1 -1
  35. package/dist/cjs/common/index.js +10 -0
  36. package/dist/cjs/common/index.js.map +1 -1
  37. package/dist/cjs/common/utils/CssCustomProperties.js +9 -3
  38. package/dist/cjs/common/utils/CssCustomProperties.js.map +1 -1
  39. package/dist/cjs/common/utils/colorCalculateDistance.js +27 -0
  40. package/dist/cjs/common/utils/colorCalculateDistance.js.map +1 -0
  41. package/dist/cjs/common/utils/colorHash.js +157 -0
  42. package/dist/cjs/common/utils/colorHash.js.map +1 -0
  43. package/dist/cjs/common/utils/getColorConfiguration.js +37 -4
  44. package/dist/cjs/common/utils/getColorConfiguration.js.map +1 -1
  45. package/dist/cjs/common/utils/reduceToText.js +94 -0
  46. package/dist/cjs/common/utils/reduceToText.js.map +1 -0
  47. package/dist/cjs/components/Application/ApplicationViewability.js +33 -0
  48. package/dist/cjs/components/Application/ApplicationViewability.js.map +1 -0
  49. package/dist/cjs/components/Application/index.js +1 -0
  50. package/dist/cjs/components/Application/index.js.map +1 -1
  51. package/dist/cjs/components/AutoSuggestion/AutoSuggestion.js +14 -11
  52. package/dist/cjs/components/AutoSuggestion/AutoSuggestion.js.map +1 -1
  53. package/dist/cjs/components/AutoSuggestion/AutoSuggestionList.js +4 -1
  54. package/dist/cjs/components/AutoSuggestion/AutoSuggestionList.js.map +1 -1
  55. package/dist/cjs/components/AutoSuggestion/ExtendedCodeEditor.js +1 -3
  56. package/dist/cjs/components/AutoSuggestion/ExtendedCodeEditor.js.map +1 -1
  57. package/dist/cjs/components/AutocompleteField/AutoCompleteField.js +18 -7
  58. package/dist/cjs/components/AutocompleteField/AutoCompleteField.js.map +1 -1
  59. package/dist/cjs/components/AutocompleteField/autoCompleteFieldUtils.js.map +1 -1
  60. package/dist/cjs/components/Button/Button.js +11 -26
  61. package/dist/cjs/components/Button/Button.js.map +1 -1
  62. package/dist/cjs/components/Chat/ChatArea.js +55 -0
  63. package/dist/cjs/components/Chat/ChatArea.js.map +1 -0
  64. package/dist/cjs/components/Chat/ChatContent.js +55 -0
  65. package/dist/cjs/components/Chat/ChatContent.js.map +1 -0
  66. package/dist/cjs/components/Chat/ChatContentCollapsed.js +24 -0
  67. package/dist/cjs/components/Chat/ChatContentCollapsed.js.map +1 -0
  68. package/dist/cjs/components/Chat/ChatField.js +53 -0
  69. package/dist/cjs/components/Chat/ChatField.js.map +1 -0
  70. package/dist/cjs/components/{AutocompleteField → Chat}/index.js +4 -7
  71. package/dist/cjs/components/Chat/index.js.map +1 -0
  72. package/dist/cjs/components/CodeAutocompleteField/index.js +6 -1
  73. package/dist/cjs/components/CodeAutocompleteField/index.js.map +1 -1
  74. package/dist/cjs/components/ContentGroup/ContentGroup.js +1 -1
  75. package/dist/cjs/components/ContentGroup/ContentGroup.js.map +1 -1
  76. package/dist/cjs/components/ContextOverlay/ContextMenu.js +2 -2
  77. package/dist/cjs/components/ContextOverlay/ContextMenu.js.map +1 -1
  78. package/dist/cjs/components/ContextOverlay/ContextOverlay.js +69 -22
  79. package/dist/cjs/components/ContextOverlay/ContextOverlay.js.map +1 -1
  80. package/dist/cjs/components/DecoupledOverlay/DecoupledOverlay.js +47 -0
  81. package/dist/cjs/components/DecoupledOverlay/DecoupledOverlay.js.map +1 -0
  82. package/dist/cjs/components/Dialog/Modal.js +15 -2
  83. package/dist/cjs/components/Dialog/Modal.js.map +1 -1
  84. package/dist/cjs/components/Dialog/ModalContext.js +51 -0
  85. package/dist/cjs/components/Dialog/ModalContext.js.map +1 -0
  86. package/dist/cjs/components/Dialog/SimpleDialog.js +2 -1
  87. package/dist/cjs/components/Dialog/SimpleDialog.js.map +1 -1
  88. package/dist/cjs/components/Dialog/index.js +1 -0
  89. package/dist/cjs/components/Dialog/index.js.map +1 -1
  90. package/dist/cjs/components/Form/FieldItem.js +2 -19
  91. package/dist/cjs/components/Form/FieldItem.js.map +1 -1
  92. package/dist/cjs/components/Form/FieldSet.js +2 -20
  93. package/dist/cjs/components/Form/FieldSet.js.map +1 -1
  94. package/dist/cjs/components/Icon/BaseIcon.js +2 -2
  95. package/dist/cjs/components/Icon/BaseIcon.js.map +1 -1
  96. package/dist/cjs/components/Icon/IconButton.js.map +1 -1
  97. package/dist/cjs/components/Icon/canonicalIconNames.js +31 -2
  98. package/dist/cjs/components/Icon/canonicalIconNames.js.map +1 -1
  99. package/dist/cjs/components/Icon/transformIcon.js +14 -0
  100. package/dist/cjs/components/Icon/transformIcon.js.map +1 -0
  101. package/dist/cjs/components/MultiSelect/MultiSelect.js +16 -28
  102. package/dist/cjs/components/MultiSelect/MultiSelect.js.map +1 -1
  103. package/dist/cjs/components/MultiSuggestField/index.js +18 -0
  104. package/dist/cjs/components/MultiSuggestField/index.js.map +1 -0
  105. package/dist/cjs/components/Notification/Notification.js +3 -23
  106. package/dist/cjs/components/Notification/Notification.js.map +1 -1
  107. package/dist/cjs/components/OverviewItem/OverviewItemList.js +1 -2
  108. package/dist/cjs/components/OverviewItem/OverviewItemList.js.map +1 -1
  109. package/dist/cjs/components/RadioButton/RadioButton.js +5 -2
  110. package/dist/cjs/components/RadioButton/RadioButton.js.map +1 -1
  111. package/dist/cjs/components/Spinner/Spinner.js +18 -11
  112. package/dist/cjs/components/Spinner/Spinner.js.map +1 -1
  113. package/dist/cjs/components/SuggestField/index.js +5 -2
  114. package/dist/cjs/components/SuggestField/index.js.map +1 -1
  115. package/dist/cjs/components/Table/Table.js.map +1 -1
  116. package/dist/cjs/components/Table/TableContainer.js.map +1 -1
  117. package/dist/cjs/components/Tabs/Tab.js +3 -2
  118. package/dist/cjs/components/Tabs/Tab.js.map +1 -1
  119. package/dist/cjs/components/TextField/SearchField.js.map +1 -1
  120. package/dist/cjs/components/TextField/TextArea.js +2 -2
  121. package/dist/cjs/components/TextField/TextArea.js.map +1 -1
  122. package/dist/cjs/components/TextReducer/TextReducer.js +37 -0
  123. package/dist/cjs/components/TextReducer/TextReducer.js.map +1 -0
  124. package/dist/cjs/components/Tooltip/Tooltip.js +3 -1
  125. package/dist/cjs/components/Tooltip/Tooltip.js.map +1 -1
  126. package/dist/cjs/{legacy-replacements/Button/DisruptiveButton.js → components/Typography/InlineText.js} +12 -8
  127. package/dist/cjs/components/Typography/InlineText.js.map +1 -0
  128. package/dist/cjs/components/Typography/OverflowText.js.map +1 -1
  129. package/dist/cjs/components/Typography/index.js +1 -0
  130. package/dist/cjs/components/Typography/index.js.map +1 -1
  131. package/dist/cjs/components/VisualTour/VisualTour.js +192 -0
  132. package/dist/cjs/components/VisualTour/VisualTour.js.map +1 -0
  133. package/dist/cjs/components/index.js +8 -7
  134. package/dist/cjs/components/index.js.map +1 -1
  135. package/dist/cjs/configuration/constants.js +3 -1
  136. package/dist/cjs/configuration/constants.js.map +1 -1
  137. package/dist/cjs/extensions/codemirror/CodeMirror.js +17 -6
  138. package/dist/cjs/extensions/codemirror/CodeMirror.js.map +1 -1
  139. package/dist/cjs/extensions/codemirror/hooks/useCodemirrorModeExtension.hooks.js +3 -0
  140. package/dist/cjs/extensions/codemirror/hooks/useCodemirrorModeExtension.hooks.js.map +1 -1
  141. package/dist/cjs/extensions/codemirror/tests/codemirrorTestHelper.js +2 -2
  142. package/dist/cjs/extensions/codemirror/tests/codemirrorTestHelper.js.map +1 -1
  143. package/dist/cjs/extensions/react-flow/edges/EdgeBezier.js +50 -0
  144. package/dist/cjs/extensions/react-flow/edges/EdgeBezier.js.map +1 -0
  145. package/dist/cjs/extensions/react-flow/edges/EdgeDefault.js +21 -3
  146. package/dist/cjs/extensions/react-flow/edges/EdgeDefault.js.map +1 -1
  147. package/dist/cjs/extensions/react-flow/edges/EdgeDefaultV12.js +46 -22
  148. package/dist/cjs/extensions/react-flow/edges/EdgeDefaultV12.js.map +1 -1
  149. package/dist/cjs/extensions/react-flow/edges/EdgeDefs.js +3 -0
  150. package/dist/cjs/extensions/react-flow/edges/EdgeDefs.js.map +1 -1
  151. package/dist/cjs/extensions/react-flow/edges/EdgeLabel.js +1 -1
  152. package/dist/cjs/extensions/react-flow/edges/EdgeLabel.js.map +1 -1
  153. package/dist/cjs/extensions/react-flow/edges/EdgeNew.js +41 -0
  154. package/dist/cjs/extensions/react-flow/edges/EdgeNew.js.map +1 -0
  155. package/dist/cjs/extensions/react-flow/edges/EdgeStep.js +19 -2
  156. package/dist/cjs/extensions/react-flow/edges/EdgeStep.js.map +1 -1
  157. package/dist/cjs/extensions/react-flow/edges/EdgeStraight.js +6 -0
  158. package/dist/cjs/extensions/react-flow/edges/EdgeStraight.js.map +1 -0
  159. package/dist/cjs/extensions/react-flow/edges/utils.js +12 -1
  160. package/dist/cjs/extensions/react-flow/edges/utils.js.map +1 -1
  161. package/dist/cjs/extensions/react-flow/handles/HandleDefault.js +15 -16
  162. package/dist/cjs/extensions/react-flow/handles/HandleDefault.js.map +1 -1
  163. package/dist/cjs/extensions/react-flow/index.js +6 -6
  164. package/dist/cjs/extensions/react-flow/index.js.map +1 -1
  165. package/dist/cjs/extensions/react-flow/markers/MarkerArrowClosedInverse.js +3 -0
  166. package/dist/cjs/extensions/react-flow/markers/MarkerArrowClosedInverse.js.map +1 -1
  167. package/dist/cjs/extensions/react-flow/markers/ReactFlowMarkers.js +17 -2
  168. package/dist/cjs/extensions/react-flow/markers/ReactFlowMarkers.js.map +1 -1
  169. package/dist/cjs/extensions/react-flow/minimap/MiniMap.js +21 -2
  170. package/dist/cjs/extensions/react-flow/minimap/MiniMap.js.map +1 -1
  171. package/dist/cjs/extensions/react-flow/minimap/MiniMapV12.js +51 -0
  172. package/dist/cjs/extensions/react-flow/minimap/MiniMapV12.js.map +1 -0
  173. package/dist/cjs/extensions/react-flow/nodes/NodeContent.js +57 -54
  174. package/dist/cjs/extensions/react-flow/nodes/NodeContent.js.map +1 -1
  175. package/dist/cjs/extensions/react-flow/nodes/NodeDefault.js +2 -2
  176. package/dist/cjs/extensions/react-flow/nodes/NodeDefault.js.map +1 -1
  177. package/dist/cjs/extensions/react-flow/nodes/nodeUtils.js +2 -1
  178. package/dist/cjs/extensions/react-flow/nodes/nodeUtils.js.map +1 -1
  179. package/dist/cjs/extensions/react-flow/versionsupport.js +13 -11
  180. package/dist/cjs/extensions/react-flow/versionsupport.js.map +1 -1
  181. package/dist/cjs/index.js +1 -3
  182. package/dist/cjs/index.js.map +1 -1
  183. package/dist/esm/cmem/ActivityControl/ActivityControlWidget.js +19 -14
  184. package/dist/esm/cmem/ActivityControl/ActivityControlWidget.js.map +1 -1
  185. package/dist/esm/cmem/ActivityControl/SilkActivityControl.js +1 -3
  186. package/dist/esm/cmem/ActivityControl/SilkActivityControl.js.map +1 -1
  187. package/dist/esm/cmem/ContentBlobToggler/ContentBlobToggler.js +1 -0
  188. package/dist/esm/cmem/ContentBlobToggler/ContentBlobToggler.js.map +1 -1
  189. package/dist/esm/cmem/ContentBlobToggler/StringPreviewContentBlobToggler.js +32 -9
  190. package/dist/esm/cmem/ContentBlobToggler/StringPreviewContentBlobToggler.js.map +1 -1
  191. package/dist/esm/cmem/markdown/Markdown.js +1 -2
  192. package/dist/esm/cmem/markdown/Markdown.js.map +1 -1
  193. package/dist/esm/cmem/react-flow/ReactFlow/ReactFlow.js +67 -13
  194. package/dist/esm/cmem/react-flow/ReactFlow/ReactFlow.js.map +1 -1
  195. package/dist/esm/cmem/react-flow/ReactFlow/ReactFlowV12.js +66 -0
  196. package/dist/esm/cmem/react-flow/ReactFlow/ReactFlowV12.js.map +1 -0
  197. package/dist/esm/{legacy-replacements/Button/AffirmativeButton.js → cmem/react-flow/ReactFlow/ReactFlowV9.js} +12 -7
  198. package/dist/esm/cmem/react-flow/ReactFlow/ReactFlowV9.js.map +1 -0
  199. package/dist/esm/cmem/react-flow/StickyNoteModal/StickyNoteModal.js +3 -3
  200. package/dist/esm/cmem/react-flow/StickyNoteModal/StickyNoteModal.js.map +1 -1
  201. package/dist/esm/cmem/react-flow/configuration/graph.js +12 -10
  202. package/dist/esm/cmem/react-flow/configuration/graph.js.map +1 -1
  203. package/dist/esm/cmem/react-flow/configuration/linking.js +2 -0
  204. package/dist/esm/cmem/react-flow/configuration/linking.js.map +1 -1
  205. package/dist/esm/cmem/react-flow/configuration/unspecified.js +2 -1
  206. package/dist/esm/cmem/react-flow/configuration/unspecified.js.map +1 -1
  207. package/dist/esm/cmem/react-flow/configuration/workflow.js +2 -0
  208. package/dist/esm/cmem/react-flow/configuration/workflow.js.map +1 -1
  209. package/dist/esm/cmem/react-flow/extensions/scrollOnDragHook.js +7 -1
  210. package/dist/esm/cmem/react-flow/extensions/scrollOnDragHook.js.map +1 -1
  211. package/dist/esm/cmem/react-flow/index.js +2 -1
  212. package/dist/esm/cmem/react-flow/index.js.map +1 -1
  213. package/dist/esm/common/Intent/index.js +1 -1
  214. package/dist/esm/common/Intent/index.js.map +1 -1
  215. package/dist/esm/common/index.js +10 -0
  216. package/dist/esm/common/index.js.map +1 -1
  217. package/dist/esm/common/utils/CssCustomProperties.js +9 -3
  218. package/dist/esm/common/utils/CssCustomProperties.js.map +1 -1
  219. package/dist/esm/common/utils/colorCalculateDistance.js +21 -0
  220. package/dist/esm/common/utils/colorCalculateDistance.js.map +1 -0
  221. package/dist/esm/common/utils/colorHash.js +153 -0
  222. package/dist/esm/common/utils/colorHash.js.map +1 -0
  223. package/dist/esm/common/utils/getColorConfiguration.js +37 -4
  224. package/dist/esm/common/utils/getColorConfiguration.js.map +1 -1
  225. package/dist/esm/common/utils/reduceToText.js +75 -0
  226. package/dist/esm/common/utils/reduceToText.js.map +1 -0
  227. package/dist/esm/components/Application/ApplicationViewability.js +28 -0
  228. package/dist/esm/components/Application/ApplicationViewability.js.map +1 -0
  229. package/dist/esm/components/Application/index.js +1 -0
  230. package/dist/esm/components/Application/index.js.map +1 -1
  231. package/dist/esm/components/AutoSuggestion/AutoSuggestion.js +14 -12
  232. package/dist/esm/components/AutoSuggestion/AutoSuggestion.js.map +1 -1
  233. package/dist/esm/components/AutoSuggestion/AutoSuggestionList.js +4 -1
  234. package/dist/esm/components/AutoSuggestion/AutoSuggestionList.js.map +1 -1
  235. package/dist/esm/components/AutoSuggestion/ExtendedCodeEditor.js +1 -3
  236. package/dist/esm/components/AutoSuggestion/ExtendedCodeEditor.js.map +1 -1
  237. package/dist/esm/components/AutocompleteField/AutoCompleteField.js +17 -7
  238. package/dist/esm/components/AutocompleteField/AutoCompleteField.js.map +1 -1
  239. package/dist/esm/components/AutocompleteField/autoCompleteFieldUtils.js.map +1 -1
  240. package/dist/esm/components/Button/Button.js +11 -26
  241. package/dist/esm/components/Button/Button.js.map +1 -1
  242. package/dist/esm/components/Chat/ChatArea.js +59 -0
  243. package/dist/esm/components/Chat/ChatArea.js.map +1 -0
  244. package/dist/esm/components/Chat/ChatContent.js +59 -0
  245. package/dist/esm/components/Chat/ChatContent.js.map +1 -0
  246. package/dist/esm/components/Chat/ChatContentCollapsed.js +45 -0
  247. package/dist/esm/components/Chat/ChatContentCollapsed.js.map +1 -0
  248. package/dist/esm/components/Chat/ChatField.js +57 -0
  249. package/dist/esm/components/Chat/ChatField.js.map +1 -0
  250. package/dist/esm/components/Chat/index.js +5 -0
  251. package/dist/esm/components/Chat/index.js.map +1 -0
  252. package/dist/esm/components/CodeAutocompleteField/index.js +4 -1
  253. package/dist/esm/components/CodeAutocompleteField/index.js.map +1 -1
  254. package/dist/esm/components/ContentGroup/ContentGroup.js +1 -1
  255. package/dist/esm/components/ContentGroup/ContentGroup.js.map +1 -1
  256. package/dist/esm/components/ContextOverlay/ContextMenu.js +2 -2
  257. package/dist/esm/components/ContextOverlay/ContextMenu.js.map +1 -1
  258. package/dist/esm/components/ContextOverlay/ContextOverlay.js +70 -23
  259. package/dist/esm/components/ContextOverlay/ContextOverlay.js.map +1 -1
  260. package/dist/esm/components/DecoupledOverlay/DecoupledOverlay.js +41 -0
  261. package/dist/esm/components/DecoupledOverlay/DecoupledOverlay.js.map +1 -0
  262. package/dist/esm/components/Dialog/Modal.js +15 -2
  263. package/dist/esm/components/Dialog/Modal.js.map +1 -1
  264. package/dist/esm/components/Dialog/ModalContext.js +69 -0
  265. package/dist/esm/components/Dialog/ModalContext.js.map +1 -0
  266. package/dist/esm/components/Dialog/SimpleDialog.js +2 -1
  267. package/dist/esm/components/Dialog/SimpleDialog.js.map +1 -1
  268. package/dist/esm/components/Dialog/index.js +1 -0
  269. package/dist/esm/components/Dialog/index.js.map +1 -1
  270. package/dist/esm/components/Form/FieldItem.js +2 -19
  271. package/dist/esm/components/Form/FieldItem.js.map +1 -1
  272. package/dist/esm/components/Form/FieldSet.js +2 -20
  273. package/dist/esm/components/Form/FieldSet.js.map +1 -1
  274. package/dist/esm/components/Icon/BaseIcon.js +2 -2
  275. package/dist/esm/components/Icon/BaseIcon.js.map +1 -1
  276. package/dist/esm/components/Icon/IconButton.js.map +1 -1
  277. package/dist/esm/components/Icon/canonicalIconNames.js +31 -2
  278. package/dist/esm/components/Icon/canonicalIconNames.js.map +1 -1
  279. package/dist/esm/components/Icon/transformIcon.js +21 -0
  280. package/dist/esm/components/Icon/transformIcon.js.map +1 -0
  281. package/dist/esm/components/MultiSelect/MultiSelect.js +16 -29
  282. package/dist/esm/components/MultiSelect/MultiSelect.js.map +1 -1
  283. package/dist/esm/components/MultiSuggestField/index.js +2 -0
  284. package/dist/esm/components/MultiSuggestField/index.js.map +1 -0
  285. package/dist/esm/components/Notification/Notification.js +3 -23
  286. package/dist/esm/components/Notification/Notification.js.map +1 -1
  287. package/dist/esm/components/OverviewItem/OverviewItemList.js +1 -2
  288. package/dist/esm/components/OverviewItem/OverviewItemList.js.map +1 -1
  289. package/dist/esm/components/RadioButton/RadioButton.js +6 -2
  290. package/dist/esm/components/RadioButton/RadioButton.js.map +1 -1
  291. package/dist/esm/components/Spinner/Spinner.js +16 -14
  292. package/dist/esm/components/Spinner/Spinner.js.map +1 -1
  293. package/dist/esm/components/SuggestField/index.js +4 -1
  294. package/dist/esm/components/SuggestField/index.js.map +1 -1
  295. package/dist/esm/components/Table/Table.js.map +1 -1
  296. package/dist/esm/components/Table/TableContainer.js.map +1 -1
  297. package/dist/esm/components/Tabs/Tab.js +3 -2
  298. package/dist/esm/components/Tabs/Tab.js.map +1 -1
  299. package/dist/esm/components/TextField/SearchField.js.map +1 -1
  300. package/dist/esm/components/TextField/TextArea.js +2 -2
  301. package/dist/esm/components/TextField/TextArea.js.map +1 -1
  302. package/dist/esm/components/TextReducer/TextReducer.js +41 -0
  303. package/dist/esm/components/TextReducer/TextReducer.js.map +1 -0
  304. package/dist/esm/components/Tooltip/Tooltip.js +3 -1
  305. package/dist/esm/components/Tooltip/Tooltip.js.map +1 -1
  306. package/dist/esm/{legacy-replacements/Button/DisruptiveButton.js → components/Typography/InlineText.js} +10 -7
  307. package/dist/esm/components/Typography/InlineText.js.map +1 -0
  308. package/dist/esm/components/Typography/OverflowText.js.map +1 -1
  309. package/dist/esm/components/Typography/index.js +1 -0
  310. package/dist/esm/components/Typography/index.js.map +1 -1
  311. package/dist/esm/components/VisualTour/VisualTour.js +205 -0
  312. package/dist/esm/components/VisualTour/VisualTour.js.map +1 -0
  313. package/dist/esm/components/index.js +8 -7
  314. package/dist/esm/components/index.js.map +1 -1
  315. package/dist/esm/configuration/constants.js +2 -0
  316. package/dist/esm/configuration/constants.js.map +1 -1
  317. package/dist/esm/extensions/codemirror/CodeMirror.js +19 -8
  318. package/dist/esm/extensions/codemirror/CodeMirror.js.map +1 -1
  319. package/dist/esm/extensions/codemirror/hooks/useCodemirrorModeExtension.hooks.js +3 -0
  320. package/dist/esm/extensions/codemirror/hooks/useCodemirrorModeExtension.hooks.js.map +1 -1
  321. package/dist/esm/extensions/codemirror/tests/codemirrorTestHelper.js +3 -3
  322. package/dist/esm/extensions/codemirror/tests/codemirrorTestHelper.js.map +1 -1
  323. package/dist/esm/extensions/react-flow/edges/EdgeBezier.js +35 -0
  324. package/dist/esm/extensions/react-flow/edges/EdgeBezier.js.map +1 -0
  325. package/dist/esm/extensions/react-flow/edges/EdgeDefault.js +21 -3
  326. package/dist/esm/extensions/react-flow/edges/EdgeDefault.js.map +1 -1
  327. package/dist/esm/extensions/react-flow/edges/EdgeDefaultV12.js +24 -20
  328. package/dist/esm/extensions/react-flow/edges/EdgeDefaultV12.js.map +1 -1
  329. package/dist/esm/extensions/react-flow/edges/EdgeDefs.js +3 -0
  330. package/dist/esm/extensions/react-flow/edges/EdgeDefs.js.map +1 -1
  331. package/dist/esm/extensions/react-flow/edges/EdgeLabel.js +1 -1
  332. package/dist/esm/extensions/react-flow/edges/EdgeLabel.js.map +1 -1
  333. package/dist/esm/extensions/react-flow/edges/EdgeNew.js +45 -0
  334. package/dist/esm/extensions/react-flow/edges/EdgeNew.js.map +1 -0
  335. package/dist/esm/extensions/react-flow/edges/EdgeStep.js +19 -2
  336. package/dist/esm/extensions/react-flow/edges/EdgeStep.js.map +1 -1
  337. package/dist/esm/extensions/react-flow/edges/EdgeStraight.js +2 -0
  338. package/dist/esm/extensions/react-flow/edges/EdgeStraight.js.map +1 -0
  339. package/dist/esm/extensions/react-flow/edges/utils.js +27 -1
  340. package/dist/esm/extensions/react-flow/edges/utils.js.map +1 -1
  341. package/dist/esm/extensions/react-flow/handles/HandleDefault.js +17 -18
  342. package/dist/esm/extensions/react-flow/handles/HandleDefault.js.map +1 -1
  343. package/dist/esm/extensions/react-flow/index.js +6 -3
  344. package/dist/esm/extensions/react-flow/index.js.map +1 -1
  345. package/dist/esm/extensions/react-flow/markers/MarkerArrowClosedInverse.js +3 -0
  346. package/dist/esm/extensions/react-flow/markers/MarkerArrowClosedInverse.js.map +1 -1
  347. package/dist/esm/extensions/react-flow/markers/ReactFlowMarkers.js +17 -2
  348. package/dist/esm/extensions/react-flow/markers/ReactFlowMarkers.js.map +1 -1
  349. package/dist/esm/extensions/react-flow/minimap/MiniMap.js +22 -3
  350. package/dist/esm/extensions/react-flow/minimap/MiniMap.js.map +1 -1
  351. package/dist/esm/extensions/react-flow/minimap/MiniMapV12.js +36 -0
  352. package/dist/esm/extensions/react-flow/minimap/MiniMapV12.js.map +1 -0
  353. package/dist/esm/extensions/react-flow/nodes/NodeContent.js +84 -81
  354. package/dist/esm/extensions/react-flow/nodes/NodeContent.js.map +1 -1
  355. package/dist/esm/extensions/react-flow/nodes/NodeDefault.js +1 -1
  356. package/dist/esm/extensions/react-flow/nodes/NodeDefault.js.map +1 -1
  357. package/dist/esm/extensions/react-flow/nodes/nodeUtils.js +2 -1
  358. package/dist/esm/extensions/react-flow/nodes/nodeUtils.js.map +1 -1
  359. package/dist/esm/extensions/react-flow/versionsupport.js +15 -13
  360. package/dist/esm/extensions/react-flow/versionsupport.js.map +1 -1
  361. package/dist/esm/index.js +1 -2
  362. package/dist/esm/index.js.map +1 -1
  363. package/dist/types/cmem/ActivityControl/ActivityControlWidget.d.ts +9 -0
  364. package/dist/types/cmem/ContentBlobToggler/StringPreviewContentBlobToggler.d.ts +26 -10
  365. package/dist/types/cmem/markdown/Markdown.d.ts +1 -8
  366. package/dist/types/cmem/react-flow/ReactFlow/ReactFlow.d.ts +38 -6
  367. package/dist/types/cmem/react-flow/ReactFlow/ReactFlowV12.d.ts +7 -0
  368. package/dist/types/cmem/react-flow/ReactFlow/ReactFlowV9.d.ts +7 -0
  369. package/dist/types/cmem/react-flow/StickyNoteModal/StickyNoteModal.d.ts +1 -1
  370. package/dist/types/cmem/react-flow/configuration/graph.d.ts +9 -9
  371. package/dist/types/cmem/react-flow/configuration/linking.d.ts +6 -6
  372. package/dist/types/cmem/react-flow/configuration/unspecified.d.ts +3 -3
  373. package/dist/types/cmem/react-flow/configuration/workflow.d.ts +4 -4
  374. package/dist/types/cmem/react-flow/extensions/scrollOnDragHook.d.ts +19 -16
  375. package/dist/types/cmem/react-flow/index.d.ts +2 -1
  376. package/dist/types/common/index.d.ts +9 -1
  377. package/dist/types/common/utils/CssCustomProperties.d.ts +6 -6
  378. package/dist/types/common/utils/colorCalculateDistance.d.ts +12 -0
  379. package/dist/types/common/utils/colorHash.d.ts +30 -0
  380. package/dist/types/common/utils/getColorConfiguration.d.ts +1 -1
  381. package/dist/types/common/utils/reduceToText.d.ts +10 -0
  382. package/dist/types/components/Application/ApplicationViewability.d.ts +36 -0
  383. package/dist/types/components/Application/index.d.ts +1 -0
  384. package/dist/types/components/AutoSuggestion/AutoSuggestion.d.ts +7 -17
  385. package/dist/types/components/AutoSuggestion/AutoSuggestionList.d.ts +4 -4
  386. package/dist/types/components/AutoSuggestion/ExtendedCodeEditor.d.ts +0 -1
  387. package/dist/types/components/AutocompleteField/AutoCompleteField.d.ts +18 -10
  388. package/dist/types/components/AutocompleteField/autoCompleteFieldUtils.d.ts +2 -2
  389. package/dist/types/components/AutocompleteField/interfaces.d.ts +2 -4
  390. package/dist/types/components/Button/Button.d.ts +13 -26
  391. package/dist/types/components/Chat/ChatArea.d.ts +34 -0
  392. package/dist/types/components/Chat/ChatContent.d.ts +49 -0
  393. package/dist/types/components/Chat/ChatContentCollapsed.d.ts +28 -0
  394. package/dist/types/components/Chat/ChatField.d.ts +20 -0
  395. package/dist/types/components/Chat/index.d.ts +4 -0
  396. package/dist/types/components/CodeAutocompleteField/index.d.ts +5 -1
  397. package/dist/types/components/ContextOverlay/ContextMenu.d.ts +1 -1
  398. package/dist/types/components/ContextOverlay/ContextOverlay.d.ts +7 -1
  399. package/dist/types/components/DecoupledOverlay/DecoupledOverlay.d.ts +20 -0
  400. package/dist/types/components/Dialog/Modal.d.ts +11 -2
  401. package/dist/types/components/Dialog/ModalContext.d.ts +13 -0
  402. package/dist/types/components/Dialog/SimpleDialog.d.ts +0 -1
  403. package/dist/types/components/Dialog/index.d.ts +1 -0
  404. package/dist/types/components/Form/FieldItem.d.ts +1 -25
  405. package/dist/types/components/Form/FieldSet.d.ts +1 -21
  406. package/dist/types/components/Icon/BaseIcon.d.ts +1 -10
  407. package/dist/types/components/Icon/IconButton.d.ts +2 -1
  408. package/dist/types/components/Icon/canonicalIconNames.d.ts +28 -0
  409. package/dist/types/components/Icon/transformIcon.d.ts +2 -0
  410. package/dist/types/components/MultiSelect/MultiSelect.d.ts +18 -34
  411. package/dist/types/components/MultiSuggestField/index.d.ts +1 -0
  412. package/dist/types/components/Notification/Notification.d.ts +1 -24
  413. package/dist/types/components/OverviewItem/OverviewItemList.d.ts +1 -6
  414. package/dist/types/components/RadioButton/RadioButton.d.ts +8 -2
  415. package/dist/types/components/Spinner/Spinner.d.ts +16 -14
  416. package/dist/types/components/Structure/TitleSubsection.d.ts +1 -1
  417. package/dist/types/components/SuggestField/index.d.ts +6 -2
  418. package/dist/types/components/Table/Table.d.ts +1 -1
  419. package/dist/types/components/Table/TableContainer.d.ts +2 -2
  420. package/dist/types/components/Tabs/Tab.d.ts +4 -4
  421. package/dist/types/components/TextField/SearchField.d.ts +1 -1
  422. package/dist/types/components/TextReducer/TextReducer.d.ts +40 -0
  423. package/dist/types/components/Tooltip/Tooltip.d.ts +2 -1
  424. package/dist/types/components/Typography/InlineText.d.ts +13 -0
  425. package/dist/types/components/Typography/OverflowText.d.ts +0 -5
  426. package/dist/types/components/Typography/index.d.ts +1 -0
  427. package/dist/types/components/VisualTour/VisualTour.d.ts +39 -0
  428. package/dist/types/components/index.d.ts +8 -7
  429. package/dist/types/configuration/constants.d.ts +2 -0
  430. package/dist/types/extensions/codemirror/CodeMirror.d.ts +9 -6
  431. package/dist/types/extensions/codemirror/hooks/useCodemirrorModeExtension.hooks.d.ts +2 -0
  432. package/dist/types/extensions/codemirror/tests/codemirrorTestHelper.d.ts +1 -1
  433. package/dist/types/extensions/react-flow/edges/EdgeBezier.d.ts +20 -0
  434. package/dist/types/extensions/react-flow/edges/EdgeDefault.d.ts +29 -7
  435. package/dist/types/extensions/react-flow/edges/EdgeDefaultV12.d.ts +16 -27
  436. package/dist/types/extensions/react-flow/edges/EdgeDefs.d.ts +3 -0
  437. package/dist/types/extensions/react-flow/edges/EdgeLabel.d.ts +1 -1
  438. package/dist/types/extensions/react-flow/edges/EdgeNew.d.ts +3 -0
  439. package/dist/types/extensions/react-flow/edges/EdgeStep.d.ts +23 -5
  440. package/dist/types/extensions/react-flow/edges/EdgeStraight.d.ts +1 -0
  441. package/dist/types/extensions/react-flow/edges/utils.d.ts +2 -0
  442. package/dist/types/extensions/react-flow/handles/HandleDefault.d.ts +12 -6
  443. package/dist/types/extensions/react-flow/index.d.ts +6 -2
  444. package/dist/types/extensions/react-flow/markers/MarkerArrowClosedInverse.d.ts +3 -0
  445. package/dist/types/extensions/react-flow/markers/ReactFlowMarkers.d.ts +21 -2
  446. package/dist/types/extensions/react-flow/minimap/MiniMap.d.ts +18 -7
  447. package/dist/types/extensions/react-flow/minimap/MiniMapV12.d.ts +10 -0
  448. package/dist/types/extensions/react-flow/nodes/NodeContent.d.ts +15 -12
  449. package/dist/types/extensions/react-flow/nodes/NodeDefault.d.ts +7 -3
  450. package/dist/types/extensions/react-flow/nodes/nodeUtils.d.ts +12 -5
  451. package/dist/types/extensions/react-flow/versionsupport.d.ts +8 -4
  452. package/dist/types/index.d.ts +1 -2
  453. package/package.json +57 -56
  454. package/src/_shame.scss +1 -1
  455. package/src/cmem/ActivityControl/ActivityControlWidget.tsx +68 -35
  456. package/src/cmem/ActivityControl/SilkActivityControl.tsx +1 -1
  457. package/src/cmem/ContentBlobToggler/ContentBlobToggler.tsx +1 -1
  458. package/src/cmem/ContentBlobToggler/StringPreviewContentBlobToggler.tsx +65 -17
  459. package/src/cmem/ContentBlobToggler/stories/StringPreviewContentBlobToggler.stories.tsx +27 -0
  460. package/src/cmem/ContentBlobToggler/tests/StringPreviewContentBlobToggler.test.tsx +98 -0
  461. package/src/cmem/markdown/Markdown.stories.tsx +0 -1
  462. package/src/cmem/markdown/Markdown.tsx +4 -13
  463. package/src/cmem/react-flow/ReactFlow/ReactFlow.stories.tsx +472 -366
  464. package/src/cmem/react-flow/ReactFlow/ReactFlow.tsx +176 -72
  465. package/src/cmem/react-flow/ReactFlow/ReactFlowV12.tsx +57 -0
  466. package/src/cmem/react-flow/ReactFlow/ReactFlowV9.tsx +29 -0
  467. package/src/cmem/react-flow/StickyNoteModal/StickyNoteModal.tsx +1 -2
  468. package/src/cmem/react-flow/_canvas.scss +1 -1
  469. package/src/cmem/react-flow/_edges.scss +13 -13
  470. package/src/cmem/react-flow/_handles.scss +18 -18
  471. package/src/cmem/react-flow/_minimap.scss +29 -19
  472. package/src/cmem/react-flow/configuration/_colors-graph.scss +19 -36
  473. package/src/cmem/react-flow/configuration/_colors-linking.scss +14 -26
  474. package/src/cmem/react-flow/configuration/_colors-workflow.scss +15 -27
  475. package/src/cmem/react-flow/configuration/graph.ts +13 -11
  476. package/src/cmem/react-flow/configuration/linking.ts +3 -1
  477. package/src/cmem/react-flow/configuration/unspecified.ts +2 -1
  478. package/src/cmem/react-flow/configuration/workflow.ts +3 -1
  479. package/src/cmem/react-flow/extensions/scrollOnDragHook.ts +19 -21
  480. package/src/cmem/react-flow/index.ts +2 -1
  481. package/src/cmem/react-flow/nodes/_colors.scss +20 -20
  482. package/src/common/Intent/index.ts +2 -1
  483. package/src/common/index.ts +12 -0
  484. package/src/common/scss/_color-functions.scss +144 -0
  485. package/src/common/utils/CssCustomProperties.ts +22 -15
  486. package/src/common/utils/colorCalculateDistance.ts +28 -0
  487. package/src/common/utils/colorHash.ts +213 -0
  488. package/src/common/utils/getColorConfiguration.ts +45 -7
  489. package/src/common/utils/reduceToText.tsx +82 -0
  490. package/src/components/Accordion/accordion.scss +6 -5
  491. package/src/components/Application/ApplicationViewability.tsx +61 -0
  492. package/src/components/Application/_colors.scss +30 -0
  493. package/src/components/Application/_content.scss +7 -0
  494. package/src/components/Application/_header.scss +19 -10
  495. package/src/components/Application/_toolbar.scss +5 -5
  496. package/src/components/Application/_viewability.scss +13 -0
  497. package/src/components/Application/application.scss +2 -0
  498. package/src/components/Application/index.ts +1 -0
  499. package/src/components/Application/stories/Application.stories.tsx +2 -2
  500. package/src/components/Application/stories/ApplicationViewability.stories.tsx +37 -0
  501. package/src/components/Application/stories/ColorPalettes.stories.tsx +885 -0
  502. package/src/components/Application/tests/ApplicationViewability.test.tsx +43 -0
  503. package/src/components/AutoSuggestion/AutoSuggestion.tsx +16 -32
  504. package/src/components/AutoSuggestion/AutoSuggestionList.tsx +13 -6
  505. package/src/components/AutoSuggestion/ExtendedCodeEditor.tsx +1 -7
  506. package/src/components/AutoSuggestion/tests/ExtendedCodeEditor.test.tsx +1 -1
  507. package/src/components/AutocompleteField/AutoCompleteField.tsx +21 -13
  508. package/src/components/AutocompleteField/autoCompleteFieldUtils.tsx +2 -2
  509. package/src/components/AutocompleteField/interfaces.ts +1 -5
  510. package/src/components/Button/Button.stories.tsx +7 -5
  511. package/src/components/Button/Button.tsx +23 -63
  512. package/src/components/Button/button.scss +94 -32
  513. package/src/components/Card/card.scss +19 -13
  514. package/src/components/Chat/ChatArea.tsx +114 -0
  515. package/src/components/Chat/ChatContent.tsx +132 -0
  516. package/src/components/Chat/ChatContentCollapsed.tsx +64 -0
  517. package/src/components/Chat/ChatField.tsx +75 -0
  518. package/src/components/Chat/_chat.scss +86 -0
  519. package/src/components/Chat/index.ts +4 -0
  520. package/src/components/Chat/stories/ChatArea.stories.tsx +61 -0
  521. package/src/components/Chat/stories/ChatContent.stories.tsx +61 -0
  522. package/src/components/Chat/stories/ChatContentCollapsed.stories.tsx +24 -0
  523. package/src/components/Chat/stories/ChatField.stories.tsx +23 -0
  524. package/src/components/Checkbox/checkbox.scss +14 -2
  525. package/src/components/CodeAutocompleteField/index.ts +8 -1
  526. package/src/components/ColorField/ColorField.stories.tsx +69 -0
  527. package/src/components/ColorField/ColorField.tsx +200 -0
  528. package/src/components/ColorField/_colorfield.scss +56 -0
  529. package/src/components/ContentGroup/ContentGroup.tsx +1 -1
  530. package/src/components/ContentGroup/_contentgroup.scss +17 -2
  531. package/src/components/ContextOverlay/ContextMenu.tsx +4 -1
  532. package/src/components/ContextOverlay/ContextOverlay.tsx +97 -19
  533. package/src/components/ContextOverlay/tests/ContextMenu.test.tsx +43 -0
  534. package/src/components/ContextOverlay/tests/ContextOverlay.test.tsx +71 -0
  535. package/src/components/DecoupledOverlay/DecoupledOverlay.stories.tsx +30 -0
  536. package/src/components/DecoupledOverlay/DecoupledOverlay.tsx +97 -0
  537. package/src/components/DecoupledOverlay/_decoupledoverlay.scss +46 -0
  538. package/src/components/Depiction/depiction.scss +6 -0
  539. package/src/components/Dialog/Modal.tsx +30 -2
  540. package/src/components/Dialog/ModalContext.tsx +56 -0
  541. package/src/components/Dialog/SimpleDialog.tsx +2 -1
  542. package/src/components/Dialog/dialog.scss +4 -1
  543. package/src/components/Dialog/index.ts +1 -0
  544. package/src/components/Dialog/stories/Modal.stories.tsx +10 -7
  545. package/src/components/Dialog/stories/ModalContext.stories.tsx +153 -0
  546. package/src/components/FlexibleLayout/flexiblelayout.scss +16 -0
  547. package/src/components/Form/FieldItem.tsx +2 -57
  548. package/src/components/Form/FieldSet.tsx +1 -45
  549. package/src/components/Form/form.scss +2 -2
  550. package/src/components/Grid/grid.scss +17 -0
  551. package/src/components/Grid/stories/Grid.stories.tsx +10 -7
  552. package/src/components/Grid/stories/GridRow.stories.tsx +13 -7
  553. package/src/components/Icon/BaseIcon.tsx +0 -14
  554. package/src/components/Icon/IconButton.tsx +2 -1
  555. package/src/components/Icon/canonicalIconNames.tsx +31 -2
  556. package/src/components/Icon/icon.scss +6 -0
  557. package/src/components/Icon/stories/Icon.stories.tsx +65 -5
  558. package/src/components/Icon/stories/IconButton.stories.tsx +2 -1
  559. package/src/components/Icon/transformIcon.tsx +17 -0
  560. package/src/components/Label/label.scss +1 -1
  561. package/src/components/Link/Link.stories.tsx +30 -0
  562. package/src/components/Link/link.scss +29 -3
  563. package/src/components/Menu/menu.scss +4 -27
  564. package/src/components/MultiSelect/MultiSelect.tsx +36 -64
  565. package/src/components/MultiSuggestField/MultiSuggestField.stories.tsx +1 -1
  566. package/src/components/MultiSuggestField/index.ts +1 -0
  567. package/src/components/Notification/Notification.stories.tsx +24 -10
  568. package/src/components/Notification/Notification.tsx +3 -51
  569. package/src/components/Notification/notification.scss +17 -6
  570. package/src/components/OverviewItem/OverviewItemList.tsx +0 -7
  571. package/src/components/OverviewItem/overviewitem.scss +15 -9
  572. package/src/components/OverviewItem/stories/OverviewItem.stories.tsx +28 -0
  573. package/src/components/OverviewItem/stories/OverviewItemActions.stories.tsx +2 -2
  574. package/src/components/OverviewItem/stories/OverviewItemDescription.stories.tsx +1 -1
  575. package/src/components/OverviewItem/stories/OverviewItemLine.stories.tsx +1 -1
  576. package/src/components/OverviewItem/stories/OverviewItemList.stories.tsx +0 -1
  577. package/src/components/Pagination/pagination.scss +1 -1
  578. package/src/components/ProgressBar/Stories/ProgressBar.stories.tsx +7 -1
  579. package/src/components/PropertyValuePair/propertyvalue.scss +23 -1
  580. package/src/components/RadioButton/RadioButton.tsx +15 -3
  581. package/src/components/RadioButton/radiobutton.scss +13 -0
  582. package/src/components/Select/Select.stories.tsx +1 -1
  583. package/src/components/Separation/separation.scss +6 -0
  584. package/src/components/Spinner/Spinner.tsx +30 -23
  585. package/src/components/Spinner/Stories/spinner.stories.tsx +1 -1
  586. package/src/components/Spinner/spinner.scss +10 -5
  587. package/src/components/Sticky/sticky.scss +7 -7
  588. package/src/components/SuggestField/index.ts +7 -1
  589. package/src/components/Table/Table.tsx +1 -2
  590. package/src/components/Table/TableContainer.tsx +2 -2
  591. package/src/components/Table/table.scss +56 -46
  592. package/src/components/Tabs/Tab.tsx +3 -2
  593. package/src/components/Tabs/stories/Tab.stories.tsx +1 -1
  594. package/src/components/Tabs/stories/TabPanel.stories.tsx +1 -1
  595. package/src/components/Tabs/stories/TabTitle.stories.tsx +8 -3
  596. package/src/components/Tag/stories/TagList.stories.tsx +2 -2
  597. package/src/components/Tag/tag.scss +105 -74
  598. package/src/components/TextField/SearchField.tsx +1 -6
  599. package/src/components/TextField/TextArea.tsx +2 -2
  600. package/src/components/TextField/stories/SearchField.stories.tsx +0 -4
  601. package/src/components/TextField/textfield.scss +31 -23
  602. package/src/components/TextReducer/TextReducer.stories.tsx +48 -0
  603. package/src/components/TextReducer/TextReducer.test.tsx +44 -0
  604. package/src/components/TextReducer/TextReducer.tsx +71 -0
  605. package/src/components/Tooltip/Tooltip.stories.tsx +2 -0
  606. package/src/components/Tooltip/Tooltip.test.tsx +63 -0
  607. package/src/components/Tooltip/Tooltip.tsx +7 -2
  608. package/src/components/Tooltip/tooltip.scss +7 -3
  609. package/src/components/Typography/InlineText.tsx +24 -0
  610. package/src/components/Typography/OverflowText.tsx +1 -6
  611. package/src/components/Typography/_reset.scss +1 -0
  612. package/src/components/Typography/index.ts +1 -0
  613. package/src/components/Typography/stories/InlineText.stories.tsx +27 -0
  614. package/src/components/Typography/typography.scss +29 -3
  615. package/src/components/VisualTour/VisualTour.tsx +361 -0
  616. package/src/components/VisualTour/stories/VisualTour.stories.tsx +112 -0
  617. package/src/components/VisualTour/stories/defaultTour.ts +42 -0
  618. package/src/components/VisualTour/visualTour.scss +49 -0
  619. package/src/components/index.scss +4 -0
  620. package/src/components/index.ts +8 -7
  621. package/src/configuration/_customproperties.scss +32 -0
  622. package/src/configuration/_libprefix.scss +1 -0
  623. package/src/configuration/_palettes.scss +40 -0
  624. package/src/configuration/_variables.scss +21 -20
  625. package/src/configuration/constants.ts +2 -0
  626. package/src/configuration/stories/customproperties.stories.tsx +118 -0
  627. package/src/extensions/codemirror/CodeMirror.tsx +32 -19
  628. package/src/extensions/codemirror/_codemirror.scss +2 -2
  629. package/src/extensions/codemirror/hooks/useCodemirrorModeExtension.hooks.ts +3 -0
  630. package/src/extensions/codemirror/tests/codemirrorTestHelper.ts +3 -3
  631. package/src/extensions/react-flow/_config.scss +13 -7
  632. package/src/extensions/react-flow/_react-flow.scss +1 -4
  633. package/src/extensions/react-flow/_react-flow_v12.scss +211 -3
  634. package/src/extensions/react-flow/edges/EdgeBezier.tsx +47 -0
  635. package/src/extensions/react-flow/edges/EdgeDefault.tsx +51 -13
  636. package/src/extensions/react-flow/edges/EdgeDefaultV12.tsx +79 -78
  637. package/src/extensions/react-flow/edges/EdgeDefs.tsx +3 -0
  638. package/src/extensions/react-flow/edges/EdgeLabel.tsx +6 -4
  639. package/src/extensions/react-flow/edges/EdgeNew.tsx +53 -0
  640. package/src/extensions/react-flow/edges/EdgeStep.tsx +41 -6
  641. package/src/extensions/react-flow/edges/EdgeStraight.tsx +1 -0
  642. package/src/extensions/react-flow/edges/_edges.scss +28 -13
  643. package/src/extensions/react-flow/edges/stories/EdgeDefault.stories.tsx +5 -6
  644. package/src/extensions/react-flow/edges/stories/EdgeDefaultV12.stories.tsx +32 -25
  645. package/src/extensions/react-flow/edges/utils.ts +19 -1
  646. package/src/extensions/react-flow/handles/HandleDefault.tsx +41 -36
  647. package/src/extensions/react-flow/handles/_handles.scss +2 -2
  648. package/src/extensions/react-flow/handles/stories/HandleDefault.stories.tsx +4 -6
  649. package/src/extensions/react-flow/index.ts +7 -5
  650. package/src/extensions/react-flow/markers/MarkerArrowClosedInverse.tsx +3 -0
  651. package/src/extensions/react-flow/markers/ReactFlowMarkers.tsx +58 -1
  652. package/src/extensions/react-flow/markers/_markers.scss +31 -0
  653. package/src/extensions/react-flow/minimap/MiniMap.stories.tsx +12 -18
  654. package/src/extensions/react-flow/minimap/MiniMap.tsx +45 -9
  655. package/src/extensions/react-flow/minimap/MiniMapV12.tsx +39 -0
  656. package/src/extensions/react-flow/minimap/_minimap.scss +14 -0
  657. package/src/extensions/react-flow/nodes/NodeContent.tsx +135 -113
  658. package/src/extensions/react-flow/nodes/NodeDefault.tsx +9 -5
  659. package/src/extensions/react-flow/nodes/_nodes.scss +32 -25
  660. package/src/extensions/react-flow/nodes/nodeUtils.tsx +16 -6
  661. package/src/extensions/react-flow/nodes/stories/NodeContent.stories.tsx +2 -2
  662. package/src/extensions/react-flow/nodes/stories/NodeDefault.stories.tsx +3 -5
  663. package/src/extensions/react-flow/versionsupport.ts +17 -15
  664. package/src/extensions/uppy/_fileupload.scss +2 -2
  665. package/src/includes/blueprintjs/_colormap.scss +150 -0
  666. package/src/includes/blueprintjs/_variables.scss +39 -9
  667. package/src/includes/carbon-components/_variables.scss +23 -8
  668. package/src/index.scss +12 -0
  669. package/src/index.ts +1 -2
  670. package/dist/cjs/components/AutoSuggestion/index.js +0 -8
  671. package/dist/cjs/components/AutoSuggestion/index.js.map +0 -1
  672. package/dist/cjs/components/AutocompleteField/index.js.map +0 -1
  673. package/dist/cjs/components/CodeAutocompleteField/CodeAutocompleteField.js +0 -32
  674. package/dist/cjs/components/CodeAutocompleteField/CodeAutocompleteField.js.map +0 -1
  675. package/dist/cjs/components/MultiSuggestField/MultiSuggestField.js +0 -37
  676. package/dist/cjs/components/MultiSuggestField/MultiSuggestField.js.map +0 -1
  677. package/dist/cjs/components/SuggestField/SuggestField.js +0 -38
  678. package/dist/cjs/components/SuggestField/SuggestField.js.map +0 -1
  679. package/dist/cjs/extensions/react-flow/edges/edgeTypes.js +0 -28
  680. package/dist/cjs/extensions/react-flow/edges/edgeTypes.js.map +0 -1
  681. package/dist/cjs/extensions/react-flow/nodes/nodeTypes.js +0 -18
  682. package/dist/cjs/extensions/react-flow/nodes/nodeTypes.js.map +0 -1
  683. package/dist/cjs/legacy-replacements/Button/AffirmativeButton.js +0 -25
  684. package/dist/cjs/legacy-replacements/Button/AffirmativeButton.js.map +0 -1
  685. package/dist/cjs/legacy-replacements/Button/Button.js +0 -65
  686. package/dist/cjs/legacy-replacements/Button/Button.js.map +0 -1
  687. package/dist/cjs/legacy-replacements/Button/DismissiveButton.js +0 -25
  688. package/dist/cjs/legacy-replacements/Button/DismissiveButton.js.map +0 -1
  689. package/dist/cjs/legacy-replacements/Button/DisruptiveButton.js.map +0 -1
  690. package/dist/cjs/legacy-replacements/Checkbox/Checkbox.js +0 -58
  691. package/dist/cjs/legacy-replacements/Checkbox/Checkbox.js.map +0 -1
  692. package/dist/cjs/legacy-replacements/Radio/RadioButton.js +0 -51
  693. package/dist/cjs/legacy-replacements/Radio/RadioButton.js.map +0 -1
  694. package/dist/cjs/legacy-replacements/Tabs/Tabs.js +0 -34
  695. package/dist/cjs/legacy-replacements/Tabs/Tabs.js.map +0 -1
  696. package/dist/cjs/legacy-replacements/TextField/TextField.js +0 -75
  697. package/dist/cjs/legacy-replacements/TextField/TextField.js.map +0 -1
  698. package/dist/cjs/legacy-replacements/index.js +0 -22
  699. package/dist/cjs/legacy-replacements/index.js.map +0 -1
  700. package/dist/esm/components/AutoSuggestion/index.js +0 -4
  701. package/dist/esm/components/AutoSuggestion/index.js.map +0 -1
  702. package/dist/esm/components/AutocompleteField/index.js +0 -7
  703. package/dist/esm/components/AutocompleteField/index.js.map +0 -1
  704. package/dist/esm/components/CodeAutocompleteField/CodeAutocompleteField.js +0 -37
  705. package/dist/esm/components/CodeAutocompleteField/CodeAutocompleteField.js.map +0 -1
  706. package/dist/esm/components/MultiSuggestField/MultiSuggestField.js +0 -42
  707. package/dist/esm/components/MultiSuggestField/MultiSuggestField.js.map +0 -1
  708. package/dist/esm/components/SuggestField/SuggestField.js +0 -43
  709. package/dist/esm/components/SuggestField/SuggestField.js.map +0 -1
  710. package/dist/esm/extensions/react-flow/edges/edgeTypes.js +0 -25
  711. package/dist/esm/extensions/react-flow/edges/edgeTypes.js.map +0 -1
  712. package/dist/esm/extensions/react-flow/nodes/nodeTypes.js +0 -15
  713. package/dist/esm/extensions/react-flow/nodes/nodeTypes.js.map +0 -1
  714. package/dist/esm/legacy-replacements/Button/AffirmativeButton.js.map +0 -1
  715. package/dist/esm/legacy-replacements/Button/Button.js +0 -69
  716. package/dist/esm/legacy-replacements/Button/Button.js.map +0 -1
  717. package/dist/esm/legacy-replacements/Button/DismissiveButton.js +0 -30
  718. package/dist/esm/legacy-replacements/Button/DismissiveButton.js.map +0 -1
  719. package/dist/esm/legacy-replacements/Button/DisruptiveButton.js.map +0 -1
  720. package/dist/esm/legacy-replacements/Checkbox/Checkbox.js +0 -63
  721. package/dist/esm/legacy-replacements/Checkbox/Checkbox.js.map +0 -1
  722. package/dist/esm/legacy-replacements/Radio/RadioButton.js +0 -56
  723. package/dist/esm/legacy-replacements/Radio/RadioButton.js.map +0 -1
  724. package/dist/esm/legacy-replacements/Tabs/Tabs.js +0 -39
  725. package/dist/esm/legacy-replacements/Tabs/Tabs.js.map +0 -1
  726. package/dist/esm/legacy-replacements/TextField/TextField.js +0 -82
  727. package/dist/esm/legacy-replacements/TextField/TextField.js.map +0 -1
  728. package/dist/esm/legacy-replacements/index.js +0 -10
  729. package/dist/esm/legacy-replacements/index.js.map +0 -1
  730. package/dist/types/components/AutoSuggestion/index.d.ts +0 -5
  731. package/dist/types/components/AutocompleteField/index.d.ts +0 -5
  732. package/dist/types/components/CodeAutocompleteField/CodeAutocompleteField.d.ts +0 -11
  733. package/dist/types/components/MultiSuggestField/MultiSuggestField.d.ts +0 -19
  734. package/dist/types/components/SuggestField/SuggestField.d.ts +0 -21
  735. package/dist/types/extensions/react-flow/edges/edgeTypes.d.ts +0 -16
  736. package/dist/types/extensions/react-flow/nodes/nodeTypes.d.ts +0 -13
  737. package/dist/types/legacy-replacements/Button/AffirmativeButton.d.ts +0 -3
  738. package/dist/types/legacy-replacements/Button/Button.d.ts +0 -6
  739. package/dist/types/legacy-replacements/Button/DismissiveButton.d.ts +0 -3
  740. package/dist/types/legacy-replacements/Button/DisruptiveButton.d.ts +0 -3
  741. package/dist/types/legacy-replacements/Checkbox/Checkbox.d.ts +0 -3
  742. package/dist/types/legacy-replacements/Radio/RadioButton.d.ts +0 -3
  743. package/dist/types/legacy-replacements/Tabs/Tabs.d.ts +0 -24
  744. package/dist/types/legacy-replacements/TextField/TextField.d.ts +0 -3
  745. package/dist/types/legacy-replacements/index.d.ts +0 -10
  746. package/src/components/AutoSuggestion/index.ts +0 -7
  747. package/src/components/AutocompleteField/AutoCompleteField.stories.tsx +0 -14
  748. package/src/components/AutocompleteField/index.ts +0 -6
  749. package/src/components/CodeAutocompleteField/CodeAutocompleteField.tsx +0 -22
  750. package/src/components/MultiSuggestField/MultiSuggestField.tsx +0 -35
  751. package/src/components/SuggestField/SuggestField.tsx +0 -33
  752. package/src/extensions/react-flow/edges/edgeTypes.ts +0 -29
  753. package/src/extensions/react-flow/nodes/nodeTypes.ts +0 -15
  754. package/src/legacy-replacements/Button/AffirmativeButton.tsx +0 -12
  755. package/src/legacy-replacements/Button/Button.tsx +0 -80
  756. package/src/legacy-replacements/Button/DismissiveButton.tsx +0 -12
  757. package/src/legacy-replacements/Button/DisruptiveButton.tsx +0 -12
  758. package/src/legacy-replacements/Checkbox/Checkbox.tsx +0 -59
  759. package/src/legacy-replacements/Radio/RadioButton.tsx +0 -37
  760. package/src/legacy-replacements/Tabs/Tabs.stories.tsx +0 -36
  761. package/src/legacy-replacements/Tabs/Tabs.tsx +0 -69
  762. package/src/legacy-replacements/TextField/TextField.tsx +0 -89
  763. package/src/legacy-replacements/index.ts +0 -11
@@ -0,0 +1,885 @@
1
+ import React from "react";
2
+ import { render } from "react-dom";
3
+ import { loremIpsum } from "react-lorem-ipsum";
4
+ import { Meta, StoryFn } from "@storybook/react";
5
+ import Color from "color";
6
+
7
+ import CssCustomProperties from "./../../../common/utils/CssCustomProperties";
8
+ import {
9
+ ApplicationContainer,
10
+ Badge,
11
+ Button,
12
+ Checkbox,
13
+ CLASSPREFIX as eccgui,
14
+ COLORMINCONTRAST,
15
+ COLORMINDISTANCE,
16
+ ContextMenu,
17
+ FieldItem,
18
+ FieldItemRow,
19
+ FieldSet,
20
+ FlexibleLayoutContainer,
21
+ FlexibleLayoutItem,
22
+ IconButton,
23
+ MenuItem,
24
+ Section,
25
+ SectionHeader,
26
+ Spacing,
27
+ Switch,
28
+ Tabs,
29
+ TabTitle,
30
+ Tag,
31
+ TagList,
32
+ TextField,
33
+ TitleSubsection,
34
+ utils,
35
+ } from "./../../../index";
36
+
37
+ interface ColorPaletteConfiguratorProps {
38
+ /** Color palette as custom CSS properties */
39
+ customColorProperties?: string;
40
+ /** Default value for minimal color distance */
41
+ distanceMin?: number;
42
+ /** Default value for minimal contrast */
43
+ contrastMin?: number;
44
+ /** Enable color checks by default */
45
+ enableCalculations?: boolean;
46
+ }
47
+
48
+ const ColorPaletteConfigurator = ({
49
+ customColorProperties,
50
+ distanceMin = COLORMINDISTANCE, // @see https://wisotop.de/farbabstand-farben-vergleichen.php
51
+ contrastMin = COLORMINCONTRAST,
52
+ enableCalculations = false,
53
+ }: ColorPaletteConfiguratorProps) => {
54
+ const palettePrefix = `--${eccgui}-color-palette-`;
55
+ const userInputDelayTime = 500;
56
+ const correctionStep = 0.01;
57
+ let userInputDelay; // timeout id
58
+ const refConfigurator = React.useRef<HTMLDivElement>(null);
59
+ const [calculateDistanceWarnings, setCalculateDistanceWarnings] = React.useState<boolean>(enableCalculations);
60
+ const [calculateContrastWarnings, setCalculateContrastWarnings] = React.useState<boolean>(enableCalculations);
61
+ const [minimalDistance, setMinimalDistance] = React.useState<number>(distanceMin);
62
+ const [minimalContrast, setMinimalContrast] = React.useState<number>(contrastMin);
63
+ const [paletteData, setPaletteData] = React.useState<object | undefined>(undefined);
64
+ const [hashtestGroups, setHashtestGroups] = React.useState<string[]>(["layout"]);
65
+ const [hashtestWeights, setHashtestWeights] = React.useState<string[]>(["100", "300", "500", "700", "900"]);
66
+ const userPaletteRef = React.useRef<HTMLTextAreaElement | null>(null);
67
+
68
+ const createPaletteData = (csscustomprops: string | undefined) => {
69
+ const colors = (
70
+ csscustomprops
71
+ ? csscustomprops.split(";").map((rule: string) => {
72
+ return rule.split(":").map((rulepart: string) => {
73
+ return rulepart.trim();
74
+ });
75
+ })
76
+ : new CssCustomProperties({
77
+ selectorText: `:root`,
78
+ filterName: (name: string) => {
79
+ return name.includes(palettePrefix);
80
+ },
81
+ removeDashPrefix: false,
82
+ returnObject: false,
83
+ }).customProperties()
84
+ )
85
+ .filter((colorconfig: object) => {
86
+ if (!Array.isArray(colorconfig)) {
87
+ return false;
88
+ }
89
+ if (colorconfig.length !== 2) {
90
+ return false;
91
+ }
92
+ return true;
93
+ })
94
+ .map((colorconfig: object) => {
95
+ return [colorconfig[0].replace(palettePrefix, ""), Color(colorconfig[1]).rgb()];
96
+ });
97
+
98
+ const data = new Object();
99
+
100
+ for (const [key, value] of colors) {
101
+ const hierarchy = key.split("-");
102
+ if (!data[hierarchy[0]]) {
103
+ data[hierarchy[0]] = new Object();
104
+ }
105
+ if (!data[hierarchy[0]][hierarchy[1]]) {
106
+ data[hierarchy[0]][hierarchy[1]] = new Object();
107
+ }
108
+ if (!data[hierarchy[0]][hierarchy[1]][hierarchy[2]]) {
109
+ data[hierarchy[0]][hierarchy[1]][hierarchy[2]] = value;
110
+ }
111
+ }
112
+
113
+ return data;
114
+ };
115
+
116
+ const createSimpleColorList = (data: object, checkColorDistance: boolean) => {
117
+ let colorlist = [] as Color[];
118
+ for (const [group, tints] of Object.entries(data)) {
119
+ if (hashtestGroups.includes(group)) {
120
+ for (const [, weights] of Object.entries(tints as object)) {
121
+ for (const [weight, value] of Object.entries(weights)) {
122
+ if (hashtestWeights.includes(weight)) {
123
+ colorlist.push(value as Color);
124
+ }
125
+ }
126
+ }
127
+ }
128
+ }
129
+
130
+ if (checkColorDistance) {
131
+ colorlist = colorlist.reduce((enoughDistance: Color[], color: Color) => {
132
+ if (enoughDistance.includes(color)) {
133
+ return enoughDistance.filter((checkColor) => {
134
+ const distance = utils.colorCalculateDistance({ color1: color, color2: checkColor });
135
+ return checkColor === color || (distance && distanceMin <= distance);
136
+ });
137
+ } else {
138
+ return enoughDistance;
139
+ }
140
+ }, colorlist);
141
+ }
142
+
143
+ return colorlist;
144
+ };
145
+
146
+ const createCustomPropsSerialization = (data: object) => {
147
+ let serialization = "";
148
+ for (const [group, tints] of Object.entries(data)) {
149
+ for (const [tint, weights] of Object.entries(tints as object)) {
150
+ for (const [weight, value] of Object.entries(weights)) {
151
+ serialization =
152
+ serialization +
153
+ `--${eccgui}-color-palette-${group}-${tint}-${weight}: ${(value as Color).hex()};\n`;
154
+ }
155
+ }
156
+ }
157
+ return serialization.trim();
158
+ };
159
+
160
+ const createSassSerialization = (data: object) => {
161
+ const createTintData = (tint: string, weights: object) => {
162
+ return `\t\t"${tint}": eccgui-create-color-tints(${Object.values(weights)
163
+ .map((color) => color.hex().toLowerCase())
164
+ .join(" ")}),\n`;
165
+ };
166
+
167
+ const createGroupData = (group: string, tints: object) => {
168
+ let groupData = `\t"${group}": (\n`;
169
+ for (const [tint, weights] of Object.entries(tints)) {
170
+ groupData = groupData + createTintData(tint, weights);
171
+ }
172
+ return (groupData + `\t),\n`).replaceAll("\t", " ");
173
+ };
174
+
175
+ let sassData = `$eccgui-color-palette-light: (\n`;
176
+
177
+ for (const [group, tints] of Object.entries(data)) {
178
+ sassData = sassData + createGroupData(group, tints);
179
+ }
180
+
181
+ return sassData + `) !default;`;
182
+ };
183
+
184
+ React.useEffect(() => {
185
+ if (refConfigurator.current) {
186
+ const panelConfig = document.getElementById("bp5-tab-panel_colorconfig_editor");
187
+ if (panelConfig) {
188
+ const warnings = Array.from(panelConfig.getElementsByClassName("eccgui-badge"))
189
+ .map((warning: Element) => {
190
+ return (warning as HTMLElement).textContent;
191
+ })
192
+ .reduce((partial, value) => {
193
+ return partial + parseInt(value ?? "");
194
+ }, 0 as number);
195
+ const warningsTarget = document.getElementById("sumWarnings");
196
+ if (warningsTarget) {
197
+ if (warnings > 0) {
198
+ render(<Badge intent={"warning"}>{warnings}</Badge>, warningsTarget);
199
+ } else {
200
+ render(<></>, warningsTarget);
201
+ }
202
+ }
203
+ }
204
+ }
205
+ });
206
+
207
+ React.useEffect(() => {
208
+ const paletteData = createPaletteData(customColorProperties);
209
+ setPaletteData(paletteData);
210
+ }, [customColorProperties]);
211
+
212
+ React.useEffect(() => {
213
+ if (userPaletteRef && userPaletteRef.current) {
214
+ userPaletteRef.current.value = createCustomPropsSerialization(paletteData || {});
215
+ }
216
+ }, [paletteData]);
217
+
218
+ const updateHashtestGroups = (group: string, active: boolean) => {
219
+ let updatedGroups;
220
+ if (active) {
221
+ updatedGroups = [...hashtestGroups, group];
222
+ } else {
223
+ updatedGroups = hashtestGroups.filter((value) => value !== group);
224
+ }
225
+ setHashtestGroups(updatedGroups);
226
+ };
227
+
228
+ const updateHashtestWeights = (weight: string, active: boolean) => {
229
+ let updatedWeights;
230
+ if (active) {
231
+ updatedWeights = [...hashtestWeights, weight];
232
+ } else {
233
+ updatedWeights = hashtestWeights.filter((value) => value !== weight);
234
+ }
235
+ setHashtestWeights(updatedWeights);
236
+ };
237
+
238
+ const fixColorByLuminosity = (
239
+ color: Color,
240
+ colorTest: Color,
241
+ testFn: (color1: Color, color2: Color) => boolean
242
+ ) => {
243
+ let fixedColor = color as Color;
244
+ let check = testFn(fixedColor, colorTest);
245
+ while (check === true && fixedColor.luminosity() > 0 && fixedColor.luminosity() < 1) {
246
+ if (fixedColor.luminosity() < (colorTest as Color).luminosity()) {
247
+ fixedColor = fixedColor.darken(correctionStep);
248
+ } else {
249
+ fixedColor = fixedColor.lighten(correctionStep);
250
+ }
251
+ check = testFn(fixedColor, colorTest);
252
+ }
253
+
254
+ return fixedColor;
255
+ };
256
+
257
+ const createWarnings = (id: string[], colors: object) => {
258
+ if (
259
+ (!calculateDistanceWarnings && !calculateContrastWarnings) ||
260
+ !colors[id[0]] ||
261
+ !colors[id[0]][id[1]] ||
262
+ !colors[id[0]][id[1]][id[2]]
263
+ ) {
264
+ return undefined;
265
+ }
266
+ const color = colors[id[0]][id[1]][id[2]];
267
+ const warningsDistance: React.ReactElement[] = [];
268
+ const warningsContrast: React.ReactElement[] = [];
269
+ for (const [group, tints] of Object.entries(colors)) {
270
+ for (const [tint, weights] of Object.entries(tints as object)) {
271
+ for (const [weight, value] of Object.entries(weights)) {
272
+ if (color.hex().toString() !== (value as Color).hex().toString()) {
273
+ if (calculateDistanceWarnings) {
274
+ // color distance
275
+ const distance = utils.colorCalculateDistance({ color1: color, color2: value as Color });
276
+ if (distance && distance < minimalDistance) {
277
+ warningsDistance.push(
278
+ <MenuItem
279
+ key={tint + weight}
280
+ text={
281
+ <>
282
+ Fix with{" "}
283
+ <Tag backgroundColor={(value as Color).hex()}>{tint + weight}</Tag> (
284
+ {distance.toPrecision(2)})
285
+ </>
286
+ }
287
+ >
288
+ <MenuItem
289
+ key={"this"}
290
+ text={
291
+ <>
292
+ Fix{" "}
293
+ <Tag backgroundColor={(color as Color).hex()}>
294
+ {`${id[1]}}${id[2]}}`}
295
+ </Tag>
296
+ </>
297
+ }
298
+ onClick={() => {
299
+ colors[id[0]][id[1]][id[2]] = fixColorByLuminosity(
300
+ color,
301
+ value as Color,
302
+ (c1, c2) => {
303
+ const distance =
304
+ utils.colorCalculateDistance({ color1: c1, color2: c2 }) ??
305
+ 0;
306
+ // eslint-disable-next-line no-console
307
+ console.log(`${c1.hex()} -> ${distance}`);
308
+ return distance < minimalDistance;
309
+ }
310
+ );
311
+ setPaletteData({ ...colors });
312
+ }}
313
+ />
314
+ <MenuItem
315
+ key={"that"}
316
+ text={
317
+ <>
318
+ Fix{" "}
319
+ <Tag backgroundColor={(value as Color).hex()}>
320
+ {`${tint}${weight}`}
321
+ </Tag>
322
+ </>
323
+ }
324
+ onClick={() => {
325
+ colors[group][tint][weight] = fixColorByLuminosity(
326
+ value as Color,
327
+ color,
328
+ (c1, c2) => {
329
+ const distance =
330
+ utils.colorCalculateDistance({ color1: c1, color2: c2 }) ??
331
+ 0;
332
+ // eslint-disable-next-line no-console
333
+ console.log(`${c1.hex()} -> ${distance}`);
334
+ return distance < minimalDistance;
335
+ }
336
+ );
337
+ setPaletteData({ ...colors });
338
+ }}
339
+ />
340
+ </MenuItem>
341
+ );
342
+ }
343
+ }
344
+ if (calculateContrastWarnings) {
345
+ // color contrasts
346
+ if (
347
+ // test to text/background colors in identity group
348
+ ((group === "identity" && (tint === "text" || tint === "background")) ||
349
+ // test to same color tint
350
+ (group === id[0] && tint === id[1])) &&
351
+ // test only for light and strong weights, let out 500
352
+ // 500 is necessary to have a good gradient but they are never good to use as text color/bg
353
+ id[2] !== "500" &&
354
+ weight !== "500"
355
+ ) {
356
+ if (
357
+ // only calculate light versions to dark versions b/c other usage combination would not make sense at all
358
+ (color.isDark() && (value as Color).isLight()) ||
359
+ (color.isLight() && (value as Color).isDark())
360
+ ) {
361
+ if (color.contrast(value as Color) < minimalContrast) {
362
+ warningsContrast.push(
363
+ <MenuItem
364
+ key={tint + weight}
365
+ text={
366
+ <>
367
+ Fix with{" "}
368
+ <Tag backgroundColor={(value as Color).hex()}>
369
+ {`${tint}${weight}`} (
370
+ {color.contrast(value as Color).toPrecision(2)})
371
+ </Tag>
372
+ </>
373
+ }
374
+ >
375
+ <MenuItem
376
+ key="this"
377
+ text={
378
+ <>
379
+ Fix{" "}
380
+ <Tag backgroundColor={(color as Color).hex()}>
381
+ {`${id[1]}}${id[2]}}`}
382
+ </Tag>
383
+ </>
384
+ }
385
+ onClick={() => {
386
+ colors[id[0]][id[1]][id[2]] = fixColorByLuminosity(
387
+ color,
388
+ value as Color,
389
+ (c1, c2) => {
390
+ const contrast = c1.contrast(c2 as Color);
391
+ // eslint-disable-next-line no-console
392
+ console.log(`${c1.hex()} -> ${contrast}`);
393
+ return contrast < minimalContrast;
394
+ }
395
+ );
396
+ setPaletteData({ ...colors });
397
+ }}
398
+ />
399
+ <MenuItem
400
+ key="that"
401
+ text={
402
+ <>
403
+ Fix{" "}
404
+ <Tag backgroundColor={(value as Color).hex()}>
405
+ {`${tint}${weight}`}
406
+ </Tag>
407
+ </>
408
+ }
409
+ onClick={() => {
410
+ colors[group][tint][weight] = fixColorByLuminosity(
411
+ value as Color,
412
+ color,
413
+ (c1, c2) => {
414
+ const contrast = c1.contrast(c2 as Color);
415
+ // eslint-disable-next-line no-console
416
+ console.log(`${c1.hex()} -> ${contrast}`);
417
+ return contrast < minimalContrast;
418
+ }
419
+ );
420
+ setPaletteData({ ...colors });
421
+ }}
422
+ />
423
+ </MenuItem>
424
+ );
425
+ }
426
+ }
427
+ }
428
+ }
429
+ }
430
+ }
431
+ }
432
+ }
433
+ return warningsDistance.length + warningsContrast.length > 0 ? (
434
+ <ContextMenu
435
+ togglerElement={
436
+ <IconButton
437
+ name="state-warning"
438
+ intent="warning"
439
+ badge={warningsDistance.length + warningsContrast.length}
440
+ badgeProps={{
441
+ intent: "warning",
442
+ position: "top-right",
443
+ size: "small",
444
+ }}
445
+ />
446
+ }
447
+ >
448
+ {warningsDistance.length > 0 ? <TitleSubsection key="dist">Distances</TitleSubsection> : <></>}
449
+ <>{warningsDistance}</>
450
+ {warningsContrast.length > 0 ? <TitleSubsection key="contrast">Contrasts</TitleSubsection> : <></>}
451
+ <>{warningsContrast}</>
452
+ </ContextMenu>
453
+ ) : undefined;
454
+ };
455
+
456
+ const renderColorInput = (
457
+ paletteData: object = {},
458
+ label: string,
459
+ id: string[],
460
+ updateFn: (color: string) => void
461
+ ) => {
462
+ if (!paletteData[id[0]] || !paletteData[id[0]][id[1]] || !paletteData[id[0]][id[1]][id[2]]) {
463
+ return <></>;
464
+ }
465
+ const color = paletteData[id[0]][id[1]][id[2]];
466
+ const menuWarnings = createWarnings(id, paletteData);
467
+ return (
468
+ <FieldItem
469
+ key={label}
470
+ labelProps={{ text: label }}
471
+ messageText={`${color.hex()} / ${color.luminosity().toPrecision(2)}`}
472
+ >
473
+ <TextField
474
+ type="color"
475
+ value={color.hex()}
476
+ onValueChange={(newcolor) => {
477
+ if (userInputDelay) {
478
+ clearTimeout(userInputDelay);
479
+ }
480
+ userInputDelay = setTimeout(() => {
481
+ updateFn(newcolor);
482
+ }, userInputDelayTime);
483
+ }}
484
+ intent={menuWarnings ? "warning" : undefined}
485
+ rightElement={menuWarnings}
486
+ />
487
+ </FieldItem>
488
+ );
489
+ };
490
+
491
+ const editorPanel = (
492
+ <div>
493
+ <FieldItemRow justifyItemWidths>
494
+ <FieldItem
495
+ key="distance"
496
+ labelProps={{ text: "Minimal color distance" }}
497
+ messageText="CIE76 formula is used"
498
+ >
499
+ <TextField
500
+ defaultValue={minimalDistance.toString()}
501
+ type="number"
502
+ step={1}
503
+ min={1}
504
+ onValueChange={(value) => {
505
+ if (userInputDelay) {
506
+ clearTimeout(userInputDelay);
507
+ }
508
+ userInputDelay = setTimeout(() => {
509
+ setMinimalDistance(parseInt(value, 10));
510
+ }, userInputDelayTime);
511
+ }}
512
+ rightElement={
513
+ <Switch
514
+ style={{ marginTop: "9px", marginBottom: "7px" }}
515
+ checked={calculateDistanceWarnings}
516
+ innerLabel="off"
517
+ innerLabelChecked="calc"
518
+ onChange={() => setCalculateDistanceWarnings(!calculateDistanceWarnings)}
519
+ />
520
+ }
521
+ />
522
+ </FieldItem>
523
+ <FieldItem
524
+ key="contrast"
525
+ labelProps={{ text: "Minimum contrast", tooltip: "WCAG level AA: 4.5" }}
526
+ messageText="Calculated to lighter/darker colors of text/background"
527
+ >
528
+ <TextField
529
+ defaultValue={minimalContrast.toString()}
530
+ type="number"
531
+ step={0.1}
532
+ min={1}
533
+ onValueChange={(value) => {
534
+ if (userInputDelay) {
535
+ clearTimeout(userInputDelay);
536
+ }
537
+ userInputDelay = setTimeout(() => {
538
+ setMinimalContrast(parseFloat(value));
539
+ }, userInputDelayTime);
540
+ }}
541
+ rightElement={
542
+ <Switch
543
+ style={{ marginTop: "9px", marginBottom: "7px" }}
544
+ checked={calculateContrastWarnings}
545
+ innerLabel="off"
546
+ innerLabelChecked="calc"
547
+ onChange={() => setCalculateContrastWarnings(!calculateContrastWarnings)}
548
+ />
549
+ }
550
+ />
551
+ </FieldItem>
552
+ </FieldItemRow>
553
+ {paletteData &&
554
+ Object.keys(paletteData).map((group, id) => {
555
+ return (
556
+ <Section key={id}>
557
+ <SectionHeader>
558
+ <TitleSubsection>{group}</TitleSubsection>
559
+ </SectionHeader>
560
+ <Spacing size="small" />
561
+ {Object.keys(paletteData[group]).map((tint, id) => {
562
+ return (
563
+ <FlexibleLayoutContainer
564
+ key={id}
565
+ noEqualItemSpace
566
+ gapSize="small"
567
+ style={{
568
+ alignItems: "center",
569
+ marginBottom: "0.5rem",
570
+ }}
571
+ >
572
+ <FlexibleLayoutItem key="tints">
573
+ <FieldItemRow justifyItemWidths key={id}>
574
+ {Object.keys(paletteData[group][tint]).map((weight) => {
575
+ return renderColorInput(
576
+ paletteData,
577
+ `${tint}${weight}`,
578
+ [group, tint, weight],
579
+ (newcolor) => {
580
+ paletteData[group][tint][weight] = Color(newcolor).rgb();
581
+ setPaletteData({ ...paletteData });
582
+ }
583
+ );
584
+ })}
585
+ </FieldItemRow>
586
+ </FlexibleLayoutItem>
587
+ <FlexibleLayoutItem key="actions" growFactor={0}>
588
+ <IconButton
589
+ name={"operation-magic"}
590
+ text="Auto-span tint value from 100 to 900"
591
+ onClick={() => {
592
+ const tintValues = Object.values(
593
+ paletteData[group][tint]
594
+ ) as Color[];
595
+ const tintKeys = Object.keys(paletteData[group][tint]);
596
+ if (tintValues.length > 0) {
597
+ const tint100 = tintValues[0];
598
+ const tint900 = tintValues[tintValues.length - 1];
599
+ tintKeys.forEach((weight, id) => {
600
+ paletteData[group][tint][weight] = Color(tint100).mix(
601
+ Color(tint900),
602
+ id / (tintValues.length - 1)
603
+ );
604
+ // eslint-disable-next-line no-console
605
+ console.log(
606
+ `mix ${Color(tint100).hex()} with ${Color(
607
+ tint900
608
+ ).hex()} by ${id / (tintValues.length - 1)} -> ${
609
+ paletteData[group][tint][weight]
610
+ }`
611
+ );
612
+ });
613
+ }
614
+ setPaletteData({ ...paletteData });
615
+ }}
616
+ />
617
+ </FlexibleLayoutItem>
618
+ </FlexibleLayoutContainer>
619
+ );
620
+ })}
621
+ <Spacing size="large" hasDivider />
622
+ </Section>
623
+ );
624
+ })}
625
+ </div>
626
+ );
627
+
628
+ const currentLayoutColorList = createSimpleColorList(paletteData ?? {}, calculateDistanceWarnings);
629
+
630
+ return (
631
+ <ApplicationContainer>
632
+ <div ref={refConfigurator}>
633
+ <Tabs
634
+ id="colorconfig"
635
+ onChange={() => {}}
636
+ tabs={[
637
+ {
638
+ id: "editor",
639
+ panel: editorPanel,
640
+ title: <TabTitle text="Editor" titleSuffix={<span id="sumWarnings"></span>} />,
641
+ },
642
+ {
643
+ id: "css",
644
+ panel: (
645
+ <div>
646
+ <textarea
647
+ ref={userPaletteRef}
648
+ style={{
649
+ display: "block",
650
+ width: "100%",
651
+ }}
652
+ spellCheck="false"
653
+ rows={20}
654
+ />
655
+ <Spacing size="small" />
656
+ <Button
657
+ text="Load to editor"
658
+ onClick={() => {
659
+ setPaletteData(createPaletteData(userPaletteRef.current?.value));
660
+ }}
661
+ />
662
+ </div>
663
+ ),
664
+ title: "CSS properties",
665
+ },
666
+ {
667
+ id: "scss",
668
+ panel: (
669
+ <div>
670
+ <textarea
671
+ style={{
672
+ display: "block",
673
+ width: "100%",
674
+ }}
675
+ spellCheck="false"
676
+ rows={20}
677
+ readOnly
678
+ value={paletteData && createSassSerialization(paletteData)}
679
+ />
680
+ </div>
681
+ ),
682
+ title: "SCSS configuration",
683
+ },
684
+ {
685
+ id: "hashtest",
686
+ title: "Color hashes",
687
+ panel: (
688
+ <div>
689
+ <FieldSet title="Include groups" boxed>
690
+ <FieldItemRow>
691
+ {["identity", "semantic", "layout", "extra"].map((group) => (
692
+ <FieldItem>
693
+ <Checkbox
694
+ value={group}
695
+ onChange={(event) => {
696
+ updateHashtestGroups(
697
+ event.target.value,
698
+ event.target.checked
699
+ );
700
+ }}
701
+ checked={hashtestGroups.includes(group)}
702
+ >
703
+ {group}
704
+ </Checkbox>
705
+ </FieldItem>
706
+ ))}
707
+ </FieldItemRow>
708
+ </FieldSet>
709
+ <FieldSet title="Include weights" boxed>
710
+ <FieldItemRow>
711
+ {["100", "300", "500", "700", "900"].map((weight) => (
712
+ <FieldItem>
713
+ <Checkbox
714
+ value={weight}
715
+ onChange={(event) => {
716
+ updateHashtestWeights(
717
+ event.target.value,
718
+ event.target.checked
719
+ );
720
+ }}
721
+ checked={hashtestWeights.includes(weight)}
722
+ >
723
+ {weight}
724
+ </Checkbox>
725
+ </FieldItem>
726
+ ))}
727
+ </FieldItemRow>
728
+ </FieldSet>
729
+ {Object.values(currentLayoutColorList).length > 0 && (
730
+ <>
731
+ <Section>
732
+ <SectionHeader>
733
+ <TitleSubsection>Allow text as direct color hash</TitleSubsection>
734
+ </SectionHeader>
735
+ <Spacing size="small" />
736
+ <TagList>
737
+ {"yellow purple magenta pink violet indigo cyan teal lime grey rgb(128,0,128) #00ffff no_valid_color_string"
738
+ .toString()
739
+ .split(" ")
740
+ .map((text, index) => (
741
+ <Badge
742
+ key={index}
743
+ tagProps={{
744
+ large: true,
745
+ backgroundColor: utils.textToColorHash({
746
+ text,
747
+ options: {
748
+ enabledColors: currentLayoutColorList,
749
+ returnValidColorsDirectly: true,
750
+ },
751
+ }) as string,
752
+ }}
753
+ >
754
+ {text}
755
+ </Badge>
756
+ ))}
757
+ </TagList>
758
+ </Section>
759
+ <Spacing />
760
+ <Section>
761
+ <SectionHeader>
762
+ <TitleSubsection>
763
+ Allow text as color but look for nearest palette neighbour
764
+ </TitleSubsection>
765
+ </SectionHeader>
766
+ <Spacing size="small" />
767
+ <TagList>
768
+ {"yellow purple magenta pink violet indigo cyan teal lime amber vermilion grey rgb(128,0,128) #00ffff no_valid_color_string"
769
+ .toString()
770
+ .split(" ")
771
+ .map((text, index) => (
772
+ <Badge
773
+ key={index}
774
+ tagProps={{
775
+ large: true,
776
+ backgroundColor: utils.textToColorHash({
777
+ text,
778
+ options: {
779
+ enabledColors: currentLayoutColorList,
780
+ returnValidColorsDirectly: false,
781
+ },
782
+ }) as string,
783
+ }}
784
+ >
785
+ {text}
786
+ </Badge>
787
+ ))}
788
+ </TagList>
789
+ </Section>
790
+ <Spacing />
791
+ <Section>
792
+ <SectionHeader>
793
+ <TitleSubsection>Directly used color hash</TitleSubsection>
794
+ </SectionHeader>
795
+ <Spacing size="small" />
796
+ <TagList>
797
+ {loremIpsum({
798
+ p: 1,
799
+ avgSentencesPerParagraph: 1,
800
+ avgWordsPerSentence: 40,
801
+ random: false,
802
+ })
803
+ .toString()
804
+ .split(" ")
805
+ .map((text, index) => (
806
+ <Badge
807
+ key={index}
808
+ tagProps={{
809
+ large: true,
810
+ backgroundColor: utils.textToColorHash({
811
+ text,
812
+ options: {
813
+ enabledColors: "all",
814
+ returnValidColorsDirectly: false,
815
+ },
816
+ }) as string,
817
+ }}
818
+ >
819
+ {text}
820
+ </Badge>
821
+ ))}
822
+ </TagList>
823
+ </Section>
824
+ <Spacing />
825
+ <Section>
826
+ <SectionHeader>
827
+ <TitleSubsection>
828
+ Nearest layout palette neighbour of color hash
829
+ </TitleSubsection>
830
+ </SectionHeader>
831
+ <Spacing size="small" />
832
+ <TagList>
833
+ {loremIpsum({
834
+ p: 1,
835
+ avgSentencesPerParagraph: 1,
836
+ avgWordsPerSentence: 40,
837
+ random: false,
838
+ })
839
+ .toString()
840
+ .split(" ")
841
+ .map((text, index) => (
842
+ <Badge
843
+ key={index}
844
+ tagProps={{
845
+ large: true,
846
+ backgroundColor: utils.textToColorHash({
847
+ text,
848
+ options: {
849
+ enabledColors: currentLayoutColorList,
850
+ returnValidColorsDirectly: false,
851
+ },
852
+ }) as string,
853
+ }}
854
+ >
855
+ {text}
856
+ </Badge>
857
+ ))}
858
+ </TagList>
859
+ </Section>
860
+ </>
861
+ )}
862
+ </div>
863
+ ),
864
+ },
865
+ ]}
866
+ />
867
+ </div>
868
+ </ApplicationContainer>
869
+ );
870
+ };
871
+
872
+ export default {
873
+ title: "Components/Application/Colors",
874
+ component: ColorPaletteConfigurator,
875
+ argTypes: {},
876
+ } as Meta<typeof ColorPaletteConfigurator>;
877
+
878
+ const Template: StoryFn<typeof ColorPaletteConfigurator> = (args) => <ColorPaletteConfigurator {...args} />;
879
+
880
+ export const Default = Template.bind({});
881
+
882
+ Default.args = {
883
+ customColorProperties: "",
884
+ enableCalculations: false,
885
+ };