@eccenca/gui-elements 24.4.1-featurepreparefinalnextcmem6943.2 → 25.0.0-rc.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 (75) hide show
  1. package/CHANGELOG.md +29 -12
  2. package/dist/cjs/components/AutocompleteField/AutoCompleteField.js +1 -1
  3. package/dist/cjs/components/AutocompleteField/AutoCompleteField.js.map +1 -1
  4. package/dist/cjs/components/Button/Button.js +1 -1
  5. package/dist/cjs/components/Button/Button.js.map +1 -1
  6. package/dist/cjs/components/Dialog/Modal.js +15 -3
  7. package/dist/cjs/components/Dialog/Modal.js.map +1 -1
  8. package/dist/cjs/components/Dialog/ModalContext.js +45 -0
  9. package/dist/cjs/components/Dialog/ModalContext.js.map +1 -0
  10. package/dist/cjs/components/Dialog/index.js +1 -0
  11. package/dist/cjs/components/Dialog/index.js.map +1 -1
  12. package/dist/cjs/components/Icon/canonicalIconNames.js +4 -0
  13. package/dist/cjs/components/Icon/canonicalIconNames.js.map +1 -1
  14. package/dist/cjs/components/Spinner/Spinner.js +2 -1
  15. package/dist/cjs/components/Spinner/Spinner.js.map +1 -1
  16. package/dist/cjs/extensions/react-flow/nodes/NodeContent.js +2 -2
  17. package/dist/cjs/extensions/react-flow/nodes/NodeContent.js.map +1 -1
  18. package/dist/esm/components/AutocompleteField/AutoCompleteField.js +1 -1
  19. package/dist/esm/components/AutocompleteField/AutoCompleteField.js.map +1 -1
  20. package/dist/esm/components/Button/Button.js +1 -1
  21. package/dist/esm/components/Button/Button.js.map +1 -1
  22. package/dist/esm/components/Dialog/Modal.js +15 -3
  23. package/dist/esm/components/Dialog/Modal.js.map +1 -1
  24. package/dist/esm/components/Dialog/ModalContext.js +63 -0
  25. package/dist/esm/components/Dialog/ModalContext.js.map +1 -0
  26. package/dist/esm/components/Dialog/index.js +1 -0
  27. package/dist/esm/components/Dialog/index.js.map +1 -1
  28. package/dist/esm/components/Icon/canonicalIconNames.js +4 -0
  29. package/dist/esm/components/Icon/canonicalIconNames.js.map +1 -1
  30. package/dist/esm/components/Spinner/Spinner.js +2 -1
  31. package/dist/esm/components/Spinner/Spinner.js.map +1 -1
  32. package/dist/esm/extensions/react-flow/nodes/NodeContent.js +2 -2
  33. package/dist/esm/extensions/react-flow/nodes/NodeContent.js.map +1 -1
  34. package/dist/types/components/Button/Button.d.ts +14 -7
  35. package/dist/types/components/Dialog/Modal.d.ts +9 -1
  36. package/dist/types/components/Dialog/ModalContext.d.ts +13 -0
  37. package/dist/types/components/Dialog/index.d.ts +1 -0
  38. package/dist/types/components/Icon/canonicalIconNames.d.ts +4 -0
  39. package/dist/types/components/Spinner/Spinner.d.ts +11 -4
  40. package/dist/types/extensions/react-flow/edges/EdgeLabel.d.ts +1 -1
  41. package/package.json +1 -1
  42. package/src/cmem/react-flow/_minimap.scss +10 -0
  43. package/src/cmem/react-flow/configuration/_colors-graph.scss +12 -12
  44. package/src/cmem/react-flow/configuration/_colors-linking.scss +8 -8
  45. package/src/cmem/react-flow/configuration/_colors-workflow.scss +11 -11
  46. package/src/common/scss/_color-functions.scss +5 -0
  47. package/src/components/AutocompleteField/AutoCompleteField.tsx +1 -0
  48. package/src/components/Button/Button.stories.tsx +7 -1
  49. package/src/components/Button/Button.tsx +16 -9
  50. package/src/components/Button/button.scss +86 -24
  51. package/src/components/Chat/stories/ChatField.stories.tsx +6 -1
  52. package/src/components/Dialog/Modal.tsx +28 -3
  53. package/src/components/Dialog/ModalContext.tsx +48 -0
  54. package/src/components/Dialog/index.ts +1 -0
  55. package/src/components/Dialog/stories/Modal.stories.tsx +143 -2
  56. package/src/components/Icon/canonicalIconNames.tsx +4 -0
  57. package/src/components/Icon/icon.scss +6 -0
  58. package/src/components/Icon/stories/Icon.stories.tsx +65 -5
  59. package/src/components/Icon/stories/IconButton.stories.tsx +2 -1
  60. package/src/components/Notification/Notification.stories.tsx +20 -6
  61. package/src/components/Notification/notification.scss +7 -2
  62. package/src/components/ProgressBar/Stories/ProgressBar.stories.tsx +7 -1
  63. package/src/components/Select/Select.stories.tsx +1 -1
  64. package/src/components/Spinner/Spinner.tsx +13 -3
  65. package/src/components/Spinner/Stories/spinner.stories.tsx +1 -1
  66. package/src/components/Spinner/spinner.scss +5 -1
  67. package/src/components/Tag/tag.scss +89 -68
  68. package/src/components/TextField/textfield.scss +23 -15
  69. package/src/components/VisualTour/stories/VisualTour.stories.tsx +1 -1
  70. package/src/configuration/_palettes.scss +1 -0
  71. package/src/extensions/react-flow/_react-flow_v12.scss +10 -14
  72. package/src/extensions/react-flow/edges/EdgeLabel.tsx +1 -1
  73. package/src/extensions/react-flow/edges/_edges.scss +4 -0
  74. package/src/extensions/react-flow/edges/stories/EdgeDefault.stories.tsx +5 -5
  75. package/src/extensions/react-flow/nodes/NodeContent.tsx +2 -2
