@eccenca/gui-elements 23.0.0-rc.2 → 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 (165) hide show
  1. package/CHANGELOG.md +26 -1
  2. package/dist/cjs/cmem/index.js +3 -1
  3. package/dist/cjs/cmem/index.js.map +1 -1
  4. package/dist/cjs/cmem/react-flow/StickyNoteModal/StickyNoteModal.js +64 -0
  5. package/dist/cjs/cmem/react-flow/StickyNoteModal/StickyNoteModal.js.map +1 -0
  6. package/dist/cjs/cmem/react-flow/configuration/graph.js.map +1 -1
  7. package/dist/cjs/cmem/react-flow/configuration/linking.js +2 -0
  8. package/dist/cjs/cmem/react-flow/configuration/linking.js.map +1 -1
  9. package/dist/cjs/cmem/react-flow/configuration/typing.js +35 -0
  10. package/dist/cjs/cmem/react-flow/configuration/typing.js.map +1 -0
  11. package/dist/cjs/cmem/react-flow/configuration/workflow.js +2 -0
  12. package/dist/cjs/cmem/react-flow/configuration/workflow.js.map +1 -1
  13. package/dist/cjs/cmem/react-flow/nodes/StickyNoteNode.js +42 -0
  14. package/dist/cjs/cmem/react-flow/nodes/StickyNoteNode.js.map +1 -0
  15. package/dist/cjs/common/utils/CssCustomProperties.js +114 -0
  16. package/dist/cjs/common/utils/CssCustomProperties.js.map +1 -0
  17. package/dist/cjs/common/utils/getColorConfiguration.js +21 -0
  18. package/dist/cjs/common/utils/getColorConfiguration.js.map +1 -0
  19. package/dist/cjs/components/Icon/canonicalIconNames.js +124 -114
  20. package/dist/cjs/components/Icon/canonicalIconNames.js.map +1 -1
  21. package/dist/cjs/components/Tag/Tag.js +2 -1
  22. package/dist/cjs/components/Tag/Tag.js.map +1 -1
  23. package/dist/cjs/extensions/codemirror/CodeMirror.js +3 -3
  24. package/dist/cjs/extensions/codemirror/CodeMirror.js.map +1 -1
  25. package/dist/cjs/extensions/react-flow/index.js +6 -1
  26. package/dist/cjs/extensions/react-flow/index.js.map +1 -1
  27. package/dist/cjs/extensions/react-flow/minimap/MiniMap.js +3 -2
  28. package/dist/cjs/extensions/react-flow/minimap/MiniMap.js.map +1 -1
  29. package/dist/cjs/extensions/react-flow/minimap/utils.js +12 -6
  30. package/dist/cjs/extensions/react-flow/minimap/utils.js.map +1 -1
  31. package/dist/cjs/extensions/react-flow/nodes/NodeContent.js +74 -25
  32. package/dist/cjs/extensions/react-flow/nodes/NodeContent.js.map +1 -1
  33. package/dist/cjs/extensions/react-flow/nodes/NodeContentExtension.js +10 -6
  34. package/dist/cjs/extensions/react-flow/nodes/NodeContentExtension.js.map +1 -1
  35. package/dist/cjs/extensions/react-flow/nodes/nodeUtils.js +49 -0
  36. package/dist/cjs/extensions/react-flow/nodes/nodeUtils.js.map +1 -0
  37. package/dist/cjs/legacy-replacements/Tabs/Tabs.js +1 -1
  38. package/dist/cjs/legacy-replacements/Tabs/Tabs.js.map +1 -1
  39. package/dist/cjs/legacy-replacements/TextField/TextField.js +5 -8
  40. package/dist/cjs/legacy-replacements/TextField/TextField.js.map +1 -1
  41. package/dist/esm/cmem/index.js +1 -0
  42. package/dist/esm/cmem/index.js.map +1 -1
  43. package/dist/esm/cmem/react-flow/StickyNoteModal/StickyNoteModal.js +89 -0
  44. package/dist/esm/cmem/react-flow/StickyNoteModal/StickyNoteModal.js.map +1 -0
  45. package/dist/esm/cmem/react-flow/configuration/graph.js +1 -1
  46. package/dist/esm/cmem/react-flow/configuration/graph.js.map +1 -1
  47. package/dist/esm/cmem/react-flow/configuration/linking.js +3 -1
  48. package/dist/esm/cmem/react-flow/configuration/linking.js.map +1 -1
  49. package/dist/esm/cmem/react-flow/configuration/typing.js +32 -0
  50. package/dist/esm/cmem/react-flow/configuration/typing.js.map +1 -0
  51. package/dist/esm/cmem/react-flow/configuration/workflow.js +3 -1
  52. package/dist/esm/cmem/react-flow/configuration/workflow.js.map +1 -1
  53. package/dist/esm/cmem/react-flow/nodes/StickyNoteNode.js +31 -0
  54. package/dist/esm/cmem/react-flow/nodes/StickyNoteNode.js.map +1 -0
  55. package/dist/esm/common/utils/CssCustomProperties.js +154 -0
  56. package/dist/esm/common/utils/CssCustomProperties.js.map +1 -0
  57. package/dist/esm/common/utils/getColorConfiguration.js +16 -0
  58. package/dist/esm/common/utils/getColorConfiguration.js.map +1 -0
  59. package/dist/esm/components/Icon/canonicalIconNames.js +124 -114
  60. package/dist/esm/components/Icon/canonicalIconNames.js.map +1 -1
  61. package/dist/esm/components/Tag/Tag.js +2 -1
  62. package/dist/esm/components/Tag/Tag.js.map +1 -1
  63. package/dist/esm/extensions/codemirror/CodeMirror.js +3 -3
  64. package/dist/esm/extensions/codemirror/CodeMirror.js.map +1 -1
  65. package/dist/esm/extensions/react-flow/index.js +1 -0
  66. package/dist/esm/extensions/react-flow/index.js.map +1 -1
  67. package/dist/esm/extensions/react-flow/minimap/MiniMap.js +3 -2
  68. package/dist/esm/extensions/react-flow/minimap/MiniMap.js.map +1 -1
  69. package/dist/esm/extensions/react-flow/minimap/utils.js +10 -5
  70. package/dist/esm/extensions/react-flow/minimap/utils.js.map +1 -1
  71. package/dist/esm/extensions/react-flow/nodes/NodeContent.js +76 -27
  72. package/dist/esm/extensions/react-flow/nodes/NodeContent.js.map +1 -1
  73. package/dist/esm/extensions/react-flow/nodes/NodeContentExtension.js +26 -6
  74. package/dist/esm/extensions/react-flow/nodes/NodeContentExtension.js.map +1 -1
  75. package/dist/esm/extensions/react-flow/nodes/nodeUtils.js +44 -0
  76. package/dist/esm/extensions/react-flow/nodes/nodeUtils.js.map +1 -0
  77. package/dist/esm/index.js +1 -1
  78. package/dist/esm/index.js.map +1 -1
  79. package/dist/esm/legacy-replacements/Tabs/Tabs.js +1 -1
  80. package/dist/esm/legacy-replacements/Tabs/Tabs.js.map +1 -1
  81. package/dist/esm/legacy-replacements/TextField/TextField.js +2 -5
  82. package/dist/esm/legacy-replacements/TextField/TextField.js.map +1 -1
  83. package/dist/types/cmem/index.d.ts +1 -0
  84. package/dist/types/cmem/react-flow/StickyNoteModal/StickyNoteModal.d.ts +26 -0
  85. package/dist/types/cmem/react-flow/configuration/graph.d.ts +3 -8
  86. package/dist/types/cmem/react-flow/configuration/linking.d.ts +3 -9
  87. package/dist/types/cmem/react-flow/configuration/typing.d.ts +28 -0
  88. package/dist/types/cmem/react-flow/configuration/workflow.d.ts +3 -9
  89. package/dist/types/cmem/react-flow/nodes/StickyNoteNode.d.ts +3 -0
  90. package/dist/types/common/utils/CssCustomProperties.d.ts +28 -0
  91. package/dist/types/common/utils/getColorConfiguration.d.ts +8 -0
  92. package/dist/types/components/Icon/canonicalIconNames.d.ts +1 -1
  93. package/dist/types/components/Tag/Tag.d.ts +5 -1
  94. package/dist/types/extensions/codemirror/CodeMirror.d.ts +5 -1
  95. package/dist/types/extensions/react-flow/index.d.ts +1 -0
  96. package/dist/types/extensions/react-flow/minimap/MiniMap.d.ts +1 -1
  97. package/dist/types/extensions/react-flow/minimap/utils.d.ts +1 -0
  98. package/dist/types/extensions/react-flow/nodes/NodeContent.d.ts +17 -1
  99. package/dist/types/extensions/react-flow/nodes/NodeContentExtension.d.ts +2 -2
  100. package/dist/types/extensions/react-flow/nodes/nodeUtils.d.ts +14 -0
  101. package/dist/types/index.d.ts +1 -1
  102. package/dist/types/legacy-replacements/Tabs/Tabs.d.ts +1 -1
  103. package/package.json +14 -13
  104. package/scripts/compile-sass.ts +9 -0
  105. package/scripts/fix-cjs-dist +5 -0
  106. package/scripts/fix-esm-dist +6 -0
  107. package/scripts/sassConfig.js +13 -0
  108. package/src/_shame.scss +17 -0
  109. package/src/cmem/index.ts +1 -0
  110. package/src/cmem/markdown/markdown.scss +1 -1
  111. package/src/cmem/react-flow/StickyNoteModal/StickyNoteModal.tsx +134 -0
  112. package/src/cmem/react-flow/_index.scss +1 -1
  113. package/src/cmem/react-flow/_minimap.scss +6 -2
  114. package/src/cmem/react-flow/configuration/graph.ts +3 -5
  115. package/src/cmem/react-flow/configuration/linking.ts +5 -6
  116. package/src/cmem/react-flow/configuration/typing.ts +30 -0
  117. package/src/cmem/react-flow/configuration/workflow.ts +5 -5
  118. package/src/cmem/react-flow/nodes/StickyNoteNode.tsx +13 -0
  119. package/src/cmem/react-flow/{_nodes.scss → nodes/_colors.scss} +0 -0
  120. package/src/cmem/react-flow/nodes/_index.scss +2 -0
  121. package/src/cmem/react-flow/nodes/_stickynote.scss +72 -0
  122. package/src/common/utils/CssCustomProperties.ts +2 -2
  123. package/src/common/utils/getColorConfiguration.ts +1 -2
  124. package/src/components/Accordion/accordion.scss +11 -11
  125. package/src/components/Application/_header.scss +4 -3
  126. package/src/components/Button/button.scss +43 -6
  127. package/src/components/Card/card.scss +5 -5
  128. package/src/components/ContextOverlay/ContextMenu.stories.tsx +4 -1
  129. package/src/components/ContextOverlay/contextoverlay.scss +14 -2
  130. package/src/components/Dialog/dialog.scss +10 -8
  131. package/src/components/Form/form.scss +6 -6
  132. package/src/components/Icon/canonicalIconNames.tsx +134 -121
  133. package/src/components/Icon/icon.scss +1 -1
  134. package/src/components/Label/label.scss +2 -2
  135. package/src/components/Menu/menu.scss +6 -6
  136. package/src/components/Notification/notification.scss +3 -1
  137. package/src/components/OverviewItem/overviewitem.scss +8 -8
  138. package/src/components/PropertyValuePair/propertyvalue.scss +9 -7
  139. package/src/components/Separation/separation.scss +6 -6
  140. package/src/components/SimpleTable/simpletable.scss +5 -5
  141. package/src/components/Tabs/tabs.scss +2 -2
  142. package/src/components/Tag/Tag.tsx +6 -0
  143. package/src/components/Tag/tag.scss +36 -11
  144. package/src/components/TextField/textfield.scss +6 -4
  145. package/src/components/Tooltip/tooltip.scss +3 -3
  146. package/src/components/Typography/typography.scss +4 -4
  147. package/src/configuration/_variables.scss +11 -9
  148. package/src/extensions/codemirror/CodeMirror.tsx +9 -4
  149. package/src/extensions/react-flow/edges/_edges.scss +3 -3
  150. package/src/extensions/react-flow/handles/_handles.scss +13 -13
  151. package/src/extensions/react-flow/index.ts +1 -0
  152. package/src/extensions/react-flow/minimap/MiniMap.tsx +16 -1
  153. package/src/extensions/react-flow/minimap/_minimap.scss +6 -6
  154. package/src/extensions/react-flow/minimap/utils.ts +8 -3
  155. package/src/extensions/react-flow/nodes/NodeContent.tsx +253 -166
  156. package/src/extensions/react-flow/nodes/NodeContentExtension.tsx +17 -11
  157. package/src/extensions/react-flow/nodes/_nodes.scss +44 -12
  158. package/src/extensions/react-flow/nodes/nodeUtils.tsx +53 -0
  159. package/src/extensions/react-flow/nodes/stories/NodeContent.stories.tsx +24 -13
  160. package/src/extensions/react-flow/nodes/stories/NodeContentExtension.stories.tsx +39 -47
  161. package/src/includes/blueprintjs/_variables.scss +3 -1
  162. package/src/includes/carbon-components/_variables.scss +7 -5
  163. package/src/index.ts +1 -1
  164. package/src/legacy-replacements/Tabs/Tabs.tsx +3 -1
  165. package/src/legacy-replacements/TextField/TextField.tsx +7 -5
