@dbcdk/react-components 0.0.124 → 0.0.126
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/dist/client.cjs +7 -0
- package/dist/client.d.ts +1 -0
- package/dist/client.js +1 -0
- package/dist/components/chip/Chip.module.css +1 -1
- package/dist/components/environment-banner/EnvironmentBanner.cjs +20 -0
- package/dist/components/environment-banner/EnvironmentBanner.d.ts +14 -0
- package/dist/components/environment-banner/EnvironmentBanner.js +14 -0
- package/dist/components/environment-banner/EnvironmentBanner.module.css +49 -0
- package/dist/components/page/Page.cjs +1 -1
- package/dist/components/page/Page.js +1 -1
- package/dist/components/page-layout/PageLayout.cjs +10 -1
- package/dist/components/page-layout/PageLayout.d.ts +4 -0
- package/dist/components/page-layout/PageLayout.js +10 -1
- package/dist/components/page-layout/PageLayout.module.css +13 -1
- package/dist/components/segmented-progress-bar/SegmentedProgressBar.module.css +4 -4
- package/dist/components/tabs/Tabs.cjs +6 -2
- package/dist/components/tabs/Tabs.js +6 -2
- package/dist/components/tabs/Tabs.module.css +10 -1
- package/dist/index.css +1 -0
- package/package.json +1 -1
package/dist/client.cjs
CHANGED
|
@@ -14,6 +14,7 @@ var Tabs = require('./components/tabs/Tabs');
|
|
|
14
14
|
var Headline = require('./components/headline/Headline');
|
|
15
15
|
var CollapsibleHeadline = require('./components/headline/CollapsibleHeadline');
|
|
16
16
|
var PageLayout = require('./components/page-layout/PageLayout');
|
|
17
|
+
var EnvironmentBanner = require('./components/environment-banner/EnvironmentBanner');
|
|
17
18
|
var Footer = require('./components/page-layout/components/footer/Footer');
|
|
18
19
|
var Input = require('./components/forms/input/Input');
|
|
19
20
|
var SearchBox = require('./components/search-box/SearchBox');
|
|
@@ -168,6 +169,12 @@ Object.keys(PageLayout).forEach(function (k) {
|
|
|
168
169
|
get: function () { return PageLayout[k]; }
|
|
169
170
|
});
|
|
170
171
|
});
|
|
172
|
+
Object.keys(EnvironmentBanner).forEach(function (k) {
|
|
173
|
+
if (k !== 'default' && !Object.prototype.hasOwnProperty.call(exports, k)) Object.defineProperty(exports, k, {
|
|
174
|
+
enumerable: true,
|
|
175
|
+
get: function () { return EnvironmentBanner[k]; }
|
|
176
|
+
});
|
|
177
|
+
});
|
|
171
178
|
Object.keys(Footer).forEach(function (k) {
|
|
172
179
|
if (k !== 'default' && !Object.prototype.hasOwnProperty.call(exports, k)) Object.defineProperty(exports, k, {
|
|
173
180
|
enumerable: true,
|
package/dist/client.d.ts
CHANGED
|
@@ -11,6 +11,7 @@ export * from './components/tabs/Tabs';
|
|
|
11
11
|
export * from './components/headline/Headline';
|
|
12
12
|
export * from './components/headline/CollapsibleHeadline';
|
|
13
13
|
export * from './components/page-layout/PageLayout';
|
|
14
|
+
export * from './components/environment-banner/EnvironmentBanner';
|
|
14
15
|
export * from './components/page-layout/components/footer/Footer';
|
|
15
16
|
export * from './components/forms/input/Input';
|
|
16
17
|
export * from './components/search-box/SearchBox';
|
package/dist/client.js
CHANGED
|
@@ -12,6 +12,7 @@ export * from './components/tabs/Tabs';
|
|
|
12
12
|
export * from './components/headline/Headline';
|
|
13
13
|
export * from './components/headline/CollapsibleHeadline';
|
|
14
14
|
export * from './components/page-layout/PageLayout';
|
|
15
|
+
export * from './components/environment-banner/EnvironmentBanner';
|
|
15
16
|
export * from './components/page-layout/components/footer/Footer';
|
|
16
17
|
export * from './components/forms/input/Input';
|
|
17
18
|
export * from './components/search-box/SearchBox';
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var jsxRuntime = require('react/jsx-runtime');
|
|
4
|
+
var styles = require('./EnvironmentBanner.module.css');
|
|
5
|
+
|
|
6
|
+
function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
|
|
7
|
+
|
|
8
|
+
var styles__default = /*#__PURE__*/_interopDefault(styles);
|
|
9
|
+
|
|
10
|
+
const PRESETS = {
|
|
11
|
+
production: { label: "Produktionsmilj\xF8", severity: "success" },
|
|
12
|
+
staging: { label: "Staging-milj\xF8", severity: "warning" },
|
|
13
|
+
test: { label: "Test-milj\xF8", severity: "info" }
|
|
14
|
+
};
|
|
15
|
+
function EnvironmentBanner(props) {
|
|
16
|
+
const { label, severity } = props.environment != null ? PRESETS[props.environment] : { label: props.customLabel, severity: props.customSeverity };
|
|
17
|
+
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: styles__default.default.banner, "data-severity": severity, role: "status", "aria-label": label, children: label });
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
exports.EnvironmentBanner = EnvironmentBanner;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { JSX } from 'react';
|
|
2
|
+
import type { Severity } from '../../constants/severity.types';
|
|
3
|
+
type Environment = 'production' | 'staging' | 'test';
|
|
4
|
+
export type EnvironmentBannerProps = {
|
|
5
|
+
environment: Environment;
|
|
6
|
+
customLabel?: never;
|
|
7
|
+
customSeverity?: never;
|
|
8
|
+
} | {
|
|
9
|
+
environment?: never;
|
|
10
|
+
customLabel: string;
|
|
11
|
+
customSeverity: Severity;
|
|
12
|
+
};
|
|
13
|
+
export declare function EnvironmentBanner(props: EnvironmentBannerProps): JSX.Element;
|
|
14
|
+
export {};
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { jsx } from 'react/jsx-runtime';
|
|
2
|
+
import styles from './EnvironmentBanner.module.css';
|
|
3
|
+
|
|
4
|
+
const PRESETS = {
|
|
5
|
+
production: { label: "Produktionsmilj\xF8", severity: "success" },
|
|
6
|
+
staging: { label: "Staging-milj\xF8", severity: "warning" },
|
|
7
|
+
test: { label: "Test-milj\xF8", severity: "info" }
|
|
8
|
+
};
|
|
9
|
+
function EnvironmentBanner(props) {
|
|
10
|
+
const { label, severity } = props.environment != null ? PRESETS[props.environment] : { label: props.customLabel, severity: props.customSeverity };
|
|
11
|
+
return /* @__PURE__ */ jsx("div", { className: styles.banner, "data-severity": severity, role: "status", "aria-label": label, children: label });
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
export { EnvironmentBanner };
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
.banner {
|
|
2
|
+
--env-banner-bg: var(--color-bg-toolbar);
|
|
3
|
+
--env-banner-fg: var(--color-fg-default);
|
|
4
|
+
|
|
5
|
+
display: flex;
|
|
6
|
+
align-items: center;
|
|
7
|
+
justify-content: center;
|
|
8
|
+
width: 100%;
|
|
9
|
+
padding-block: var(--spacing-2xs);
|
|
10
|
+
padding-inline: var(--spacing-md);
|
|
11
|
+
background-color: var(--env-banner-bg);
|
|
12
|
+
color: var(--env-banner-fg);
|
|
13
|
+
|
|
14
|
+
font-size: var(--font-size-xs);
|
|
15
|
+
font-weight: var(--font-weight-semibold);
|
|
16
|
+
text-transform: uppercase;
|
|
17
|
+
line-height: var(--line-height-normal);
|
|
18
|
+
user-select: none;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
.banner[data-severity='success'] {
|
|
22
|
+
--env-banner-bg: var(--color-status-success);
|
|
23
|
+
--env-banner-fg: var(--color-status-success-bg);
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
.banner[data-severity='warning'] {
|
|
27
|
+
--env-banner-bg: var(--color-status-warning);
|
|
28
|
+
--env-banner-fg: var(--color-status-warning-bg);
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
.banner[data-severity='error'] {
|
|
32
|
+
--env-banner-bg: var(--color-status-error);
|
|
33
|
+
--env-banner-fg: var(--color-status-error-bg);
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
.banner[data-severity='info'] {
|
|
37
|
+
--env-banner-bg: var(--color-status-info);
|
|
38
|
+
--env-banner-fg: var(--color-status-info-bg);
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
.banner[data-severity='brand'] {
|
|
42
|
+
--env-banner-bg: var(--color-brand);
|
|
43
|
+
--env-banner-fg: var(--color-fg-on-brand);
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
.banner[data-severity='neutral'] {
|
|
47
|
+
--env-banner-bg: var(--color-neutral);
|
|
48
|
+
--env-banner-fg: var(--color-fg-default);
|
|
49
|
+
}
|
|
@@ -35,6 +35,12 @@ function splitSlots(children) {
|
|
|
35
35
|
});
|
|
36
36
|
return { slots, rest };
|
|
37
37
|
}
|
|
38
|
+
const PageLayoutBanner = ({
|
|
39
|
+
children
|
|
40
|
+
}) => {
|
|
41
|
+
return /* @__PURE__ */ jsxRuntime.jsx(jsxRuntime.Fragment, { children });
|
|
42
|
+
};
|
|
43
|
+
PageLayoutBanner.__PAGE_LAYOUT_SLOT__ = "Banner";
|
|
38
44
|
const PageLayoutSidebar = ({
|
|
39
45
|
children
|
|
40
46
|
}) => {
|
|
@@ -73,9 +79,11 @@ const PageLayoutBase = ({
|
|
|
73
79
|
const rootClass = [
|
|
74
80
|
styles__default.default.root,
|
|
75
81
|
orientation === "vertical" ? styles__default.default.vertical : styles__default.default.horizontal,
|
|
76
|
-
containScrolling ? styles__default.default.containScrolling : styles__default.default.documentScrolling
|
|
82
|
+
containScrolling ? styles__default.default.containScrolling : styles__default.default.documentScrolling,
|
|
83
|
+
slots.Banner ? styles__default.default.hasBanner : ""
|
|
77
84
|
].filter(Boolean).join(" ");
|
|
78
85
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: rootClass, children: [
|
|
86
|
+
slots.Banner ? /* @__PURE__ */ jsxRuntime.jsx("div", { className: styles__default.default.banner, children: slots.Banner }) : null,
|
|
79
87
|
slots.Sidebar ? /* @__PURE__ */ jsxRuntime.jsx("div", { className: styles__default.default.sidebar, children: slots.Sidebar }) : null,
|
|
80
88
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: styles__default.default.mainColumn, children: [
|
|
81
89
|
slots.Header ? /* @__PURE__ */ jsxRuntime.jsx("div", { className: styles__default.default.header, children: slots.Header }) : null,
|
|
@@ -88,6 +96,7 @@ const PageLayoutBase = ({
|
|
|
88
96
|
] });
|
|
89
97
|
};
|
|
90
98
|
const PageLayout = Object.assign(PageLayoutBase, {
|
|
99
|
+
Banner: PageLayoutBanner,
|
|
91
100
|
Sidebar: PageLayoutSidebar,
|
|
92
101
|
Header: PageLayoutHeader,
|
|
93
102
|
Content: PageLayoutContent,
|
|
@@ -22,10 +22,14 @@ export interface PageLayoutFooterProps {
|
|
|
22
22
|
maxWidth?: PageLayoutMaxWidth;
|
|
23
23
|
children: ReactNode;
|
|
24
24
|
}
|
|
25
|
+
export interface PageLayoutBannerProps {
|
|
26
|
+
children: ReactNode;
|
|
27
|
+
}
|
|
25
28
|
export interface PageLayoutSidebarProps {
|
|
26
29
|
children: ReactNode;
|
|
27
30
|
}
|
|
28
31
|
export declare const PageLayout: FC<PageLayoutProps> & {
|
|
32
|
+
Banner: FC<PageLayoutBannerProps>;
|
|
29
33
|
Sidebar: FC<PageLayoutSidebarProps>;
|
|
30
34
|
Header: FC<PageLayoutHeaderProps>;
|
|
31
35
|
Content: FC<PageLayoutContentProps>;
|
|
@@ -29,6 +29,12 @@ function splitSlots(children) {
|
|
|
29
29
|
});
|
|
30
30
|
return { slots, rest };
|
|
31
31
|
}
|
|
32
|
+
const PageLayoutBanner = ({
|
|
33
|
+
children
|
|
34
|
+
}) => {
|
|
35
|
+
return /* @__PURE__ */ jsx(Fragment, { children });
|
|
36
|
+
};
|
|
37
|
+
PageLayoutBanner.__PAGE_LAYOUT_SLOT__ = "Banner";
|
|
32
38
|
const PageLayoutSidebar = ({
|
|
33
39
|
children
|
|
34
40
|
}) => {
|
|
@@ -67,9 +73,11 @@ const PageLayoutBase = ({
|
|
|
67
73
|
const rootClass = [
|
|
68
74
|
styles.root,
|
|
69
75
|
orientation === "vertical" ? styles.vertical : styles.horizontal,
|
|
70
|
-
containScrolling ? styles.containScrolling : styles.documentScrolling
|
|
76
|
+
containScrolling ? styles.containScrolling : styles.documentScrolling,
|
|
77
|
+
slots.Banner ? styles.hasBanner : ""
|
|
71
78
|
].filter(Boolean).join(" ");
|
|
72
79
|
return /* @__PURE__ */ jsxs("div", { className: rootClass, children: [
|
|
80
|
+
slots.Banner ? /* @__PURE__ */ jsx("div", { className: styles.banner, children: slots.Banner }) : null,
|
|
73
81
|
slots.Sidebar ? /* @__PURE__ */ jsx("div", { className: styles.sidebar, children: slots.Sidebar }) : null,
|
|
74
82
|
/* @__PURE__ */ jsxs("div", { className: styles.mainColumn, children: [
|
|
75
83
|
slots.Header ? /* @__PURE__ */ jsx("div", { className: styles.header, children: slots.Header }) : null,
|
|
@@ -82,6 +90,7 @@ const PageLayoutBase = ({
|
|
|
82
90
|
] });
|
|
83
91
|
};
|
|
84
92
|
const PageLayout = Object.assign(PageLayoutBase, {
|
|
93
|
+
Banner: PageLayoutBanner,
|
|
85
94
|
Sidebar: PageLayoutSidebar,
|
|
86
95
|
Header: PageLayoutHeader,
|
|
87
96
|
Content: PageLayoutContent,
|
|
@@ -31,6 +31,18 @@
|
|
|
31
31
|
grid-template-columns: minmax(0, 1fr);
|
|
32
32
|
}
|
|
33
33
|
|
|
34
|
+
/* Banner: spans both sidebar and main columns */
|
|
35
|
+
.banner {
|
|
36
|
+
grid-column: 1 / -1;
|
|
37
|
+
min-width: 0;
|
|
38
|
+
flex: 0 0 auto;
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
/* In contained mode, allocate banner height then give the rest to sidebar+main */
|
|
42
|
+
.containScrolling.hasBanner {
|
|
43
|
+
grid-template-rows: auto 1fr;
|
|
44
|
+
}
|
|
45
|
+
|
|
34
46
|
/* Sidebar */
|
|
35
47
|
.sidebar {
|
|
36
48
|
min-width: 0;
|
|
@@ -132,7 +144,7 @@
|
|
|
132
144
|
align-items: center;
|
|
133
145
|
|
|
134
146
|
background: var(--color-bg-surface);
|
|
135
|
-
padding: var(--spacing-
|
|
147
|
+
padding: var(--spacing-xl) var(--spacing-xl);
|
|
136
148
|
overflow: visible;
|
|
137
149
|
}
|
|
138
150
|
|
|
@@ -12,10 +12,10 @@
|
|
|
12
12
|
--progress-fill-progress: color-mix(in srgb, var(--color-fg-default) 6%, transparent);
|
|
13
13
|
--progress-fill-missing: color-mix(in srgb, var(--color-fg-default) 8%, transparent);
|
|
14
14
|
--progress-fill-neutral: color-mix(in srgb, var(--color-fg-default) 8%, transparent);
|
|
15
|
-
--progress-fill-success: color-mix(in srgb, var(--color-status-success)
|
|
16
|
-
--progress-fill-info: color-mix(in srgb, var(--color-status-info)
|
|
17
|
-
--progress-fill-warning: color-mix(in srgb, var(--color-status-warning)
|
|
18
|
-
--progress-fill-error: color-mix(in srgb, var(--color-status-error)
|
|
15
|
+
--progress-fill-success: color-mix(in srgb, var(--color-status-success) 95%, transparent);
|
|
16
|
+
--progress-fill-info: color-mix(in srgb, var(--color-status-info) 70%, transparent);
|
|
17
|
+
--progress-fill-warning: color-mix(in srgb, var(--color-status-warning) 70%, transparent);
|
|
18
|
+
--progress-fill-error: color-mix(in srgb, var(--color-status-error) 75%, transparent);
|
|
19
19
|
|
|
20
20
|
position: relative;
|
|
21
21
|
width: 100%;
|
|
@@ -124,8 +124,12 @@ function Tabs({
|
|
|
124
124
|
header ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
125
125
|
"div",
|
|
126
126
|
{
|
|
127
|
-
className: [
|
|
128
|
-
|
|
127
|
+
className: [
|
|
128
|
+
styles__default.default.headerContainer,
|
|
129
|
+
variant === "outlined" ? styles__default.default.headerContainerOutlined : "",
|
|
130
|
+
disableTopPadding ? styles__default.default.disableTopPadding : ""
|
|
131
|
+
].filter(Boolean).join(" "),
|
|
132
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(Headline.Headline, { disableMargin: true, size: 2, subheader, addition, children: header })
|
|
129
133
|
}
|
|
130
134
|
) : null,
|
|
131
135
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: `${styles__default.default.tabs} ${styles__default.default[variant]} ${panelStyle ? styles__default.default.panelStyle : ""}`, children: [
|
|
@@ -118,8 +118,12 @@ function Tabs({
|
|
|
118
118
|
header ? /* @__PURE__ */ jsx(
|
|
119
119
|
"div",
|
|
120
120
|
{
|
|
121
|
-
className: [
|
|
122
|
-
|
|
121
|
+
className: [
|
|
122
|
+
styles.headerContainer,
|
|
123
|
+
variant === "outlined" ? styles.headerContainerOutlined : "",
|
|
124
|
+
disableTopPadding ? styles.disableTopPadding : ""
|
|
125
|
+
].filter(Boolean).join(" "),
|
|
126
|
+
children: /* @__PURE__ */ jsx(Headline, { disableMargin: true, size: 2, subheader, addition, children: header })
|
|
123
127
|
}
|
|
124
128
|
) : null,
|
|
125
129
|
/* @__PURE__ */ jsxs("div", { className: `${styles.tabs} ${styles[variant]} ${panelStyle ? styles.panelStyle : ""}`, children: [
|
|
@@ -183,10 +183,19 @@
|
|
|
183
183
|
Outlined variant
|
|
184
184
|
========================= */
|
|
185
185
|
|
|
186
|
-
.outlined {
|
|
186
|
+
.tabs.outlined {
|
|
187
187
|
gap: var(--spacing-lg);
|
|
188
188
|
}
|
|
189
189
|
|
|
190
|
+
.headerContainerOutlined {
|
|
191
|
+
padding-block-start: var(--spacing-sm);
|
|
192
|
+
padding-block-end: var(--spacing-sm);
|
|
193
|
+
}
|
|
194
|
+
|
|
195
|
+
.headerContainerOutlined.disableTopPadding {
|
|
196
|
+
padding-block-start: 0;
|
|
197
|
+
}
|
|
198
|
+
|
|
190
199
|
.outlined .tab {
|
|
191
200
|
color: var(--color-fg-muted);
|
|
192
201
|
border-block-end: 2px solid var(--color-border-default);
|
package/dist/index.css
CHANGED
|
@@ -18,6 +18,7 @@
|
|
|
18
18
|
@import './components/code-block/CodeBlock.module.css';
|
|
19
19
|
@import './components/copy-button/CopyButton.module.css';
|
|
20
20
|
@import './components/datetime-picker/DateTimePicker.module.css';
|
|
21
|
+
@import './components/environment-banner/EnvironmentBanner.module.css';
|
|
21
22
|
@import './components/filter-field/FilterField.module.css';
|
|
22
23
|
@import './components/filtering/chip-multi-toggle/ChipMultiToggle.module.css';
|
|
23
24
|
@import './components/forms/checkbox-group/CheckboxGroup.module.css';
|