@eccenca/gui-elements 23.0.0-rc.0 → 23.0.0-rc.3-unofficial.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 (339) hide show
  1. package/CHANGELOG.md +44 -0
  2. package/README.md +1 -11
  3. package/dist/cjs/cmem/ActivityControl/ActivityControlWidget.js +4 -10
  4. package/dist/cjs/cmem/ActivityControl/ActivityControlWidget.js.map +1 -1
  5. package/dist/cjs/cmem/index.js +3 -1
  6. package/dist/cjs/cmem/index.js.map +1 -1
  7. package/dist/cjs/cmem/react-flow/ReactFlow/ReactFlow.js +9 -2
  8. package/dist/cjs/cmem/react-flow/ReactFlow/ReactFlow.js.map +1 -1
  9. package/dist/cjs/cmem/react-flow/StickyNoteModal/StickyNoteModal.js +64 -0
  10. package/dist/cjs/cmem/react-flow/StickyNoteModal/StickyNoteModal.js.map +1 -0
  11. package/dist/cjs/cmem/react-flow/configuration/customLabel.js +13 -0
  12. package/dist/cjs/cmem/react-flow/configuration/customLabel.js.map +1 -0
  13. package/dist/cjs/cmem/react-flow/configuration/graph.js.map +1 -1
  14. package/dist/cjs/cmem/react-flow/configuration/inverseEdge.js +13 -0
  15. package/dist/cjs/cmem/react-flow/configuration/inverseEdge.js.map +1 -0
  16. package/dist/cjs/cmem/react-flow/configuration/linking.js +2 -0
  17. package/dist/cjs/cmem/react-flow/configuration/linking.js.map +1 -1
  18. package/dist/cjs/cmem/react-flow/configuration/typing.js +35 -0
  19. package/dist/cjs/cmem/react-flow/configuration/typing.js.map +1 -0
  20. package/dist/cjs/cmem/react-flow/configuration/workflow.js +2 -0
  21. package/dist/cjs/cmem/react-flow/configuration/workflow.js.map +1 -1
  22. package/dist/cjs/cmem/react-flow/nodes/StickyNoteNode.js +42 -0
  23. package/dist/cjs/cmem/react-flow/nodes/StickyNoteNode.js.map +1 -0
  24. package/dist/cjs/common/utils/CssCustomProperties.js +114 -0
  25. package/dist/cjs/common/utils/CssCustomProperties.js.map +1 -0
  26. package/dist/cjs/common/utils/getColorConfiguration.js +21 -0
  27. package/dist/cjs/common/utils/getColorConfiguration.js.map +1 -0
  28. package/dist/cjs/components/AutoSuggestion/AutoSuggestion.js +19 -19
  29. package/dist/cjs/components/AutoSuggestion/AutoSuggestion.js.map +1 -1
  30. package/dist/cjs/components/AutoSuggestion/AutoSuggestionList.js +4 -12
  31. package/dist/cjs/components/AutoSuggestion/AutoSuggestionList.js.map +1 -1
  32. package/dist/cjs/components/AutocompleteField/AutoCompleteField.js +15 -6
  33. package/dist/cjs/components/AutocompleteField/AutoCompleteField.js.map +1 -1
  34. package/dist/cjs/components/Button/Button.js +2 -2
  35. package/dist/cjs/components/Button/Button.js.map +1 -1
  36. package/dist/cjs/components/ContextOverlay/ContextMenu.js +6 -5
  37. package/dist/cjs/components/ContextOverlay/ContextMenu.js.map +1 -1
  38. package/dist/cjs/components/ContextOverlay/ContextOverlay.js +6 -8
  39. package/dist/cjs/components/ContextOverlay/ContextOverlay.js.map +1 -1
  40. package/dist/cjs/components/Dialog/SimpleDialog.js +9 -4
  41. package/dist/cjs/components/Dialog/SimpleDialog.js.map +1 -1
  42. package/dist/cjs/components/Form/FieldItem.js +2 -2
  43. package/dist/cjs/components/Form/FieldItem.js.map +1 -1
  44. package/dist/cjs/components/Icon/Icon.js +2 -2
  45. package/dist/cjs/components/Icon/Icon.js.map +1 -1
  46. package/dist/cjs/components/Icon/IconButton.js +2 -2
  47. package/dist/cjs/components/Icon/IconButton.js.map +1 -1
  48. package/dist/cjs/components/Icon/canonicalIconNames.js +134 -114
  49. package/dist/cjs/components/Icon/canonicalIconNames.js.map +1 -1
  50. package/dist/cjs/components/Iframe/IframeModal.js +2 -6
  51. package/dist/cjs/components/Iframe/IframeModal.js.map +1 -1
  52. package/dist/cjs/components/Label/Label.js +6 -6
  53. package/dist/cjs/components/Label/Label.js.map +1 -1
  54. package/dist/cjs/components/Menu/MenuItem.js +2 -5
  55. package/dist/cjs/components/Menu/MenuItem.js.map +1 -1
  56. package/dist/cjs/components/MultiSelect/MultiSelect.js +8 -10
  57. package/dist/cjs/components/MultiSelect/MultiSelect.js.map +1 -1
  58. package/dist/cjs/components/Select/Select.js +29 -0
  59. package/dist/cjs/components/Select/Select.js.map +1 -0
  60. package/dist/cjs/components/Tabs/TabTitle.js +2 -4
  61. package/dist/cjs/components/Tabs/TabTitle.js.map +1 -1
  62. package/dist/cjs/components/Tag/Tag.js +2 -1
  63. package/dist/cjs/components/Tag/Tag.js.map +1 -1
  64. package/dist/cjs/components/Tooltip/Tooltip.js +7 -4
  65. package/dist/cjs/components/Tooltip/Tooltip.js.map +1 -1
  66. package/dist/cjs/extensions/codemirror/CodeMirror.js +3 -3
  67. package/dist/cjs/extensions/codemirror/CodeMirror.js.map +1 -1
  68. package/dist/cjs/extensions/react-flow/edges/EdgeDefault.js +5 -5
  69. package/dist/cjs/extensions/react-flow/edges/EdgeDefault.js.map +1 -1
  70. package/dist/cjs/extensions/react-flow/edges/EdgeTools.js +2 -1
  71. package/dist/cjs/extensions/react-flow/edges/EdgeTools.js.map +1 -1
  72. package/dist/cjs/extensions/react-flow/handles/HandleContent.js +1 -1
  73. package/dist/cjs/extensions/react-flow/handles/HandleContent.js.map +1 -1
  74. package/dist/cjs/extensions/react-flow/index.js +10 -1
  75. package/dist/cjs/extensions/react-flow/index.js.map +1 -1
  76. package/dist/cjs/extensions/react-flow/markers/MarkerArrowClosedInverse.js +13 -0
  77. package/dist/cjs/extensions/react-flow/markers/MarkerArrowClosedInverse.js.map +1 -0
  78. package/dist/cjs/extensions/react-flow/markers/ReactFlowMarkers.js +15 -0
  79. package/dist/cjs/extensions/react-flow/markers/ReactFlowMarkers.js.map +1 -0
  80. package/dist/cjs/extensions/react-flow/minimap/MiniMap.js +3 -2
  81. package/dist/cjs/extensions/react-flow/minimap/MiniMap.js.map +1 -1
  82. package/dist/cjs/extensions/react-flow/minimap/utils.js +12 -6
  83. package/dist/cjs/extensions/react-flow/minimap/utils.js.map +1 -1
  84. package/dist/cjs/extensions/react-flow/nodes/NodeContent.js +74 -25
  85. package/dist/cjs/extensions/react-flow/nodes/NodeContent.js.map +1 -1
  86. package/dist/cjs/extensions/react-flow/nodes/NodeContentExtension.js +10 -6
  87. package/dist/cjs/extensions/react-flow/nodes/NodeContentExtension.js.map +1 -1
  88. package/dist/cjs/extensions/react-flow/nodes/NodeTools.js +1 -3
  89. package/dist/cjs/extensions/react-flow/nodes/NodeTools.js.map +1 -1
  90. package/dist/cjs/extensions/react-flow/nodes/nodeUtils.js +49 -0
  91. package/dist/cjs/extensions/react-flow/nodes/nodeUtils.js.map +1 -0
  92. package/dist/cjs/index.js +3 -2
  93. package/dist/cjs/index.js.map +1 -1
  94. package/dist/cjs/legacy-replacements/Tabs/Tabs.js +1 -1
  95. package/dist/cjs/legacy-replacements/Tabs/Tabs.js.map +1 -1
  96. package/dist/cjs/legacy-replacements/TextField/TextField.js +5 -8
  97. package/dist/cjs/legacy-replacements/TextField/TextField.js.map +1 -1
  98. package/dist/esm/cmem/ActivityControl/ActivityControlWidget.js +4 -10
  99. package/dist/esm/cmem/ActivityControl/ActivityControlWidget.js.map +1 -1
  100. package/dist/esm/cmem/index.js +1 -0
  101. package/dist/esm/cmem/index.js.map +1 -1
  102. package/dist/esm/cmem/react-flow/ReactFlow/ReactFlow.js +9 -2
  103. package/dist/esm/cmem/react-flow/ReactFlow/ReactFlow.js.map +1 -1
  104. package/dist/esm/cmem/react-flow/StickyNoteModal/StickyNoteModal.js +89 -0
  105. package/dist/esm/cmem/react-flow/StickyNoteModal/StickyNoteModal.js.map +1 -0
  106. package/dist/esm/cmem/react-flow/configuration/customLabel.js +10 -0
  107. package/dist/esm/cmem/react-flow/configuration/customLabel.js.map +1 -0
  108. package/dist/esm/cmem/react-flow/configuration/graph.js +1 -1
  109. package/dist/esm/cmem/react-flow/configuration/graph.js.map +1 -1
  110. package/dist/esm/cmem/react-flow/configuration/inverseEdge.js +10 -0
  111. package/dist/esm/cmem/react-flow/configuration/inverseEdge.js.map +1 -0
  112. package/dist/esm/cmem/react-flow/configuration/linking.js +3 -1
  113. package/dist/esm/cmem/react-flow/configuration/linking.js.map +1 -1
  114. package/dist/esm/cmem/react-flow/configuration/typing.js +32 -0
  115. package/dist/esm/cmem/react-flow/configuration/typing.js.map +1 -0
  116. package/dist/esm/cmem/react-flow/configuration/workflow.js +3 -1
  117. package/dist/esm/cmem/react-flow/configuration/workflow.js.map +1 -1
  118. package/dist/esm/cmem/react-flow/nodes/StickyNoteNode.js +31 -0
  119. package/dist/esm/cmem/react-flow/nodes/StickyNoteNode.js.map +1 -0
  120. package/dist/esm/common/utils/CssCustomProperties.js +154 -0
  121. package/dist/esm/common/utils/CssCustomProperties.js.map +1 -0
  122. package/dist/esm/common/utils/getColorConfiguration.js +16 -0
  123. package/dist/esm/common/utils/getColorConfiguration.js.map +1 -0
  124. package/dist/esm/components/AutoSuggestion/AutoSuggestion.js +23 -21
  125. package/dist/esm/components/AutoSuggestion/AutoSuggestion.js.map +1 -1
  126. package/dist/esm/components/AutoSuggestion/AutoSuggestionList.js +4 -12
  127. package/dist/esm/components/AutoSuggestion/AutoSuggestionList.js.map +1 -1
  128. package/dist/esm/components/AutocompleteField/AutoCompleteField.js +32 -23
  129. package/dist/esm/components/AutocompleteField/AutoCompleteField.js.map +1 -1
  130. package/dist/esm/components/Button/Button.js +2 -2
  131. package/dist/esm/components/Button/Button.js.map +1 -1
  132. package/dist/esm/components/ContextOverlay/ContextMenu.js +6 -5
  133. package/dist/esm/components/ContextOverlay/ContextMenu.js.map +1 -1
  134. package/dist/esm/components/ContextOverlay/ContextOverlay.js +6 -8
  135. package/dist/esm/components/ContextOverlay/ContextOverlay.js.map +1 -1
  136. package/dist/esm/components/Dialog/SimpleDialog.js +25 -4
  137. package/dist/esm/components/Dialog/SimpleDialog.js.map +1 -1
  138. package/dist/esm/components/Form/FieldItem.js +2 -2
  139. package/dist/esm/components/Form/FieldItem.js.map +1 -1
  140. package/dist/esm/components/Icon/Icon.js +2 -2
  141. package/dist/esm/components/Icon/Icon.js.map +1 -1
  142. package/dist/esm/components/Icon/IconButton.js +2 -2
  143. package/dist/esm/components/Icon/IconButton.js.map +1 -1
  144. package/dist/esm/components/Icon/canonicalIconNames.js +134 -114
  145. package/dist/esm/components/Icon/canonicalIconNames.js.map +1 -1
  146. package/dist/esm/components/Iframe/IframeModal.js +2 -22
  147. package/dist/esm/components/Iframe/IframeModal.js.map +1 -1
  148. package/dist/esm/components/Label/Label.js +6 -6
  149. package/dist/esm/components/Label/Label.js.map +1 -1
  150. package/dist/esm/components/Menu/MenuItem.js +2 -5
  151. package/dist/esm/components/Menu/MenuItem.js.map +1 -1
  152. package/dist/esm/components/MultiSelect/MultiSelect.js +5 -7
  153. package/dist/esm/components/MultiSelect/MultiSelect.js.map +1 -1
  154. package/dist/esm/components/Select/Select.js +35 -0
  155. package/dist/esm/components/Select/Select.js.map +1 -0
  156. package/dist/esm/components/Tabs/TabTitle.js +2 -4
  157. package/dist/esm/components/Tabs/TabTitle.js.map +1 -1
  158. package/dist/esm/components/Tag/Tag.js +2 -1
  159. package/dist/esm/components/Tag/Tag.js.map +1 -1
  160. package/dist/esm/components/Tooltip/Tooltip.js +7 -4
  161. package/dist/esm/components/Tooltip/Tooltip.js.map +1 -1
  162. package/dist/esm/extensions/codemirror/CodeMirror.js +3 -3
  163. package/dist/esm/extensions/codemirror/CodeMirror.js.map +1 -1
  164. package/dist/esm/extensions/react-flow/edges/EdgeDefault.js +6 -6
  165. package/dist/esm/extensions/react-flow/edges/EdgeDefault.js.map +1 -1
  166. package/dist/esm/extensions/react-flow/edges/EdgeTools.js +2 -1
  167. package/dist/esm/extensions/react-flow/edges/EdgeTools.js.map +1 -1
  168. package/dist/esm/extensions/react-flow/handles/HandleContent.js +1 -1
  169. package/dist/esm/extensions/react-flow/handles/HandleContent.js.map +1 -1
  170. package/dist/esm/extensions/react-flow/index.js +3 -0
  171. package/dist/esm/extensions/react-flow/index.js.map +1 -1
  172. package/dist/esm/extensions/react-flow/markers/MarkerArrowClosedInverse.js +6 -0
  173. package/dist/esm/extensions/react-flow/markers/MarkerArrowClosedInverse.js.map +1 -0
  174. package/dist/esm/extensions/react-flow/markers/ReactFlowMarkers.js +8 -0
  175. package/dist/esm/extensions/react-flow/markers/ReactFlowMarkers.js.map +1 -0
  176. package/dist/esm/extensions/react-flow/minimap/MiniMap.js +3 -2
  177. package/dist/esm/extensions/react-flow/minimap/MiniMap.js.map +1 -1
  178. package/dist/esm/extensions/react-flow/minimap/utils.js +10 -5
  179. package/dist/esm/extensions/react-flow/minimap/utils.js.map +1 -1
  180. package/dist/esm/extensions/react-flow/nodes/NodeContent.js +76 -27
  181. package/dist/esm/extensions/react-flow/nodes/NodeContent.js.map +1 -1
  182. package/dist/esm/extensions/react-flow/nodes/NodeContentExtension.js +26 -6
  183. package/dist/esm/extensions/react-flow/nodes/NodeContentExtension.js.map +1 -1
  184. package/dist/esm/extensions/react-flow/nodes/NodeTools.js +1 -3
  185. package/dist/esm/extensions/react-flow/nodes/NodeTools.js.map +1 -1
  186. package/dist/esm/extensions/react-flow/nodes/nodeUtils.js +44 -0
  187. package/dist/esm/extensions/react-flow/nodes/nodeUtils.js.map +1 -0
  188. package/dist/esm/index.js +3 -2
  189. package/dist/esm/index.js.map +1 -1
  190. package/dist/esm/legacy-replacements/Tabs/Tabs.js +1 -1
  191. package/dist/esm/legacy-replacements/Tabs/Tabs.js.map +1 -1
  192. package/dist/esm/legacy-replacements/TextField/TextField.js +2 -5
  193. package/dist/esm/legacy-replacements/TextField/TextField.js.map +1 -1
  194. package/dist/types/cmem/index.d.ts +1 -0
  195. package/dist/types/cmem/react-flow/ReactFlow/ReactFlow.d.ts +2 -3
  196. package/dist/types/cmem/react-flow/StickyNoteModal/StickyNoteModal.d.ts +26 -0
  197. package/dist/types/cmem/react-flow/configuration/customLabel.d.ts +8 -0
  198. package/dist/types/cmem/react-flow/configuration/graph.d.ts +3 -8
  199. package/dist/types/cmem/react-flow/configuration/inverseEdge.d.ts +8 -0
  200. package/dist/types/cmem/react-flow/configuration/linking.d.ts +3 -9
  201. package/dist/types/cmem/react-flow/configuration/typing.d.ts +28 -0
  202. package/dist/types/cmem/react-flow/configuration/workflow.d.ts +3 -9
  203. package/dist/types/cmem/react-flow/nodes/StickyNoteNode.d.ts +3 -0
  204. package/dist/types/common/utils/CssCustomProperties.d.ts +28 -0
  205. package/dist/types/common/utils/getColorConfiguration.d.ts +8 -0
  206. package/dist/types/components/AutocompleteField/AutoCompleteField.d.ts +7 -4
  207. package/dist/types/components/Button/Button.d.ts +2 -2
  208. package/dist/types/components/ContextOverlay/ContextMenu.d.ts +37 -3
  209. package/dist/types/components/ContextOverlay/ContextOverlay.d.ts +12 -1
  210. package/dist/types/components/Dialog/SimpleDialog.d.ts +5 -1
  211. package/dist/types/components/Form/FieldItem.d.ts +3 -2
  212. package/dist/types/components/Icon/Icon.d.ts +32 -7
  213. package/dist/types/components/Icon/IconButton.d.ts +21 -7
  214. package/dist/types/components/Icon/canonicalIconNames.d.ts +1 -1
  215. package/dist/types/components/Label/Label.d.ts +30 -2
  216. package/dist/types/components/Menu/MenuItem.d.ts +3 -7
  217. package/dist/types/components/MultiSelect/MultiSelect.d.ts +13 -9
  218. package/dist/types/components/Select/Select.d.ts +22 -0
  219. package/dist/types/components/Tag/Tag.d.ts +5 -1
  220. package/dist/types/components/Tooltip/Tooltip.d.ts +13 -11
  221. package/dist/types/components/interfaces.d.ts +1 -0
  222. package/dist/types/extensions/codemirror/CodeMirror.d.ts +5 -1
  223. package/dist/types/extensions/react-flow/edges/EdgeDefault.d.ts +3 -0
  224. package/dist/types/extensions/react-flow/edges/EdgeTools.d.ts +2 -2
  225. package/dist/types/extensions/react-flow/index.d.ts +3 -0
  226. package/dist/types/extensions/react-flow/markers/MarkerArrowClosedInverse.d.ts +2 -0
  227. package/dist/types/extensions/react-flow/markers/ReactFlowMarkers.d.ts +2 -0
  228. package/dist/types/extensions/react-flow/minimap/MiniMap.d.ts +1 -1
  229. package/dist/types/extensions/react-flow/minimap/utils.d.ts +1 -0
  230. package/dist/types/extensions/react-flow/nodes/NodeContent.d.ts +17 -1
  231. package/dist/types/extensions/react-flow/nodes/NodeContentExtension.d.ts +2 -2
  232. package/dist/types/extensions/react-flow/nodes/NodeTools.d.ts +2 -2
  233. package/dist/types/extensions/react-flow/nodes/nodeUtils.d.ts +14 -0
  234. package/dist/types/index.d.ts +3 -2
  235. package/dist/types/legacy-replacements/Tabs/Tabs.d.ts +1 -1
  236. package/package.json +19 -11
  237. package/scripts/compile-sass.ts +9 -0
  238. package/scripts/fix-cjs-dist +5 -0
  239. package/scripts/fix-esm-dist +6 -0
  240. package/scripts/sassConfig.js +13 -0
  241. package/src/_shame.scss +17 -0
  242. package/src/cmem/ActivityControl/ActivityControlWidget.stories.tsx +2 -2
  243. package/src/cmem/ActivityControl/ActivityControlWidget.tsx +5 -10
  244. package/src/cmem/index.ts +1 -0
  245. package/src/cmem/markdown/markdown.scss +1 -1
  246. package/src/cmem/react-flow/ReactFlow/ReactFlow.stories.tsx +160 -51
  247. package/src/cmem/react-flow/ReactFlow/ReactFlow.tsx +12 -3
  248. package/src/cmem/react-flow/StickyNoteModal/StickyNoteModal.tsx +134 -0
  249. package/src/cmem/react-flow/_index.scss +1 -1
  250. package/src/cmem/react-flow/_minimap.scss +6 -2
  251. package/src/cmem/react-flow/configuration/customLabel.ts +11 -0
  252. package/src/cmem/react-flow/configuration/graph.ts +3 -5
  253. package/src/cmem/react-flow/configuration/inverseEdge.ts +11 -0
  254. package/src/cmem/react-flow/configuration/linking.ts +5 -6
  255. package/src/cmem/react-flow/configuration/typing.ts +30 -0
  256. package/src/cmem/react-flow/configuration/workflow.ts +5 -5
  257. package/src/cmem/react-flow/nodes/StickyNoteNode.tsx +13 -0
  258. package/src/cmem/react-flow/{_nodes.scss → nodes/_colors.scss} +0 -0
  259. package/src/cmem/react-flow/nodes/_index.scss +2 -0
  260. package/src/cmem/react-flow/nodes/_stickynote.scss +72 -0
  261. package/src/common/utils/CssCustomProperties.ts +25 -13
  262. package/src/common/utils/getColorConfiguration.ts +1 -2
  263. package/src/components/Accordion/accordion.scss +11 -11
  264. package/src/components/Application/_header.scss +4 -3
  265. package/src/components/AutoSuggestion/AutoSuggestion.tsx +23 -23
  266. package/src/components/AutoSuggestion/AutoSuggestionList.tsx +15 -17
  267. package/src/components/AutoSuggestion/tests/AutoSuggestionList.test.tsx +1 -1
  268. package/src/components/AutocompleteField/AutoCompleteField.tsx +44 -19
  269. package/src/components/AutocompleteField/autocompletefield.scss +5 -3
  270. package/src/components/AutocompleteField/stories/AutoCompleteField.stories.tsx +75 -0
  271. package/src/components/Button/Button.tsx +3 -3
  272. package/src/components/Button/button.scss +43 -6
  273. package/src/components/Card/card.scss +5 -5
  274. package/src/components/ContextOverlay/ContextMenu.stories.tsx +33 -0
  275. package/src/components/ContextOverlay/ContextMenu.tsx +46 -8
  276. package/src/components/ContextOverlay/ContextOverlay.stories.tsx +148 -0
  277. package/src/components/ContextOverlay/ContextOverlay.tsx +16 -9
  278. package/src/components/ContextOverlay/contextoverlay.scss +17 -5
  279. package/src/components/Dialog/SimpleDialog.tsx +25 -4
  280. package/src/components/Dialog/dialog.scss +10 -8
  281. package/src/components/Form/FieldItem.tsx +4 -4
  282. package/src/components/Form/form.scss +6 -6
  283. package/src/components/Icon/Icon.tsx +33 -18
  284. package/src/components/Icon/IconButton.tsx +24 -19
  285. package/src/components/Icon/canonicalIconNames.tsx +146 -121
  286. package/src/components/Icon/icon.scss +1 -1
  287. package/src/components/Icon/stories/Icon.stories.tsx +52 -0
  288. package/src/components/Icon/stories/IconButton.stories.tsx +27 -0
  289. package/src/components/Iframe/IframeModal.tsx +6 -17
  290. package/src/components/Label/Label.stories.tsx +27 -0
  291. package/src/components/Label/Label.tsx +47 -15
  292. package/src/components/Label/label.scss +2 -2
  293. package/src/components/Menu/MenuItem.tsx +9 -16
  294. package/src/components/Menu/menu.scss +10 -9
  295. package/src/components/MultiSelect/MultiSelect.tsx +30 -18
  296. package/src/components/Notification/notification.scss +3 -1
  297. package/src/components/OverviewItem/overviewitem.scss +8 -8
  298. package/src/components/PropertyValuePair/propertyvalue.scss +9 -7
  299. package/src/components/Select/Select.stories.tsx +35 -0
  300. package/src/components/Select/Select.tsx +38 -0
  301. package/src/components/Select/_select.scss +8 -0
  302. package/src/components/Separation/separation.scss +6 -6
  303. package/src/components/SimpleTable/simpletable.scss +5 -5
  304. package/src/components/Tabs/TabTitle.tsx +2 -4
  305. package/src/components/Tabs/tabs.scss +3 -3
  306. package/src/components/Tag/Tag.tsx +6 -0
  307. package/src/components/Tag/tag.scss +62 -33
  308. package/src/components/TextField/textfield.scss +6 -4
  309. package/src/components/Tooltip/Tooltip.stories.tsx +36 -0
  310. package/src/components/Tooltip/Tooltip.tsx +23 -18
  311. package/src/components/Tooltip/tooltip.scss +7 -7
  312. package/src/components/Typography/typography.scss +5 -4
  313. package/src/components/interfaces.ts +3 -1
  314. package/src/configuration/_variables.scss +11 -9
  315. package/src/extensions/codemirror/CodeMirror.tsx +9 -4
  316. package/src/extensions/react-flow/edges/EdgeDefault.tsx +7 -2
  317. package/src/extensions/react-flow/edges/EdgeTools.tsx +6 -4
  318. package/src/extensions/react-flow/edges/_edges.scss +3 -3
  319. package/src/extensions/react-flow/handles/HandleContent.tsx +0 -1
  320. package/src/extensions/react-flow/handles/_handles.scss +13 -13
  321. package/src/extensions/react-flow/index.ts +3 -0
  322. package/src/extensions/react-flow/markers/MarkerArrowClosedInverse.tsx +25 -0
  323. package/src/extensions/react-flow/markers/ReactFlowMarkers.tsx +13 -0
  324. package/src/extensions/react-flow/minimap/MiniMap.tsx +16 -1
  325. package/src/extensions/react-flow/minimap/_minimap.scss +6 -6
  326. package/src/extensions/react-flow/minimap/utils.ts +8 -3
  327. package/src/extensions/react-flow/nodes/NodeContent.tsx +253 -166
  328. package/src/extensions/react-flow/nodes/NodeContentExtension.tsx +17 -11
  329. package/src/extensions/react-flow/nodes/NodeTools.tsx +10 -7
  330. package/src/extensions/react-flow/nodes/_nodes.scss +44 -12
  331. package/src/extensions/react-flow/nodes/nodeUtils.tsx +53 -0
  332. package/src/extensions/react-flow/nodes/stories/NodeContent.stories.tsx +41 -12
  333. package/src/extensions/react-flow/nodes/stories/NodeContentExtension.stories.tsx +39 -47
  334. package/src/includes/blueprintjs/_variables.scss +4 -2
  335. package/src/includes/carbon-components/_variables.scss +7 -5
  336. package/src/index.scss +9 -5
  337. package/src/index.ts +4 -2
  338. package/src/legacy-replacements/Tabs/Tabs.tsx +3 -1
  339. package/src/legacy-replacements/TextField/TextField.tsx +7 -5