@@ -15,7 +15,7 @@
15
15
  }
16
16
 
17
17
  &.react-flow__node-default {
18
- // remove deafult styles
18
+ // remove default styles
19
19
  background-color: unset !important;
20
20
  color: unset !important;
21
21
  border: unset !important;
@@ -70,7 +70,7 @@
70
70
  .#{$eccgui}-graphviz__node--minimal-rectangular,
71
71
  .#{$eccgui}-graphviz__node--minimal-circular {
72
72
 
73
- /* TODO: does not work correctly with tooltips around
73
+ /* FIXME: does not work correctly with tooltips around
74
74
  transition: width $reactflow-transition-time $reactflow-transition-function,
75
75
  max-height $reactflow-transition-time $reactflow-transition-function,
76
76
  border-radius $reactflow-transition-time $reactflow-transition-function;
@@ -84,6 +84,7 @@
84
84
  .#{$eccgui}-graphviz__node__header-depiction + .#{$eccgui}-graphviz__node__header-label,
85
85
  .#{$eccgui}-graphviz__node__header-menu,
86
86
  .#{$eccgui}-graphviz__node__content,
87
+ .#{$eccgui}-graphviz__node__extension,
87
88
  .#{$eccgui}-graphviz__node__footer {
88
89
  display: none;
89
90
  }
@@ -97,7 +98,7 @@
97
98
 
98
99
  .#{$eccgui}-graphviz__node--minimal-circular {
99
100
  .react-flow__node:not(.selected) /*:not(:hover)*/ & {
100
- border-radius: 100%; // $reactflow-node-basesize / 2;
101
+ border-radius: 100%;
101
102
 
102
103
  .#{$eccgui}-graphviz__node__header-depiction {
103
104
  border-radius: 100%;
@@ -113,6 +114,10 @@
113
114
  justify-content: space-between;
114
115
  align-items: center;
115
116
  min-height: $reactflow-node-basesize;
117
+
118
+ .#{$ns}-button:not([class*="#{$ns}-intent-"]) {
119
+ color: currentColor;
120
+ }
116
121
  }
