@eccenca/gui-elements 23.0.0-rc.3 → 23.0.0-rc.5

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 (197) hide show
  1. package/CHANGELOG.md +15 -0
  2. package/dist/cjs/cmem/ActivityControl/ActivityControlWidget.js +2 -1
  3. package/dist/cjs/cmem/ActivityControl/ActivityControlWidget.js.map +1 -1
  4. package/dist/cjs/common/utils/colorDecideContrastvalue.js +18 -0
  5. package/dist/cjs/common/utils/colorDecideContrastvalue.js.map +1 -0
  6. package/dist/cjs/common/utils/getColorConfiguration.js +9 -5
  7. package/dist/cjs/common/utils/getColorConfiguration.js.map +1 -1
  8. package/dist/cjs/components/AutoSuggestion/AutoSuggestion.js +18 -16
  9. package/dist/cjs/components/AutoSuggestion/AutoSuggestion.js.map +1 -1
  10. package/dist/cjs/components/AutoSuggestion/AutoSuggestionList.js +15 -2
  11. package/dist/cjs/components/AutoSuggestion/AutoSuggestionList.js.map +1 -1
  12. package/dist/cjs/components/AutoSuggestion/SingleLineCodeEditor.js +3 -2
  13. package/dist/cjs/components/AutoSuggestion/SingleLineCodeEditor.js.map +1 -1
  14. package/dist/cjs/components/AutocompleteField/AutoCompleteField.js +12 -14
  15. package/dist/cjs/components/AutocompleteField/AutoCompleteField.js.map +1 -1
  16. package/dist/cjs/components/Breadcrumb/BreadcrumbList.js +28 -8
  17. package/dist/cjs/components/Breadcrumb/BreadcrumbList.js.map +1 -1
  18. package/dist/cjs/components/Card/Card.js +1 -1
  19. package/dist/cjs/components/Card/CardContent.js.map +1 -1
  20. package/dist/cjs/components/ContextOverlay/ContextMenu.js +3 -3
  21. package/dist/cjs/components/ContextOverlay/ContextMenu.js.map +1 -1
  22. package/dist/cjs/components/Form/FieldItem.js +4 -1
  23. package/dist/cjs/components/Form/FieldItem.js.map +1 -1
  24. package/dist/cjs/components/Form/FieldItemRow.js +7 -6
  25. package/dist/cjs/components/Form/FieldItemRow.js.map +1 -1
  26. package/dist/cjs/components/Grid/Grid.js +1 -1
  27. package/dist/cjs/components/Grid/Grid.js.map +1 -1
  28. package/dist/cjs/components/Grid/GridColumn.js +1 -1
  29. package/dist/cjs/components/Grid/GridColumn.js.map +1 -1
  30. package/dist/cjs/components/Grid/GridRow.js.map +1 -1
  31. package/dist/cjs/components/HoverToggler/HoverToggler.js +33 -0
  32. package/dist/cjs/components/HoverToggler/HoverToggler.js.map +1 -0
  33. package/dist/cjs/components/Icon/canonicalIconNames.js +45 -0
  34. package/dist/cjs/components/Icon/canonicalIconNames.js.map +1 -1
  35. package/dist/cjs/components/InteractionGate/InteractionGate.js +67 -0
  36. package/dist/cjs/components/InteractionGate/InteractionGate.js.map +1 -0
  37. package/dist/cjs/components/Pagination/Pagination.js.map +1 -1
  38. package/dist/cjs/components/Spinner/Spinner.js +6 -6
  39. package/dist/cjs/components/Spinner/Spinner.js.map +1 -1
  40. package/dist/cjs/components/Switch/Switch.js +4 -2
  41. package/dist/cjs/components/Switch/Switch.js.map +1 -1
  42. package/dist/cjs/components/Tabs/Tab.js +2 -1
  43. package/dist/cjs/components/Tabs/Tab.js.map +1 -1
  44. package/dist/cjs/components/Tabs/TabPanel.js +29 -0
  45. package/dist/cjs/components/Tabs/TabPanel.js.map +1 -0
  46. package/dist/cjs/components/Tag/Tag.js +2 -1
  47. package/dist/cjs/components/Tag/Tag.js.map +1 -1
  48. package/dist/cjs/components/Tag/TagList.js +1 -1
  49. package/dist/cjs/components/Tag/TagList.js.map +1 -1
  50. package/dist/cjs/components/TextField/TextField.js +3 -0
  51. package/dist/cjs/components/TextField/TextField.js.map +1 -1
  52. package/dist/cjs/components/Tooltip/Tooltip.js +9 -2
  53. package/dist/cjs/components/Tooltip/Tooltip.js.map +1 -1
  54. package/dist/cjs/components/Tree/Tree.js +37 -0
  55. package/dist/cjs/components/Tree/Tree.js.map +1 -0
  56. package/dist/cjs/index.js +14 -5
  57. package/dist/cjs/index.js.map +1 -1
  58. package/dist/esm/cmem/ActivityControl/ActivityControlWidget.js +2 -1
  59. package/dist/esm/cmem/ActivityControl/ActivityControlWidget.js.map +1 -1
  60. package/dist/esm/common/utils/colorDecideContrastvalue.js +14 -0
  61. package/dist/esm/common/utils/colorDecideContrastvalue.js.map +1 -0
  62. package/dist/esm/common/utils/getColorConfiguration.js +9 -5
  63. package/dist/esm/common/utils/getColorConfiguration.js.map +1 -1
  64. package/dist/esm/components/AutoSuggestion/AutoSuggestion.js +35 -33
  65. package/dist/esm/components/AutoSuggestion/AutoSuggestion.js.map +1 -1
  66. package/dist/esm/components/AutoSuggestion/AutoSuggestionList.js +25 -2
  67. package/dist/esm/components/AutoSuggestion/AutoSuggestionList.js.map +1 -1
  68. package/dist/esm/components/AutoSuggestion/SingleLineCodeEditor.js +3 -2
  69. package/dist/esm/components/AutoSuggestion/SingleLineCodeEditor.js.map +1 -1
  70. package/dist/esm/components/AutocompleteField/AutoCompleteField.js +18 -20
  71. package/dist/esm/components/AutocompleteField/AutoCompleteField.js.map +1 -1
  72. package/dist/esm/components/Breadcrumb/BreadcrumbList.js +9 -8
  73. package/dist/esm/components/Breadcrumb/BreadcrumbList.js.map +1 -1
  74. package/dist/esm/components/Card/Card.js +1 -1
  75. package/dist/esm/components/Card/CardContent.js.map +1 -1
  76. package/dist/esm/components/ContextOverlay/ContextMenu.js +3 -3
  77. package/dist/esm/components/ContextOverlay/ContextMenu.js.map +1 -1
  78. package/dist/esm/components/Form/FieldItem.js +4 -1
  79. package/dist/esm/components/Form/FieldItem.js.map +1 -1
  80. package/dist/esm/components/Form/FieldItemRow.js +7 -6
  81. package/dist/esm/components/Form/FieldItemRow.js.map +1 -1
  82. package/dist/esm/components/Grid/Grid.js +1 -1
  83. package/dist/esm/components/Grid/Grid.js.map +1 -1
  84. package/dist/esm/components/Grid/GridColumn.js +1 -1
  85. package/dist/esm/components/Grid/GridColumn.js.map +1 -1
  86. package/dist/esm/components/Grid/GridRow.js.map +1 -1
  87. package/dist/esm/components/HoverToggler/HoverToggler.js +37 -0
  88. package/dist/esm/components/HoverToggler/HoverToggler.js.map +1 -0
  89. package/dist/esm/components/Icon/canonicalIconNames.js +45 -0
  90. package/dist/esm/components/Icon/canonicalIconNames.js.map +1 -1
  91. package/dist/esm/components/InteractionGate/InteractionGate.js +54 -0
  92. package/dist/esm/components/InteractionGate/InteractionGate.js.map +1 -0
  93. package/dist/esm/components/Pagination/Pagination.js.map +1 -1
  94. package/dist/esm/components/Spinner/Spinner.js +7 -7
  95. package/dist/esm/components/Spinner/Spinner.js.map +1 -1
  96. package/dist/esm/components/Switch/Switch.js +4 -2
  97. package/dist/esm/components/Switch/Switch.js.map +1 -1
  98. package/dist/esm/components/Tabs/Tab.js +2 -1
  99. package/dist/esm/components/Tabs/Tab.js.map +1 -1
  100. package/dist/esm/components/Tabs/TabPanel.js +35 -0
  101. package/dist/esm/components/Tabs/TabPanel.js.map +1 -0
  102. package/dist/esm/components/Tag/Tag.js +2 -1
  103. package/dist/esm/components/Tag/Tag.js.map +1 -1
  104. package/dist/esm/components/Tag/TagList.js +1 -1
  105. package/dist/esm/components/Tag/TagList.js.map +1 -1
  106. package/dist/esm/components/TextField/TextField.js +3 -0
  107. package/dist/esm/components/TextField/TextField.js.map +1 -1
  108. package/dist/esm/components/Tooltip/Tooltip.js +9 -2
  109. package/dist/esm/components/Tooltip/Tooltip.js.map +1 -1
  110. package/dist/esm/components/Tree/Tree.js +40 -0
  111. package/dist/esm/components/Tree/Tree.js.map +1 -0
  112. package/dist/esm/index.js +10 -5
  113. package/dist/esm/index.js.map +1 -1
  114. package/dist/types/cmem/ActivityControl/ActivityControlTypes.d.ts +1 -0
  115. package/dist/types/cmem/markdown/Markdown.d.ts +1 -2
  116. package/dist/types/common/utils/colorDecideContrastvalue.d.ts +9 -0
  117. package/dist/types/components/AutoSuggestion/AutoSuggestion.d.ts +7 -1
  118. package/dist/types/components/AutoSuggestion/AutoSuggestionList.d.ts +3 -3
  119. package/dist/types/components/AutoSuggestion/SingleLineCodeEditor.d.ts +1 -1
  120. package/dist/types/components/AutocompleteField/AutoCompleteField.d.ts +1 -1
  121. package/dist/types/components/Card/CardContent.d.ts +2 -2
  122. package/dist/types/components/ContextOverlay/ContextMenu.d.ts +3 -1
  123. package/dist/types/components/Form/FieldItem.d.ts +6 -3
  124. package/dist/types/components/Form/FieldItemRow.d.ts +11 -3
  125. package/dist/types/components/Grid/Grid.d.ts +6 -1
  126. package/dist/types/components/Grid/GridColumn.d.ts +8 -1
  127. package/dist/types/components/Grid/GridRow.d.ts +7 -1
  128. package/dist/types/components/HoverToggler/HoverToggler.d.ts +24 -0
  129. package/dist/types/components/Icon/canonicalIconNames.d.ts +1 -1
  130. package/dist/types/components/InteractionGate/InteractionGate.d.ts +28 -0
  131. package/dist/types/components/Notification/Notification.d.ts +1 -1
  132. package/dist/types/components/Pagination/Pagination.d.ts +21 -4
  133. package/dist/types/components/Spinner/Spinner.d.ts +7 -1
  134. package/dist/types/components/Switch/Switch.d.ts +5 -1
  135. package/dist/types/components/Tabs/TabPanel.d.ts +21 -0
  136. package/dist/types/components/Tooltip/Tooltip.d.ts +12 -1
  137. package/dist/types/components/Tree/Tree.d.ts +43 -0
  138. package/dist/types/index.d.ts +6 -2
  139. package/package.json +3 -2
  140. package/src/cmem/ActivityControl/ActivityControlTypes.ts +3 -1
  141. package/src/cmem/ActivityControl/ActivityControlWidget.tsx +2 -1
  142. package/src/cmem/markdown/Markdown.tsx +1 -1
  143. package/src/common/utils/colorDecideContrastvalue.ts +28 -0
  144. package/src/common/utils/getColorConfiguration.ts +10 -5
  145. package/src/components/AutoSuggestion/AutoSuggestion.scss +16 -10
  146. package/src/components/AutoSuggestion/AutoSuggestion.tsx +81 -52
  147. package/src/components/AutoSuggestion/AutoSuggestionList.tsx +7 -3
  148. package/src/components/AutoSuggestion/SingleLineCodeEditor.tsx +8 -3
  149. package/src/components/AutoSuggestion/tests/AutoSuggestionList.test.tsx +1 -1
  150. package/src/components/AutoSuggestion/tests/SingleLineCodeEditor.test.tsx +2 -1
  151. package/src/components/AutocompleteField/AutoCompleteField.tsx +10 -8
  152. package/src/components/AutocompleteField/stories/AutoCompleteField.stories.tsx +15 -4
  153. package/src/components/Breadcrumb/BreadcrumbList.tsx +10 -8
  154. package/src/components/Breadcrumb/breadcrumb.scss +4 -0
  155. package/src/components/Breadcrumb/stories/BreadcrumbList.stories.tsx +1 -0
  156. package/src/components/Card/Card.tsx +1 -1
  157. package/src/components/Card/CardContent.tsx +2 -2
  158. package/src/components/ContextOverlay/ContextMenu.tsx +4 -0
  159. package/src/components/Form/FieldItem.tsx +6 -3
  160. package/src/components/Form/FieldItemRow.tsx +28 -6
  161. package/src/components/Form/form.scss +6 -0
  162. package/src/components/Grid/Grid.tsx +9 -3
  163. package/src/components/Grid/GridColumn.tsx +10 -2
  164. package/src/components/Grid/GridRow.tsx +8 -1
  165. package/src/components/HoverToggler/HoverToggler.stories.tsx +20 -0
  166. package/src/components/HoverToggler/HoverToggler.tsx +58 -0
  167. package/src/components/HoverToggler/hovertoggler.scss +45 -0
  168. package/src/components/Icon/canonicalIconNames.tsx +58 -0
  169. package/src/components/InteractionGate/InteractionGate.stories.tsx +32 -0
  170. package/src/components/InteractionGate/InteractionGate.tsx +76 -0
  171. package/src/components/InteractionGate/interactiongate.scss +11 -0
  172. package/src/components/Link/link.scss +9 -0
  173. package/src/components/Notification/Notification.tsx +1 -1
  174. package/src/components/Pagination/Pagination.tsx +22 -6
  175. package/src/components/SimpleTable/simpletable.scss +62 -2
  176. package/src/components/Spinner/Spinner.tsx +13 -5
  177. package/src/components/Spinner/spinner.scss +14 -0
  178. package/src/components/Switch/Switch.tsx +10 -5
  179. package/src/components/Tabs/Tab.tsx +2 -1
  180. package/src/components/Tabs/TabPanel.tsx +43 -0
  181. package/src/components/Tabs/stories/TabPanel.stories.tsx +21 -0
  182. package/src/components/Tabs/tabs.scss +1 -5
  183. package/src/components/Tag/Tag.tsx +2 -1
  184. package/src/components/Tag/TagList.tsx +1 -1
  185. package/src/components/Tag/tag.scss +1 -0
  186. package/src/components/TextField/TextField.tsx +4 -0
  187. package/src/components/TextField/stories/TextField.stories.tsx +1 -0
  188. package/src/components/TextField/textfield.scss +25 -1
  189. package/src/components/Tooltip/Tooltip.stories.tsx +15 -7
  190. package/src/components/Tooltip/Tooltip.tsx +24 -1
  191. package/src/components/Tooltip/tooltip.scss +4 -0
  192. package/src/components/Tree/Tree.stories.tsx +63 -0
  193. package/src/components/Tree/Tree.tsx +61 -0
  194. package/src/components/Tree/tree.scss +28 -0
  195. package/src/includes/carbon-components/_variables.scss +3 -1
  196. package/src/index.scss +5 -2
  197. package/src/index.ts +16 -5
