@eccenca/gui-elements 24.0.0-rc.0 → 24.0.0-rc.2
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.
- package/CHANGELOG.md +13 -0
- package/dist/cjs/cmem/ContentBlobToggler/StringPreviewContentBlobToggler.js +8 -2
- package/dist/cjs/cmem/ContentBlobToggler/StringPreviewContentBlobToggler.js.map +1 -1
- package/dist/cjs/components/FlexibleLayout/FlexibleLayoutContainer.js +55 -0
- package/dist/cjs/components/FlexibleLayout/FlexibleLayoutContainer.js.map +1 -0
- package/dist/cjs/components/FlexibleLayout/FlexibleLayoutItem.js +57 -0
- package/dist/cjs/components/FlexibleLayout/FlexibleLayoutItem.js.map +1 -0
- package/dist/cjs/components/FlexibleLayout/index.js +19 -0
- package/dist/cjs/components/FlexibleLayout/index.js.map +1 -0
- package/dist/cjs/components/Icon/canonicalIconNames.js +2 -2
- package/dist/cjs/components/Icon/canonicalIconNames.js.map +1 -1
- package/dist/cjs/components/Label/Label.js +2 -2
- package/dist/cjs/components/Label/Label.js.map +1 -1
- package/dist/cjs/components/PropertyValuePair/PropertyValueList.js +12 -2
- package/dist/cjs/components/PropertyValuePair/PropertyValueList.js.map +1 -1
- package/dist/cjs/components/PropertyValuePair/PropertyValuePair.js +3 -2
- package/dist/cjs/components/PropertyValuePair/PropertyValuePair.js.map +1 -1
- package/dist/cjs/components/index.js +1 -0
- package/dist/cjs/components/index.js.map +1 -1
- package/dist/esm/cmem/ContentBlobToggler/StringPreviewContentBlobToggler.js +8 -2
- package/dist/esm/cmem/ContentBlobToggler/StringPreviewContentBlobToggler.js.map +1 -1
- package/dist/esm/components/FlexibleLayout/FlexibleLayoutContainer.js +40 -0
- package/dist/esm/components/FlexibleLayout/FlexibleLayoutContainer.js.map +1 -0
- package/dist/esm/components/FlexibleLayout/FlexibleLayoutItem.js +42 -0
- package/dist/esm/components/FlexibleLayout/FlexibleLayoutItem.js.map +1 -0
- package/dist/esm/components/FlexibleLayout/index.js +3 -0
- package/dist/esm/components/FlexibleLayout/index.js.map +1 -0
- package/dist/esm/components/Icon/canonicalIconNames.js +2 -2
- package/dist/esm/components/Icon/canonicalIconNames.js.map +1 -1
- package/dist/esm/components/Label/Label.js +2 -2
- package/dist/esm/components/Label/Label.js.map +1 -1
- package/dist/esm/components/PropertyValuePair/PropertyValueList.js +12 -2
- package/dist/esm/components/PropertyValuePair/PropertyValueList.js.map +1 -1
- package/dist/esm/components/PropertyValuePair/PropertyValuePair.js +3 -2
- package/dist/esm/components/PropertyValuePair/PropertyValuePair.js.map +1 -1
- package/dist/esm/components/index.js +1 -0
- package/dist/esm/components/index.js.map +1 -1
- package/dist/types/cmem/ContentBlobToggler/StringPreviewContentBlobToggler.d.ts +5 -1
- package/dist/types/components/FlexibleLayout/FlexibleLayoutContainer.d.ts +31 -0
- package/dist/types/components/FlexibleLayout/FlexibleLayoutItem.d.ts +24 -0
- package/dist/types/components/FlexibleLayout/index.d.ts +2 -0
- package/dist/types/components/Label/Label.d.ts +5 -1
- package/dist/types/components/PropertyValuePair/PropertyValueList.d.ts +8 -2
- package/dist/types/components/PropertyValuePair/PropertyValuePair.d.ts +5 -1
- package/dist/types/components/index.d.ts +1 -0
- package/package.json +1 -1
- package/src/cmem/ContentBlobToggler/StringPreviewContentBlobToggler.tsx +17 -7
- package/src/cmem/markdown/markdown.scss +6 -3
- package/src/cmem/markdown/markdown.utils.ts +18 -0
- package/src/cmem/markdown/markdownutils.test.ts +13 -0
- package/src/components/Application/_header.scss +27 -10
- package/src/components/Application/stories/Application.stories.tsx +139 -0
- package/src/components/FlexibleLayout/FlexibleLayoutContainer.tsx +67 -0
- package/src/components/FlexibleLayout/FlexibleLayoutItem.tsx +59 -0
- package/src/components/FlexibleLayout/flexiblelayout.scss +48 -0
- package/src/components/FlexibleLayout/index.ts +2 -0
- package/src/components/FlexibleLayout/stories/FlexibleLayoutContainer.stories.tsx +31 -0
- package/src/components/FlexibleLayout/stories/FlexibleLayoutItem.stories.tsx +28 -0
- package/src/components/Icon/canonicalIconNames.tsx +2 -2
- package/src/components/Label/Label.tsx +6 -1
- package/src/components/Label/label.scss +6 -0
- package/src/components/PropertyValuePair/PropertyValueList.tsx +26 -3
- package/src/components/PropertyValuePair/PropertyValuePair.tsx +7 -1
- package/src/components/PropertyValuePair/propertyvalue.scss +25 -13
- package/src/components/PropertyValuePair/stories/PropertyValueList.stories.tsx +1 -1
- package/src/components/PropertyValuePair/stories/PropertyValuePair.stories.tsx +1 -1
- package/src/components/Typography/typography.scss +51 -0
- package/src/components/index.scss +1 -0
- package/src/components/index.ts +1 -0
- package/src/configuration/_variables.scss +4 -0
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import React, { forwardRef } from "react";
|
|
2
|
+
|
|
3
|
+
import { CLASSPREFIX as eccgui } from "../../configuration/constants";
|
|
4
|
+
|
|
5
|
+
export interface FlexibleLayoutItemProps extends React.HTMLAttributes<HTMLDivElement> {
|
|
6
|
+
/**
|
|
7
|
+
* Defines the ability for the item to grow.
|
|
8
|
+
* The factor defines how much space the item would take up compared to the other items with a grow factor greater than zero.
|
|
9
|
+
* Must be equal or greater than zero.
|
|
10
|
+
* With a factor of `0` the item cannot grow.
|
|
11
|
+
*/
|
|
12
|
+
growFactor?: number;
|
|
13
|
+
/**
|
|
14
|
+
* Defines the ability for the item to shrink.
|
|
15
|
+
* The factor defines how strong the shrink effect has impact on the item compared to the other items with a shrink factor greater than zero.
|
|
16
|
+
* Must be equal or greater than zero.
|
|
17
|
+
* With a factor of `0` the item cannot shrink.
|
|
18
|
+
*/
|
|
19
|
+
shrinkFactor?: number;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
/**
|
|
23
|
+
* Simple layout helper to organize items into rows and columns that are not necessarily need to be aligned.
|
|
24
|
+
* `FlexibleLayoutItem`s can contain `FlexibleLayoutContainer` for more partitions.
|
|
25
|
+
* `FlexibleLayoutItem` siblings will share all available space from the `FlexibleLayoutContainer` container.
|
|
26
|
+
*/
|
|
27
|
+
export const FlexibleLayoutItem = forwardRef<HTMLDivElement, FlexibleLayoutItemProps>(
|
|
28
|
+
(
|
|
29
|
+
{
|
|
30
|
+
children,
|
|
31
|
+
className = "",
|
|
32
|
+
growFactor = 1,
|
|
33
|
+
shrinkFactor = 1,
|
|
34
|
+
style,
|
|
35
|
+
...otherDivProps
|
|
36
|
+
}: FlexibleLayoutItemProps,
|
|
37
|
+
ref
|
|
38
|
+
) => {
|
|
39
|
+
const sizing = {} as any;
|
|
40
|
+
if (typeof growFactor !== "undefined" && growFactor >= 0 && growFactor !== 1) {
|
|
41
|
+
sizing[`--${eccgui}-flexible-item-grow`] = growFactor.toString(10);
|
|
42
|
+
}
|
|
43
|
+
if (typeof shrinkFactor !== "undefined" && shrinkFactor >= 0 && shrinkFactor !== 1) {
|
|
44
|
+
sizing[`--${eccgui}-flexible-item-shrink`] = shrinkFactor.toString(10);
|
|
45
|
+
}
|
|
46
|
+
return (
|
|
47
|
+
<div
|
|
48
|
+
className={`${eccgui}-flexible__item` + (className ? " " + className : "")}
|
|
49
|
+
style={{ ...(style ?? {}), ...sizing }}
|
|
50
|
+
ref={ref}
|
|
51
|
+
{...otherDivProps}
|
|
52
|
+
>
|
|
53
|
+
{children}
|
|
54
|
+
</div>
|
|
55
|
+
);
|
|
56
|
+
}
|
|
57
|
+
);
|
|
58
|
+
|
|
59
|
+
export default FlexibleLayoutItem;
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
.#{$eccgui}-flexible__container {
|
|
2
|
+
--#{$eccgui}-flexible-item-shrink: 1;
|
|
3
|
+
--#{$eccgui}-flexible-item-grow: 1;
|
|
4
|
+
--#{$eccgui}-flexible-container-gapsize: 0;
|
|
5
|
+
|
|
6
|
+
position: relative;
|
|
7
|
+
display: flex;
|
|
8
|
+
flex-flow: row nowrap;
|
|
9
|
+
gap: var(--#{$eccgui}-flexible-container-gapsize);
|
|
10
|
+
place-content: stretch center;
|
|
11
|
+
align-items: stretch;
|
|
12
|
+
width: 100%;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
.#{$eccgui}-flexible__container--absolutespace {
|
|
16
|
+
position: absolute;
|
|
17
|
+
inset: 0;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
.#{$eccgui}-flexible__container--vertical {
|
|
21
|
+
flex-direction: column;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
.#{$eccgui}-flexible__container--gap-tiny {
|
|
25
|
+
--#{$eccgui}-flexible-container-gapsize: #{$eccgui-size-block-whitespace * 0.25};
|
|
26
|
+
}
|
|
27
|
+
.#{$eccgui}-flexible__container--gap-small {
|
|
28
|
+
--#{$eccgui}-flexible-container-gapsize: #{$eccgui-size-block-whitespace * 0.5};
|
|
29
|
+
}
|
|
30
|
+
.#{$eccgui}-flexible__container--gap-medium {
|
|
31
|
+
--#{$eccgui}-flexible-container-gapsize: #{$eccgui-size-block-whitespace};
|
|
32
|
+
}
|
|
33
|
+
.#{$eccgui}-flexible__container--gap-large {
|
|
34
|
+
--#{$eccgui}-flexible-container-gapsize: #{$eccgui-size-block-whitespace * 1.5};
|
|
35
|
+
}
|
|
36
|
+
.#{$eccgui}-flexible__container--gap-xlarge {
|
|
37
|
+
--#{$eccgui}-flexible-container-gapsize: #{$eccgui-size-block-whitespace * 2};
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
.#{$eccgui}-flexible__item {
|
|
41
|
+
position: relative;
|
|
42
|
+
flex: var(--#{$eccgui}-flexible-item-grow) var(--#{$eccgui}-flexible-item-shrink) 100%;
|
|
43
|
+
min-width: 0;
|
|
44
|
+
|
|
45
|
+
.#{$eccgui}-flexible__container--notequalitemspace > & {
|
|
46
|
+
flex-basis: auto;
|
|
47
|
+
}
|
|
48
|
+
}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import { LoremIpsum } from "react-lorem-ipsum";
|
|
3
|
+
import { Meta, StoryFn } from "@storybook/react";
|
|
4
|
+
|
|
5
|
+
import { Divider, FlexibleLayoutContainer, FlexibleLayoutItem, HtmlContentBlock } from "../../../../index";
|
|
6
|
+
|
|
7
|
+
export default {
|
|
8
|
+
title: "Components/FlexibleLayout/Container",
|
|
9
|
+
component: FlexibleLayoutContainer,
|
|
10
|
+
} as Meta<typeof FlexibleLayoutContainer>;
|
|
11
|
+
|
|
12
|
+
const Template: StoryFn<typeof FlexibleLayoutContainer> = (args) => (
|
|
13
|
+
<div style={{ position: "relative", height: "400px" }}>
|
|
14
|
+
<FlexibleLayoutContainer {...args}>
|
|
15
|
+
<FlexibleLayoutItem>
|
|
16
|
+
<HtmlContentBlock>
|
|
17
|
+
<LoremIpsum p={1} avgSentencesPerParagraph={3} random={false} />
|
|
18
|
+
</HtmlContentBlock>
|
|
19
|
+
</FlexibleLayoutItem>
|
|
20
|
+
<FlexibleLayoutItem>
|
|
21
|
+
<Divider />
|
|
22
|
+
<HtmlContentBlock>
|
|
23
|
+
<LoremIpsum p={3} avgSentencesPerParagraph={2} random={false} />
|
|
24
|
+
</HtmlContentBlock>
|
|
25
|
+
</FlexibleLayoutItem>
|
|
26
|
+
</FlexibleLayoutContainer>
|
|
27
|
+
</div>
|
|
28
|
+
);
|
|
29
|
+
|
|
30
|
+
export const Default = Template.bind({});
|
|
31
|
+
Default.args = {};
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import { LoremIpsum } from "react-lorem-ipsum";
|
|
3
|
+
import { Meta, StoryFn } from "@storybook/react";
|
|
4
|
+
|
|
5
|
+
import { FlexibleLayoutContainer, FlexibleLayoutItem, HtmlContentBlock } from "../../../../index";
|
|
6
|
+
|
|
7
|
+
export default {
|
|
8
|
+
title: "Components/FlexibleLayout/Item",
|
|
9
|
+
component: FlexibleLayoutItem,
|
|
10
|
+
} as Meta<typeof FlexibleLayoutItem>;
|
|
11
|
+
|
|
12
|
+
const Template: StoryFn<typeof FlexibleLayoutItem> = (args) => (
|
|
13
|
+
<FlexibleLayoutContainer horizontal>
|
|
14
|
+
<FlexibleLayoutItem {...args}>
|
|
15
|
+
<HtmlContentBlock>
|
|
16
|
+
<LoremIpsum p={1} avgSentencesPerParagraph={1} avgWordsPerSentence={3} random={false} />
|
|
17
|
+
</HtmlContentBlock>
|
|
18
|
+
</FlexibleLayoutItem>
|
|
19
|
+
<FlexibleLayoutItem>
|
|
20
|
+
<HtmlContentBlock>
|
|
21
|
+
<LoremIpsum p={2} avgSentencesPerParagraph={4} random={false} />
|
|
22
|
+
</HtmlContentBlock>
|
|
23
|
+
</FlexibleLayoutItem>
|
|
24
|
+
</FlexibleLayoutContainer>
|
|
25
|
+
);
|
|
26
|
+
|
|
27
|
+
export const Default = Template.bind({});
|
|
28
|
+
Default.args = {};
|
|
@@ -66,9 +66,9 @@ const canonicalIcons = {
|
|
|
66
66
|
"entity-robot": icons.Bot,
|
|
67
67
|
|
|
68
68
|
"item-add-artefact": icons.AddAlt,
|
|
69
|
-
"item-clone": icons.
|
|
69
|
+
"item-clone": icons.Replicate,
|
|
70
70
|
"item-comment": icons.AddComment,
|
|
71
|
-
"item-copy": icons.
|
|
71
|
+
"item-copy": icons.Copy,
|
|
72
72
|
"item-download": icons.Download,
|
|
73
73
|
"item-draggable": icons.Draggable,
|
|
74
74
|
"item-edit": icons.Edit,
|
|
@@ -30,6 +30,10 @@ export interface LabelProps extends React.LabelHTMLAttributes<HTMLLabelElement>
|
|
|
30
30
|
* If there is no `isLayoutForElement` set then a `span` is used.
|
|
31
31
|
*/
|
|
32
32
|
disabled?: boolean;
|
|
33
|
+
/**
|
|
34
|
+
* visual appearance of the label
|
|
35
|
+
*/
|
|
36
|
+
emphasis?: "strong" | "normal";
|
|
33
37
|
}
|
|
34
38
|
|
|
35
39
|
export const Label = ({
|
|
@@ -41,6 +45,7 @@ export const Label = ({
|
|
|
41
45
|
tooltip,
|
|
42
46
|
tooltipProps,
|
|
43
47
|
isLayoutForElement = "label",
|
|
48
|
+
emphasis = "normal",
|
|
44
49
|
...otherLabelProps
|
|
45
50
|
}: LabelProps) => {
|
|
46
51
|
let htmlElementstring = isLayoutForElement;
|
|
@@ -66,7 +71,7 @@ export const Label = ({
|
|
|
66
71
|
htmlElementstring,
|
|
67
72
|
{
|
|
68
73
|
className:
|
|
69
|
-
`${eccgui}-label` +
|
|
74
|
+
`${eccgui}-label ${eccgui}-label--${emphasis}` +
|
|
70
75
|
(className ? " " + className : "") +
|
|
71
76
|
(disabled ? ` ${eccgui}-label--disabled` : ""),
|
|
72
77
|
...otherLabelProps,
|
|
@@ -21,6 +21,12 @@ $eccgui-color-label-info: rgba($eccgui-color-workspace-text, $eccgui-opacity-mut
|
|
|
21
21
|
opacity: $eccgui-opacity-disabled;
|
|
22
22
|
}
|
|
23
23
|
|
|
24
|
+
.#{$eccgui}-label--strong {
|
|
25
|
+
.#{$eccgui}-label__text {
|
|
26
|
+
font-weight: bolder;
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
|
|
24
30
|
.#{$eccgui}-label__text {
|
|
25
31
|
.#{$eccgui}-typography__overflowtext--passdown > .#{$eccgui}-label > & {
|
|
26
32
|
display: block;
|
|
@@ -2,12 +2,35 @@ import React from "react";
|
|
|
2
2
|
|
|
3
3
|
import { CLASSPREFIX as eccgui } from "../../configuration/constants";
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
import { PropertyValuePair } from "./PropertyValuePair";
|
|
6
|
+
|
|
7
|
+
export interface PropertyValueListProps extends React.HTMLAttributes<HTMLDListElement> {
|
|
8
|
+
/**
|
|
9
|
+
* Only use one single column and put property label and value below each other.
|
|
10
|
+
* This property is forwardd to direct `PropertyValuePair` children.
|
|
11
|
+
*/
|
|
12
|
+
singleColumn?: boolean;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
export const PropertyValueList = ({
|
|
16
|
+
className = "",
|
|
17
|
+
children,
|
|
18
|
+
singleColumn = false,
|
|
19
|
+
...otherProps
|
|
20
|
+
}: PropertyValueListProps) => {
|
|
21
|
+
const alteredChildren = singleColumn
|
|
22
|
+
? React.Children.map(children, (child) => {
|
|
23
|
+
const originalChild = child as React.ReactElement;
|
|
24
|
+
if (originalChild && originalChild.type && originalChild.type === PropertyValuePair) {
|
|
25
|
+
return React.cloneElement(originalChild, { singleColumn: true });
|
|
26
|
+
}
|
|
27
|
+
return child;
|
|
28
|
+
})
|
|
29
|
+
: children;
|
|
6
30
|
|
|
7
|
-
export const PropertyValueList = ({ className = "", children, ...otherProps }: PropertyValueListProps) => {
|
|
8
31
|
return (
|
|
9
32
|
<dl className={`${eccgui}-propertyvalue__list` + (className ? " " + className : "")} {...otherProps}>
|
|
10
|
-
{
|
|
33
|
+
{alteredChildren}
|
|
11
34
|
</dl>
|
|
12
35
|
);
|
|
13
36
|
};
|
|
@@ -18,6 +18,10 @@ export interface PropertyValuePairProps extends React.HTMLAttributes<HTMLDivElem
|
|
|
18
18
|
* Forward the `nowrap` option to it `PropertyName` and `PropertyValue` children.
|
|
19
19
|
*/
|
|
20
20
|
nowrap?: boolean;
|
|
21
|
+
/**
|
|
22
|
+
* Only use one single column and put property label and value below each other.
|
|
23
|
+
*/
|
|
24
|
+
singleColumn?: boolean;
|
|
21
25
|
}
|
|
22
26
|
|
|
23
27
|
export const PropertyValuePair = ({
|
|
@@ -26,6 +30,7 @@ export const PropertyValuePair = ({
|
|
|
26
30
|
nowrap,
|
|
27
31
|
hasSpacing = false,
|
|
28
32
|
hasDivider = false,
|
|
33
|
+
singleColumn = false,
|
|
29
34
|
...otherProps
|
|
30
35
|
}: PropertyValuePairProps) => {
|
|
31
36
|
const alteredChildren = nowrap
|
|
@@ -44,7 +49,8 @@ export const PropertyValuePair = ({
|
|
|
44
49
|
`${eccgui}-propertyvalue__pair` +
|
|
45
50
|
(className ? " " + className : "") +
|
|
46
51
|
(hasSpacing ? ` ${eccgui}-propertyvalue__pair--hasspacing` : "") +
|
|
47
|
-
(hasDivider ? ` ${eccgui}-propertyvalue__pair--hasdivider` : "")
|
|
52
|
+
(hasDivider ? ` ${eccgui}-propertyvalue__pair--hasdivider` : "") +
|
|
53
|
+
(singleColumn ? ` ${eccgui}-propertyvalue__pair--singlecolumn` : "")
|
|
48
54
|
}
|
|
49
55
|
{...otherProps}
|
|
50
56
|
>
|
|
@@ -34,32 +34,41 @@
|
|
|
34
34
|
display: flex;
|
|
35
35
|
flex-direction: column;
|
|
36
36
|
justify-content: center;
|
|
37
|
-
|
|
37
|
+
|
|
38
|
+
:not(.#{$eccgui}-propertyvalue__pair--singlecolumn) > & {
|
|
39
|
+
min-height: $eccgui-size-textfield-height-regular;
|
|
40
|
+
}
|
|
38
41
|
}
|
|
39
42
|
|
|
40
43
|
.#{$eccgui}-propertyvalue__property {
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
+
:not(.#{$eccgui}-propertyvalue__pair--singlecolumn) > & {
|
|
45
|
+
float: left;
|
|
46
|
+
width: math.div(3, 16) * 100%;
|
|
47
|
+
overflow: hidden;
|
|
44
48
|
|
|
45
|
-
|
|
46
|
-
|
|
49
|
+
& > div {
|
|
50
|
+
margin-right: $eccgui-size-block-whitespace;
|
|
51
|
+
}
|
|
47
52
|
}
|
|
48
53
|
}
|
|
49
54
|
|
|
50
55
|
.#{$eccgui}-propertyvalue__property--small {
|
|
51
|
-
|
|
56
|
+
:not(.#{$eccgui}-propertyvalue__pair--singlecolumn) > & {
|
|
57
|
+
width: math.div(2, 16) * 100%;
|
|
52
58
|
|
|
53
|
-
|
|
54
|
-
|
|
59
|
+
& + .#{$eccgui}-propertyvalue__value {
|
|
60
|
+
margin-left: math.div(2, 16) * 100%;
|
|
61
|
+
}
|
|
55
62
|
}
|
|
56
63
|
}
|
|
57
64
|
|
|
58
65
|
.#{$eccgui}-propertyvalue__property--large {
|
|
59
|
-
|
|
66
|
+
:not(.#{$eccgui}-propertyvalue__pair--singlecolumn) > & {
|
|
67
|
+
width: math.div(5, 16) * 100%;
|
|
60
68
|
|
|
61
|
-
|
|
62
|
-
|
|
69
|
+
& + .#{$eccgui}-propertyvalue__value {
|
|
70
|
+
margin-left: math.div(5, 16) * 100%;
|
|
71
|
+
}
|
|
63
72
|
}
|
|
64
73
|
}
|
|
65
74
|
|
|
@@ -70,7 +79,10 @@
|
|
|
70
79
|
|
|
71
80
|
.#{$eccgui}-propertyvalue__value {
|
|
72
81
|
box-sizing: content-box;
|
|
73
|
-
|
|
82
|
+
|
|
83
|
+
:not(.#{$eccgui}-propertyvalue__pair--singlecolumn) > & {
|
|
84
|
+
margin-left: math.div(3, 16) * 100%;
|
|
85
|
+
}
|
|
74
86
|
|
|
75
87
|
&:not(:last-child) {
|
|
76
88
|
.#{$eccgui}-propertyvalue__pair--hasdivider > & {
|
|
@@ -14,7 +14,7 @@ export default {
|
|
|
14
14
|
argTypes: {
|
|
15
15
|
children: {
|
|
16
16
|
control: "none",
|
|
17
|
-
description: "
|
|
17
|
+
description: "Should be one or more `<PropertyValuePair />` elements.",
|
|
18
18
|
},
|
|
19
19
|
},
|
|
20
20
|
} as Meta<typeof PropertyValueList>;
|
|
@@ -16,7 +16,7 @@ export default {
|
|
|
16
16
|
argTypes: {
|
|
17
17
|
children: {
|
|
18
18
|
control: "none",
|
|
19
|
-
description: "
|
|
19
|
+
description: "Should be `<PropertyName/>` and `<PropertyValue/>`, 1 of each.",
|
|
20
20
|
},
|
|
21
21
|
},
|
|
22
22
|
} as Meta<typeof PropertyValuePair>;
|
|
@@ -296,3 +296,54 @@ table {
|
|
|
296
296
|
}
|
|
297
297
|
}
|
|
298
298
|
}
|
|
299
|
+
|
|
300
|
+
// Highlight spots in text bodies
|
|
301
|
+
|
|
302
|
+
:is(#{$eccgui-selector-text-spot-highlight}) {
|
|
303
|
+
position: relative;
|
|
304
|
+
text-decoration: none;
|
|
305
|
+
transition: text-decoration 2s allow-discrete;
|
|
306
|
+
|
|
307
|
+
&::before {
|
|
308
|
+
position: absolute;
|
|
309
|
+
top: 50%;
|
|
310
|
+
left: 50%;
|
|
311
|
+
width: 0;
|
|
312
|
+
height: 0;
|
|
313
|
+
overflow: hidden;
|
|
314
|
+
content: " ";
|
|
315
|
+
background-color: $eccgui-color-primary;
|
|
316
|
+
opacity: 1;
|
|
317
|
+
transition: all 1s ease-in;
|
|
318
|
+
}
|
|
319
|
+
|
|
320
|
+
&:empty {
|
|
321
|
+
&::before {
|
|
322
|
+
border-radius: 100%;
|
|
323
|
+
}
|
|
324
|
+
}
|
|
325
|
+
|
|
326
|
+
&:target,
|
|
327
|
+
&.#{$eccgui}-typography--spothighlight {
|
|
328
|
+
text-decoration: underline;
|
|
329
|
+
text-decoration-style: dotted;
|
|
330
|
+
text-decoration-color: $eccgui-color-accent;
|
|
331
|
+
|
|
332
|
+
&::before {
|
|
333
|
+
top: -50%;
|
|
334
|
+
left: -50%;
|
|
335
|
+
width: 200%;
|
|
336
|
+
height: 200%;
|
|
337
|
+
opacity: 0;
|
|
338
|
+
}
|
|
339
|
+
|
|
340
|
+
&:empty {
|
|
341
|
+
&::before {
|
|
342
|
+
top: -2.5 * $eccgui-size-block-whitespace;
|
|
343
|
+
left: -2.5 * $eccgui-size-block-whitespace;
|
|
344
|
+
width: 5 * $eccgui-size-block-whitespace;
|
|
345
|
+
height: 5 * $eccgui-size-block-whitespace;
|
|
346
|
+
}
|
|
347
|
+
}
|
|
348
|
+
}
|
|
349
|
+
}
|
package/src/components/index.ts
CHANGED
|
@@ -12,6 +12,7 @@ export * from "./Checkbox/Checkbox";
|
|
|
12
12
|
export * from "./ContextOverlay";
|
|
13
13
|
export * from "./Depiction/Depiction";
|
|
14
14
|
export * from "./Dialog";
|
|
15
|
+
export * from "./FlexibleLayout";
|
|
15
16
|
export * from "./Form";
|
|
16
17
|
export * from "./Grid";
|
|
17
18
|
export * from "./HoverToggler/HoverToggler";
|
|
@@ -80,6 +80,10 @@ $eccgui-opacity-invisible: 0 !default;
|
|
|
80
80
|
$eccgui-zindex-modals: 8001 !default; // higher than carbon ui shell header
|
|
81
81
|
$eccgui-zindex-overlays: 10001 !default; // add delta to dialog portals
|
|
82
82
|
|
|
83
|
+
// -- Dynamic selectors --------------------------------------------------------
|
|
84
|
+
|
|
85
|
+
$eccgui-selector-text-spot-highlight: "unknownelement" !default;
|
|
86
|
+
|
|
83
87
|
// -- Calculation of more config vars ------------------------------------------
|
|
84
88
|
|
|
85
89
|
/*
|