117
122
 
118
123
  .#{$eccgui}-graphviz__node__header-depiction,
@@ -123,7 +128,7 @@
123
128
  }
124
129
 
125
130
  .#{$eccgui}-graphviz__node__header-label {
126
- margin: 0 $eccgui-size-block-whitespace / 4;
131
+ margin: 0 $eccgui-size-block-whitespace * 0.25;
127
132
  white-space: nowrap;
128
133
  overflow: hidden;
129
134
  text-overflow: ellipsis;
@@ -157,7 +162,7 @@
157
162
  }
158
163
 
159
164
  .#{$eccgui}-graphviz__node__content {
160
- padding: $eccgui-size-block-whitespace / 2 $eccgui-size-block-whitespace / 4;
165
+ padding: $eccgui-size-block-whitespace * 0.5 $eccgui-size-block-whitespace * 0.25;
161
166
  overflow: hidden;
162
167
  background-color: $card-background-color;
163
168
  color: $eccgui-color-workspace-text;
@@ -170,6 +175,7 @@
170
175
  }
171
176
 
172
177
  .#{$eccgui}-graphviz__node__footer {
178
+ padding: $eccgui-size-block-whitespace* 0.5 $eccgui-size-block-whitespace* 0.25;
173
179
  font-size: $reactflow-node-font-size;