@@ -4,7 +4,7 @@
4
4
  $eccgui-size-textfield-height-small: $eccgui-size-block-whitespace * 2 !default;
5
5
  $eccgui-size-textfield-height-regular: $eccgui-size-textfield-height-small * $eccgui-size-type-levelratio !default;
6
6
  $eccgui-size-textfield-height-large: $eccgui-size-textfield-height-regular * $eccgui-size-type-levelratio *
7
- $eccgui-size-type-levelratio !default;
7
+ $eccgui-size-type-levelratio !default;
8
8
  $eccgui-size-textfield-padding-horizontal-regular: $eccgui-size-inline-whitespace !default;
9
9
  $eccgui-size-textfield-padding-horizontal-small: $eccgui-size-inline-whitespace * 0.5 !default;
10
10
  $eccgui-typo-textfield-fontweight: $eccgui-font-weight-regular !default;
@@ -45,6 +45,30 @@ $input-button-height-small: math.div($eccgui-size-textfield-height-small, $eccgu
45
45
 
46
46
  // enhancements
47
47
 
48
+ @mixin intent-state-flash($state, $bgcolor, $mixratio: 24%) {
49
+ @keyframes intent-state-flash-#{$state} {
50
+ 0% { background-color: mix($bgcolor, $eccgui-color-textfield-background, $mixratio); }
51
+ 39% { background-color: $bgcolor; }
52
+ 100% { background-color: mix($bgcolor, $eccgui-color-textfield-background, $mixratio); }
53
+ }
54
+
55
+ .#{$ns}-input-group.#{$ns}-intent-#{$state} & {
56
+ animation-name: intent-state-flash-#{$state};
57
+ background-color: mix($bgcolor, $eccgui-color-textfield-background, $mixratio);
58
+ }
59
+ }
60
+
61
+ .#{$ns}-input {
62
+ .#{$ns}-input-group[class*="#{$ns}-intent"] & {
63
+ animation-delay: 0.5s;
64
+ animation-duration: 1s;
65
+ }
66
+ @include intent-state-flash("primary", $eccgui-color-info-background);
67
+ @include intent-state-flash("success", $eccgui-color-success-background);
68
+ @include intent-state-flash("warning", $eccgui-color-warning-background);
69
+ @include intent-state-flash("danger", $eccgui-color-danger-background);
70
+ }
71
+
48
72
  .#{$eccgui}-textarea {