@@ -2,7 +2,18 @@ import React from "react";
2
2
  import { OverlaysProvider } from "@blueprintjs/core";
3
3
  import { Meta, StoryFn } from "@storybook/react";
4
4
 
5
- import { Button, Icon } from "../../../../index";
5
+ import {
6
+ Card,
7
+ FlexibleLayoutContainer,
8
+ FlexibleLayoutItem,
9
+ Icon,
10
+ OverflowText,
11
+ OverviewItem,
12
+ OverviewItemDepiction,
13
+ OverviewItemDescription,
14
+ OverviewItemLine,
15
+ TitleSubsection,
16
+ } from "../../../../index";
6
17
  import { Definitions } from "../../../common/Intent";
7
18
  import BaseIcon from "../BaseIcon";
8
19
 
@@ -19,7 +30,8 @@ export default {
19
30
  },
20
31
  intent: {
21
32
  control: "select",
22
- options: { ...Definitions },
33
+ options: [...Object.keys(Definitions)],
34
+ mapping: { ...Definitions },
23
35
  },
24
36
  },
25
37
  } as Meta<typeof Icon>;
@@ -49,12 +61,60 @@ IconSizes.args = {
49
61
  name: "undefined",
50
62
  };
51
63
 
64
+ /**
65
+ * Available icons by their canonical names.
66
+ * If you need another icon then use `<TestIcon /`> component.
67
+ */
52
68
  export const IconsOverview = () => {
69
+ let section = "";
70
+ let separation = <></>;
53
71
  return (
54
72
  <OverlaysProvider>
55
- {Object.keys(canonicalIcons).map((iconName) => {
56
- return <Button icon={iconName as ValidIconName} outlined large tooltip={iconName} key={iconName} />;
57
- })}
73
+ <FlexibleLayoutContainer
74
+ noEqualItemSpace
75
+ gapSize="small"
76
+ style={{ flexWrap: "wrap", justifyContent: "flex-start" }}
77
+ >
78
+ {Object.keys(canonicalIcons)
79
+ .sort()
80
+ .map((iconName) => {
81
+ if (
82
+ section !==
83
+ iconName.substring(0, iconName.indexOf("-") > 0 ? iconName.indexOf("-") : iconName.length)
84
+ ) {
85
+ section = iconName.substring(
86
+ 0,
87
+ iconName.indexOf("-") > 0 ? iconName.indexOf("-") : iconName.length
88
+ );
89
+ separation = (
90
+ <FlexibleLayoutItem style={{ width: "100%", padding: "1rem 0 0.5rem 0" }}>
91
+ <TitleSubsection>{section}</TitleSubsection>
92
+ </FlexibleLayoutItem>
93
+ );
94
+ } else {
95
+ separation = <></>;
96
+ }
97
+ return (
98
+ <React.Fragment key={iconName}>
99
+ {separation}
100
+ <FlexibleLayoutItem growFactor={0} style={{ width: "20rem" }}>
101
+ <Card>
102
+ <OverviewItem>
103
+ <OverviewItemDepiction keepColors>
104
+ <Icon name={iconName as ValidIconName} />
105
+ </OverviewItemDepiction>
106
+ <OverviewItemDescription>
107
+ <OverviewItemLine small>
108
+ <OverflowText>{iconName}</OverflowText>
109
+ </OverviewItemLine>
110
+ </OverviewItemDescription>
111
+ </OverviewItem>
112
+ </Card>
113
+ </FlexibleLayoutItem>
114
+ </React.Fragment>
115
+ );
116
+ })}
117
+ </FlexibleLayoutContainer>
58
118
  </OverlaysProvider>
59
119
  );
60
120
  };