174
180
  color: $reactflow-node-color;
175
181
  background-color: $reactflow-node-background-color;
@@ -177,25 +183,43 @@
177
183
 
178
184
  // Node sizes
179
185
 
180
- .#{$eccgui}-graphviz__node--tiny {
186
+ .#{$eccgui}-graphviz__node__resizer,
187
+ .#{$eccgui}-graphviz__node.is-resizeable {
188
+ min-height: 2.5 * $reactflow-node-basesize;
189
+ min-width: 2.5 * $reactflow-node-basesize;
190
+ }
191
+
192
+ .#{$eccgui}-graphviz__node__resizer {
193
+ .selected &,
194
+ &:hover {
195
+ .#{$eccgui}-graphviz__node__resizer--cursorhandles {
196
+ & > div {
197
+ overflow: auto;
198
+ resize: both;
199
+ }
200
+ }
201
+ }
202
+ }
203
+
204
+ .#{$eccgui}-graphviz__node--tiny:not(.is-resizeable) {
181
205
  width: $reactflow-node-basesize * 4;
182
206
  min-height: $reactflow-node-basesize;
183
207
  max-height: $reactflow-node-basesize * 4;
184
208
  }
185
209
 
186
- .#{$eccgui}-graphviz__node--small {
210
+ .#{$eccgui}-graphviz__node--small:not(.is-resizeable) {
187
211
  width: $reactflow-node-basesize * 5;