49
73
  width: 100%;
50
74
  }
@@ -17,20 +17,28 @@ const Template: ComponentStory<typeof Tooltip> = (args) => (
17
17
  <Tooltip {...args} />
18
18
  );
19
19
 
20
+ const testContent = loremIpsum({
21
+ p: 1,
22
+ avgSentencesPerParagraph: 2,
23
+ random: false
24
+ }).toString()
25
+
20
26
  export const Default = Template.bind({});
21
27
  Default.args = {
22
28
  children: <span>hover me</span>,
23
- content: loremIpsum({
24
- p: 1,
25
- avgSentencesPerParagraph: 2,
26
- random: false
27
- }).toString(),
29
+ content: testContent,
28
30
  addIndicator: true,
29
- // this is a workaround to prevent empty functions in code example
31
+ // Workaround: setting handlers to false is the only way to prevent Storybook to insert empty handlers in the code examples
30
32
  onClose: false,
31
- // onClosed: false, // this somehow leads to a problem when closed with `<span>` target
32
33
  onClosing: false,
34
+ //onClosed: false,
33
35
  onInteraction: false,
34
36
  onOpened: false,
35
37
  onOpening: false,
36
38
  }
39
+
40
+ export const MarkdownSupport = Template.bind({});
41
+ MarkdownSupport.args = {
42
+ ...Default.args,
43
+ content: "### This is a headline" + "\n\n" + testContent,
44
+ }
@@ -6,6 +6,7 @@ import {
6
6
  Tooltip2 as BlueprintTooltip,
7
7
  Tooltip2Props as BlueprintTooltipProps
8
8
  } from "@blueprintjs/popover2";