@@ -5,13 +5,13 @@ import { Meta, StoryFn } from "@storybook/react";
5
5
 
6
6
  import { IconButton, TestIcon } from "../../../../index";
7
7
 
8
+ import buttonStory from "./../../Button/Button.stories";
8
9
  import canonicalIcons from "./../canonicalIconNames";
9
10
 
10
11
  export default {
11
12
  title: "Components/IconButton",
12
13
  component: IconButton,
13
14
  argTypes: {
14
- text: { control: "text" },
15
15
  name: {
16
16
  control: "select",
17
17
  options: ["Test icon", ...Object.keys(canonicalIcons)],
@@ -20,6 +20,7 @@ export default {
20
20
  ...Object.keys(canonicalIcons),
21
21
  },
22
22
  },
23
+ intent: buttonStory.argTypes?.intent,
23
24
  },
24
25
  } as Meta<typeof IconButton>;
25
26
 
@@ -1,9 +1,9 @@
1
1
  import React from "react";
2
- import { LoremIpsum } from "react-lorem-ipsum";
2
+ import { LoremIpsum, loremIpsum } from "react-lorem-ipsum";
3
3
  import { Meta, StoryFn } from "@storybook/react";
4
4
 
5
5
  import { helpersArgTypes } from "../../../.storybook/helpers";
6
- import { Button, HtmlContentBlock, Notification, Spacing } from "../../../index";
6
+ import { Button, HtmlContentBlock, Markdown, Notification, Spacing } from "../../../index";
7
7
 
8
8
  export default {
9
9
  title: "Components/Notification",
@@ -33,12 +33,26 @@ ExampleWithMessage.args = {
33
33
  export const ExampleWithChildren = TemplateFull.bind({});
34
34
  ExampleWithChildren.args = {
35
35
  children: (
36
- <HtmlContentBlock>
37
- <LoremIpsum p={1} avgSentencesPerParagraph={1} random={false} />
38
- <LoremIpsum p={1} avgSentencesPerParagraph={4} random={false} />
39
- </HtmlContentBlock>
36
+ <>
37
+ <HtmlContentBlock>
38
+ <LoremIpsum p={1} avgSentencesPerParagraph={1} random={false} />
39
+ <LoremIpsum p={1} avgSentencesPerParagraph={4} random={false} />
40
+ </HtmlContentBlock>
41
+ <br />
42
+ <Markdown
43
+ htmlContentBlockProps={{
44
+ style: {
45
+ maxHeight: "25vh",
46
+ overflow: "auto",
47
+ },
48
+ }}
49
+ >
50
+ {"```\n" + loremIpsum({ random: false }) + "\n```"}
51
+ </Markdown>
52
+ </>
40
53
  ),
41
54
  onDismiss: false, // workaround for undefined function in Storybook
55
+ actions: [<></>],
42
56
  };
43
57
 
44
58
  export const ExampleNeutralMessage = TemplateFull.bind({});
@@ -3,6 +3,10 @@
3
3
  @use "sass:math";
4
4
  @import "~@blueprintjs/core/src/components/toast/toast";
5
5
 
6
+ .#{$ns}-toast-message {
7
+ min-width: 0;
8
+ }
9
+
6
10
  .#{$eccgui}-notification {
7
11
  width: 100%;
8
12
  min-width: math.div(4, 16) * 100vw;
@@ -69,13 +73,14 @@
69
73
  display: flex;
70
74
  align-items: baseline;
71
75
  justify-content: space-between;
72
- margin: -10px; // TODO: use blueprint var ofr toast padding here
76
+ margin: -0.5 * $toast-margin;
73
77
  }
74
78
 
75
79
  .#{$eccgui}-notification__messagebody {
76
80
  flex-grow: 1;
77
81
  flex-shrink: 1;
78
- padding: 10px; // TODO: use blueprint var ofr toast padding here
82
+ min-width: 0;
83
+ padding: 0.5 * $toast-margin;
79
84
  }
80
85
 
81
86
  .#{$eccgui}-notification__actions {
@@ -1,11 +1,17 @@
1
1
  import React from "react";
2
2
  import { Meta, StoryFn } from "@storybook/react";
3
3
 
4
+ import { helpersArgTypes } from "../../../../.storybook/helpers";
4
5
  import { ProgressBar } from "../../../../index";
5
6
  export default {
6
7
  title: "Components/ProgressBar",
7
8
  component: ProgressBar,
8
- argTypes: {},
9
+ argTypes: {
10
+ intent: {
11
+ ...helpersArgTypes.exampleIntent,
12
+ options: ["UNDEFINED", "primary", "success", "warning", "danger"],
13
+ },
14
+ },
9
15
  } as Meta<typeof ProgressBar>;
10
16
 
11
17
  const ProgressBarExample: StoryFn<typeof ProgressBar> = (args) => <ProgressBar {...args}></ProgressBar>;