@@ -27,7 +27,7 @@ svg.#{$eccgui}-icon {
27
27
 
28
28
  .#{$ns}-button .#{$eccgui}-icon:first-child:last-child,
29
29
  .#{$ns}-button .#{$ns}-spinner + .#{$eccgui}-icon:last-child {
30
- margin: 0 (-($pt-button-height - $pt-icon-size-standard) / 2);
30
+ margin: 0 (-($pt-button-height - $pt-icon-size-standard) * 0.5);
31
31
  }
32
32
 
33
33
  .#{$eccgui}-menu__item {
@@ -0,0 +1,52 @@
1
+ import React from "react";
2
+ import { ComponentStory, ComponentMeta } from "@storybook/react";
3
+
4
+ import {
5
+ Icon,
6
+ Button,
7
+ } from "../../../index";
8
+ import canonicalIcons, { ValidIconName } from "./../canonicalIconNames";
9
+ import { Definitions } from "../../../common/Intent";
10
+
11
+ export default {
12
+ title: "Components/Icon",
13
+ component: Icon,
14
+ argTypes: {
15
+ name: {
16
+ control: "select",
17
+ options: [...(Object.keys(canonicalIcons))],
18
+ },
19
+ intent: {
20
+ control: "select",
21
+ options: {...Definitions},
22
+ },
23
+ },
24
+ } as ComponentMeta<typeof Icon>;
25
+
26
+ const Template: ComponentStory<typeof Icon> = (args) => (
27
+ <Icon {...args} tooltipText={args.name?.toString()}/>
28
+ );
29
+
30
+ export const Default = Template.bind({});
31
+ Default.args = {
32
+ name: "undefined"
33
+ }
34
+
35
+ export const IconsOverview = () => {
36
+ return (
37
+ <>
38
+ {
39
+ Object.keys(canonicalIcons).map((iconName) => {
40
+ return (
41
+ <Button
42
+ icon={iconName as ValidIconName}
43
+ outlined
44
+ large
45
+ tooltip={iconName}
46
+ />
47
+ )
48
+ })
49
+ }
50
+ </>
51
+ );
52
+ }
@@ -0,0 +1,27 @@
1
+ import React from "react";
2
+ import { ComponentStory, ComponentMeta } from "@storybook/react";
3
+
4
+ import {
5
+ IconButton,
6
+ } from "../../../index";
7
+ import canonicalIcons from "./../canonicalIconNames";
8
+
9
+ export default {
10
+ title: "Components/IconButton",
11
+ component: IconButton,
12
+ argTypes: {
13
+ name: {
14
+ control: "select",
15
+ options: [...(Object.keys(canonicalIcons))],
16
+ },
17
+ },
18
+ } as ComponentMeta<typeof IconButton>;
19
+
20
+ const Template: ComponentStory<typeof IconButton> = (args) => (
21
+ <IconButton {...args} text={args.name?.toString()}/>
22
+ );
23
+
24
+ export const Default = Template.bind({});
25
+ Default.args = {
26
+ name: "item-moremenu"
27
+ }
@@ -1,8 +1,7 @@
1
1
  import React from "react";