9
+ import { MarkdownParserProps, Markdown } from "./../../cmem/markdown/Markdown";
9
10
  import { CLASSPREFIX as eccgui } from "../../configuration/constants";
10
11
 
11
12
  export interface TooltipProps extends Omit<BlueprintTooltipProps, "position"> {
@@ -22,6 +23,16 @@ export interface TooltipProps extends Omit<BlueprintTooltipProps, "position"> {
22
23
  * The tolltip will be attached to this element when it is hovered.
23
24
  */
24
25
  children: React.ReactNode | React.ReactNode[];
26
+ /**
27
+ * A regular expression that when it matches against the tooltip text, enables the tooltip to be rendered as Markdown.
28
+ * This only works if the tooltip content is a string.
29
+ * Set to `false` to turn off Markdown rendering completely.
30
+ */
31
+ markdownEnabler?: false | string;
32
+ /**
33
+ * Set properties for the Markdown parser
34
+ */
35
+ markdownProps?: Omit<MarkdownParserProps, "children">;
25
36
  }
26
37
 
27
38
  function Tooltip({
@@ -30,14 +41,26 @@ function Tooltip({
30
41
  className = "",
31
42
  size = "medium",
32
43
  addIndicator = false,
44
+ markdownEnabler = "\n\n",
45
+ markdownProps,
33
46
  ...otherProps
34
47
  }: TooltipProps) {
48
+ let tooltipContent = content;
49
+
50
+ if (
51
+ typeof content === "string" &&
52
+ typeof markdownEnabler === "string" &&
53
+ new RegExp(markdownEnabler).test(content)
54
+ ) {
55
+ tooltipContent = <Markdown {...markdownProps}>{content}</Markdown>;
56
+ }
57
+
35
58
  return (
36
59
  <BlueprintTooltip
37
60
  lazy={true}
38
61
  hoverOpenDelay={500}
39
62
  {...otherProps}
40
- content={content}
63
+ content={tooltipContent}
41
64
  className={
42
65
  `${eccgui}-tooltip__wrapper` +
43
66
  (className ? " " + className : "") +
@@ -29,6 +29,10 @@ $tooltip2-padding-horizontal: $eccgui-size-block-whitespace * 0.5; // !default;
29
29
  max-width: $eccgui-size-tooltip-width * 2;
30
30
  }
31
31
 
32
+ .#{$eccgui}-tooltip__wrapper:not(.#{$ns}-tooltip2-indicator) {
33
+ cursor: inherit;
34
+ }
35
+
32
36
  .#{$eccgui}-tooltip__content {
33
37
  a {
34
38
  color: inherit;
@@ -0,0 +1,63 @@
1
+ import React from "react";
2
+ import { ComponentStory, ComponentMeta } from "@storybook/react";
3
+ import { Tree, TreeNodeInfo, Tag, OverflowText, Icon } from "./../../index";
4
+ import { TreeNodeShadow as TreeNode } from "./Tree";
5
+
6
+ export default {
7
+ title: "Components/Tree",
8
+ component: Tree,
9
+ subcomponents: { TreeNode },
10
+ argTypes: {
11
+ },
12
+ } as ComponentMeta<typeof Tree>;
13
+
14
+ const Template: ComponentStory<typeof Tree> = (args) => {
15
+ const [treeContents, setTreeContents] = React.useState(args.contents);
16
+
17
+ return (
18
+ <Tree
19
+ {...args}
20
+ contents={treeContents}
21
+ /*
22
+ FIXME: should be demonstrated but is not the focus here
23
+ onNodeCollapse={toggleNode}
24
+ onNodeExpand={toggleNode}
25
+ */
26
+ />
27
+ );
28
+ };
29
+
30
+ export const Default = Template.bind({});
31
+ Default.args = {
32
+ contents: [
33
+ {
34
+ id: 0,
35
+ label: "Tree item 1",
36
+ isExpanded: true,
37
+ childNodes: [
38
+ {
39
+ id: 1,
40
+ label: <>Tree item 1a with{" "}<Tag>Tag</Tag></>,
41
+ },
42
+ {
43
+ id: 2,
44
+ label: "Tree item 1b with a very long label that is not ellipsed on overflow",
45
+ },
46
+ {
47
+ id: 3,
48
+ label: <OverflowText inline>Tree item 1c with a very long label that is ellipsed on overflow</OverflowText>,
49
+ },
50
+ {
51
+ id: 4,
52
+ label: "Tree item 1d with icon",
53
+ icon: <Icon name="item-info" />
54
+ },
55
+ ]
56
+ },
57
+ {
58
+ id: 5,
59
+ label: "Tree item 2",
60
+ hasCaret: true,
61
+ },
62
+ ] as TreeNodeInfo[]
63
+ }
@@ -0,0 +1,61 @@
1
+ import * as React from "react";
2
+ import {
3
+ Tree as BlueprintTree,
4
+ TreeProps as BlueprintTreeProps,
5
+ TreeNode as BlueprintTreeNode,
6
+ TreeNodeInfo as BlueprintTreeNodeInfo,
7
+ } from "@blueprintjs/core";
8
+ import { IconProps } from "./../Icon/Icon";
9
+
10
+ /* This is basically a tunnel to the Blueprint elements but we change a view thigs regarding the icons */
11
+
12
+ // TreeNode
13
+
14
+ export interface TreeNodeInfo<T = {}> extends Omit<BlueprintTreeNodeInfo<T>, "childNodes" | "icon"> {
15
+ /**
16
+ * Child tree nodes of this node.
17
+ */
18
+ childNodes?: Array<TreeNodeInfo<T>>;
19
+ /**
20
+ * `<Icon />` element to render next to the node's label.
21
+ */
22
+ icon?: React.ReactElement<IconProps>;
23
+ }
24
+
25
+ //export const TreeNode = BlueprintTreeNode;
26
+
27
+ export interface TreeNodeProps<T = {}> extends TreeNodeInfo<T> {
28
+ children?: React.ReactNode;
29
+ contentRef?: (node: TreeNode<T>, element: HTMLDivElement | null) => void;
30
+ depth: number;
31
+ key?: string | number;
32
+ onClick?: (node: TreeNode<T>, e: React.MouseEvent<HTMLDivElement>) => void;
33
+ onCollapse?: (node: TreeNode<T>, e: React.MouseEvent<HTMLSpanElement>) => void;
34
+ onContextMenu?: (node: TreeNode<T>, e: React.MouseEvent<HTMLDivElement>) => void;
35
+ onDoubleClick?: (node: TreeNode<T>, e: React.MouseEvent<HTMLDivElement>) => void;
36
+ onExpand?: (node: TreeNode<T>, e: React.MouseEvent<HTMLSpanElement>) => void;
37
+ onMouseEnter?: (node: TreeNode<T>, e: React.MouseEvent<HTMLDivElement>) => void;
38
+ onMouseLeave?: (node: TreeNode<T>, e: React.MouseEvent<HTMLDivElement>) => void;
39
+ path: number[];
40
+ }
41
+ export class TreeNode<T = {}> extends BlueprintTreeNode<TreeNodeProps<T>> {
42
+ }
43
+ export class TreeNodeShadow<T = {}> extends React.Component<TreeNodeProps<T>> {
44
+ // only provided for Storybook, so it can read the correct interface
45
+ }
46
+
47
+ // Tree
48
+
49
+ export interface TreeProps<T = {}> extends Omit<BlueprintTreeProps<T>, "contents"> {
50
+ /**
51
+ * Tree contents.
52
+ */
53
+ contents: ReadonlyArray<TreeNodeInfo<T>>;
54
+ }
55
+
56
+ /**
57
+ * Tree component to display a tree structure.
58
+ * Have a look to the underlaying [BlueprintJS Tree](https://blueprintjs.com/docs/#core/components/tree) component for examples how to use handlers.
59
+ * Use only our `<Icon />` elements in the tree nodes!
60
+ */
61
+ export const Tree = BlueprintTree;
@@ -0,0 +1,28 @@
1
+ @import "~@blueprintjs/core/src/components/tree/tree";
2
+
3
+ .#{$ns}-tree {
4
+ overflow-x: hidden;
5
+ }
6
+
7
+ .#{$ns}-tree-node-content {
8
+ & > .#{$eccgui}-icon {
9
+ margin-right: $eccgui-size-inline-whitespace;
10
+ }
11
+ }
12
+
13
+ .#{$ns}-tree-node-label {
14
+ overflow: visible;
15
+ min-width: 0;
16
+
17
+ span {
18
+ display: inherit;
19
+ }
20
+
21
+ & > span {
22
+ display: inline-block;
23
+ }
24
+
25
+ .#{$ns}-tag {
26
+ display: inline-flex;
27
+ }
28
+ }
@@ -30,7 +30,7 @@ $feature-flags: (
30
30
  // not necessary, we include 16 columns grid directly
31
31
  ) !default;