@@ -53,7 +53,7 @@ export const ControlledTarget = Template.bind({});
53
53
  ControlledTarget.args = {
54
54
  ...Default.args,
55
55
  fill: false,
56
- children: <Button text="Controlled select target" intent="primary" />,
56
+ children: <Button text="Controlled select target" elevated />,
57
57
  onActiveItemChange: fn(),
58
58
  };
59
59
 
@@ -9,10 +9,11 @@ import Color from "color";
9
9
 
10
10
  import { CLASSPREFIX as eccgui } from "../../configuration/constants";
11
11
 
12
+ import { ButtonProps } from "./../Button/Button";
13
+
12
14
  type SpinnerPosition = "local" | "inline" | "global";
13
15
  type SpinnerSize = "tiny" | "small" | "medium" | "large" | "xlarge" | "inherit";
14
16
  type SpinnerStroke = "thin" | "medium" | "bold";
15
- type Intent = "primary" | "success" | "warning" | "danger";
16
17
 
17
18
  /** A spinner that is either displayed globally or locally. */
18
19
  export interface SpinnerProps extends Omit<BlueprintSpinnerProps, "size" | "intent" | "color"> {
@@ -22,9 +23,16 @@ export interface SpinnerProps extends Omit<BlueprintSpinnerProps, "size" | "inte
22
23
  */
23
24
  color?: Color | string | "inherit";
24
25
  /**
25
- * Intent state of the field item.
26
+ * Intent state of the spinner.
27
+ * When used the spinner is colored.
28
+ * Property overwrites `elevated` setting.
29
+ */
30
+ intent?: ButtonProps["intent"];
31
+ /**
32
+ * Highlight the spinner.
33
+ * It is displayed with accent color intent.
26
34
  */
27
- intent?: Intent;
35
+ elevated?: boolean;
28
36
  /**
29
37
  * Additional CSS class names.
30
38
  */
@@ -67,6 +75,7 @@ export const Spinner = ({
67
75
  className = "",
68
76
  color = "inherit",
69
77
  intent,
78
+ elevated,
70
79
  position = "local",
71
80
  size,
72
81
  stroke,
@@ -119,6 +128,7 @@ export const Spinner = ({
119
128
  className={
120
129
  `${eccgui}-spinner` +
121
130
  ` ${eccgui}-spinner--position-${position}` +
131
+ (elevated ? ` ${eccgui}-spinner--intent-accent` : "") +
122
132
  (intent ? ` ${eccgui}-spinner--intent-${intent}` : "") +
123
133
  ` ${eccgui}-spinner--size-${spinnerSize}` +
124
134
  (showLocalBackdrop ? ` ${eccgui}-spinner--localbackdrop` : "") +
@@ -10,7 +10,7 @@ export default {
10
10
  color: { control: "color" },
11
11
  intent: {
12
12
  ...helpersArgTypes.exampleIntent,
13
- options: ["UNDEFINED", "primary", "success", "warning", "danger", "none"],
13
+ options: ["UNDEFINED", "primary", "accent", "success", "warning", "danger", "none"],
14
14
  },
15
15
  position: { control: "radio", options: ["local", "inline", "global"] },
16
16
  size: { control: "radio", options: ["tiny", "small", "medium", "large", "xlarge", "inherit"] },
@@ -29,10 +29,14 @@ span.#{$eccgui}-spinner {
29
29
  color: inherit;
30
30
  }
31
31
 
32
- .#{$eccgui}-spinner--intent-primary {
32
+ .#{$eccgui}-spinner--intent-accent {
33
33
  color: $eccgui-color-accent;
34
34
  }
35
35
 
36
+ .#{$eccgui}-spinner--intent-primary {
37
+ color: $eccgui-color-primary;
38
+ }
39
+
36
40
  .#{$eccgui}-spinner--intent-success {
37
41
  color: $eccgui-color-success-text;
38
42
  }
@@ -7,19 +7,21 @@ $eccgui-size-margin-tag: $eccgui-size-inline-whitespace * 0.5 !default;
7
7
  $eccgui-color-tag-background-emphasized: $eccgui-color-workspace-text !default;
8
8
 
9
9
  // lib vars
10
- $tag-default-color: $eccgui-color-tag-background-emphasized; // !default;
10
+ $tag-default-color: $eccgui-color-tag-background-emphasized;
11
+
11
12
  // $dark-tag-default-color: $gray5 !default;
12
- $tag-height: $eccgui-size-typo-tag * $eccgui-size-typo-tag-lineheight; // !default;
13
- $tag-line-height: $eccgui-size-typo-tag; // !default;
14
- $tag-padding-top: ($tag-height - $tag-line-height) * 0.5; // !default;
15
- $tag-padding: $tag-padding-top * 2; // !default;
16
- $tag-margin: 0; // !default;
17
- $tag-height-small: $eccgui-size-typo-tag; // !default;
18
- $tag-line-height-small: $tag-height-small; // !default;
19
- $tag-padding-small: $tag-padding-top * 0.5; // !default;
20
- $tag-height-large: $eccgui-size-typo-tag-large * $eccgui-size-typo-tag-large-lineheight; // !default;
21
- $tag-line-height-large: $eccgui-size-typo-tag-large; // !default;
22
- $tag-padding-large: ($tag-height-large - $tag-line-height-large); // !default;
13
+ $tag-height: $eccgui-size-typo-tag * $eccgui-size-typo-tag-lineheight;
14
+ $tag-line-height: $eccgui-size-typo-tag;
15
+ $tag-padding-top: ($tag-height - $tag-line-height) * 0.5;
16
+ $tag-padding: $tag-padding-top * 2;
17
+ $tag-margin: 0;
18
+ $tag-height-small: $eccgui-size-typo-tag;
19
+ $tag-line-height-small: $tag-height-small;
20
+ $tag-padding-small: $tag-padding-top * 0.5;
21
+ $tag-height-large: $eccgui-size-typo-tag-large * $eccgui-size-typo-tag-large-lineheight;
22
+ $tag-line-height-large: $eccgui-size-typo-tag-large;
23
+ $tag-padding-large: ($tag-height-large - $tag-line-height-large);
24
+
23
25
  // $tag-icon-spacing: ($tag-height - 12px) * 0.5 !default;
24
26
  // $tag-icon-spacing-large: ($tag-height-large - $pt-icon-size-standard) * 0.5 !default;
25
27
  $tag-round-adjustment: 0 !default;
@@ -139,109 +141,128 @@ $tag-round-adjustment: 0 !default;
139
141
  border-width: 1px;
140
142
 
141
143
  &:not([class*="#{$ns}-intent-"]) {
144
+ --eccgui-tag-bg: #{$tag-default-color};
145
+ --eccgui-tag-border: #{$tag-default-color};
146
+ --eccgui-tag-text: #{eccgui-color-var("identity", "text", "100")};
147
+ --eccgui-tag-emfactor: 100%;
148
+
149
+ color: var(--eccgui-tag-text);
150
+ background-color: eccgui-color-mix(
151
+ var(--eccgui-tag-bg) var(--eccgui-tag-emfactor),
152
+ eccgui-color-var("identity", "background", "100")
153
+ );
154
+ border-color: var(--eccgui-tag-border);
155
+
142
156
  &.#{$eccgui}-tag--strongeremphasis {
143
- background-color: $tag-default-color;
144
- border-color: $tag-default-color;
157
+ --eccgui-tag-emfactor: 95%;
145
158
  }
146
159
  &.#{$eccgui}-tag--strongemphasis {
147
- background-color: eccgui-color-rgba($tag-default-color, 0.875);
148
- border-color: eccgui-color-rgba($tag-default-color, 0.875);
160
+ --eccgui-tag-emfactor: 90%;
149
161
  }
150
162
  &.#{$eccgui}-tag--normalemphasis {
151
- background-color: eccgui-color-rgba($tag-default-color, 0.75);
152
- border-color: eccgui-color-rgba($tag-default-color, 0.75);
163
+ --eccgui-tag-emfactor: 85%;
153
164
  }
154
165
  &.#{$eccgui}-tag--weakemphasis {
155
- background-color: eccgui-color-rgba($tag-default-color, 0.625);
156
- border-color: eccgui-color-rgba($tag-default-color, 0.625);
166
+ --eccgui-tag-emfactor: 80%;
157
167
  }