188
212
  min-height: $reactflow-node-basesize;
189
213
  max-height: $reactflow-node-basesize * 8;
190
214
  }
191
215
 
192
- .#{$eccgui}-graphviz__node--medium {
216
+ .#{$eccgui}-graphviz__node--medium:not(.is-resizeable) {
193
217
  width: $reactflow-node-basesize * 8;
194
218
  min-height: $reactflow-node-basesize;
195
219
  max-height: $reactflow-node-basesize * 13;
196
220
  }
197
221
 
198
- .#{$eccgui}-graphviz__node--large {
222
+ .#{$eccgui}-graphviz__node--large:not(.is-resizeable) {
199
223
  width: $reactflow-node-basesize * 13;
200
224
  min-height: $reactflow-node-basesize;
201
225
  max-height: $reactflow-node-basesize * 13;
@@ -277,7 +301,7 @@
277
301
 
278
302
  .#{$eccgui}-graphviz__node__extension {
279
303
  background-color: $reactflow-node-background-color;
280
- min-height: $eccgui-size-block-whitespace / 2;
304
+ min-height: $eccgui-size-block-whitespace* 0.5;
281
305
  flex-grow: 1;
282
306
  flex-shrink: 1;
283
307
 
@@ -298,6 +322,10 @@
298
322
  }
299
323
  }
300
324
 
325
+ .#{$eccgui}-graphviz__node__extension--slideout {
326
+ order: 4;
327
+ }
328
+
301
329
  .#{$eccgui}-graphviz__node__extension--expanded {
302
330
  display: flex;
303
331
  flex-direction: column;
@@ -319,17 +347,21 @@
319
347
  border-radius: $reactflow-node-border-radius;
320
348
  border-style: solid;
321
349
  }
350
+
351
+ &:not(.#{$eccgui}-graphviz__node__extension--slideout) + .#{$eccgui}-graphviz__node__footer {
352
+ border-top: 1px solid $eccgui-color-separation-divider;
353
+ }
322
354
  }
323
355
 
324
356
  .#{$eccgui}-graphviz__node__extension-expandbutton {
325
357
  display: flex;
326
358
  min-height: 0;
327
- max-height: $eccgui-size-block-whitespace / 2;
359
+ max-height: $eccgui-size-block-whitespace* 0.5;
328
360
  width: 100%;
329
361
  }
330
362
 
331
363
  .#{$eccgui}-graphviz__node__extension-body {
332
- padding: $eccgui-size-block-whitespace / 2 $eccgui-size-block-whitespace / 4;
364
+ padding: $eccgui-size-block-whitespace* 0.5 $eccgui-size-block-whitespace* 0.25;
333
365
  flex-grow: 0;
334
366
  flex-shrink: 1;
335
367
  overflow: auto;
@@ -0,0 +1,53 @@
1
+ import { CSSProperties } from "react";
2
+ import { Node } from "react-flow-renderer";
3
+ import Color from "color";
4
+
5
+ interface IStickyNote {
6
+ id: string;
7
+ content: string;
8
+ color: string;
9
+ position: number[];
10
+ dimension: number[];
11
+ }
12
+
13
+ /**
14
+ * converts a react-flow node with
15
+ * type = "stickynote" to IStickyNote type compatible with the backend
16
+ * @param node
17
+ * @returns {IStickyNote}
18
+ */
19
+ const transformNodeToStickyNode = (node: Node<any>): IStickyNote => ({
20
+ id: node.id,
21
+ content: node.data.businessData.stickyNote!,
22
+ position: [node.position.x, node.position.y],
23
+ dimension: [node.data.nodeDimensions?.width!, node.data.nodeDimensions?.height!],
24
+ color: node.data.style?.borderColor!,
25
+ });
26
+
27
+ /**
28
+ * takes in a hex color string and returns
29
+ * a style object with style rules for borderColor, backgroundColor and color
30
+ * @param {string} color
31
+ * @returns {CSSProperties}
32
+ */
33
+ const generateStyleWithColor = (color: string): CSSProperties => {
34
+ let style: CSSProperties = {};
35
+ try {
36
+ const colorObj = Color("#fff").mix(Color(color), 0.24);
37
+ style = {
38
+ backgroundColor: colorObj.toString(),
39
+ borderColor: color,
40
+ color: colorObj.isLight() ? "#000" : "#fff",
41
+ };
42
+ } catch (ex) {
43
+ console.warn("Received invalid color for sticky note: " + color);
44
+ }
45
+ return style;
46
+ };
47
+
48
+ const utils = {
49
+ generateStyleWithColor,
50
+ transformNodeToStickyNode,
51
+ };
52
+
53
+ export default utils;
@@ -1,8 +1,11 @@
1
1
  import React, { useState, useEffect, useCallback } from "react";