32
32
 
33
- // ⚠️ Manage deprecations
33
+ // Manage deprecations
34
34
  $deprecations--entry: true;
35
35
  $deprecations--reasons: ();
36
36
  $deprecations--message: "Deprecated code was found, this code will be removed before the next release of Carbon.";
@@ -105,5 +105,7 @@ $layout-04: carbon--rem(
105
105
  ) !default; // regular height of text input
106
106
  $spacing-05: carbon--rem($eccgui-size-inline-whitespace) !default;
107
107
 
108
+ // FIXME: for some unknown reasons it is not possible to set the $layer* vars here, for example they are used to color the tables
109
+
108
110
  // fetch some imports even earlier than normally necessary to have them ready before auto-included by library elements
109
111
  @import "./../../components/Button/button";
package/src/index.scss CHANGED
@@ -59,7 +59,7 @@
59
59
  // used in own component @import "~@blueprintjs/core/src/components/tag-input/tag-input";
60
60
  // used in own component @import "~@blueprintjs/core/src/components/toast/toast";
61
61
  // used in own component @import "~@blueprintjs/core/src/components/tooltip/tooltip";
62
- // currently not used @import "~@blueprintjs/core/src/components/tree/tree";
62
+ // used in own component @import "~@blueprintjs/core/src/components/tree/tree";
63
63
 