158
168
  &.#{$eccgui}-tag--weakeremphasis {
159
- background-color: eccgui-color-rgba($tag-default-color, 0.5);
160
- border-color: eccgui-color-rgba($tag-default-color, 0.5);
169
+ --eccgui-tag-emfactor: 75%;
161
170
  }
162
171
 
163
172
  &.#{$eccgui}-intent--primary {
164
- color: $eccgui-color-primary-contrast;
165
- background-color: $eccgui-color-primary;
166
- border-color: $eccgui-color-primary;
173
+ --eccgui-tag-bg: #{$eccgui-color-primary};
174
+ --eccgui-tag-border: #{$eccgui-color-primary};
175
+ --eccgui-tag-text: #{$eccgui-color-primary-contrast};
167
176
  }
168
177
  &.#{$eccgui}-intent--accent {
169
- color: $eccgui-color-accent-contrast;
170
- background-color: $eccgui-color-accent;
171
- border-color: $eccgui-color-accent;
178
+ --eccgui-tag-bg: #{$eccgui-color-accent};
179
+ --eccgui-tag-border: #{$eccgui-color-accent};
180
+ --eccgui-tag-text: #{$eccgui-color-accent-contrast};
172
181
  }
173
182
  &.#{$eccgui}-intent--info {
174
- color: $eccgui-color-info-background;
175
- background-color: $eccgui-color-info-text;
176
- border-color: $eccgui-color-info-text;
183
+ --eccgui-tag-bg: #{$eccgui-color-info-text};
184
+ --eccgui-tag-border: #{$eccgui-color-info-text};
185
+ --eccgui-tag-text: #{$eccgui-color-info-background};
177
186
  }