2
2
  import { ComponentStory, ComponentMeta } from "@storybook/react";
3
3
  import { LoremIpsum } from 'react-lorem-ipsum';
4
- import ReactFlow, { Elements } from 'react-flow-renderer';
5
- import HtmlContentBlock from "../../../../components/Typography/HtmlContentBlock";
4
+ import ReactFlow, { Elements, ReactFlowProvider } from 'react-flow-renderer';
5
+ import {
6
+ OverflowText,
7
+ HtmlContentBlock,
8
+ } from "./../../../../index";
6
9
 
7
10
  import { NodeContent } from "./../NodeContent";
8
11
  import { nodeTypes } from "./../nodeTypes";
@@ -19,13 +22,15 @@ export default {
19
22
  argTypes: {
20
23
  contentExtension: {
21
24
  control: "select",
22
- options: ["Not set", "Default example"],
25
+ options: ["Not set", "Default example", "Slide out example"],
23
26
  mapping: {
24
27
  "Not set": undefined,
25
- "Default example": <ContentExtensionExample />,
28
+ "Default example": <NodeContentExtension {...ContentExtensionExample.args} />,
29
+ "Slide out example": <NodeContentExtension {...ContentExtensionExampleSlideOut.args} />,
26
30
  },
27
31
  },
28
32
  content: { control: "none" },
33
+ footerContent: { control: "none" },
29
34
  isConnectable: { table: { disable: true } },
30
35
  targetPosition: { table: { disable: true } },
31
36
  sourcePosition: { table: { disable: true } },
@@ -42,7 +47,7 @@ const NodeContentExample = (args: any) => {
42
47
  useEffect(() => {
43
48
  setElements([
44
49
  {
45
- id: '1',
50
+ id: 'example-1',
46
51
  type: 'default',
47
52
  data: args,
48
53
  position: { x: 50, y: 50 },
@@ -59,13 +64,13 @@ const NodeContentExample = (args: any) => {
59
64
  [reactflowInstance]
60
65
  );
61
66
 
62
- return <ReactFlow
67
+ return <ReactFlowProvider><ReactFlow
63
68
  elements={elements}
64
69
  style={{ height: '400px' }}
65
70
  onLoad={onLoad}
66
71
  nodeTypes={ nodeTypes }
67
72
  defaultZoom={1}
68
- />
73
+ /></ReactFlowProvider>
69
74
  }
70
75
 
71
76
  const Template: ComponentStory<typeof NodeContent> = (args) => (
@@ -81,7 +86,12 @@ Default.args = {
81
86
  <LoremIpsum p={4} avgSentencesPerParagraph={3} random={false} />
82
87
  </HtmlContentBlock>
83
88
  ),
84
- contentExtension: <ContentExtensionExample />,
89
+ footerContent: (
90
+ <OverflowText passDown>
91
+ Node footer with some text information.
92
+ </OverflowText>
93
+ ),
94
+ contentExtension: undefined,
85
95
  minimalShape: "none",
86
96
  getMinimalTooltipData: (node: any) => {
87
97
  return {
@@ -100,11 +110,12 @@ Default.args = {
100
110
  type: "source",
101
111
  data: {extendedTooltip: "this is a source handle"}
102
112
  }
103
- ]
113
+ ],
114
+ onNodeResize: false, // workaround that storybook do not automatically include empty handle function
104
115
  };
105
116
 
106
- export const SlideOut = Template.bind({});
107
- SlideOut.args = {
117
+ export const Resizeable = Template.bind({});
118
+ Resizeable.args = {
108
119
  ...Default.args,
109
- contentExtension: <ContentExtensionExampleSlideOut />
110
- };
120
+ onNodeResize: (dimensions) => { alert(`new dimensions: ${dimensions.width}x${dimensions.height}`); },
121
+ }
@@ -1,8 +1,11 @@
1
- import React, { useState } from "react";
2
- import { ComponentMeta } from "@storybook/react";
1
+ import React from "react";
2
+ import { ComponentStory, ComponentMeta } from "@storybook/react";
3
3
  import { LoremIpsum } from 'react-lorem-ipsum';
4
4
 
5
- import { NodeContentExtension } from "./../NodeContentExtension";
5
+ import {
6
+ NodeContentExtension,
7
+ NodeContentExtensionProps
8
+ } from "./../NodeContentExtension";
6
9
  import IconButton from "../../../../components/Icon/IconButton";
7
10
  import HtmlContentBlock from "../../../../components/Typography/HtmlContentBlock";
8
11
 
@@ -10,50 +13,39 @@ export default {
10
13
  title: "Extensions/React Flow/Node Content Extension",
11
14
  component: NodeContentExtension,
12
15
  argTypes: {
16
+ children: { control: "none" },
17
+ actionButtons: { control: "none" },
13
18
  },
14
19
  } as ComponentMeta<typeof NodeContentExtension>;
15
20
 
16
- export const Default = () => {
17
- const [isExpanded, setExpanded] = useState<boolean>(false);
18
-
19
- const toggleExpansion = (event: React.MouseEvent<HTMLElement>, expanded: boolean) => {
20
- setExpanded(!expanded);
21
- }
22
-
23
- return (
24
- <NodeContentExtension
25
- isExpanded={isExpanded}
26
- onToggle={toggleExpansion}
27
- actionButtons={
28
- <IconButton name="item-question" onClick={(e) => { alert("this is a action button"); }} />
29
- }
30
- >
31
- <HtmlContentBlock>
32
- <h4>Extension example.</h4>
33
- <LoremIpsum p={2} avgSentencesPerParagraph={4} random={false} />
34
- </HtmlContentBlock>
35
- </NodeContentExtension>);
36
- }
37
-
38
- export const SlideOutOfNode = () => {
39
- const [isExpanded, setExpanded] = useState<boolean>(false);
40
-
41
- const toggleExpansion = (event: React.MouseEvent<HTMLElement>, expanded: boolean) => {
42
- setExpanded(!expanded);
43
- }
44
-
45
- return (
46
- <NodeContentExtension
47
- slideOutOfNode
48
- isExpanded={isExpanded}
49
- onToggle={toggleExpansion}
50
- actionButtons={
51
- <IconButton name="item-question" onClick={(e) => { alert("this is a action button"); }} />
52
- }
53
- >
54
- <HtmlContentBlock>
55
- <h4>Extension example.</h4>
56
- <LoremIpsum p={2} avgSentencesPerParagraph={4} random={false} />
57
- </HtmlContentBlock>
58
- </NodeContentExtension>);
59
- }
21
+ const Template: ComponentStory<typeof NodeContentExtension> = (args: NodeContentExtensionProps) => (
22
+ <NodeContentExtension {...args} /*some comment*/ />
23
+ );
24
+
25
+ export const Default = Template.bind({});
26
+ Default.args = {
27
+ actionButtons: <IconButton name="item-question" onClick={(e) => { alert("this is a action button"); }} />,
28
+ slideOutOfNode: false,
29
+ isExpanded: false,
30
+ setExpanded: (_event: React.MouseEvent<HTMLElement>, expanded: boolean) => {
31
+ return !expanded;
32
+ },
33
+ children: (
34
+ <HtmlContentBlock>
35
+ <h4>Extension example.</h4>
36
+ <LoremIpsum p={2} avgSentencesPerParagraph={4} random={false} />
37
+ </HtmlContentBlock>
38
+ )
39
+ } as NodeContentExtensionProps;
40
+
41
+ export const SlideOutOfNode = Template.bind({});
42
+ SlideOutOfNode.args = {
43
+ ...Default.args,
44
+ slideOutOfNode: true,
45
+ } as NodeContentExtensionProps;
46
+
47
+ export const WithoutExpansionHandler = Template.bind({});
48
+ WithoutExpansionHandler.args = {
49
+ ...Default.args,
50
+ setExpanded: undefined,
51
+ } as NodeContentExtensionProps;
@@ -1,3 +1,5 @@
1
+ @use "sass:math";
2
+
1
3
  // Stack of BlueprintJS variables that are necessary to use their framework
2
4
  // TODO: calculate them from own configuration variables, all unchanged variables are commented out
3
5
 
@@ -79,7 +81,7 @@ $ns: bp4 !default;
79
81
 
80
82
  // easily the most important variable, so it comes up top
81
83
  // (so other variables can use it to define themselves)
82
- $pt-grid-size: $eccgui-size-typo-text/1.4 !default;
84
+ $pt-grid-size: math.div($eccgui-size-typo-text, 1.4) !default;
83
85
 
84
86
  $pt-font-family: $eccgui-font-family-default !default;
85
87
  $pt-font-family-monospace: $eccgui-font-family-monospace !default;
@@ -1,3 +1,5 @@
1
+ @use "sass:math";
2
+
1
3
  // Stack of Carbon variables that are necessary to use their framework
2
4
  // TODO: calculate them from own configuration variables, all unchanged variables are commented out
3
5
 
@@ -38,19 +40,19 @@ $carbon--base-font-size: $eccgui-size-typo-base !default;
38
40
 
39
41
  $caption-01: (
40
42
  font-size: carbon--rem($eccgui-size-typo-caption),
41
- line-height: $eccgui-size-typo-text-lineheight / $eccgui-size-type-levelratio,
43
+ line-height: math.div($eccgui-size-typo-text-lineheight, $eccgui-size-type-levelratio),
42
44
  ) !default;
43
45
  $label-01: (
44
46
  font-size: carbon--rem($eccgui-size-typo-caption),
45
- line-height: $eccgui-size-typo-text-lineheight / $eccgui-size-type-levelratio,
47
+ line-height: math.div($eccgui-size-typo-text-lineheight, $eccgui-size-type-levelratio),
46
48
  ) !default;
47
49
  $helper-text-01: (
48
50
  font-size: carbon--rem($eccgui-size-typo-caption),
49
- line-height: $eccgui-size-typo-text-lineheight / $eccgui-size-type-levelratio,
51
+ line-height: math.div($eccgui-size-typo-text-lineheight, $eccgui-size-type-levelratio),
50
52
  ) !default;
51
53
  $body-short-01: (
52
54
  font-size: carbon--rem($eccgui-size-typo-text),
53
- line-height: $eccgui-size-typo-text-lineheight / $eccgui-size-type-levelratio,
55
+ line-height: math.div($eccgui-size-typo-text-lineheight, $eccgui-size-type-levelratio),
54
56
  ) !default;
55
57
  $body-long-01: (
56
58
  font-size: carbon--rem($eccgui-size-typo-text),
@@ -59,7 +61,7 @@ $body-long-01: (
59
61
  $code-01: (
60
62
  font-family: $eccgui-font-family-monospace,
61
63
  font-size: carbon--rem($eccgui-size-typo-caption),
62
- line-height: $eccgui-size-typo-text-lineheight / $eccgui-size-type-levelratio,
64
+ line-height: math.div($eccgui-size-typo-text-lineheight, $eccgui-size-type-levelratio),
63
65
  ) !default;
64
66
  $heading-01: (
65
67
  font-size: carbon--rem($eccgui-size-typo-text),
package/src/index.ts CHANGED
@@ -247,7 +247,7 @@ export {
247
247
  Iframe,
248
248
  IframeModal,
249
249
  Utilities,
250
- LegacyReplacements,
250
+ LegacyReplacements
251
251
  };
252
252
 
253
253
  export * from "./cmem";
@@ -9,7 +9,7 @@ import { CLASSPREFIX as eccgui } from "../../configuration/constants";
9
9
  // deprecated interface
10
10
  interface TabsProps extends Omit<
11
11
  BlueprintTabsProps,
12
- "vertical" | "onChange" | "large" | "id" | "renderActiveTabPanelOnly"
12
+ "vertical" | "onChange" | "large" | "id" | "animate"
13
13
  > {
14
14
  activeTab: string;
15
15
  tabs: DeprecatedTabProps[];
@@ -69,7 +69,9 @@ export function TabsReplacement({
69
69
  (allowScrollbars ? ` ${eccgui}-tabs--scrollablelist` : "")
70
70
  }
71
71
  {...usagetype}
72
+ renderActiveTabPanelOnly={true}
72
73
  {...restProps}
74
+ animate={false}
73
75
  >
74
76
  {
75
77
  tabs.map(tab => {
@@ -1,8 +1,10 @@
1
1
  import React from 'react';
2
- import FieldItem from "../../components/Form/FieldItem";
3
- import TextField from "../../components/TextField/TextField";
4
- import TextArea from "../../components/TextField/TextArea";
5
- import IconButton from "../../components/Icon/IconButton";
2
+ import {
3
+ FieldItem,
4
+ TextField,
5
+ TextArea,
6
+ IconButton
7
+ } from "./../../index";
6
8
 
7
9
  const extendedOnChange = (onChangeFn: any, event: any) => {
8
10
  if (typeof onChangeFn === "function") {
@@ -47,7 +49,7 @@ export function TextFieldReplacement ({
47
49
  const fieldProperties = {
48
50
  className: className,
49
51
  messageText: error,
50
- labelAttributes: !!label ? { text: label } : {},
52
+ labelProps: !!label ? { text: label } : {},
51
53
  }
52
54
 
53
55
  const inputProperties: {[key: string]: any } = {