64
64
  // -- Carbon Elements ----------------------------------------------------------
65
65
 
@@ -142,7 +142,6 @@
142
142
  @import "./components/Icon/icon";
143
143
  @import "./components/Menu/menu";
144
144
  @import "./components/ContextOverlay/contextoverlay";
145
- @import "./components/SimpleTable/simpletable";
146
145
  @import "./components/Button/button";
147
146
  @import "./components/OverviewItem/overviewitem";
148
147
  @import "./components/Breadcrumb/breadcrumb";
@@ -165,11 +164,15 @@
165
164
  @import "./components/Notification/notification";
166
165
  @import "./components/Link/link";
167
166
  @import "./components/Spinner/spinner";
167
+ @import "./components/InteractionGate/interactiongate";
168
168
  @import "./components/Tabs/tabs";
169
169
  @import "./components/PropertyValuePair/propertyvalue";
170
170
  @import "./components/Iframe/iframe";
171
171
  @import "./components/AutoSuggestion/AutoSuggestion";
172
172
  @import "./components/Select/select";
173
+ @import "./components/HoverToggler/hovertoggler";
174
+ @import "./components/SimpleTable/simpletable";
175
+ @import "./components/Tree/tree";
173
176
  @import "./extensions/codemirror/codemirror";
174
177
 