178
187
  &.#{$eccgui}-intent--success {
179
- color: $eccgui-color-success-background;
180
- background-color: $eccgui-color-success-text;
181
- border-color: $eccgui-color-success-text;
188
+ --eccgui-tag-bg: #{$eccgui-color-success-text};
189
+ --eccgui-tag-border: #{$eccgui-color-success-text};
190
+ --eccgui-tag-text: #{$eccgui-color-success-background};
182
191
  }
183
192
  &.#{$eccgui}-intent--warning {
184
- color: $eccgui-color-warning-background;
185
- background-color: $eccgui-color-warning-text;
186
- border-color: $eccgui-color-warning-text;
193
+ --eccgui-tag-bg: #{$eccgui-color-warning-text};
194
+ --eccgui-tag-border: #{$eccgui-color-warning-text};
195
+ --eccgui-tag-text: #{$eccgui-color-warning-background};
187
196
  }
188
197
  &.#{$eccgui}-intent--danger {
189
- color: $eccgui-color-danger-background;
190
- background-color: $eccgui-color-danger-text;
191
- border-color: $eccgui-color-danger-text;
198
+ --eccgui-tag-bg: #{$eccgui-color-danger-text};
199
+ --eccgui-tag-border: #{$eccgui-color-danger-text};
200
+ --eccgui-tag-text: #{$eccgui-color-danger-background};
192
201
  }
193
202
 
194
203
  &.#{$ns}-minimal,
195
204
  &.#{$ns}-minimal.#{$ns}-interactive {
205
+ --eccgui-tag-bg: #{eccgui-color-var("identity", "background", "500")};
206
+ --eccgui-tag-border: #{$tag-default-color};
207
+ --eccgui-tag-text: #{$tag-default-color};
208
+
209
+ color: var(--eccgui-tag-text);
210
+ background-color: eccgui-color-mix(
211
+ var(--eccgui-tag-bg) var(--eccgui-tag-emfactor),
212
+ eccgui-color-var("identity", "background", "100")
213
+ );
214
+ border-color: var(--eccgui-tag-border);
215
+
196
216
  &.#{$eccgui}-tag--strongeremphasis {
197
- background-color: eccgui-color-rgba(eccgui-color-var("identity", "background", "900"), 1);
198
- border-color: eccgui-color-rgba($tag-default-color, 0.3);
217
+ --eccgui-tag-emfactor: 100%;
199
218
  }
200
219
  &.#{$eccgui}-tag--strongemphasis {
201
- background-color: eccgui-color-rgba(eccgui-color-var("identity", "background", "700"), 0.875);
202
- border-color: eccgui-color-rgba($tag-default-color, 0.225);
220
+ --eccgui-tag-emfactor: 90%;
203
221
  }
204
222
  &.#{$eccgui}-tag--normalemphasis {
205
- background-color: eccgui-color-rgba(eccgui-color-var("identity", "background", "500"), 0.75);
206
- border-color: eccgui-color-rgba($tag-default-color, 0.15);
223
+ --eccgui-tag-emfactor: 80%;
207
224
  }
208
225
  &.#{$eccgui}-tag--weakemphasis {
209
- background-color: eccgui-color-rgba(eccgui-color-var("identity", "background", "300"), 0.625);
210
- border-color: eccgui-color-rgba($tag-default-color, 0.075);
226
+ --eccgui-tag-emfactor: 70%;
211
227
  }
212
228
  &.#{$eccgui}-tag--weakeremphasis {
213
- background-color: eccgui-color-rgba(eccgui-color-var("identity", "background", "100"), 0.5);
214
- border-color: eccgui-color-rgba($tag-default-color, 0.15);
229
+ --eccgui-tag-emfactor: 60%;
230
+ }
231
+
232
+ &[class*="#{$eccgui}-intent--"] {
233
+ color: eccgui-color-rgba(var(--eccgui-tag-text), var(--eccgui-tag-emfactor));
234
+ border-color: eccgui-color-rgba(var(--eccgui-tag-border), var(--eccgui-tag-emfactor));
215
235
  }
236
+
216
237
  &.#{$eccgui}-intent--primary {
217
- color: $eccgui-color-primary;
218
- background-color: $eccgui-color-primary-contrast;
219
- border-color: $eccgui-color-primary;
238
+ --eccgui-tag-text: #{$eccgui-color-primary};
239
+ --eccgui-tag-border: #{$eccgui-color-primary};
240
+ --eccgui-tag-bg: #{$eccgui-color-primary-contrast};
220
241
  }