2
- import SimpleDialog, { SimpleDialogProps } from "../Dialog/SimpleDialog";
3
- import IconButton from "../Icon/IconButton";
4
- import { CLASSPREFIX as eccgui } from "../../configuration/constants";
5
- import { Iframe, IframeProps } from "./Iframe";
2
+ import SimpleDialog, {SimpleDialogProps} from "../Dialog/SimpleDialog";
3
+ import {CLASSPREFIX as eccgui} from "../../configuration/constants";
4
+ import {Iframe, IframeProps} from "./Iframe";
6
5
 
7
6
  export interface IframeModalProps extends Omit<SimpleDialogProps, "children"> {
8
7
  // The title of the dialog
@@ -29,7 +28,6 @@ export function IframeModal({
29
28
  size = "large",
30
29
  ...otherSimpleDialogProps
31
30
  }: IframeModalProps) {
32
- const [displayFullscreen, setDisplayFullscreen] = React.useState<boolean>(startFullscreen);
33
31
  const {
34
32
  useViewportHeight,
35
33
  useAvailableSpace,
@@ -44,22 +42,13 @@ export function IframeModal({
44
42
  <SimpleDialog
45
43
  hasBorder
46
44
  title={title}
47
- headerOptions={(
48
- <>
49
- <IconButton
50
- name={displayFullscreen ? "toggler-minimize" : "toggler-maximize"}
51
- onClick={()=>setDisplayFullscreen(!displayFullscreen)}
52
- />
53
- <>
54
- {headerOptions}
55
- </>
56
- </>
57
- )}
45
+ headerOptions={headerOptions}
58
46
  className={
59
47
  `${eccgui}-iframemodal` +
60
48
  (className ? ` ${className}` : "")
61
49
  }
62
- size={displayFullscreen ? "fullscreen" : size}
50
+ showFullScreenToggler={true}
51
+ startInFullScreenMode={startFullscreen}
63
52
  {...otherSimpleDialogProps}
64
53
  >
65
54
  <Iframe
@@ -0,0 +1,27 @@
1
+ import React from "react";
2
+ import { ComponentStory, ComponentMeta } from "@storybook/react";
3
+ import { loremIpsum } from "react-lorem-ipsum";
4
+
5
+ import {
6
+ Label
7
+ } from "../../index";
8
+
9
+ export default {
10
+ title: "Components/Label",
11
+ component: Label,
12
+ argTypes: {
13
+ },
14
+ } as ComponentMeta<typeof Label>;
15
+
16
+ const Template: ComponentStory<typeof Label> = (args) => (
17
+ <Label {...args} />
18
+ );
19
+
20
+ export const Default = Template.bind({});
21
+ Default.args = {
22
+ text: "Label text",
23
+ info: loremIpsum({ p: 1, avgSentencesPerParagraph: 1, avgWordsPerSentence: 4, random: false }).toString(),
24
+ tooltip: loremIpsum({ p: 1, avgSentencesPerParagraph: 2, startWithLoremIpsum: false, random: false }).toString(),
25
+ disabled: false,
26
+ htmlFor: "inputid",
27
+ }
@@ -1,8 +1,36 @@
1
1
  import React from "react";
2
2
  import { CLASSPREFIX as eccgui } from "../../configuration/constants";
3
- import Tooltip from "../Tooltip/Tooltip";
3
+ import Tooltip, { TooltipProps } from "../Tooltip/Tooltip";
4
4
  import Icon from "../Icon/Icon";
5
5
 
6
+ export interface LabelProps extends React.LabelHTMLAttributes<HTMLLabelElement> {
7
+ /**
8
+ * Label text.
9
+ */
10
+ text?: string | JSX.Element;
11
+ /**
12
+ * Short info about label semantic, it is displayed in parentesis after the label text.
13
+ */
14
+ info?: string | JSX.Element;
15
+ /**
16
+ * Additional tooltip, attached to an info icon that is displayed after the info.
17
+ */
18
+ tooltip?: string | JSX.Element;
19
+ /**
20
+ * Additonal tooltip properties, e.g. `hoverOpenDelay`.
21
+ */
22
+ tooltipProps?: Partial<Omit<TooltipProps, "content" | "children" | "disabled">>;
23
+ /**
24
+ * Set the name of an HTML element if the display should be used for something else that a `label` element.
25
+ */
26
+ isLayoutForElement?: string;
27
+ /**
28
+ * Label is displayed inactive.
29
+ * If there is no `isLayoutForElement` set then a `span` is used.
30
+ */
31
+ disabled?: boolean;
32
+ }
33
+
6
34
  function Label({
7
35
  children,
8
36
  className = "",
@@ -10,34 +38,38 @@ function Label({
10
38
  text,
11
39
  info,
12
40
  tooltip,
13
- tooltipProperties,
41
+ tooltipProps,
14
42
  isLayoutForElement = "label",
15
- ...otherProps
16
- }: any) {
43
+ ...otherLabelProps
44
+ }: LabelProps) {
17
45
  let htmlElementstring = isLayoutForElement;
18
46
  htmlElementstring = disabled && htmlElementstring === "label" ? "span" : htmlElementstring;
19
- const labelElement = React.createElement(htmlElementstring);
20
47
 
21
- return text ? (
22
- <labelElement.type
23
- className={`${eccgui}-label` + (className ? " " + className : "") + (disabled ? ` ${eccgui}-label--disabled` : "")}
24
- {...otherProps}
25
- htmlFor={disabled ? "" : otherProps.htmlFor}
26
- >
27
- <span className={`${eccgui}-label__text`}>{text}</span>
48
+ const labelContent = (
49
+ <>
50
+ {text && <span className={`${eccgui}-label__text`}>{text}</span>}
28
51
  {info && <span className={`${eccgui}-label__info`}>{info}</span>}
29
52
  {tooltip && (
30
53
  <span className={`${eccgui}-label__tooltip`}>
31
- <Tooltip content={tooltip} disabled={disabled} {...tooltipProperties}>
54
+ <Tooltip content={tooltip} disabled={disabled} {...tooltipProps}>
32
55
  <Icon name="item-info" small />
33
56
  </Tooltip>
34
57
  </span>
35
58
  )}
36
59
  {children && <span className={`${eccgui}-label__other`}>{children}</span>}
37
- </labelElement.type>
60
+ </>
61
+ );
62
+
63
+ return (!!text || !!info || !!tooltip || !!children) ? React.createElement(
64
+ htmlElementstring,
65
+ {
66
+ className: `${eccgui}-label` + (className ? " " + className : "") + (disabled ? ` ${eccgui}-label--disabled` : ""),
67
+ ...otherLabelProps,
68
+ },
69
+ labelContent
38
70
  ) : (
39
71
  <></>
40
- );
72
+ )
41
73
  }
42
74
 
43
75
  export default Label;
@@ -41,7 +41,7 @@ $eccgui-color-label-info: rgba($eccgui-color-workspace-text, $eccgui-opacity-mut
41
41
  }
42
42
 
43
43
  .#{$eccgui}-label__text + & {
44
- margin-left: $eccgui-size-inline-whitespace / 2;
44
+ margin-left: $eccgui-size-inline-whitespace * 0.5;
45
45
  }
46
46
 
47
47
  .#{$eccgui}-typography__overflowtext--passdown > .#{$eccgui}-label > & {
@@ -58,7 +58,7 @@ $eccgui-color-label-info: rgba($eccgui-color-workspace-text, $eccgui-opacity-mut
58
58
 
59
59
  .#{$eccgui}-label__text + &,
60
60
  .#{$eccgui}-label__info + & {
61
- margin-left: $eccgui-size-inline-whitespace / 2;
61
+ margin-left: $eccgui-size-inline-whitespace * 0.5;
62
62
  }
63
63
 
64
64
  .#{$eccgui}-typography__overflowtext--passdown > .#{$eccgui}-label > & {
@@ -1,18 +1,15 @@
1
1
  import React from 'react';
2
- import {MenuItem as BlueprintMenuItem, MenuItemProps} from "@blueprintjs/core";
2
+ import {MenuItem as BlueprintMenuItem, MenuItemProps as BlueprintMenuItemProps} from "@blueprintjs/core";
3
3
  import {CLASSPREFIX as eccgui} from "../../configuration/constants";
4
4
  import Icon from '../Icon/Icon';
5
5
  import { openInNewTab } from '../../common/utils/openInNewTab';
6
6
  import {ValidIconName} from "../Icon/canonicalIconNames";
7
7
 
8
- interface IProps {
9
- children?: React.ReactNode | React.ReactNode[]
10
- className?: string
11
- icon?: ValidIconName | string[]
12
- // Props defined by the Blueprint component that should be forwarded
13
- internalProps?: Partial<MenuItemProps> & React.AnchorHTMLAttributes<HTMLAnchorElement>
14
- // FIXME: CMEM-3742: For backward compatibility, should be avoided in all code bases
15
- [key: string]: any
8
+ export interface MenuItemProps extends Omit<BlueprintMenuItemProps, "icon">, Omit<React.AnchorHTMLAttributes<HTMLAnchorElement>, "onClick" | "target"> {
9
+ /*
10
+ * If set the icon is diplayed on the left side of the menu item.
11
+ */
12
+ icon?: ValidIconName | string[];
16
13
  }
17
14
 
18
15
  /** A single item in a Menu. */
@@ -20,19 +17,15 @@ function MenuItem({
20
17
  children,
21
18
  className = '',
22
19
  icon,
23
- internalProps,
24
20
  onClick,
25
21
  href,
26
22
  ...restProps
27
- }: IProps) {
28
- const actualHref = internalProps?.href ?? href;
29
- const onClickHandler = internalProps?.onClick ?? onClick;
23
+ }: MenuItemProps) {
30
24
  return (
31
25
  <BlueprintMenuItem
32
- {...internalProps}
33
26
  {...restProps}
34
- href={actualHref}
35
- onClick={(e) => openInNewTab(e, onClickHandler, actualHref)}
27
+ href={href}
28
+ onClick={(e) => openInNewTab(e, onClick, href)}
36
29
  className={`${eccgui}-menu__item ` + className}
37
30
  icon={
38
31
  icon ? <Icon name={icon} /> : false
@@ -26,16 +26,16 @@ $minimal-button-background-color-active: rgba($gray2, 0.3) !default;
26
26
  $dark-minimal-button-background-color-hover: rgba($gray3, 0.15) !default;
27
27
  $dark-minimal-button-background-color-active: rgba($gray3, 0.3) !default;
28
28
 
29
- // $half-grid-size: $pt-grid-size / 2 !default;
29
+ // $half-grid-size: $pt-grid-size * 0.5 !default;
30
30
  // $menu-item-border-radius: $pt-border-radius - 1 !default;
31
31
  // $menu-item-line-height-factor: 1.4;
32
32
  // $menu-item-line-height: round($pt-font-size * $menu-item-line-height-factor);
33
33
  // $menu-item-line-height-large: round($pt-font-size-large * $menu-item-line-height-factor);
34
34
  $menu-min-width: 0 !default;
35
- // $menu-item-padding: ($pt-button-height - $pt-icon-size-standard) / 2 !default;
36
- // $menu-item-padding-large: ($pt-button-height-large - $pt-icon-size-large) / 2 !default;
37
- // $menu-item-padding-vertical: ($pt-button-height - $menu-item-line-height) / 2 !default;
38
- // $menu-item-padding-vertical-large: ($pt-button-height-large - $menu-item-line-height-large) / 2 !default;
35
+ // $menu-item-padding: ($pt-button-height - $pt-icon-size-standard) * 0.5 !default;
36
+ // $menu-item-padding-large: ($pt-button-height-large - $pt-icon-size-large) * 0.5 !default;
37
+ // $menu-item-padding-vertical: ($pt-button-height - $menu-item-line-height) * 0.5 !default;
38
+ // $menu-item-padding-vertical-large: ($pt-button-height-large - $menu-item-line-height-large) * 0.5 !default;
39
39
  $menu-background-color: transparent !default;
40
40
  // $dark-menu-background-color: $dark-gray4 !default;
41
41
  // $menu-item-color-hover: $minimal-button-background-color-hover !default;
@@ -48,8 +48,8 @@ $menu-background-color: transparent !default;
48
48
  .#{$ns}-menu {
49
49
  padding: 0;
50
50
 
51
- .#{$ns}-popover-content > & {
52
- padding: $eccgui-size-inline-whitespace / 2;
51
+ .#{$ns}-popover2-content > & {
52
+ padding: $eccgui-size-inline-whitespace * 0.5;
53
53
  min-width: 10em;
54
54
  max-width: 20em;
55
55
  }
@@ -69,11 +69,12 @@ $menu-background-color: transparent !default;
69
69
 
70
70
  &:hover {
71
71
  .#{$ns}-menu-item {
72
- max-width: none;
72
+ max-width: 100vw; // something similar like `none` in this situation
73
+ transition: max-width $pt-transition-duration ease-in 0.75s;
73
74
  }
74
75
  .#{$ns}-text-overflow-ellipsis {
75
76
  opacity: $eccgui-opacity-regular;
76
- transition: opacity 0.11s;
77
+ transition: opacity $pt-transition-duration ease-in 0.75s;
77
78
  }
78
79
  }
79
80
  }
@@ -1,11 +1,21 @@
1
1
  import React from "react";
2
- import {Intent as BlueprintIntent} from "@blueprintjs/core";
3
- import {IItemRendererProps, MultiSelect as BlueprintMultiSelect, MultiSelectProps} from "@blueprintjs/select";
4
- import MenuItem from "../Menu/MenuItem";
5
- import Highlighter from "../Typography/Highlighter";
6
- import Button from "../Button/Button";
7
- import OverflowText from "../Typography/OverflowText";
8
- import {HTMLInputProps} from "@blueprintjs/core/src/common/props";
2
+ import {
3
+ Intent as BlueprintIntent,
4
+ HTMLInputProps as BlueprintHTMLInputProps
5
+ } from "@blueprintjs/core";
6
+ import {
7
+ IItemRendererProps as BlueprintItemRendererProps,
8
+ MultiSelect2 as BlueprintMultiSelect,
9
+ MultiSelect2Props as BlueprintMultiSelectProps
10
+ } from "@blueprintjs/select";
11
+ import {
12
+ MenuItem,
13
+ Highlighter,
14
+ Button,
15
+ OverflowText,
16
+ ContextOverlayProps,
17
+ } from "./../../index";
18
+
9
19
  import {removeExtraSpaces} from "../../common/utils/stringUtils";
10
20
 
11
21
  export interface SelectedParamsType<T> {
@@ -14,7 +24,7 @@ export interface SelectedParamsType<T> {
14
24
  createdItems: Partial<T>[];
15
25
  }
16
26
 
17
- interface IProps<T> extends Pick<MultiSelectProps<T>, "items" | "placeholder" | "openOnKeyDown"> {
27
+ interface IProps<T> extends Pick<BlueprintMultiSelectProps<T>, "items" | "placeholder" | "openOnKeyDown"> {
18
28
  /**
19
29
  * Returns the unique ID of an item. This will be used for equality of items.
20
30
  */
@@ -33,16 +43,16 @@ interface IProps<T> extends Pick<MultiSelectProps<T>, "items" | "placeholder" |
33
43
  */
34
44
  onSelection?: (params: SelectedParamsType<T>) => void;
35
45
  /**
36
- * Props to spread to `Popover`. Note that `content` cannot be changed.
46
+ * Props to spread to `ContextOverlay`. Note that `content` cannot be changed.
37
47
  */
38
- popoverProps?: MultiSelectProps<T>["popoverProps"];
48
+ contextOverlayProps?: Partial<Omit<ContextOverlayProps, "content" | "children">>;
39
49
  /**
40
50
  * Props to spread to `TagInput`. Use `query` and `onQueryChange` to control the input.
41
51
  */
42
- tagInputProps?: MultiSelectProps<T>["tagInputProps"];
52
+ tagInputProps?: BlueprintMultiSelectProps<T>["tagInputProps"];
43
53
 
44
54
  /** Additional properties for the (query) input field of the multi-selection. */
45
- inputProps?: HTMLInputProps;
55
+ inputProps?: BlueprintHTMLInputProps;
46
56
 
47
57
  /**
48
58
  * prop to listen for query changes, when text is entered in the multi-select input
@@ -50,7 +60,7 @@ interface IProps<T> extends Pick<MultiSelectProps<T>, "items" | "placeholder" |
50
60
  runOnQueryChange?: (query: string) => Promise<T[] | undefined>;
51
61
  /**
52
62
  * Whether the component should take up the full width of its container.
53
- * This overrides `popoverProps.fill` and `tagInputProps.fill`.
63
+ * This overrides `tagInputProps.fill`.
54
64
  */
55
65
  fullWidth?: boolean;
56
66
  /**
@@ -99,7 +109,7 @@ function MultiSelect<T>({
99
109
  itemId,
100
110
  itemLabel,
101
111
  onSelection,
102
- popoverProps,
112
+ contextOverlayProps,
103
113
  tagInputProps,
104
114
  inputProps,
105
115
  runOnQueryChange,
@@ -221,7 +231,7 @@ function MultiSelect<T>({
221
231
  /**
222
232
  * defines how an item in the item list is displayed
223
233
  */
224
- const onItemRenderer = (item: T, { handleClick, modifiers }: IItemRendererProps) => {
234
+ const onItemRenderer = (item: T, { handleClick, modifiers }: BlueprintItemRendererProps) => {
225
235
  if (!modifiers.matchesPredicate) {
226
236
  return null;
227
237
  }
@@ -361,13 +371,15 @@ function MultiSelect<T>({
361
371
  }}
362
372
  popoverProps={{
363
373
  minimal: true,
364
- position: "bottom-left",
374
+ placement: "bottom-start",
365
375
  hasBackdrop: true,
366
- ...popoverProps,
367
- defaultIsOpen: true,
376
+ fill: true,
377
+ ...contextOverlayProps,
368
378
  }}
369
379
  />
370
380
  );
371
381
  }
372
382
 
383
+ MultiSelect.ofType = BlueprintMultiSelect.ofType;
384
+
373
385
  export default MultiSelect;
@@ -1,5 +1,7 @@
1
1
  // TODO: add vars and process them
2
2
 
3
+ @use "sass:math";
4
+
3
5
  @import "~@blueprintjs/core/src/components/toast/toast";
4
6
 
5
7
  .#{$eccgui}-notification {
@@ -10,7 +12,7 @@
10
12
  background-color: $eccgui-color-application-background;
11
13
  font-size: 1rem;
12
14
  line-height: $eccgui-size-typo-base-lineheight;
13
- min-width: 4/16 * 100vw;
15
+ min-width: math.div(4, 16) * 100vw;
14
16
  width: 100%;
15
17
  max-width: 40rem;
16
18
  margin-top: $eccgui-size-block-whitespace;
@@ -1,5 +1,5 @@
1
1
  $eccgui-color-overviewitem-divider: $ui-03 !default;
2
- $eccgui-size-overviewitem-spacing: $eccgui-size-typo-base/2 !default;
2
+ $eccgui-size-overviewitem-spacing: $eccgui-size-typo-base * 0.5 !default;
3
3
 
4
4
  $eccgui-color-overviewitem-depiction-background: $eccgui-color-workspace-text !default;
5
5
  $eccgui-color-overviewitem-depiction-text: $eccgui-color-workspace-background !default;
@@ -17,7 +17,7 @@ $eccgui-size-overviewitem-line-typo-large-lineheight: $eccgui-size-typo-subtitle
17
17
  align-items: stretch;
18
18
 
19
19
  & > li {
20
- width: calc(1/2 * 100% - #{$eccgui-size-overviewitem-spacing});
20
+ width: calc(50% - #{$eccgui-size-overviewitem-spacing});
21
21
 
22
22
  &:nth-child(odd) {
23
23
  margin-right: $eccgui-size-overviewitem-spacing;
@@ -25,12 +25,12 @@ $eccgui-size-overviewitem-line-typo-large-lineheight: $eccgui-size-typo-subtitle
25
25
  }
26
26
 
27
27
  &.#{$eccgui}-overviewitem__list--hasspacing {
28
- margin-left: -1 * $eccgui-size-overviewitem-spacing/2;
29
- margin-right: -1 * $eccgui-size-overviewitem-spacing/2;
28
+ margin-left: -1 * $eccgui-size-overviewitem-spacing * 0.5;
29
+ margin-right: -1 * $eccgui-size-overviewitem-spacing * 0.5;
30
30
 
31
31
  & > li {
32
32
  box-sizing: border-box;
33
- padding: $eccgui-size-overviewitem-spacing/2;
33
+ padding: $eccgui-size-overviewitem-spacing * 0.5;
34
34
  }
35
35
  }
36
36
  }
@@ -40,10 +40,10 @@ $eccgui-size-overviewitem-line-typo-large-lineheight: $eccgui-size-typo-subtitle
40
40
  }
41
41
 
42
42
  .#{$eccgui}-overviewitem__list--hasspacing:not(.#{$eccgui}-overviewitem__list--hascolumns) > li:not(:first-child) {
43
- padding-top: $eccgui-size-overviewitem-spacing/2;
43
+ padding-top: $eccgui-size-overviewitem-spacing * 0.5;
44
44
  }
45
45
  .#{$eccgui}-overviewitem__list--hasspacing:not(.#{$eccgui}-overviewitem__list--hascolumns) > li:not(:last-child) {
46
- padding-bottom: $eccgui-size-overviewitem-spacing/2;
46
+ padding-bottom: $eccgui-size-overviewitem-spacing * 0.5;
47
47
  }
48
48
 
49
49
  .#{$eccgui}-overviewitem__item {
@@ -83,7 +83,7 @@ $eccgui-size-overviewitem-line-typo-large-lineheight: $eccgui-size-typo-subtitle
83
83
 
84
84
  .#{$eccgui}-overviewitem__item--hasspacing {
85
85
  box-sizing: content-box;
86
- padding: $eccgui-size-overviewitem-spacing/2;
86
+ padding: $eccgui-size-overviewitem-spacing * 0.5;
87
87
 
88
88
  &.#{$eccgui}-overviewitem__item--highdensity,
89
89
  .#{$eccgui}-overviewitem__list--highdensity > li > & {
@@ -1,3 +1,5 @@
1
+ @use "sass:math";
2
+
1
3
  .#{$eccgui}-propertyvalue__list {
2
4
  display: block;
3
5
  }
@@ -13,11 +15,11 @@
13
15
  }
14
16
  &.#{$eccgui}-propertyvalue__pair--hasspacing {
15
17
  &:not(:last-child) {
16
- padding-bottom: $eccgui-size-block-whitespace / 2;
17
- margin-bottom: $eccgui-size-block-whitespace / 2;
18
+ padding-bottom: $eccgui-size-block-whitespace * 0.5;
19
+ margin-bottom: $eccgui-size-block-whitespace * 0.5;
18
20
  }
19
21
  .#{$eccgui}-propertyvalue__pair + & {
20
- margin-top: $eccgui-size-block-whitespace / 2;
22
+ margin-top: $eccgui-size-block-whitespace * 0.5;
21
23
  }
22
24
  }
23
25
  }