175
178
  // == load tweaks ==============================================================
package/src/index.ts CHANGED
@@ -21,6 +21,8 @@ import Grid from "./components/Grid/Grid";
21
21
  import GridRow from "./components/Grid/GridRow";
22
22
  import GridColumn from "./components/Grid/GridColumn";
23
23
 
24
+ import {HoverToggler} from "./components/HoverToggler/HoverToggler";
25
+
24
26
  import WorkspaceContent from "./components/Workspace/WorkspaceContent";
25
27
  import WorkspaceMain from "./components/Workspace/WorkspaceMain";
26
28
  import WorkspaceSide from "./components/Workspace/WorkspaceSide";
@@ -36,6 +38,7 @@ import RadioButton from "./components/RadioButton/RadioButton";
36
38
  import Tabs from "./components/Tabs/Tabs";
37
39
  import Tab from "./components/Tabs/Tab";
38
40
  import TabTitle from "./components/Tabs/TabTitle";
41
+ import TabPanel from "./components/Tabs/TabPanel";
39
42
  import TextField from "./components/TextField/TextField";
40
43
  import TextArea from "./components/TextField/TextArea";
41
44
  import SearchField from "./components/TextField/SearchField";
@@ -123,24 +126,28 @@ import AccordionItem from "./components/Accordion/AccordionItem";
123
126
  import Link from "./components/Link/Link";
