@dbcdk/react-components 0.0.125 → 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-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 +12 -0
- 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;
|
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';
|