221
242
  &.#{$eccgui}-intent--accent {
222
- color: $eccgui-color-accent;
223
- background-color: $eccgui-color-accent-contrast;
224
- border-color: $eccgui-color-accent;
243
+ --eccgui-tag-text: #{$eccgui-color-accent};
244
+ --eccgui-tag-border: #{$eccgui-color-accent};
245
+ --eccgui-tag-bg: #{$eccgui-color-accent-contrast};
225
246
  }
226
247
  &.#{$eccgui}-intent--info {
227
- color: $eccgui-color-info-text;
228
- background-color: $eccgui-color-info-background;
229
- border-color: $eccgui-color-info-text;
248
+ --eccgui-tag-text: #{$eccgui-color-info-text};
249
+ --eccgui-tag-border: #{$eccgui-color-info-text};
250
+ --eccgui-tag-bg: #{$eccgui-color-info-background};
230
251
  }
231
252
  &.#{$eccgui}-intent--success {
232
- color: $eccgui-color-success-text;
233
- background-color: $eccgui-color-success-background;
234
- border-color: $eccgui-color-success-text;
253
+ --eccgui-tag-text: #{$eccgui-color-success-text};
254
+ --eccgui-tag-border: #{$eccgui-color-success-text};
255
+ --eccgui-tag-bg: #{$eccgui-color-success-background};
235
256
  }
236
257
  &.#{$eccgui}-intent--warning {
237
- color: $eccgui-color-warning-text;
238
- background-color: $eccgui-color-warning-background;
239
- border-color: $eccgui-color-warning-text;
258
+ --eccgui-tag-text: #{$eccgui-color-warning-text};
259
+ --eccgui-tag-border: #{$eccgui-color-warning-text};
260
+ --eccgui-tag-bg: #{$eccgui-color-warning-background};
240
261
  }
241
262
  &.#{$eccgui}-intent--danger {
242
- color: $eccgui-color-danger-text;
243
- background-color: $eccgui-color-danger-background;
244
- border-color: $eccgui-color-danger-text;
263
+ --eccgui-tag-text: #{$eccgui-color-danger-text};
264
+ --eccgui-tag-border: #{$eccgui-color-danger-text};
265
+ --eccgui-tag-bg: #{$eccgui-color-danger-background};
245
266
  }
246
267
  }
247
268
  }
@@ -10,7 +10,8 @@ $eccgui-size-textfield-padding-horizontal-regular: $eccgui-size-inline-whitespac
10
10
  $eccgui-size-textfield-padding-horizontal-small: $eccgui-size-inline-whitespace * 0.5 !default;
11
11
  $eccgui-typo-textfield-fontweight: $eccgui-font-weight-regular !default;
12
12
  $eccgui-color-textfield-text: $eccgui-color-workspace-text !default;
13
- $eccgui-color-textfield-background: white !default; // TODO define global var for it
13
+ $eccgui-color-textfield-background: eccgui-color-var("identity", "background", 100) !default;
14
+
14
15
  // lib vars
15
16
  $pt-input-height: $eccgui-size-textfield-height-regular; // !default;
16
17
  $pt-input-height-large: $eccgui-size-textfield-height-large; // !default;
@@ -191,33 +192,40 @@ $eccgui-map-intent-bgcolors: (
191
192
  position: absolute;
192
193
  top: 0;
193
194
  left: 0;
195
+ margin-top: -1 * $eccgui-size-textfield-padding-horizontal-small;
196
+ margin-right: -1 * $eccgui-size-textfield-padding-horizontal-small;
197
+
198
+ .#{$ns}-input.#{$ns}-small ~ & {
199
+ margin-top: -0.5 * $eccgui-size-textfield-padding-horizontal-small;
200
+ margin-right: -0.5 * $eccgui-size-textfield-padding-horizontal-small;
201
+ }
194
202
  }
195
203
 
196
204
  .#{$eccgui}-textarea__options {
197
205
  position: absolute;
198
206
  top: 0;
199
207
  right: 0;
208
+ margin-top: -1 * $eccgui-size-textfield-padding-horizontal-small;
209
+ margin-right: -1 * $eccgui-size-textfield-padding-horizontal-small;
210
+ text-align: right;
200
211
  filter: grayscale(1);
201
212
 
213
+ .#{$ns}-input.#{$ns}-small ~ & {
214
+ margin-top: -0.5 * $eccgui-size-textfield-padding-horizontal-small;
215
+ margin-right: -0.5 * $eccgui-size-textfield-padding-horizontal-small;
216
+ }
217
+
202
218
  &:hover,
203
219
  .#{$eccgui}-textarea:focus ~ & {
204
220
  filter: none;
205
221
  }
206
222
 