124
127
 
125
128
  import Spinner from "./components/Spinner/Spinner";
129
+ import InteractionGate from "./components/InteractionGate/InteractionGate";
126
130
 
127
131
  import { PropertyName, PropertyValue, PropertyValuePair, PropertyValueList } from "./components/PropertyValuePair";
128
132
 
129
133
  import * as TypographyClassNames from "./components/Typography/classnames";
130
- import {ClassNames as IntentClassNames} from "./common/Intent";
131
- import { openInNewTab } from "./common/utils/openInNewTab";
132
134
  import { ProgressBar } from "./components/ProgressBar/ProgressBar";
133
135
  import List from "./components/List/List";
134
136
 
135
137
  import * as LegacyReplacements from "./legacy-replacements";
136
138
 
139
+ import {ClassNames as IntentClassNames} from "./common/Intent";
140
+ import { openInNewTab } from "./common/utils/openInNewTab";
141
+ import decideContrastColorValue from "./common/utils/colorDecideContrastvalue";
142
+
137
143
  const HelperClasses = {
138
144
  Typography: TypographyClassNames,
139
145
  Intent: IntentClassNames,
140
146
  };
141
147
 
142
148
  const Utilities = {
143
- openInNewTab
149
+ openInNewTab,
150
+ decideContrastColorValue
144
151
  }
145
152
 
146
153
  export {
@@ -196,6 +203,7 @@ export {
196
203
  Tabs,
197
204
  Tab,
198
205
  TabTitle,
206
+ TabPanel,
199
207
  TextField,
200
208
  TextArea,
201
209
  SearchField,
@@ -216,6 +224,7 @@ export {
216
224
  CardContent,
217
225
  CardActions,
218
226
  CardActionsAux,
227
+ HoverToggler,
219
228
  Spacing,
220
229
  Divider,
221
230
  Tooltip,
@@ -234,22 +243,24 @@ export {
234
243
  Notification,
235
244
  Link,
236
245
  Spinner,
246
+ InteractionGate,
237
247
  PropertyName,
238
248
  PropertyValue,
239
249
  PropertyValuePair,
240
250
  PropertyValueList,
241
251
  Toast,
242
252
  HelperClasses,
243
- Select, // FIXME: CMEM-3742: include as own element
253
+ Select,
244
254
  MultiSelect,
245
255
  AutoCompleteField,
246
256
  ProgressBar,
247
257
  Iframe,
248
258
  IframeModal,
249
259
  Utilities,
250
- LegacyReplacements
260
+ LegacyReplacements,
251
261
  };
252
262
 
263
+ export * from "./components/Tree/Tree";
253
264
  export * from "./cmem";
254
265
  export * from "./extensions";
255
266
  export * from "./components/interfaces";