@eccenca/gui-elements 24.4.1-featurechatcomponentscmem6775.3 → 24.4.1-featurepreparefinalnextcmem6943.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 (597) hide show
  1. package/CHANGELOG.md +102 -5
  2. package/README.md +63 -16
  3. package/dist/cjs/cmem/markdown/Markdown.js.map +1 -1
  4. package/dist/cjs/cmem/react-flow/ReactFlow/ReactFlow.js +67 -13
  5. package/dist/cjs/cmem/react-flow/ReactFlow/ReactFlow.js.map +1 -1
  6. package/dist/cjs/cmem/react-flow/ReactFlow/ReactFlowV12.js +45 -0
  7. package/dist/cjs/cmem/react-flow/ReactFlow/ReactFlowV12.js.map +1 -0
  8. package/dist/cjs/cmem/react-flow/ReactFlow/ReactFlowV9.js +30 -0
  9. package/dist/cjs/cmem/react-flow/ReactFlow/ReactFlowV9.js.map +1 -0
  10. package/dist/cjs/cmem/react-flow/StickyNoteModal/StickyNoteModal.js +2 -2
  11. package/dist/cjs/cmem/react-flow/StickyNoteModal/StickyNoteModal.js.map +1 -1
  12. package/dist/cjs/cmem/react-flow/configuration/graph.js +12 -10
  13. package/dist/cjs/cmem/react-flow/configuration/graph.js.map +1 -1
  14. package/dist/cjs/cmem/react-flow/configuration/linking.js +2 -0
  15. package/dist/cjs/cmem/react-flow/configuration/linking.js.map +1 -1
  16. package/dist/cjs/cmem/react-flow/configuration/unspecified.js +2 -1
  17. package/dist/cjs/cmem/react-flow/configuration/unspecified.js.map +1 -1
  18. package/dist/cjs/cmem/react-flow/configuration/workflow.js +2 -0
  19. package/dist/cjs/cmem/react-flow/configuration/workflow.js.map +1 -1
  20. package/dist/cjs/cmem/react-flow/extensions/scrollOnDragHook.js +9 -3
  21. package/dist/cjs/cmem/react-flow/extensions/scrollOnDragHook.js.map +1 -1
  22. package/dist/cjs/cmem/react-flow/index.js +5 -1
  23. package/dist/cjs/cmem/react-flow/index.js.map +1 -1
  24. package/dist/cjs/common/index.js +5 -0
  25. package/dist/cjs/common/index.js.map +1 -1
  26. package/dist/cjs/common/utils/CssCustomProperties.js +9 -3
  27. package/dist/cjs/common/utils/CssCustomProperties.js.map +1 -1
  28. package/dist/cjs/common/utils/colorCalculateDistance.js +27 -0
  29. package/dist/cjs/common/utils/colorCalculateDistance.js.map +1 -0
  30. package/dist/cjs/common/utils/colorHash.js +143 -0
  31. package/dist/cjs/common/utils/colorHash.js.map +1 -0
  32. package/dist/cjs/common/utils/getColorConfiguration.js +37 -4
  33. package/dist/cjs/common/utils/getColorConfiguration.js.map +1 -1
  34. package/dist/cjs/components/AutoSuggestion/AutoSuggestion.js +11 -7
  35. package/dist/cjs/components/AutoSuggestion/AutoSuggestion.js.map +1 -1
  36. package/dist/cjs/components/AutoSuggestion/AutoSuggestionList.js +3 -0
  37. package/dist/cjs/components/AutoSuggestion/AutoSuggestionList.js.map +1 -1
  38. package/dist/cjs/components/AutoSuggestion/ExtendedCodeEditor.js.map +1 -1
  39. package/dist/cjs/components/AutocompleteField/AutoCompleteField.js +16 -6
  40. package/dist/cjs/components/AutocompleteField/AutoCompleteField.js.map +1 -1
  41. package/dist/cjs/components/AutocompleteField/autoCompleteFieldUtils.js.map +1 -1
  42. package/dist/cjs/components/Button/Button.js +11 -26
  43. package/dist/cjs/components/Button/Button.js.map +1 -1
  44. package/dist/cjs/components/Chat/ChatArea.js +1 -1
  45. package/dist/cjs/components/Chat/ChatArea.js.map +1 -1
  46. package/dist/cjs/components/Chat/ChatContent.js +4 -16
  47. package/dist/cjs/components/Chat/ChatContent.js.map +1 -1
  48. package/dist/cjs/components/Chat/ChatContentCollapsed.js +24 -0
  49. package/dist/cjs/components/Chat/ChatContentCollapsed.js.map +1 -0
  50. package/dist/cjs/components/Chat/ChatField.js +10 -4
  51. package/dist/cjs/components/Chat/ChatField.js.map +1 -1
  52. package/dist/cjs/components/Chat/index.js +1 -0
  53. package/dist/cjs/components/Chat/index.js.map +1 -1
  54. package/dist/cjs/components/CodeAutocompleteField/index.js +6 -1
  55. package/dist/cjs/components/CodeAutocompleteField/index.js.map +1 -1
  56. package/dist/cjs/components/Dialog/Modal.js +2 -1
  57. package/dist/cjs/components/Dialog/Modal.js.map +1 -1
  58. package/dist/cjs/components/Dialog/SimpleDialog.js +2 -1
  59. package/dist/cjs/components/Dialog/SimpleDialog.js.map +1 -1
  60. package/dist/cjs/components/Form/FieldItem.js +2 -19
  61. package/dist/cjs/components/Form/FieldItem.js.map +1 -1
  62. package/dist/cjs/components/Form/FieldSet.js +2 -20
  63. package/dist/cjs/components/Form/FieldSet.js.map +1 -1
  64. package/dist/cjs/components/Icon/BaseIcon.js +2 -2
  65. package/dist/cjs/components/Icon/BaseIcon.js.map +1 -1
  66. package/dist/cjs/components/Icon/IconButton.js.map +1 -1
  67. package/dist/cjs/components/Icon/canonicalIconNames.js +2 -0
  68. package/dist/cjs/components/Icon/canonicalIconNames.js.map +1 -1
  69. package/dist/cjs/components/MultiSelect/MultiSelect.js +14 -27
  70. package/dist/cjs/components/MultiSelect/MultiSelect.js.map +1 -1
  71. package/dist/cjs/components/{AutocompleteField → MultiSuggestField}/index.js +1 -7
  72. package/dist/cjs/components/MultiSuggestField/index.js.map +1 -0
  73. package/dist/cjs/components/Notification/Notification.js +3 -23
  74. package/dist/cjs/components/Notification/Notification.js.map +1 -1
  75. package/dist/cjs/components/OverviewItem/OverviewItemList.js +1 -2
  76. package/dist/cjs/components/OverviewItem/OverviewItemList.js.map +1 -1
  77. package/dist/cjs/components/Spinner/Spinner.js +17 -8
  78. package/dist/cjs/components/Spinner/Spinner.js.map +1 -1
  79. package/dist/cjs/components/SuggestField/index.js +5 -2
  80. package/dist/cjs/components/SuggestField/index.js.map +1 -1
  81. package/dist/cjs/components/Table/Table.js.map +1 -1
  82. package/dist/cjs/components/Table/TableContainer.js.map +1 -1
  83. package/dist/cjs/components/Tabs/Tab.js +3 -2
  84. package/dist/cjs/components/Tabs/Tab.js.map +1 -1
  85. package/dist/cjs/components/TextField/SearchField.js.map +1 -1
  86. package/dist/cjs/components/{ContentShrinker/ContentShrinker.js → TextReducer/TextReducer.js} +21 -25
  87. package/dist/cjs/components/TextReducer/TextReducer.js.map +1 -0
  88. package/dist/cjs/components/Tooltip/Tooltip.js +3 -1
  89. package/dist/cjs/components/Tooltip/Tooltip.js.map +1 -1
  90. package/dist/cjs/components/Typography/OverflowText.js.map +1 -1
  91. package/dist/cjs/components/VisualTour/VisualTour.js +200 -0
  92. package/dist/cjs/components/VisualTour/VisualTour.js.map +1 -0
  93. package/dist/cjs/components/index.js +6 -8
  94. package/dist/cjs/components/index.js.map +1 -1
  95. package/dist/cjs/configuration/constants.js +3 -1
  96. package/dist/cjs/configuration/constants.js.map +1 -1
  97. package/dist/cjs/extensions/codemirror/CodeMirror.js +3 -2
  98. package/dist/cjs/extensions/codemirror/CodeMirror.js.map +1 -1
  99. package/dist/cjs/extensions/codemirror/hooks/useCodemirrorModeExtension.hooks.js +3 -0
  100. package/dist/cjs/extensions/codemirror/hooks/useCodemirrorModeExtension.hooks.js.map +1 -1
  101. package/dist/cjs/extensions/react-flow/edges/EdgeBezier.js +50 -0
  102. package/dist/cjs/extensions/react-flow/edges/EdgeBezier.js.map +1 -0
  103. package/dist/cjs/extensions/react-flow/edges/EdgeDefault.js +21 -3
  104. package/dist/cjs/extensions/react-flow/edges/EdgeDefault.js.map +1 -1
  105. package/dist/cjs/extensions/react-flow/edges/EdgeDefaultV12.js +45 -21
  106. package/dist/cjs/extensions/react-flow/edges/EdgeDefaultV12.js.map +1 -1
  107. package/dist/cjs/extensions/react-flow/edges/EdgeDefs.js +3 -0
  108. package/dist/cjs/extensions/react-flow/edges/EdgeDefs.js.map +1 -1
  109. package/dist/cjs/extensions/react-flow/edges/EdgeNew.js +41 -0
  110. package/dist/cjs/extensions/react-flow/edges/EdgeNew.js.map +1 -0
  111. package/dist/cjs/extensions/react-flow/edges/EdgeStep.js +19 -2
  112. package/dist/cjs/extensions/react-flow/edges/EdgeStep.js.map +1 -1
  113. package/dist/cjs/extensions/react-flow/edges/EdgeStraight.js +6 -0
  114. package/dist/cjs/extensions/react-flow/edges/EdgeStraight.js.map +1 -0
  115. package/dist/cjs/extensions/react-flow/edges/utils.js +12 -1
  116. package/dist/cjs/extensions/react-flow/edges/utils.js.map +1 -1
  117. package/dist/cjs/extensions/react-flow/handles/HandleDefault.js +14 -15
  118. package/dist/cjs/extensions/react-flow/handles/HandleDefault.js.map +1 -1
  119. package/dist/cjs/extensions/react-flow/index.js +6 -6
  120. package/dist/cjs/extensions/react-flow/index.js.map +1 -1
  121. package/dist/cjs/extensions/react-flow/markers/MarkerArrowClosedInverse.js +3 -0
  122. package/dist/cjs/extensions/react-flow/markers/MarkerArrowClosedInverse.js.map +1 -1
  123. package/dist/cjs/extensions/react-flow/markers/ReactFlowMarkers.js +17 -2
  124. package/dist/cjs/extensions/react-flow/markers/ReactFlowMarkers.js.map +1 -1
  125. package/dist/cjs/extensions/react-flow/minimap/MiniMap.js +21 -2
  126. package/dist/cjs/extensions/react-flow/minimap/MiniMap.js.map +1 -1
  127. package/dist/cjs/extensions/react-flow/minimap/MiniMapV12.js +51 -0
  128. package/dist/cjs/extensions/react-flow/minimap/MiniMapV12.js.map +1 -0
  129. package/dist/cjs/extensions/react-flow/nodes/NodeContent.js +57 -54
  130. package/dist/cjs/extensions/react-flow/nodes/NodeContent.js.map +1 -1
  131. package/dist/cjs/extensions/react-flow/nodes/NodeDefault.js +2 -2
  132. package/dist/cjs/extensions/react-flow/nodes/NodeDefault.js.map +1 -1
  133. package/dist/cjs/extensions/react-flow/nodes/nodeUtils.js +2 -1
  134. package/dist/cjs/extensions/react-flow/nodes/nodeUtils.js.map +1 -1
  135. package/dist/cjs/extensions/react-flow/versionsupport.js +13 -11
  136. package/dist/cjs/extensions/react-flow/versionsupport.js.map +1 -1
  137. package/dist/cjs/index.js +1 -3
  138. package/dist/cjs/index.js.map +1 -1
  139. package/dist/esm/cmem/markdown/Markdown.js.map +1 -1
  140. package/dist/esm/cmem/react-flow/ReactFlow/ReactFlow.js +67 -13
  141. package/dist/esm/cmem/react-flow/ReactFlow/ReactFlow.js.map +1 -1
  142. package/dist/esm/cmem/react-flow/ReactFlow/ReactFlowV12.js +66 -0
  143. package/dist/esm/cmem/react-flow/ReactFlow/ReactFlowV12.js.map +1 -0
  144. package/dist/esm/{legacy-replacements/Button/DismissiveButton.js → cmem/react-flow/ReactFlow/ReactFlowV9.js} +12 -7
  145. package/dist/esm/cmem/react-flow/ReactFlow/ReactFlowV9.js.map +1 -0
  146. package/dist/esm/cmem/react-flow/StickyNoteModal/StickyNoteModal.js +3 -3
  147. package/dist/esm/cmem/react-flow/StickyNoteModal/StickyNoteModal.js.map +1 -1
  148. package/dist/esm/cmem/react-flow/configuration/graph.js +12 -10
  149. package/dist/esm/cmem/react-flow/configuration/graph.js.map +1 -1
  150. package/dist/esm/cmem/react-flow/configuration/linking.js +2 -0
  151. package/dist/esm/cmem/react-flow/configuration/linking.js.map +1 -1
  152. package/dist/esm/cmem/react-flow/configuration/unspecified.js +2 -1
  153. package/dist/esm/cmem/react-flow/configuration/unspecified.js.map +1 -1
  154. package/dist/esm/cmem/react-flow/configuration/workflow.js +2 -0
  155. package/dist/esm/cmem/react-flow/configuration/workflow.js.map +1 -1
  156. package/dist/esm/cmem/react-flow/extensions/scrollOnDragHook.js +7 -1
  157. package/dist/esm/cmem/react-flow/extensions/scrollOnDragHook.js.map +1 -1
  158. package/dist/esm/cmem/react-flow/index.js +2 -1
  159. package/dist/esm/cmem/react-flow/index.js.map +1 -1
  160. package/dist/esm/common/index.js +5 -0
  161. package/dist/esm/common/index.js.map +1 -1
  162. package/dist/esm/common/utils/CssCustomProperties.js +9 -3
  163. package/dist/esm/common/utils/CssCustomProperties.js.map +1 -1
  164. package/dist/esm/common/utils/colorCalculateDistance.js +21 -0
  165. package/dist/esm/common/utils/colorCalculateDistance.js.map +1 -0
  166. package/dist/esm/common/utils/colorHash.js +140 -0
  167. package/dist/esm/common/utils/colorHash.js.map +1 -0
  168. package/dist/esm/common/utils/getColorConfiguration.js +37 -4
  169. package/dist/esm/common/utils/getColorConfiguration.js.map +1 -1
  170. package/dist/esm/components/AutoSuggestion/AutoSuggestion.js +9 -6
  171. package/dist/esm/components/AutoSuggestion/AutoSuggestion.js.map +1 -1
  172. package/dist/esm/components/AutoSuggestion/AutoSuggestionList.js +3 -0
  173. package/dist/esm/components/AutoSuggestion/AutoSuggestionList.js.map +1 -1
  174. package/dist/esm/components/AutoSuggestion/ExtendedCodeEditor.js.map +1 -1
  175. package/dist/esm/components/AutocompleteField/AutoCompleteField.js +15 -6
  176. package/dist/esm/components/AutocompleteField/AutoCompleteField.js.map +1 -1
  177. package/dist/esm/components/AutocompleteField/autoCompleteFieldUtils.js.map +1 -1
  178. package/dist/esm/components/Button/Button.js +11 -26
  179. package/dist/esm/components/Button/Button.js.map +1 -1
  180. package/dist/esm/components/Chat/ChatArea.js +1 -1
  181. package/dist/esm/components/Chat/ChatArea.js.map +1 -1
  182. package/dist/esm/components/Chat/ChatContent.js +4 -32
  183. package/dist/esm/components/Chat/ChatContent.js.map +1 -1
  184. package/dist/esm/components/Chat/ChatContentCollapsed.js +45 -0
  185. package/dist/esm/components/Chat/ChatContentCollapsed.js.map +1 -0
  186. package/dist/esm/components/Chat/ChatField.js +10 -4
  187. package/dist/esm/components/Chat/ChatField.js.map +1 -1
  188. package/dist/esm/components/Chat/index.js +1 -0
  189. package/dist/esm/components/Chat/index.js.map +1 -1
  190. package/dist/esm/components/CodeAutocompleteField/index.js +4 -1
  191. package/dist/esm/components/CodeAutocompleteField/index.js.map +1 -1
  192. package/dist/esm/components/Dialog/Modal.js +2 -1
  193. package/dist/esm/components/Dialog/Modal.js.map +1 -1
  194. package/dist/esm/components/Dialog/SimpleDialog.js +2 -1
  195. package/dist/esm/components/Dialog/SimpleDialog.js.map +1 -1
  196. package/dist/esm/components/Form/FieldItem.js +2 -19
  197. package/dist/esm/components/Form/FieldItem.js.map +1 -1
  198. package/dist/esm/components/Form/FieldSet.js +2 -20
  199. package/dist/esm/components/Form/FieldSet.js.map +1 -1
  200. package/dist/esm/components/Icon/BaseIcon.js +2 -2
  201. package/dist/esm/components/Icon/BaseIcon.js.map +1 -1
  202. package/dist/esm/components/Icon/IconButton.js.map +1 -1
  203. package/dist/esm/components/Icon/canonicalIconNames.js +2 -0
  204. package/dist/esm/components/Icon/canonicalIconNames.js.map +1 -1
  205. package/dist/esm/components/MultiSelect/MultiSelect.js +13 -27
  206. package/dist/esm/components/MultiSelect/MultiSelect.js.map +1 -1
  207. package/dist/esm/components/MultiSuggestField/index.js +2 -0
  208. package/dist/esm/components/MultiSuggestField/index.js.map +1 -0
  209. package/dist/esm/components/Notification/Notification.js +3 -23
  210. package/dist/esm/components/Notification/Notification.js.map +1 -1
  211. package/dist/esm/components/OverviewItem/OverviewItemList.js +1 -2
  212. package/dist/esm/components/OverviewItem/OverviewItemList.js.map +1 -1
  213. package/dist/esm/components/Spinner/Spinner.js +14 -8
  214. package/dist/esm/components/Spinner/Spinner.js.map +1 -1
  215. package/dist/esm/components/SuggestField/index.js +4 -1
  216. package/dist/esm/components/SuggestField/index.js.map +1 -1
  217. package/dist/esm/components/Table/Table.js.map +1 -1
  218. package/dist/esm/components/Table/TableContainer.js.map +1 -1
  219. package/dist/esm/components/Tabs/Tab.js +3 -2
  220. package/dist/esm/components/Tabs/Tab.js.map +1 -1
  221. package/dist/esm/components/TextField/SearchField.js.map +1 -1
  222. package/dist/esm/components/{ContentShrinker/ContentShrinker.js → TextReducer/TextReducer.js} +20 -23
  223. package/dist/esm/components/TextReducer/TextReducer.js.map +1 -0
  224. package/dist/esm/components/Tooltip/Tooltip.js +3 -1
  225. package/dist/esm/components/Tooltip/Tooltip.js.map +1 -1
  226. package/dist/esm/components/Typography/OverflowText.js.map +1 -1
  227. package/dist/esm/components/VisualTour/VisualTour.js +213 -0
  228. package/dist/esm/components/VisualTour/VisualTour.js.map +1 -0
  229. package/dist/esm/components/index.js +6 -8
  230. package/dist/esm/components/index.js.map +1 -1
  231. package/dist/esm/configuration/constants.js +2 -0
  232. package/dist/esm/configuration/constants.js.map +1 -1
  233. package/dist/esm/extensions/codemirror/CodeMirror.js +5 -4
  234. package/dist/esm/extensions/codemirror/CodeMirror.js.map +1 -1
  235. package/dist/esm/extensions/codemirror/hooks/useCodemirrorModeExtension.hooks.js +3 -0
  236. package/dist/esm/extensions/codemirror/hooks/useCodemirrorModeExtension.hooks.js.map +1 -1
  237. package/dist/esm/extensions/react-flow/edges/EdgeBezier.js +35 -0
  238. package/dist/esm/extensions/react-flow/edges/EdgeBezier.js.map +1 -0
  239. package/dist/esm/extensions/react-flow/edges/EdgeDefault.js +21 -3
  240. package/dist/esm/extensions/react-flow/edges/EdgeDefault.js.map +1 -1
  241. package/dist/esm/extensions/react-flow/edges/EdgeDefaultV12.js +24 -20
  242. package/dist/esm/extensions/react-flow/edges/EdgeDefaultV12.js.map +1 -1
  243. package/dist/esm/extensions/react-flow/edges/EdgeDefs.js +3 -0
  244. package/dist/esm/extensions/react-flow/edges/EdgeDefs.js.map +1 -1
  245. package/dist/esm/extensions/react-flow/edges/EdgeNew.js +45 -0
  246. package/dist/esm/extensions/react-flow/edges/EdgeNew.js.map +1 -0
  247. package/dist/esm/extensions/react-flow/edges/EdgeStep.js +19 -2
  248. package/dist/esm/extensions/react-flow/edges/EdgeStep.js.map +1 -1
  249. package/dist/esm/extensions/react-flow/edges/EdgeStraight.js +2 -0
  250. package/dist/esm/extensions/react-flow/edges/EdgeStraight.js.map +1 -0
  251. package/dist/esm/extensions/react-flow/edges/utils.js +27 -1
  252. package/dist/esm/extensions/react-flow/edges/utils.js.map +1 -1
  253. package/dist/esm/extensions/react-flow/handles/HandleDefault.js +16 -17
  254. package/dist/esm/extensions/react-flow/handles/HandleDefault.js.map +1 -1
  255. package/dist/esm/extensions/react-flow/index.js +6 -3
  256. package/dist/esm/extensions/react-flow/index.js.map +1 -1
  257. package/dist/esm/extensions/react-flow/markers/MarkerArrowClosedInverse.js +3 -0
  258. package/dist/esm/extensions/react-flow/markers/MarkerArrowClosedInverse.js.map +1 -1
  259. package/dist/esm/extensions/react-flow/markers/ReactFlowMarkers.js +17 -2
  260. package/dist/esm/extensions/react-flow/markers/ReactFlowMarkers.js.map +1 -1
  261. package/dist/esm/extensions/react-flow/minimap/MiniMap.js +22 -3
  262. package/dist/esm/extensions/react-flow/minimap/MiniMap.js.map +1 -1
  263. package/dist/esm/extensions/react-flow/minimap/MiniMapV12.js +36 -0
  264. package/dist/esm/extensions/react-flow/minimap/MiniMapV12.js.map +1 -0
  265. package/dist/esm/extensions/react-flow/nodes/NodeContent.js +84 -81
  266. package/dist/esm/extensions/react-flow/nodes/NodeContent.js.map +1 -1
  267. package/dist/esm/extensions/react-flow/nodes/NodeDefault.js +1 -1
  268. package/dist/esm/extensions/react-flow/nodes/NodeDefault.js.map +1 -1
  269. package/dist/esm/extensions/react-flow/nodes/nodeUtils.js +2 -1
  270. package/dist/esm/extensions/react-flow/nodes/nodeUtils.js.map +1 -1
  271. package/dist/esm/extensions/react-flow/versionsupport.js +15 -13
  272. package/dist/esm/extensions/react-flow/versionsupport.js.map +1 -1
  273. package/dist/esm/index.js +1 -2
  274. package/dist/esm/index.js.map +1 -1
  275. package/dist/types/cmem/markdown/Markdown.d.ts +1 -8
  276. package/dist/types/cmem/react-flow/ReactFlow/ReactFlow.d.ts +38 -6
  277. package/dist/types/cmem/react-flow/ReactFlow/ReactFlowV12.d.ts +7 -0
  278. package/dist/types/cmem/react-flow/ReactFlow/ReactFlowV9.d.ts +7 -0
  279. package/dist/types/cmem/react-flow/configuration/graph.d.ts +9 -9
  280. package/dist/types/cmem/react-flow/configuration/linking.d.ts +6 -6
  281. package/dist/types/cmem/react-flow/configuration/unspecified.d.ts +3 -3
  282. package/dist/types/cmem/react-flow/configuration/workflow.d.ts +4 -4
  283. package/dist/types/cmem/react-flow/extensions/scrollOnDragHook.d.ts +19 -16
  284. package/dist/types/cmem/react-flow/index.d.ts +2 -1
  285. package/dist/types/common/index.d.ts +5 -1
  286. package/dist/types/common/utils/CssCustomProperties.d.ts +6 -6
  287. package/dist/types/common/utils/colorCalculateDistance.d.ts +12 -0
  288. package/dist/types/common/utils/colorHash.d.ts +29 -0
  289. package/dist/types/common/utils/getColorConfiguration.d.ts +1 -1
  290. package/dist/types/components/AutoSuggestion/AutoSuggestion.d.ts +7 -17
  291. package/dist/types/components/AutoSuggestion/AutoSuggestionList.d.ts +4 -4
  292. package/dist/types/components/AutoSuggestion/ExtendedCodeEditor.d.ts +0 -1
  293. package/dist/types/components/AutocompleteField/AutoCompleteField.d.ts +17 -10
  294. package/dist/types/components/AutocompleteField/autoCompleteFieldUtils.d.ts +2 -2
  295. package/dist/types/components/AutocompleteField/interfaces.d.ts +2 -4
  296. package/dist/types/components/Button/Button.d.ts +1 -21
  297. package/dist/types/components/Chat/ChatContent.d.ts +6 -18
  298. package/dist/types/components/Chat/ChatContentCollapsed.d.ts +28 -0
  299. package/dist/types/components/Chat/ChatField.d.ts +1 -1
  300. package/dist/types/components/Chat/index.d.ts +1 -0
  301. package/dist/types/components/CodeAutocompleteField/index.d.ts +5 -1
  302. package/dist/types/components/Dialog/Modal.d.ts +2 -1
  303. package/dist/types/components/Dialog/SimpleDialog.d.ts +0 -1
  304. package/dist/types/components/Form/FieldItem.d.ts +1 -25
  305. package/dist/types/components/Form/FieldSet.d.ts +1 -21
  306. package/dist/types/components/Icon/BaseIcon.d.ts +1 -10
  307. package/dist/types/components/Icon/IconButton.d.ts +2 -1
  308. package/dist/types/components/Icon/canonicalIconNames.d.ts +2 -0
  309. package/dist/types/components/MultiSelect/MultiSelect.d.ts +17 -33
  310. package/dist/types/components/MultiSuggestField/index.d.ts +1 -0
  311. package/dist/types/components/Notification/Notification.d.ts +1 -24
  312. package/dist/types/components/OverviewItem/OverviewItemList.d.ts +1 -6
  313. package/dist/types/components/Spinner/Spinner.d.ts +6 -5
  314. package/dist/types/components/SuggestField/index.d.ts +6 -2
  315. package/dist/types/components/Table/Table.d.ts +1 -1
  316. package/dist/types/components/Table/TableContainer.d.ts +2 -2
  317. package/dist/types/components/Tabs/Tab.d.ts +4 -4
  318. package/dist/types/components/TextField/SearchField.d.ts +1 -1
  319. package/dist/types/components/TextReducer/TextReducer.d.ts +28 -0
  320. package/dist/types/components/Tooltip/Tooltip.d.ts +2 -1
  321. package/dist/types/components/Typography/OverflowText.d.ts +0 -5
  322. package/dist/types/components/VisualTour/VisualTour.d.ts +39 -0
  323. package/dist/types/components/index.d.ts +6 -8
  324. package/dist/types/configuration/constants.d.ts +2 -0
  325. package/dist/types/extensions/codemirror/CodeMirror.d.ts +4 -5
  326. package/dist/types/extensions/codemirror/hooks/useCodemirrorModeExtension.hooks.d.ts +2 -0
  327. package/dist/types/extensions/react-flow/edges/EdgeBezier.d.ts +20 -0
  328. package/dist/types/extensions/react-flow/edges/EdgeDefault.d.ts +24 -8
  329. package/dist/types/extensions/react-flow/edges/EdgeDefaultV12.d.ts +16 -27
  330. package/dist/types/extensions/react-flow/edges/EdgeDefs.d.ts +3 -0
  331. package/dist/types/extensions/react-flow/edges/EdgeNew.d.ts +3 -0
  332. package/dist/types/extensions/react-flow/edges/EdgeStep.d.ts +23 -5
  333. package/dist/types/extensions/react-flow/edges/EdgeStraight.d.ts +1 -0
  334. package/dist/types/extensions/react-flow/edges/utils.d.ts +2 -0
  335. package/dist/types/extensions/react-flow/handles/HandleDefault.d.ts +12 -6
  336. package/dist/types/extensions/react-flow/index.d.ts +6 -2
  337. package/dist/types/extensions/react-flow/markers/MarkerArrowClosedInverse.d.ts +3 -0
  338. package/dist/types/extensions/react-flow/markers/ReactFlowMarkers.d.ts +21 -2
  339. package/dist/types/extensions/react-flow/minimap/MiniMap.d.ts +18 -7
  340. package/dist/types/extensions/react-flow/minimap/MiniMapV12.d.ts +10 -0
  341. package/dist/types/extensions/react-flow/nodes/NodeContent.d.ts +15 -12
  342. package/dist/types/extensions/react-flow/nodes/NodeDefault.d.ts +7 -3
  343. package/dist/types/extensions/react-flow/nodes/nodeUtils.d.ts +12 -5
  344. package/dist/types/extensions/react-flow/versionsupport.d.ts +8 -4
  345. package/dist/types/index.d.ts +1 -2
  346. package/package.json +2 -3
  347. package/src/_shame.scss +1 -1
  348. package/src/cmem/markdown/Markdown.stories.tsx +0 -1
  349. package/src/cmem/markdown/Markdown.tsx +4 -12
  350. package/src/cmem/react-flow/ReactFlow/ReactFlow.stories.tsx +472 -366
  351. package/src/cmem/react-flow/ReactFlow/ReactFlow.tsx +176 -72
  352. package/src/cmem/react-flow/ReactFlow/ReactFlowV12.tsx +56 -0
  353. package/src/cmem/react-flow/ReactFlow/ReactFlowV9.tsx +29 -0
  354. package/src/cmem/react-flow/StickyNoteModal/StickyNoteModal.tsx +0 -1
  355. package/src/cmem/react-flow/_canvas.scss +1 -1
  356. package/src/cmem/react-flow/_edges.scss +13 -13
  357. package/src/cmem/react-flow/_handles.scss +18 -18
  358. package/src/cmem/react-flow/_minimap.scss +19 -19
  359. package/src/cmem/react-flow/configuration/_colors-graph.scss +19 -36
  360. package/src/cmem/react-flow/configuration/_colors-linking.scss +14 -26
  361. package/src/cmem/react-flow/configuration/_colors-workflow.scss +15 -27
  362. package/src/cmem/react-flow/configuration/graph.ts +13 -11
  363. package/src/cmem/react-flow/configuration/linking.ts +3 -1
  364. package/src/cmem/react-flow/configuration/unspecified.ts +2 -1
  365. package/src/cmem/react-flow/configuration/workflow.ts +3 -1
  366. package/src/cmem/react-flow/extensions/scrollOnDragHook.ts +19 -21
  367. package/src/cmem/react-flow/index.ts +2 -1
  368. package/src/cmem/react-flow/nodes/_colors.scss +20 -20
  369. package/src/common/index.ts +5 -0
  370. package/src/common/scss/_color-functions.scss +111 -0
  371. package/src/common/utils/CssCustomProperties.ts +22 -15
  372. package/src/common/utils/colorCalculateDistance.ts +28 -0
  373. package/src/common/utils/colorHash.ts +195 -0
  374. package/src/common/utils/getColorConfiguration.ts +45 -7
  375. package/src/components/Accordion/accordion.scss +6 -5
  376. package/src/components/Application/_colors.scss +15 -0
  377. package/src/components/Application/_header.scss +7 -7
  378. package/src/components/Application/_toolbar.scss +5 -5
  379. package/src/components/Application/application.scss +1 -0
  380. package/src/components/Application/stories/Application.stories.tsx +2 -2
  381. package/src/components/Application/stories/ColorPalettes.stories.tsx +885 -0
  382. package/src/components/AutoSuggestion/AutoSuggestion.tsx +13 -28
  383. package/src/components/AutoSuggestion/AutoSuggestionList.tsx +12 -5
  384. package/src/components/AutoSuggestion/ExtendedCodeEditor.tsx +0 -2
  385. package/src/components/AutocompleteField/AutoCompleteField.tsx +19 -13
  386. package/src/components/AutocompleteField/autoCompleteFieldUtils.tsx +2 -2
  387. package/src/components/AutocompleteField/interfaces.ts +1 -5
  388. package/src/components/Button/Button.stories.tsx +0 -4
  389. package/src/components/Button/Button.tsx +10 -57
  390. package/src/components/Button/button.scss +17 -17
  391. package/src/components/Card/card.scss +13 -13
  392. package/src/components/Chat/ChatArea.tsx +2 -2
  393. package/src/components/Chat/ChatContent.tsx +9 -40
  394. package/src/components/Chat/ChatContentCollapsed.tsx +64 -0
  395. package/src/components/Chat/ChatField.tsx +18 -5
  396. package/src/components/Chat/index.ts +1 -0
  397. package/src/components/Chat/stories/ChatArea.stories.tsx +28 -3
  398. package/src/components/Chat/stories/ChatContent.stories.tsx +3 -2
  399. package/src/components/Chat/stories/ChatContentCollapsed.stories.tsx +24 -0
  400. package/src/components/Checkbox/checkbox.scss +2 -2
  401. package/src/components/CodeAutocompleteField/index.ts +8 -1
  402. package/src/components/ContentGroup/_contentgroup.scss +8 -2
  403. package/src/components/Dialog/Modal.tsx +5 -2
  404. package/src/components/Dialog/SimpleDialog.tsx +2 -1
  405. package/src/components/Dialog/dialog.scss +4 -1
  406. package/src/components/Form/FieldItem.tsx +3 -49
  407. package/src/components/Form/FieldSet.tsx +1 -45
  408. package/src/components/Form/form.scss +2 -2
  409. package/src/components/Icon/BaseIcon.tsx +0 -14
  410. package/src/components/Icon/IconButton.tsx +2 -1
  411. package/src/components/Icon/canonicalIconNames.tsx +2 -0
  412. package/src/components/Label/label.scss +1 -1
  413. package/src/components/Link/link.scss +1 -1
  414. package/src/components/Menu/menu.scss +4 -27
  415. package/src/components/MultiSelect/MultiSelect.tsx +23 -60
  416. package/src/components/MultiSuggestField/MultiSuggestField.stories.tsx +1 -1
  417. package/src/components/MultiSuggestField/index.ts +1 -0
  418. package/src/components/Notification/Notification.stories.tsx +4 -4
  419. package/src/components/Notification/Notification.tsx +3 -51
  420. package/src/components/Notification/notification.scss +3 -3
  421. package/src/components/OverviewItem/OverviewItemList.tsx +0 -7
  422. package/src/components/OverviewItem/overviewitem.scss +6 -9
  423. package/src/components/OverviewItem/stories/OverviewItemList.stories.tsx +0 -1
  424. package/src/components/Pagination/pagination.scss +1 -1
  425. package/src/components/Spinner/Spinner.tsx +19 -14
  426. package/src/components/Spinner/spinner.scss +5 -4
  427. package/src/components/Sticky/sticky.scss +7 -7
  428. package/src/components/SuggestField/index.ts +7 -1
  429. package/src/components/Table/Table.tsx +1 -2
  430. package/src/components/Table/TableContainer.tsx +2 -2
  431. package/src/components/Table/table.scss +34 -46
  432. package/src/components/Tabs/Tab.tsx +3 -2
  433. package/src/components/Tabs/stories/Tab.stories.tsx +1 -1
  434. package/src/components/Tabs/stories/TabPanel.stories.tsx +1 -1
  435. package/src/components/Tabs/stories/TabTitle.stories.tsx +1 -1
  436. package/src/components/Tag/tag.scss +20 -20
  437. package/src/components/TextField/SearchField.tsx +1 -6
  438. package/src/components/TextField/stories/SearchField.stories.tsx +0 -4
  439. package/src/components/TextField/textfield.scss +8 -8
  440. package/src/components/TextReducer/TextReducer.stories.tsx +47 -0
  441. package/src/components/TextReducer/TextReducer.tsx +98 -0
  442. package/src/components/Tooltip/Tooltip.test.tsx +63 -0
  443. package/src/components/Tooltip/Tooltip.tsx +7 -2
  444. package/src/components/Tooltip/tooltip.scss +7 -3
  445. package/src/components/Typography/OverflowText.tsx +1 -6
  446. package/src/components/Typography/typography.scss +1 -1
  447. package/src/components/VisualTour/VisualTour.tsx +381 -0
  448. package/src/components/VisualTour/stories/VisualTour.stories.tsx +112 -0
  449. package/src/components/VisualTour/stories/defaultTour.ts +42 -0
  450. package/src/components/VisualTour/visualTour.scss +83 -0
  451. package/src/components/index.scss +1 -0
  452. package/src/components/index.ts +6 -8
  453. package/src/configuration/_libprefix.scss +1 -0
  454. package/src/configuration/_palettes.scss +39 -0
  455. package/src/configuration/_variables.scss +21 -20
  456. package/src/configuration/constants.ts +2 -0
  457. package/src/extensions/codemirror/CodeMirror.tsx +7 -8
  458. package/src/extensions/codemirror/_codemirror.scss +2 -2
  459. package/src/extensions/codemirror/hooks/useCodemirrorModeExtension.hooks.ts +4 -0
  460. package/src/extensions/react-flow/_config.scss +7 -6
  461. package/src/extensions/react-flow/_react-flow.scss +1 -4
  462. package/src/extensions/react-flow/_react-flow_v12.scss +215 -3
  463. package/src/extensions/react-flow/edges/EdgeBezier.tsx +47 -0
  464. package/src/extensions/react-flow/edges/EdgeDefault.tsx +47 -11
  465. package/src/extensions/react-flow/edges/EdgeDefaultV12.tsx +68 -77
  466. package/src/extensions/react-flow/edges/EdgeDefs.tsx +3 -0
  467. package/src/extensions/react-flow/edges/EdgeNew.tsx +52 -0
  468. package/src/extensions/react-flow/edges/EdgeStep.tsx +41 -6
  469. package/src/extensions/react-flow/edges/EdgeStraight.tsx +1 -0
  470. package/src/extensions/react-flow/edges/_edges.scss +10 -4
  471. package/src/extensions/react-flow/edges/stories/EdgeDefault.stories.tsx +1 -1
  472. package/src/extensions/react-flow/edges/stories/EdgeDefaultV12.stories.tsx +22 -24
  473. package/src/extensions/react-flow/edges/utils.ts +19 -1
  474. package/src/extensions/react-flow/handles/HandleDefault.tsx +40 -35
  475. package/src/extensions/react-flow/handles/_handles.scss +2 -2
  476. package/src/extensions/react-flow/handles/stories/HandleDefault.stories.tsx +4 -6
  477. package/src/extensions/react-flow/index.ts +7 -5
  478. package/src/extensions/react-flow/markers/MarkerArrowClosedInverse.tsx +3 -0
  479. package/src/extensions/react-flow/markers/ReactFlowMarkers.tsx +58 -1
  480. package/src/extensions/react-flow/markers/_markers.scss +31 -0
  481. package/src/extensions/react-flow/minimap/MiniMap.stories.tsx +12 -18
  482. package/src/extensions/react-flow/minimap/MiniMap.tsx +44 -9
  483. package/src/extensions/react-flow/minimap/MiniMapV12.tsx +39 -0
  484. package/src/extensions/react-flow/minimap/_minimap.scss +14 -0
  485. package/src/extensions/react-flow/nodes/NodeContent.tsx +135 -113
  486. package/src/extensions/react-flow/nodes/NodeDefault.tsx +9 -5
  487. package/src/extensions/react-flow/nodes/_nodes.scss +29 -23
  488. package/src/extensions/react-flow/nodes/nodeUtils.tsx +15 -6
  489. package/src/extensions/react-flow/nodes/stories/NodeDefault.stories.tsx +3 -5
  490. package/src/extensions/react-flow/versionsupport.ts +17 -15
  491. package/src/extensions/uppy/_fileupload.scss +2 -2
  492. package/src/includes/blueprintjs/_colormap.scss +150 -0
  493. package/src/includes/blueprintjs/_variables.scss +39 -9
  494. package/src/includes/carbon-components/_variables.scss +23 -8
  495. package/src/index.scss +11 -0
  496. package/src/index.ts +1 -2
  497. package/dist/cjs/components/AutoSuggestion/index.js +0 -8
  498. package/dist/cjs/components/AutoSuggestion/index.js.map +0 -1
  499. package/dist/cjs/components/AutocompleteField/index.js.map +0 -1
  500. package/dist/cjs/components/CodeAutocompleteField/CodeAutocompleteField.js +0 -32
  501. package/dist/cjs/components/CodeAutocompleteField/CodeAutocompleteField.js.map +0 -1
  502. package/dist/cjs/components/ContentShrinker/ContentShrinker.js.map +0 -1
  503. package/dist/cjs/components/MultiSuggestField/MultiSuggestField.js +0 -37
  504. package/dist/cjs/components/MultiSuggestField/MultiSuggestField.js.map +0 -1
  505. package/dist/cjs/components/SuggestField/SuggestField.js +0 -38
  506. package/dist/cjs/components/SuggestField/SuggestField.js.map +0 -1
  507. package/dist/cjs/extensions/react-flow/edges/edgeTypes.js +0 -28
  508. package/dist/cjs/extensions/react-flow/edges/edgeTypes.js.map +0 -1
  509. package/dist/cjs/extensions/react-flow/nodes/nodeTypes.js +0 -18
  510. package/dist/cjs/extensions/react-flow/nodes/nodeTypes.js.map +0 -1
  511. package/dist/cjs/legacy-replacements/Button/AffirmativeButton.js +0 -25
  512. package/dist/cjs/legacy-replacements/Button/AffirmativeButton.js.map +0 -1
  513. package/dist/cjs/legacy-replacements/Button/Button.js +0 -65
  514. package/dist/cjs/legacy-replacements/Button/Button.js.map +0 -1
  515. package/dist/cjs/legacy-replacements/Button/DismissiveButton.js +0 -25
  516. package/dist/cjs/legacy-replacements/Button/DismissiveButton.js.map +0 -1
  517. package/dist/cjs/legacy-replacements/Button/DisruptiveButton.js +0 -25
  518. package/dist/cjs/legacy-replacements/Button/DisruptiveButton.js.map +0 -1
  519. package/dist/cjs/legacy-replacements/Checkbox/Checkbox.js +0 -58
  520. package/dist/cjs/legacy-replacements/Checkbox/Checkbox.js.map +0 -1
  521. package/dist/cjs/legacy-replacements/Radio/RadioButton.js +0 -51
  522. package/dist/cjs/legacy-replacements/Radio/RadioButton.js.map +0 -1
  523. package/dist/cjs/legacy-replacements/Tabs/Tabs.js +0 -34
  524. package/dist/cjs/legacy-replacements/Tabs/Tabs.js.map +0 -1
  525. package/dist/cjs/legacy-replacements/TextField/TextField.js +0 -75
  526. package/dist/cjs/legacy-replacements/TextField/TextField.js.map +0 -1
  527. package/dist/cjs/legacy-replacements/index.js +0 -22
  528. package/dist/cjs/legacy-replacements/index.js.map +0 -1
  529. package/dist/esm/components/AutoSuggestion/index.js +0 -4
  530. package/dist/esm/components/AutoSuggestion/index.js.map +0 -1
  531. package/dist/esm/components/AutocompleteField/index.js +0 -7
  532. package/dist/esm/components/AutocompleteField/index.js.map +0 -1
  533. package/dist/esm/components/CodeAutocompleteField/CodeAutocompleteField.js +0 -37
  534. package/dist/esm/components/CodeAutocompleteField/CodeAutocompleteField.js.map +0 -1
  535. package/dist/esm/components/ContentShrinker/ContentShrinker.js.map +0 -1
  536. package/dist/esm/components/MultiSuggestField/MultiSuggestField.js +0 -42
  537. package/dist/esm/components/MultiSuggestField/MultiSuggestField.js.map +0 -1
  538. package/dist/esm/components/SuggestField/SuggestField.js +0 -43
  539. package/dist/esm/components/SuggestField/SuggestField.js.map +0 -1
  540. package/dist/esm/extensions/react-flow/edges/edgeTypes.js +0 -25
  541. package/dist/esm/extensions/react-flow/edges/edgeTypes.js.map +0 -1
  542. package/dist/esm/extensions/react-flow/nodes/nodeTypes.js +0 -15
  543. package/dist/esm/extensions/react-flow/nodes/nodeTypes.js.map +0 -1
  544. package/dist/esm/legacy-replacements/Button/AffirmativeButton.js +0 -30
  545. package/dist/esm/legacy-replacements/Button/AffirmativeButton.js.map +0 -1
  546. package/dist/esm/legacy-replacements/Button/Button.js +0 -69
  547. package/dist/esm/legacy-replacements/Button/Button.js.map +0 -1
  548. package/dist/esm/legacy-replacements/Button/DismissiveButton.js.map +0 -1
  549. package/dist/esm/legacy-replacements/Button/DisruptiveButton.js +0 -30
  550. package/dist/esm/legacy-replacements/Button/DisruptiveButton.js.map +0 -1
  551. package/dist/esm/legacy-replacements/Checkbox/Checkbox.js +0 -63
  552. package/dist/esm/legacy-replacements/Checkbox/Checkbox.js.map +0 -1
  553. package/dist/esm/legacy-replacements/Radio/RadioButton.js +0 -56
  554. package/dist/esm/legacy-replacements/Radio/RadioButton.js.map +0 -1
  555. package/dist/esm/legacy-replacements/Tabs/Tabs.js +0 -39
  556. package/dist/esm/legacy-replacements/Tabs/Tabs.js.map +0 -1
  557. package/dist/esm/legacy-replacements/TextField/TextField.js +0 -82
  558. package/dist/esm/legacy-replacements/TextField/TextField.js.map +0 -1
  559. package/dist/esm/legacy-replacements/index.js +0 -10
  560. package/dist/esm/legacy-replacements/index.js.map +0 -1
  561. package/dist/types/components/AutoSuggestion/index.d.ts +0 -5
  562. package/dist/types/components/AutocompleteField/index.d.ts +0 -5
  563. package/dist/types/components/CodeAutocompleteField/CodeAutocompleteField.d.ts +0 -11
  564. package/dist/types/components/ContentShrinker/ContentShrinker.d.ts +0 -9
  565. package/dist/types/components/MultiSuggestField/MultiSuggestField.d.ts +0 -19
  566. package/dist/types/components/SuggestField/SuggestField.d.ts +0 -21
  567. package/dist/types/extensions/react-flow/edges/edgeTypes.d.ts +0 -16
  568. package/dist/types/extensions/react-flow/nodes/nodeTypes.d.ts +0 -13
  569. package/dist/types/legacy-replacements/Button/AffirmativeButton.d.ts +0 -3
  570. package/dist/types/legacy-replacements/Button/Button.d.ts +0 -6
  571. package/dist/types/legacy-replacements/Button/DismissiveButton.d.ts +0 -3
  572. package/dist/types/legacy-replacements/Button/DisruptiveButton.d.ts +0 -3
  573. package/dist/types/legacy-replacements/Checkbox/Checkbox.d.ts +0 -3
  574. package/dist/types/legacy-replacements/Radio/RadioButton.d.ts +0 -3
  575. package/dist/types/legacy-replacements/Tabs/Tabs.d.ts +0 -24
  576. package/dist/types/legacy-replacements/TextField/TextField.d.ts +0 -3
  577. package/dist/types/legacy-replacements/index.d.ts +0 -10
  578. package/src/components/AutoSuggestion/index.ts +0 -7
  579. package/src/components/AutocompleteField/AutoCompleteField.stories.tsx +0 -14
  580. package/src/components/AutocompleteField/index.ts +0 -6
  581. package/src/components/CodeAutocompleteField/CodeAutocompleteField.tsx +0 -22
  582. package/src/components/ContentShrinker/ContentShrinker.stories.tsx +0 -25
  583. package/src/components/ContentShrinker/ContentShrinker.tsx +0 -59
  584. package/src/components/MultiSuggestField/MultiSuggestField.tsx +0 -35
  585. package/src/components/SuggestField/SuggestField.tsx +0 -33
  586. package/src/extensions/react-flow/edges/edgeTypes.ts +0 -29
  587. package/src/extensions/react-flow/nodes/nodeTypes.ts +0 -15
  588. package/src/legacy-replacements/Button/AffirmativeButton.tsx +0 -12
  589. package/src/legacy-replacements/Button/Button.tsx +0 -80
  590. package/src/legacy-replacements/Button/DismissiveButton.tsx +0 -12
  591. package/src/legacy-replacements/Button/DisruptiveButton.tsx +0 -12
  592. package/src/legacy-replacements/Checkbox/Checkbox.tsx +0 -59
  593. package/src/legacy-replacements/Radio/RadioButton.tsx +0 -37
  594. package/src/legacy-replacements/Tabs/Tabs.stories.tsx +0 -36
  595. package/src/legacy-replacements/Tabs/Tabs.tsx +0 -69
  596. package/src/legacy-replacements/TextField/TextField.tsx +0 -89
  597. 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
+ };