@@ -32,7 +34,7 @@
32
34
 
33
35
  .#{$eccgui}-propertyvalue__property {
34
36
  float: left;
35
- width: 3/16 * 100%;
37
+ width: math.div(3, 16) * 100%;
36
38
  overflow: hidden;
37
39
 
38
40
  & > div {
@@ -41,7 +43,7 @@
41
43
  }
42
44
 
43
45
  .#{$eccgui}-propertyvalue__value {
44
- margin-left: 3/16 * 100%;
46
+ margin-left: math.div(3, 16) * 100%;
45
47
  box-sizing: content-box;
46
48
 
47
49
  &:not(:last-child) {
@@ -49,8 +51,8 @@
49
51
  border-bottom: solid 1px $pt-divider-black;
50
52
  }
51
53
  .#{$eccgui}-propertyvalue__pair--hasspacing > & {
52
- padding-bottom: $eccgui-size-block-whitespace / 2;
53
- margin-bottom: $eccgui-size-block-whitespace / 2;
54
+ padding-bottom: $eccgui-size-block-whitespace * 0.5;
55
+ margin-bottom: $eccgui-size-block-whitespace * 0.5;
54
56
  }
55
57
  }
56
58
  }
@@ -0,0 +1,35 @@
1
+ import React from "react";
2
+ import { ComponentStory, ComponentMeta } from "@storybook/react";
3
+ import { loremIpsum } from "react-lorem-ipsum";
4
+
5
+ import {
6
+ Select,
7
+ Button,
8
+ MenuItem,
9
+ } from "../../index";
10
+
11
+ export default {
12
+ title: "Components/Select",
13
+ component: Select,
14
+ argTypes: {
15
+ },
16
+ } as ComponentMeta<typeof Select>;
17
+
18
+ const Template: ComponentStory<typeof Select> = (args) => (
19
+ <Select {...args}>
20
+ <Button alignText="left" text="Select an element" fill outlined rightIcon="toggler-showmore"/>
21
+ </Select>
22
+ );
23
+
24
+ export const Default = Template.bind({});
25
+ Default.args = {
26
+ items: loremIpsum({ p: 1, avgSentencesPerParagraph: 5, random: false })
27
+ .toString()
28
+ .split(".")
29
+ .map((item) => { return { label: item }}),
30
+ itemRenderer: (item, props) => {
31
+ return <MenuItem text={item.label} />
32
+ },
33
+ fill: true,
34
+ filterable: false,
35
+ }
@@ -0,0 +1,38 @@
1
+ import React from "react";
2
+ import {
3
+ Select2 as BlueprintSelect,
4
+ Select2Props as BlueprintSelectProps,
5
+ } from "@blueprintjs/select";
6
+ import { ContextOverlayProps } from "./../../index";
7
+
8
+ /**
9
+ * FIXME: Currently we only route the original element through.
10
+ * We should add here basic elemeents and processes for target and selections, etc.
11
+ */
12
+
13
+ export interface SelectProps<T> extends Omit<
14
+ BlueprintSelectProps<T>,
15
+ "popoverTargetProps" | "popoverContentProps" | "popoverProps" | "popoverRef"
16
+ > {
17
+ /**
18
+ * Props to spread to `ContextOverlay` that is used to display the dropdown.
19
+ */
20
+ contextOverlayProps?: Partial<Omit<ContextOverlayProps, "content" | "defaultIsOpen" | "disabled" | "fill" | "renderTarget" | "targetTagName">>
21
+ }
22
+
23
+ /**
24
+ * Create a Select box without the HTML select element.
25
+ * It is possible to filter options, as well as to add new options if necessary.
26
+ */
27
+ function Select<T>({contextOverlayProps, ...otherSelectProps}: SelectProps<T>) {
28
+ return (
29
+ <BlueprintSelect<T>
30
+ popoverProps={{ minimal: true, ...contextOverlayProps}}
31
+ {...otherSelectProps}
32
+ />
33
+ );
34
+ }
35
+
36
+ Select.ofType = BlueprintSelect.ofType;
37
+
38
+ export default Select;