207
- & > .#{$eccgui}-button--icon {
208
- margin-top: -1 * $eccgui-size-textfield-padding-horizontal-regular;
209
-
210
- &:last-of-type {
211
- margin-right: -1 * $eccgui-size-textfield-padding-horizontal-regular;
212
- }
213
- }
214
-
215
- .#{$ns}-input.#{$ns}-small ~ & > .#{$eccgui}-button--icon {
216
- margin-top: -1 * $eccgui-size-textfield-padding-horizontal-small;
217
-
218
- &:last-of-type {
219
- margin-right: -1 * $eccgui-size-textfield-padding-horizontal-small;
220
- }
223
+ & > .#{$eccgui}-button,
224
+ & > .#{$eccgui}-icon,
225
+ & > .#{$eccgui}-contextoverlay,
226
+ & > .#{$eccgui}-tooltip__wrapper {
227
+ display: inline-block;
228
+ vertical-align: middle;
221
229
  }
222
230
  }
223
231
 
@@ -35,7 +35,7 @@ const Template: StoryFn<typeof VisualTour> = (args: VisualTourProps) => {
35
35
  <ToolbarSection id={"buttonSection"}>
36
36
  <Button id={"actionA"}>Action A</Button>
37
37
  <Button id={"actionB"}>Action B</Button>
38
- <Button id={"startTour"} intent={"primary"} onClick={() => setIsOpen(true)}>
38
+ <Button id={"startTour"} elevated onClick={() => setIsOpen(true)}>
39
39
  Start tour!
40
40
  </Button>
41
41
  </ToolbarSection>
@@ -24,6 +24,7 @@ $eccgui-color-palette-light: (
24
24
  "pink": eccgui-create-color-tints(#fde4f1 #e6b4ce #d08aae #bb5f8e #711c4d),
25
25
  "violet": eccgui-create-color-tints(#f4e3f4 #d8b0d8 #b377b3 #904490 #6e1f6e),
26
26
  "indigo": eccgui-create-color-tints(#efe4fb #b89ee0 #8f72c5 #6547aa #3b1e8f),
27
+ "petrol": eccgui-create-color-tints(#e7eef2 #b0c8d4 #7aa2b5 #437c97 #0c5678),
27
28
  "cyan": eccgui-create-color-tints(#dff9fc #86d6e5 #5abfd4 #2da9c4 #006a8f),
28
29
  "teal": eccgui-create-color-tints(#dff4ef #a3ddd3 #6dc0b2 #479d8d #104c42),
29
30
  "lime": eccgui-create-color-tints(#e4f3ea #d2edd6 #9dcd99 #688a55 #5a7b2c),
@@ -67,7 +67,7 @@
67
67
  position: absolute;
68
68
  }
69
69
 
70
- .react-flow .react-flow__edges svg {
70
+ .react-flow .react-flow__edges svg:not(.#{$eccgui}-icon) {
71
71
  position: absolute;
72
72
  overflow: visible;
73
73
  pointer-events: none;
@@ -179,31 +179,27 @@ svg.react-flow__connectionline {
179
179
  pointer-events: none;
180
180
  background-color: $reactflow-background-color;
181
181
  border: solid 1px $eccgui-color-separation-divider;
182
-
183
- pattern path {
184
- opacity: $eccgui-opacity-ghostly;
185
- stroke: #{eccgui-color-var("identity", "text", "300")};
186
- }
187
182
  }
188
183
 
189
184
  .react-flow__background-pattern,
190
- .react-flow__background pattern path:first-child {
191
- opacity: $eccgui-opacity-ghostly;
192
- stroke: #{eccgui-color-var("identity", "text", "500")};
185
+ .react-flow__background pattern *:first-child:not(.react-flow__background-pattern) {
186
+ opacity: $eccgui-opacity-muted;
187
+ stroke: $eccgui-color-separation-divider;
193
188
  }
194
189
 
195
190
  .react-flow__background-pattern.dots,
196
- .react-flow__background pattern circle:first-child {
197
- opacity: $eccgui-opacity-muted;
198
- fill: #{eccgui-color-var("identity", "text", "700")};
191
+ .react-flow__background pattern circle:first-child:not(.react-flow__background-pattern) {
192
+ fill: #{eccgui-color-var("identity", "text", "500")};
199
193
  }
200
194
 
201
195
  .react-flow__background-pattern.cross {
202
- stroke: #{eccgui-color-var("identity", "text", "300")};
196
+ opacity: $eccgui-opacity-disabled;
197
+ stroke: #{eccgui-color-var("identity", "text", "500")};
198
+ stroke-width: 0.3;
203
199
  }
204
200
 
205
201
  .react-flow__background-pattern.lines {
206
- stroke: #{eccgui-color-var("identity", "text", "300")};
202
+ stroke-width: 0.4;
207
203
  }
208
204
 
209
205
  .react-flow__attribution {