@elliemae/ds-banner 2.3.0-next.3 → 3.0.0-alpha.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.
- package/dist/cjs/DSBanner.js +138 -0
- package/dist/cjs/DSBanner.js.map +7 -0
- package/dist/cjs/defaultProps.js +45 -0
- package/dist/cjs/defaultProps.js.map +7 -0
- package/dist/cjs/index.d.js +27 -0
- package/dist/cjs/index.d.js.map +7 -0
- package/dist/cjs/index.js +37 -0
- package/dist/cjs/index.js.map +7 -0
- package/dist/cjs/propTypes.js +55 -0
- package/dist/cjs/propTypes.js.map +7 -0
- package/dist/cjs/styles.js +107 -0
- package/dist/cjs/styles.js.map +7 -0
- package/dist/cjs/utils/bannerTypes.js +40 -0
- package/dist/cjs/utils/bannerTypes.js.map +7 -0
- package/dist/cjs/utils/icons.js +58 -0
- package/dist/cjs/utils/icons.js.map +7 -0
- package/dist/cjs/utils/styleHelpers.js +99 -0
- package/dist/cjs/utils/styleHelpers.js.map +7 -0
- package/dist/esm/DSBanner.js +117 -0
- package/dist/esm/DSBanner.js.map +7 -0
- package/dist/esm/defaultProps.js +16 -0
- package/dist/esm/defaultProps.js.map +7 -0
- package/dist/esm/index.d.js +2 -0
- package/dist/esm/index.d.js.map +7 -0
- package/dist/esm/index.js +8 -0
- package/dist/esm/index.js.map +7 -0
- package/dist/esm/propTypes.js +26 -0
- package/dist/esm/propTypes.js.map +7 -0
- package/dist/esm/styles.js +78 -0
- package/dist/esm/styles.js.map +7 -0
- package/dist/esm/utils/bannerTypes.js +11 -0
- package/dist/esm/utils/bannerTypes.js.map +7 -0
- package/dist/esm/utils/icons.js +29 -0
- package/dist/esm/utils/icons.js.map +7 -0
- package/dist/esm/utils/styleHelpers.js +70 -0
- package/dist/esm/utils/styleHelpers.js.map +7 -0
- package/{types → dist/types}/DSBanner.d.ts +1 -1
- package/{types → dist/types}/defaultProps.d.ts +0 -0
- package/{types → dist/types}/index.d.ts +0 -0
- package/{types → dist/types}/propTypes.d.ts +0 -0
- package/{types → dist/types}/styles.d.ts +7 -7
- package/{types → dist/types}/tests/DSBanner.events.test.d.ts +0 -0
- package/{types → dist/types}/tests/DSBanner.test.d.ts +0 -0
- package/{types → dist/types}/utils/bannerTypes.d.ts +0 -0
- package/{types → dist/types}/utils/icons.d.ts +0 -0
- package/{types → dist/types}/utils/styleHelpers.d.ts +0 -0
- package/package.json +42 -34
- package/cjs/DSBanner.js +0 -132
- package/cjs/defaultProps.js +0 -22
- package/cjs/index.d.js +0 -2
- package/cjs/index.js +0 -12
- package/cjs/propTypes.js +0 -24
- package/cjs/styles.js +0 -146
- package/cjs/utils/bannerTypes.js +0 -12
- package/cjs/utils/icons.js +0 -36
- package/cjs/utils/styleHelpers.js +0 -53
- package/esm/DSBanner.js +0 -121
- package/esm/defaultProps.js +0 -18
- package/esm/index.d.js +0 -1
- package/esm/index.js +0 -2
- package/esm/propTypes.js +0 -20
- package/esm/styles.js +0 -131
- package/esm/utils/bannerTypes.js +0 -8
- package/esm/utils/icons.js +0 -28
- package/esm/utils/styleHelpers.js +0 -44
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
var __create = Object.create;
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
6
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
7
|
+
var __markAsModule = (target) => __defProp(target, "__esModule", { value: true });
|
|
8
|
+
var __export = (target, all) => {
|
|
9
|
+
for (var name in all)
|
|
10
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
11
|
+
};
|
|
12
|
+
var __reExport = (target, module2, copyDefault, desc) => {
|
|
13
|
+
if (module2 && typeof module2 === "object" || typeof module2 === "function") {
|
|
14
|
+
for (let key of __getOwnPropNames(module2))
|
|
15
|
+
if (!__hasOwnProp.call(target, key) && (copyDefault || key !== "default"))
|
|
16
|
+
__defProp(target, key, { get: () => module2[key], enumerable: !(desc = __getOwnPropDesc(module2, key)) || desc.enumerable });
|
|
17
|
+
}
|
|
18
|
+
return target;
|
|
19
|
+
};
|
|
20
|
+
var __toESM = (module2, isNodeMode) => {
|
|
21
|
+
return __reExport(__markAsModule(__defProp(module2 != null ? __create(__getProtoOf(module2)) : {}, "default", !isNodeMode && module2 && module2.__esModule ? { get: () => module2.default, enumerable: true } : { value: module2, enumerable: true })), module2);
|
|
22
|
+
};
|
|
23
|
+
var __toCommonJS = /* @__PURE__ */ ((cache) => {
|
|
24
|
+
return (module2, temp) => {
|
|
25
|
+
return cache && cache.get(module2) || (temp = __reExport(__markAsModule({}), module2, 1), cache && cache.set(module2, temp), temp);
|
|
26
|
+
};
|
|
27
|
+
})(typeof WeakMap !== "undefined" ? /* @__PURE__ */ new WeakMap() : 0);
|
|
28
|
+
var styleHelpers_exports = {};
|
|
29
|
+
__export(styleHelpers_exports, {
|
|
30
|
+
handleAnimation: () => handleAnimation,
|
|
31
|
+
handleBorderColor: () => handleBorderColor
|
|
32
|
+
});
|
|
33
|
+
var React = __toESM(require("react"));
|
|
34
|
+
var import_ds_system = require("@elliemae/ds-system");
|
|
35
|
+
var import_bannerTypes = require("./bannerTypes");
|
|
36
|
+
const slideIn = import_ds_system.kfrm`
|
|
37
|
+
0% {
|
|
38
|
+
transform: translate3d(0, -100%, 0);
|
|
39
|
+
}
|
|
40
|
+
100% {
|
|
41
|
+
transform: translate3d(0, 0, 0);
|
|
42
|
+
}
|
|
43
|
+
`;
|
|
44
|
+
const slideOut = import_ds_system.kfrm`
|
|
45
|
+
0% {
|
|
46
|
+
transform: translate3d(0, 0, 0);
|
|
47
|
+
opacity: 1;
|
|
48
|
+
}
|
|
49
|
+
60% {
|
|
50
|
+
opacity: 0;
|
|
51
|
+
}
|
|
52
|
+
100% {
|
|
53
|
+
opacity: 0;
|
|
54
|
+
transform: translate3d(0, -100%, 0);
|
|
55
|
+
}
|
|
56
|
+
`;
|
|
57
|
+
const spanContainer = (height) => import_ds_system.kfrm`
|
|
58
|
+
0% {
|
|
59
|
+
height: 0px;
|
|
60
|
+
}
|
|
61
|
+
100% {
|
|
62
|
+
height: ${height}px;
|
|
63
|
+
}
|
|
64
|
+
`;
|
|
65
|
+
const shrinkContainer = (height) => import_ds_system.kfrm`
|
|
66
|
+
0% {
|
|
67
|
+
height: ${height}px;
|
|
68
|
+
}
|
|
69
|
+
100% {
|
|
70
|
+
height: 0px;
|
|
71
|
+
}
|
|
72
|
+
`;
|
|
73
|
+
const handleBorderColor = (type, { colors }) => {
|
|
74
|
+
switch (type) {
|
|
75
|
+
case import_bannerTypes.BANNER_TYPES.SUCCESS:
|
|
76
|
+
return colors.success[900];
|
|
77
|
+
case import_bannerTypes.BANNER_TYPES.INFO:
|
|
78
|
+
return colors.brand[600];
|
|
79
|
+
case import_bannerTypes.BANNER_TYPES.WARNING:
|
|
80
|
+
return colors.warning[900];
|
|
81
|
+
case import_bannerTypes.BANNER_TYPES.DANGER:
|
|
82
|
+
return colors.danger[900];
|
|
83
|
+
}
|
|
84
|
+
};
|
|
85
|
+
const handleAnimation = (isAnimating, isOpen, height = null) => {
|
|
86
|
+
if (isAnimating) {
|
|
87
|
+
if (isOpen) {
|
|
88
|
+
return import_ds_system.css`
|
|
89
|
+
animation: ${height ? spanContainer(height) : slideIn} 0.5s ease-in;
|
|
90
|
+
`;
|
|
91
|
+
} else {
|
|
92
|
+
return import_ds_system.css`
|
|
93
|
+
animation: ${height ? shrinkContainer(height) : slideOut} 0.5s ease-in;
|
|
94
|
+
`;
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
};
|
|
98
|
+
module.exports = __toCommonJS(styleHelpers_exports);
|
|
99
|
+
//# sourceMappingURL=styleHelpers.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/utils/styleHelpers.ts", "../../../../../scripts/build/transpile/react-shim.js"],
|
|
4
|
+
"sourcesContent": ["import { kfrm, css } from '@elliemae/ds-system';\nimport type { FlattenSimpleInterpolation } from 'styled-components';\nimport { BANNER_TYPES } from './bannerTypes';\n\nconst slideIn = kfrm`\n 0% {\n transform: translate3d(0, -100%, 0);\n }\n 100% {\n transform: translate3d(0, 0, 0);\n }\n`;\n\nconst slideOut = kfrm`\n 0% {\n transform: translate3d(0, 0, 0);\n opacity: 1;\n }\n 60% {\n opacity: 0;\n }\n 100% {\n opacity: 0;\n transform: translate3d(0, -100%, 0);\n }\n`;\n\nconst spanContainer = (height: number) => kfrm`\n 0% {\n height: 0px;\n }\n 100% {\n height: ${height}px;\n }\n`;\n\nconst shrinkContainer = (height: number) => kfrm`\n 0% {\n height: ${height}px;\n }\n 100% {\n height: 0px;\n }\n`;\n\nexport const handleBorderColor = (type, { colors }): string => {\n switch (type) {\n case BANNER_TYPES.SUCCESS:\n return colors.success[900];\n case BANNER_TYPES.INFO:\n return colors.brand[600];\n case BANNER_TYPES.WARNING:\n return colors.warning[900];\n case BANNER_TYPES.DANGER:\n return colors.danger[900];\n }\n};\n\nexport const handleAnimation = (\n isAnimating: boolean,\n isOpen: boolean,\n height: number | null = null,\n): FlattenSimpleInterpolation => {\n if (isAnimating) {\n if (isOpen) {\n return css`\n animation: ${height ? spanContainer(height) : slideIn} 0.5s ease-in;\n `;\n } else {\n return css`\n animation: ${height ? shrinkContainer(height) : slideOut} 0.5s ease-in;\n `;\n }\n }\n};\n", "import * as React from 'react';\nexport { React };\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADAvB,uBAA0B;AAE1B,yBAA6B;AAE7B,MAAM,UAAU;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAShB,MAAM,WAAW;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAcjB,MAAM,gBAAgB,CAAC,WAAmB;AAAA;AAAA;AAAA;AAAA;AAAA,cAK5B;AAAA;AAAA;AAId,MAAM,kBAAkB,CAAC,WAAmB;AAAA;AAAA,cAE9B;AAAA;AAAA;AAAA;AAAA;AAAA;AAOP,MAAM,oBAAoB,CAAC,MAAM,EAAE,aAAqB;AAC7D,UAAQ;AAAA,SACD,gCAAa;AAChB,aAAO,OAAO,QAAQ;AAAA,SACnB,gCAAa;AAChB,aAAO,OAAO,MAAM;AAAA,SACjB,gCAAa;AAChB,aAAO,OAAO,QAAQ;AAAA,SACnB,gCAAa;AAChB,aAAO,OAAO,OAAO;AAAA;AAAA;AAIpB,MAAM,kBAAkB,CAC7B,aACA,QACA,SAAwB,SACO;AAC/B,MAAI,aAAa;AACf,QAAI,QAAQ;AACV,aAAO;AAAA,qBACQ,SAAS,cAAc,UAAU;AAAA;AAAA,WAE3C;AACL,aAAO;AAAA,qBACQ,SAAS,gBAAgB,UAAU;AAAA;AAAA;AAAA;AAAA;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
import React2, { useLayoutEffect, useRef, useCallback, useState } from "react";
|
|
3
|
+
import { CloseX } from "@elliemae/ds-icons";
|
|
4
|
+
import { describe } from "react-desc";
|
|
5
|
+
import { icons } from "./utils/icons";
|
|
6
|
+
import { propTypes } from "./propTypes";
|
|
7
|
+
import { defaultProps } from "./defaultProps";
|
|
8
|
+
import {
|
|
9
|
+
StyledActionLink,
|
|
10
|
+
StyledCloseButton,
|
|
11
|
+
StyledInnerContainer,
|
|
12
|
+
StyledBannerContainer,
|
|
13
|
+
StyledIconContainer,
|
|
14
|
+
StyledSubTitle,
|
|
15
|
+
StyledTitle
|
|
16
|
+
} from "./styles";
|
|
17
|
+
const DSBanner = ({
|
|
18
|
+
type,
|
|
19
|
+
isOpen,
|
|
20
|
+
onClose,
|
|
21
|
+
label,
|
|
22
|
+
body,
|
|
23
|
+
actionLink,
|
|
24
|
+
showCloseButton,
|
|
25
|
+
containerProps,
|
|
26
|
+
actionRef
|
|
27
|
+
}) => {
|
|
28
|
+
const innerContainerRef = useRef(null);
|
|
29
|
+
const linkRef = useRef(null);
|
|
30
|
+
const [current, setCurrent] = useState(isOpen);
|
|
31
|
+
const [isAnimating, setIsAnimating] = useState(false);
|
|
32
|
+
const [alertTabIndex, setAlertTabIndex] = useState(void 0);
|
|
33
|
+
const ownerState = { type };
|
|
34
|
+
React2.useEffect(() => {
|
|
35
|
+
if (actionRef && actionRef.current) {
|
|
36
|
+
actionRef.current.focusOnWrapper = () => {
|
|
37
|
+
if (innerContainerRef.current) {
|
|
38
|
+
setAlertTabIndex(0);
|
|
39
|
+
setTimeout(() => {
|
|
40
|
+
innerContainerRef.current.focus();
|
|
41
|
+
}, 100);
|
|
42
|
+
}
|
|
43
|
+
};
|
|
44
|
+
actionRef.current.focusOnLink = () => {
|
|
45
|
+
if (linkRef.current) {
|
|
46
|
+
linkRef.current.focus();
|
|
47
|
+
}
|
|
48
|
+
};
|
|
49
|
+
}
|
|
50
|
+
}, [actionRef]);
|
|
51
|
+
useLayoutEffect(() => {
|
|
52
|
+
if (isOpen !== current || isOpen)
|
|
53
|
+
setIsAnimating(true);
|
|
54
|
+
else
|
|
55
|
+
setIsAnimating(false);
|
|
56
|
+
}, [isOpen, current]);
|
|
57
|
+
const handleBlur = useCallback(() => {
|
|
58
|
+
setAlertTabIndex(void 0);
|
|
59
|
+
}, []);
|
|
60
|
+
const handleOnKeyDown = useCallback((e) => {
|
|
61
|
+
if (e.key === "Enter" || e.key === " ") {
|
|
62
|
+
e.preventDefault();
|
|
63
|
+
if (linkRef.current)
|
|
64
|
+
linkRef.current.click();
|
|
65
|
+
}
|
|
66
|
+
}, []);
|
|
67
|
+
if (!isAnimating && !isOpen)
|
|
68
|
+
return null;
|
|
69
|
+
return /* @__PURE__ */ React2.createElement(StyledBannerContainer, {
|
|
70
|
+
type,
|
|
71
|
+
isOpen,
|
|
72
|
+
isAnimating,
|
|
73
|
+
onAnimationEnd: () => setCurrent(isOpen),
|
|
74
|
+
"data-testid": "ds-banner-container",
|
|
75
|
+
...containerProps,
|
|
76
|
+
ownerState
|
|
77
|
+
}, /* @__PURE__ */ React2.createElement(StyledInnerContainer, {
|
|
78
|
+
type,
|
|
79
|
+
isOpen,
|
|
80
|
+
ref: innerContainerRef,
|
|
81
|
+
isAnimating,
|
|
82
|
+
"data-testid": "ds-banner",
|
|
83
|
+
role: "alert",
|
|
84
|
+
tabIndex: alertTabIndex,
|
|
85
|
+
onBlur: handleBlur
|
|
86
|
+
}, /* @__PURE__ */ React2.createElement(StyledIconContainer, {
|
|
87
|
+
"data-testid": "ds-banner-icon"
|
|
88
|
+
}, icons[type]), /* @__PURE__ */ React2.createElement(StyledTitle, null, label), /* @__PURE__ */ React2.createElement(StyledSubTitle, null, /* @__PURE__ */ React2.createElement("span", null, body), actionLink && /* @__PURE__ */ React2.createElement(StyledActionLink, {
|
|
89
|
+
"data-testid": "ds-banner-action-link",
|
|
90
|
+
onClick: actionLink.onClick,
|
|
91
|
+
href: actionLink.href,
|
|
92
|
+
ref: linkRef,
|
|
93
|
+
onKeyDown: handleOnKeyDown,
|
|
94
|
+
tabIndex: 0,
|
|
95
|
+
isBodyEmpty: body
|
|
96
|
+
}, actionLink.label)), showCloseButton ? /* @__PURE__ */ React2.createElement(StyledCloseButton, {
|
|
97
|
+
"data-testid": "ds-banner-close-button",
|
|
98
|
+
buttonType: "secondary",
|
|
99
|
+
onClick: onClose,
|
|
100
|
+
"aria-label": "Close icon",
|
|
101
|
+
icon: /* @__PURE__ */ React2.createElement(CloseX, {
|
|
102
|
+
width: "12px",
|
|
103
|
+
height: "12px"
|
|
104
|
+
})
|
|
105
|
+
}) : /* @__PURE__ */ React2.createElement("span", null)));
|
|
106
|
+
};
|
|
107
|
+
DSBanner.defaultProps = defaultProps;
|
|
108
|
+
DSBanner.propTypes = propTypes;
|
|
109
|
+
const DSBannerWithSchema = describe(DSBanner);
|
|
110
|
+
DSBannerWithSchema.propTypes = propTypes;
|
|
111
|
+
var DSBanner_default = DSBanner;
|
|
112
|
+
export {
|
|
113
|
+
DSBanner,
|
|
114
|
+
DSBannerWithSchema,
|
|
115
|
+
DSBanner_default as default
|
|
116
|
+
};
|
|
117
|
+
//# sourceMappingURL=DSBanner.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../../scripts/build/transpile/react-shim.js", "../../src/DSBanner.tsx"],
|
|
4
|
+
"sourcesContent": ["import * as React from 'react';\nexport { React };\n", "/* eslint-disable max-lines */\nimport React, { useLayoutEffect, useRef, useCallback, useState } from 'react';\nimport { CloseX } from '@elliemae/ds-icons';\nimport { describe } from 'react-desc';\nimport type { BannerPropsT } from './index.d';\nimport { icons } from './utils/icons';\nimport { propTypes } from './propTypes';\nimport { defaultProps } from './defaultProps';\nimport {\n StyledActionLink,\n StyledCloseButton,\n StyledInnerContainer,\n StyledBannerContainer,\n StyledIconContainer,\n StyledSubTitle,\n StyledTitle,\n} from './styles';\n\nconst DSBanner = ({\n type,\n isOpen,\n onClose,\n label,\n body,\n actionLink,\n showCloseButton,\n containerProps,\n actionRef,\n}: BannerPropsT): JSX.Element => {\n const innerContainerRef = useRef<HTMLDivElement | null>(null);\n const linkRef = useRef<HTMLAnchorElement | null>(null);\n const [current, setCurrent] = useState<boolean>(isOpen);\n const [isAnimating, setIsAnimating] = useState<boolean>(false);\n const [alertTabIndex, setAlertTabIndex] = useState<number | undefined>(undefined);\n\n const ownerState = { type };\n\n React.useEffect(() => {\n if (actionRef && actionRef.current) {\n actionRef.current.focusOnWrapper = () => {\n if (innerContainerRef.current) {\n setAlertTabIndex(0);\n setTimeout(() => {\n innerContainerRef.current.focus();\n }, 100);\n }\n };\n actionRef.current.focusOnLink = () => {\n if (linkRef.current) {\n linkRef.current.focus();\n }\n };\n }\n }, [actionRef]);\n\n useLayoutEffect(() => {\n if (isOpen !== current || isOpen) setIsAnimating(true);\n else setIsAnimating(false);\n }, [isOpen, current]);\n\n const handleBlur = useCallback(() => {\n setAlertTabIndex(undefined);\n }, []);\n const handleOnKeyDown = useCallback((e: React.KeyboardEvent) => {\n if (e.key === 'Enter' || e.key === ' ') {\n e.preventDefault();\n if (linkRef.current) linkRef.current.click();\n }\n }, []);\n\n if (!isAnimating && !isOpen) return null;\n\n return (\n <StyledBannerContainer\n type={type}\n isOpen={isOpen}\n isAnimating={isAnimating}\n onAnimationEnd={() => setCurrent(isOpen)}\n data-testid=\"ds-banner-container\"\n {...containerProps}\n ownerState={ownerState}\n >\n <StyledInnerContainer\n type={type}\n isOpen={isOpen}\n ref={innerContainerRef}\n isAnimating={isAnimating}\n data-testid=\"ds-banner\"\n role=\"alert\"\n tabIndex={alertTabIndex}\n onBlur={handleBlur}\n >\n <StyledIconContainer data-testid=\"ds-banner-icon\">{icons[type]}</StyledIconContainer>\n <StyledTitle>{label}</StyledTitle>\n <StyledSubTitle>\n <span>{body}</span>\n {actionLink && (\n <StyledActionLink\n data-testid=\"ds-banner-action-link\"\n onClick={actionLink.onClick}\n href={actionLink.href}\n ref={linkRef}\n onKeyDown={handleOnKeyDown}\n tabIndex={0}\n isBodyEmpty={body}\n >\n {actionLink.label}\n </StyledActionLink>\n )}\n </StyledSubTitle>\n\n {showCloseButton ? (\n <StyledCloseButton\n data-testid=\"ds-banner-close-button\"\n buttonType=\"secondary\"\n onClick={onClose}\n aria-label=\"Close icon\"\n icon={<CloseX width=\"12px\" height=\"12px\" />}\n />\n ) : (\n <span />\n )}\n </StyledInnerContainer>\n </StyledBannerContainer>\n );\n};\n\nDSBanner.defaultProps = defaultProps;\nDSBanner.propTypes = propTypes;\nconst DSBannerWithSchema = describe(DSBanner);\nDSBannerWithSchema.propTypes = propTypes;\n\nexport default DSBanner;\nexport { DSBanner, DSBannerWithSchema };\n"],
|
|
5
|
+
"mappings": "AAAA;ACCA;AACA;AACA;AAEA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAUA,MAAM,WAAW,CAAC;AAAA,EAChB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,MAC+B;AAC/B,QAAM,oBAAoB,OAA8B;AACxD,QAAM,UAAU,OAAiC;AACjD,QAAM,CAAC,SAAS,cAAc,SAAkB;AAChD,QAAM,CAAC,aAAa,kBAAkB,SAAkB;AACxD,QAAM,CAAC,eAAe,oBAAoB,SAA6B;AAEvE,QAAM,aAAa,EAAE;AAErB,SAAM,UAAU,MAAM;AACpB,QAAI,aAAa,UAAU,SAAS;AAClC,gBAAU,QAAQ,iBAAiB,MAAM;AACvC,YAAI,kBAAkB,SAAS;AAC7B,2BAAiB;AACjB,qBAAW,MAAM;AACf,8BAAkB,QAAQ;AAAA,aACzB;AAAA;AAAA;AAGP,gBAAU,QAAQ,cAAc,MAAM;AACpC,YAAI,QAAQ,SAAS;AACnB,kBAAQ,QAAQ;AAAA;AAAA;AAAA;AAAA,KAIrB,CAAC;AAEJ,kBAAgB,MAAM;AACpB,QAAI,WAAW,WAAW;AAAQ,qBAAe;AAAA;AAC5C,qBAAe;AAAA,KACnB,CAAC,QAAQ;AAEZ,QAAM,aAAa,YAAY,MAAM;AACnC,qBAAiB;AAAA,KAChB;AACH,QAAM,kBAAkB,YAAY,CAAC,MAA2B;AAC9D,QAAI,EAAE,QAAQ,WAAW,EAAE,QAAQ,KAAK;AACtC,QAAE;AACF,UAAI,QAAQ;AAAS,gBAAQ,QAAQ;AAAA;AAAA,KAEtC;AAEH,MAAI,CAAC,eAAe,CAAC;AAAQ,WAAO;AAEpC,SACE,qCAAC,uBAAD;AAAA,IACE;AAAA,IACA;AAAA,IACA;AAAA,IACA,gBAAgB,MAAM,WAAW;AAAA,IACjC,eAAY;AAAA,OACR;AAAA,IACJ;AAAA,KAEA,qCAAC,sBAAD;AAAA,IACE;AAAA,IACA;AAAA,IACA,KAAK;AAAA,IACL;AAAA,IACA,eAAY;AAAA,IACZ,MAAK;AAAA,IACL,UAAU;AAAA,IACV,QAAQ;AAAA,KAER,qCAAC,qBAAD;AAAA,IAAqB,eAAY;AAAA,KAAkB,MAAM,QACzD,qCAAC,aAAD,MAAc,QACd,qCAAC,gBAAD,MACE,qCAAC,QAAD,MAAO,OACN,cACC,qCAAC,kBAAD;AAAA,IACE,eAAY;AAAA,IACZ,SAAS,WAAW;AAAA,IACpB,MAAM,WAAW;AAAA,IACjB,KAAK;AAAA,IACL,WAAW;AAAA,IACX,UAAU;AAAA,IACV,aAAa;AAAA,KAEZ,WAAW,SAKjB,kBACC,qCAAC,mBAAD;AAAA,IACE,eAAY;AAAA,IACZ,YAAW;AAAA,IACX,SAAS;AAAA,IACT,cAAW;AAAA,IACX,MAAM,qCAAC,QAAD;AAAA,MAAQ,OAAM;AAAA,MAAO,QAAO;AAAA;AAAA,OAGpC,qCAAC,QAAD;AAAA;AAOV,SAAS,eAAe;AACxB,SAAS,YAAY;AACrB,MAAM,qBAAqB,SAAS;AACpC,mBAAmB,YAAY;AAE/B,IAAO,mBAAQ;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
import { BANNER_TYPES } from "./utils/bannerTypes";
|
|
3
|
+
const defaultProps = {
|
|
4
|
+
containerProps: {},
|
|
5
|
+
label: "",
|
|
6
|
+
body: "",
|
|
7
|
+
type: BANNER_TYPES.INFO,
|
|
8
|
+
isOpen: true,
|
|
9
|
+
onClose: () => null,
|
|
10
|
+
showCloseButton: true,
|
|
11
|
+
actionLink: { label: "", onClick: () => null, href: "" }
|
|
12
|
+
};
|
|
13
|
+
export {
|
|
14
|
+
defaultProps
|
|
15
|
+
};
|
|
16
|
+
//# sourceMappingURL=defaultProps.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../../scripts/build/transpile/react-shim.js", "../../src/defaultProps.ts"],
|
|
4
|
+
"sourcesContent": ["import * as React from 'react';\nexport { React };\n", "import { BANNER_TYPES } from './utils/bannerTypes';\n\nexport const defaultProps = {\n containerProps: {},\n label: '',\n body: '',\n type: BANNER_TYPES.INFO,\n isOpen: true,\n onClose: () => null,\n showCloseButton: true,\n actionLink: { label: '', onClick: () => null, href: '' },\n};\n"],
|
|
5
|
+
"mappings": "AAAA;ACAA;AAEO,MAAM,eAAe;AAAA,EAC1B,gBAAgB;AAAA,EAChB,OAAO;AAAA,EACP,MAAM;AAAA,EACN,MAAM,aAAa;AAAA,EACnB,QAAQ;AAAA,EACR,SAAS,MAAM;AAAA,EACf,iBAAiB;AAAA,EACjB,YAAY,EAAE,OAAO,IAAI,SAAS,MAAM,MAAM,MAAM;AAAA;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../../scripts/build/transpile/react-shim.js", "../../src/index.tsx"],
|
|
4
|
+
"sourcesContent": ["import * as React from 'react';\nexport { React };\n", "export { default } from './DSBanner';\nexport * from './DSBanner';\nexport * from './utils/bannerTypes';\n"],
|
|
5
|
+
"mappings": "AAAA;ACAA;AACA;AACA;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
import { PropTypes } from "react-desc";
|
|
3
|
+
import { BANNER_TYPES } from "./utils/bannerTypes";
|
|
4
|
+
const propTypes = {
|
|
5
|
+
containerProps: PropTypes.object.description("Set of Properties attached to the main container").defaultValue({}),
|
|
6
|
+
label: PropTypes.string.description("banner s label").defaultValue(""),
|
|
7
|
+
body: PropTypes.string.description("banner s body content").defaultValue(""),
|
|
8
|
+
type: PropTypes.oneOf(Object.values(BANNER_TYPES)).description("banner s type").defaultValue(BANNER_TYPES.INFO),
|
|
9
|
+
onClose: PropTypes.func.description("function executed when the banner closes"),
|
|
10
|
+
isOpen: PropTypes.bool.description("whether the banner is open or closed").defaultValue(true),
|
|
11
|
+
showCloseButton: PropTypes.bool.description("whether to show close button or not").defaultValue(true),
|
|
12
|
+
actionLink: PropTypes.shape({
|
|
13
|
+
label: PropTypes.string,
|
|
14
|
+
onClick: PropTypes.func,
|
|
15
|
+
href: PropTypes.string
|
|
16
|
+
}).description("Properties of the ActionLink component").defaultValue({}),
|
|
17
|
+
actionRef: PropTypes.object.description(`
|
|
18
|
+
Reference to use actions:
|
|
19
|
+
- focusOnLink: function to focus the banner
|
|
20
|
+
- focusOnWrapper: function to focus the link
|
|
21
|
+
`).defaultValue({})
|
|
22
|
+
};
|
|
23
|
+
export {
|
|
24
|
+
propTypes
|
|
25
|
+
};
|
|
26
|
+
//# sourceMappingURL=propTypes.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../../scripts/build/transpile/react-shim.js", "../../src/propTypes.tsx"],
|
|
4
|
+
"sourcesContent": ["import * as React from 'react';\nexport { React };\n", "import { PropTypes } from 'react-desc';\nimport { BANNER_TYPES } from './utils/bannerTypes';\n\nexport const propTypes = {\n containerProps: PropTypes.object.description('Set of Properties attached to the main container').defaultValue({}),\n label: PropTypes.string.description('banner s label').defaultValue(''),\n body: PropTypes.string.description('banner s body content').defaultValue(''),\n type: PropTypes.oneOf(Object.values(BANNER_TYPES)).description('banner s type').defaultValue(BANNER_TYPES.INFO),\n onClose: PropTypes.func.description('function executed when the banner closes'),\n isOpen: PropTypes.bool.description('whether the banner is open or closed').defaultValue(true),\n showCloseButton: PropTypes.bool.description('whether to show close button or not').defaultValue(true),\n actionLink: PropTypes.shape({\n label: PropTypes.string,\n onClick: PropTypes.func,\n href: PropTypes.string,\n })\n .description('Properties of the ActionLink component')\n .defaultValue({}),\n actionRef: PropTypes.object\n .description(\n `\n Reference to use actions:\n - focusOnLink: function to focus the banner\n - focusOnWrapper: function to focus the link\n `,\n )\n .defaultValue({}),\n};\n"],
|
|
5
|
+
"mappings": "AAAA;ACAA;AACA;AAEO,MAAM,YAAY;AAAA,EACvB,gBAAgB,UAAU,OAAO,YAAY,oDAAoD,aAAa;AAAA,EAC9G,OAAO,UAAU,OAAO,YAAY,kBAAkB,aAAa;AAAA,EACnE,MAAM,UAAU,OAAO,YAAY,yBAAyB,aAAa;AAAA,EACzE,MAAM,UAAU,MAAM,OAAO,OAAO,eAAe,YAAY,iBAAiB,aAAa,aAAa;AAAA,EAC1G,SAAS,UAAU,KAAK,YAAY;AAAA,EACpC,QAAQ,UAAU,KAAK,YAAY,wCAAwC,aAAa;AAAA,EACxF,iBAAiB,UAAU,KAAK,YAAY,uCAAuC,aAAa;AAAA,EAChG,YAAY,UAAU,MAAM;AAAA,IAC1B,OAAO,UAAU;AAAA,IACjB,SAAS,UAAU;AAAA,IACnB,MAAM,UAAU;AAAA,KAEf,YAAY,0CACZ,aAAa;AAAA,EAChB,WAAW,UAAU,OAClB,YACC;AAAA;AAAA;AAAA;AAAA,OAMD,aAAa;AAAA;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
import { styled } from "@elliemae/ds-system";
|
|
3
|
+
import DSButton from "@elliemae/ds-button";
|
|
4
|
+
import { handleAnimation, handleBorderColor } from "./utils/styleHelpers";
|
|
5
|
+
const StyledBannerContainer = styled("div", { name: "DS-Banner", slot: "root" })`
|
|
6
|
+
overflow: hidden;
|
|
7
|
+
height: ${({ isOpen }) => isOpen ? "auto" : "0px"};
|
|
8
|
+
${({ isAnimating, isOpen, height }) => handleAnimation(isAnimating, isOpen, height)};
|
|
9
|
+
`;
|
|
10
|
+
const StyledInnerContainer = styled("div", {
|
|
11
|
+
name: "DS-Banner",
|
|
12
|
+
slot: "innerContainer"
|
|
13
|
+
})`
|
|
14
|
+
padding-right: 6px;
|
|
15
|
+
display: grid;
|
|
16
|
+
align-items: center;
|
|
17
|
+
min-height: 41px;
|
|
18
|
+
width: 100%;
|
|
19
|
+
background-color: ${({ theme }) => theme.colors.neutral["000"]};
|
|
20
|
+
border-bottom: 5px solid ${({ type, theme }) => handleBorderColor(type, theme)};
|
|
21
|
+
${({ isAnimating, isOpen }) => handleAnimation(isAnimating, isOpen)};
|
|
22
|
+
&:focus {
|
|
23
|
+
position: relative;
|
|
24
|
+
&:after {
|
|
25
|
+
content: '';
|
|
26
|
+
display: block;
|
|
27
|
+
position: absolute;
|
|
28
|
+
top: 0;
|
|
29
|
+
left: 0;
|
|
30
|
+
pointer-events: none;
|
|
31
|
+
border-radius: 2px;
|
|
32
|
+
width: calc(100%);
|
|
33
|
+
border: 2px solid #1e79c2;
|
|
34
|
+
height: calc(100% + 4px);
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
grid-template-columns: auto minmax(auto, auto) minmax(auto, 1fr) auto;
|
|
38
|
+
`;
|
|
39
|
+
const StyledIconContainer = styled("div", { name: "DS-Banner", slot: "iconContainer" })`
|
|
40
|
+
margin-right: ${({ theme }) => theme.space.xxs};
|
|
41
|
+
margin-left: ${({ theme }) => theme.space.xs};
|
|
42
|
+
`;
|
|
43
|
+
const StyledTitle = styled("div", { name: "DS-Banner", slot: "title" })`
|
|
44
|
+
color: ${({ theme }) => theme.colors.neutral[700]};
|
|
45
|
+
font-size: ${({ theme }) => theme.fontSizes.label[400]};
|
|
46
|
+
font-weight: ${({ theme }) => theme.fontWeights.semibold};
|
|
47
|
+
`;
|
|
48
|
+
const StyledSubTitle = styled("div", { name: "DS-Banner", slot: "subtitle" })`
|
|
49
|
+
width: 100%;
|
|
50
|
+
margin-left: ${({ theme }) => theme.space.xs};
|
|
51
|
+
font-size: ${({ theme }) => theme.fontSizes.subTitle[400]};
|
|
52
|
+
font-weight: ${({ theme }) => theme.fontWeights.regular};
|
|
53
|
+
`;
|
|
54
|
+
const StyledActionLink = styled("a", { name: "DS-Banner", slot: "action" })`
|
|
55
|
+
margin-left: ${({ theme, isBodyEmpty }) => isBodyEmpty ? theme.space.xs : 0};
|
|
56
|
+
white-space: nowrap;
|
|
57
|
+
text-decoration: none;
|
|
58
|
+
line-height: 1.1;
|
|
59
|
+
font-size: ${({ theme }) => theme.fontSizes.hyperlink[400]};
|
|
60
|
+
font-weight: ${({ theme }) => theme.fontWeights.regular};
|
|
61
|
+
color: ${({ theme }) => theme.colors.brand[600]};
|
|
62
|
+
`;
|
|
63
|
+
const StyledCloseButton = styled(DSButton, { name: "DS-Banner", slot: "closeButton" })`
|
|
64
|
+
margin-left: ${({ theme }) => theme.space.xxs};
|
|
65
|
+
&:not(focus) {
|
|
66
|
+
border: transparent;
|
|
67
|
+
}
|
|
68
|
+
`;
|
|
69
|
+
export {
|
|
70
|
+
StyledActionLink,
|
|
71
|
+
StyledBannerContainer,
|
|
72
|
+
StyledCloseButton,
|
|
73
|
+
StyledIconContainer,
|
|
74
|
+
StyledInnerContainer,
|
|
75
|
+
StyledSubTitle,
|
|
76
|
+
StyledTitle
|
|
77
|
+
};
|
|
78
|
+
//# sourceMappingURL=styles.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../../scripts/build/transpile/react-shim.js", "../../src/styles.tsx"],
|
|
4
|
+
"sourcesContent": ["import * as React from 'react';\nexport { React };\n", "import { styled } from '@elliemae/ds-system';\nimport DSButton from '@elliemae/ds-button';\nimport type { StyledActionLinkT, StyledBannerContainerT, StyledInnerContainerT } from './index.d';\nimport { handleAnimation, handleBorderColor } from './utils/styleHelpers';\n\nexport const StyledBannerContainer = styled<StyledBannerContainerT>('div', { name: 'DS-Banner', slot: 'root' })`\n overflow: hidden;\n height: ${({ isOpen }) => (isOpen ? 'auto' : '0px')};\n ${({ isAnimating, isOpen, height }) => handleAnimation(isAnimating, isOpen, height)};\n`;\n\nexport const StyledInnerContainer = styled<StyledInnerContainerT>('div', {\n name: 'DS-Banner',\n slot: 'innerContainer',\n})`\n padding-right: 6px;\n display: grid;\n align-items: center;\n min-height: 41px;\n width: 100%;\n background-color: ${({ theme }) => theme.colors.neutral['000']};\n border-bottom: 5px solid ${({ type, theme }) => handleBorderColor(type, theme)};\n ${({ isAnimating, isOpen }) => handleAnimation(isAnimating, isOpen)};\n &:focus {\n position: relative;\n &:after {\n content: '';\n display: block;\n position: absolute;\n top: 0;\n left: 0;\n pointer-events: none;\n border-radius: 2px;\n width: calc(100%);\n border: 2px solid #1e79c2;\n height: calc(100% + 4px);\n }\n }\n grid-template-columns: auto minmax(auto, auto) minmax(auto, 1fr) auto;\n`;\n\nexport const StyledIconContainer = styled('div', { name: 'DS-Banner', slot: 'iconContainer' })`\n margin-right: ${({ theme }) => theme.space.xxs};\n margin-left: ${({ theme }) => theme.space.xs};\n`;\n\nexport const StyledTitle = styled('div', { name: 'DS-Banner', slot: 'title' })`\n color: ${({ theme }) => theme.colors.neutral[700]};\n font-size: ${({ theme }) => theme.fontSizes.label[400]};\n font-weight: ${({ theme }) => theme.fontWeights.semibold};\n`;\n\nexport const StyledSubTitle = styled('div', { name: 'DS-Banner', slot: 'subtitle' })`\n width: 100%;\n margin-left: ${({ theme }) => theme.space.xs};\n font-size: ${({ theme }) => theme.fontSizes.subTitle[400]};\n font-weight: ${({ theme }) => theme.fontWeights.regular};\n`;\n\nexport const StyledActionLink = styled<StyledActionLinkT>('a', { name: 'DS-Banner', slot: 'action' })`\n margin-left: ${({ theme, isBodyEmpty }) => (isBodyEmpty ? theme.space.xs : 0)};\n white-space: nowrap;\n text-decoration: none;\n line-height: 1.1;\n font-size: ${({ theme }) => theme.fontSizes.hyperlink[400]};\n font-weight: ${({ theme }) => theme.fontWeights.regular};\n color: ${({ theme }) => theme.colors.brand[600]};\n`;\n\nexport const StyledCloseButton = styled(DSButton, { name: 'DS-Banner', slot: 'closeButton' })`\n margin-left: ${({ theme }) => theme.space.xxs};\n &:not(focus) {\n border: transparent;\n }\n`;\n"],
|
|
5
|
+
"mappings": "AAAA;ACAA;AACA;AAEA;AAEO,MAAM,wBAAwB,OAA+B,OAAO,EAAE,MAAM,aAAa,MAAM;AAAA;AAAA,YAE1F,CAAC,EAAE,aAAc,SAAS,SAAS;AAAA,IAC3C,CAAC,EAAE,aAAa,QAAQ,aAAa,gBAAgB,aAAa,QAAQ;AAAA;AAGvE,MAAM,uBAAuB,OAA8B,OAAO;AAAA,EACvE,MAAM;AAAA,EACN,MAAM;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,sBAOc,CAAC,EAAE,YAAY,MAAM,OAAO,QAAQ;AAAA,6BAC7B,CAAC,EAAE,MAAM,YAAY,kBAAkB,MAAM;AAAA,IACtE,CAAC,EAAE,aAAa,aAAa,gBAAgB,aAAa;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAmBvD,MAAM,sBAAsB,OAAO,OAAO,EAAE,MAAM,aAAa,MAAM;AAAA,kBAC1D,CAAC,EAAE,YAAY,MAAM,MAAM;AAAA,iBAC5B,CAAC,EAAE,YAAY,MAAM,MAAM;AAAA;AAGrC,MAAM,cAAc,OAAO,OAAO,EAAE,MAAM,aAAa,MAAM;AAAA,WACzD,CAAC,EAAE,YAAY,MAAM,OAAO,QAAQ;AAAA,eAChC,CAAC,EAAE,YAAY,MAAM,UAAU,MAAM;AAAA,iBACnC,CAAC,EAAE,YAAY,MAAM,YAAY;AAAA;AAG3C,MAAM,iBAAiB,OAAO,OAAO,EAAE,MAAM,aAAa,MAAM;AAAA;AAAA,iBAEtD,CAAC,EAAE,YAAY,MAAM,MAAM;AAAA,eAC7B,CAAC,EAAE,YAAY,MAAM,UAAU,SAAS;AAAA,iBACtC,CAAC,EAAE,YAAY,MAAM,YAAY;AAAA;AAG3C,MAAM,mBAAmB,OAA0B,KAAK,EAAE,MAAM,aAAa,MAAM;AAAA,iBACzE,CAAC,EAAE,OAAO,kBAAmB,cAAc,MAAM,MAAM,KAAK;AAAA;AAAA;AAAA;AAAA,eAI9D,CAAC,EAAE,YAAY,MAAM,UAAU,UAAU;AAAA,iBACvC,CAAC,EAAE,YAAY,MAAM,YAAY;AAAA,WACvC,CAAC,EAAE,YAAY,MAAM,OAAO,MAAM;AAAA;AAGtC,MAAM,oBAAoB,OAAO,UAAU,EAAE,MAAM,aAAa,MAAM;AAAA,iBAC5D,CAAC,EAAE,YAAY,MAAM,MAAM;AAAA;AAAA;AAAA;AAAA;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../../../scripts/build/transpile/react-shim.js", "../../../src/utils/bannerTypes.tsx"],
|
|
4
|
+
"sourcesContent": ["import * as React from 'react';\nexport { React };\n", "export const BANNER_TYPES = {\n INFO: 'info',\n SUCCESS: 'success',\n WARNING: 'warning',\n DANGER: 'danger',\n} as const;\n"],
|
|
5
|
+
"mappings": "AAAA;ACAO,MAAM,eAAe;AAAA,EAC1B,MAAM;AAAA,EACN,SAAS;AAAA,EACT,SAAS;AAAA,EACT,QAAQ;AAAA;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
import React2 from "react";
|
|
3
|
+
import { AlertsDetailFill, InfoFill, SuccessFill, WarningSquare } from "@elliemae/ds-icons";
|
|
4
|
+
const icons = {
|
|
5
|
+
success: /* @__PURE__ */ React2.createElement(SuccessFill, {
|
|
6
|
+
fill: "#207e56",
|
|
7
|
+
width: "20px",
|
|
8
|
+
height: "20px"
|
|
9
|
+
}),
|
|
10
|
+
info: /* @__PURE__ */ React2.createElement(InfoFill, {
|
|
11
|
+
fill: "#1e79c2",
|
|
12
|
+
width: "20px",
|
|
13
|
+
height: "20px"
|
|
14
|
+
}),
|
|
15
|
+
danger: /* @__PURE__ */ React2.createElement(AlertsDetailFill, {
|
|
16
|
+
fill: "#c64252",
|
|
17
|
+
width: "20px",
|
|
18
|
+
height: "20px"
|
|
19
|
+
}),
|
|
20
|
+
warning: /* @__PURE__ */ React2.createElement(WarningSquare, {
|
|
21
|
+
fill: "#d17a00",
|
|
22
|
+
width: "20px",
|
|
23
|
+
height: "20px"
|
|
24
|
+
})
|
|
25
|
+
};
|
|
26
|
+
export {
|
|
27
|
+
icons
|
|
28
|
+
};
|
|
29
|
+
//# sourceMappingURL=icons.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../../../scripts/build/transpile/react-shim.js", "../../../src/utils/icons.tsx"],
|
|
4
|
+
"sourcesContent": ["import * as React from 'react';\nexport { React };\n", "import React from 'react';\nimport { AlertsDetailFill, InfoFill, SuccessFill, WarningSquare } from '@elliemae/ds-icons';\n\nexport const icons = {\n success: <SuccessFill fill=\"#207e56\" width=\"20px\" height=\"20px\" />,\n info: <InfoFill fill=\"#1e79c2\" width=\"20px\" height=\"20px\" />,\n danger: <AlertsDetailFill fill=\"#c64252\" width=\"20px\" height=\"20px\" />,\n warning: <WarningSquare fill=\"#d17a00\" width=\"20px\" height=\"20px\" />,\n};\n"],
|
|
5
|
+
"mappings": "AAAA;ACAA;AACA;AAEO,MAAM,QAAQ;AAAA,EACnB,SAAS,qCAAC,aAAD;AAAA,IAAa,MAAK;AAAA,IAAU,OAAM;AAAA,IAAO,QAAO;AAAA;AAAA,EACzD,MAAM,qCAAC,UAAD;AAAA,IAAU,MAAK;AAAA,IAAU,OAAM;AAAA,IAAO,QAAO;AAAA;AAAA,EACnD,QAAQ,qCAAC,kBAAD;AAAA,IAAkB,MAAK;AAAA,IAAU,OAAM;AAAA,IAAO,QAAO;AAAA;AAAA,EAC7D,SAAS,qCAAC,eAAD;AAAA,IAAe,MAAK;AAAA,IAAU,OAAM;AAAA,IAAO,QAAO;AAAA;AAAA;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
import { kfrm, css } from "@elliemae/ds-system";
|
|
3
|
+
import { BANNER_TYPES } from "./bannerTypes";
|
|
4
|
+
const slideIn = kfrm`
|
|
5
|
+
0% {
|
|
6
|
+
transform: translate3d(0, -100%, 0);
|
|
7
|
+
}
|
|
8
|
+
100% {
|
|
9
|
+
transform: translate3d(0, 0, 0);
|
|
10
|
+
}
|
|
11
|
+
`;
|
|
12
|
+
const slideOut = kfrm`
|
|
13
|
+
0% {
|
|
14
|
+
transform: translate3d(0, 0, 0);
|
|
15
|
+
opacity: 1;
|
|
16
|
+
}
|
|
17
|
+
60% {
|
|
18
|
+
opacity: 0;
|
|
19
|
+
}
|
|
20
|
+
100% {
|
|
21
|
+
opacity: 0;
|
|
22
|
+
transform: translate3d(0, -100%, 0);
|
|
23
|
+
}
|
|
24
|
+
`;
|
|
25
|
+
const spanContainer = (height) => kfrm`
|
|
26
|
+
0% {
|
|
27
|
+
height: 0px;
|
|
28
|
+
}
|
|
29
|
+
100% {
|
|
30
|
+
height: ${height}px;
|
|
31
|
+
}
|
|
32
|
+
`;
|
|
33
|
+
const shrinkContainer = (height) => kfrm`
|
|
34
|
+
0% {
|
|
35
|
+
height: ${height}px;
|
|
36
|
+
}
|
|
37
|
+
100% {
|
|
38
|
+
height: 0px;
|
|
39
|
+
}
|
|
40
|
+
`;
|
|
41
|
+
const handleBorderColor = (type, { colors }) => {
|
|
42
|
+
switch (type) {
|
|
43
|
+
case BANNER_TYPES.SUCCESS:
|
|
44
|
+
return colors.success[900];
|
|
45
|
+
case BANNER_TYPES.INFO:
|
|
46
|
+
return colors.brand[600];
|
|
47
|
+
case BANNER_TYPES.WARNING:
|
|
48
|
+
return colors.warning[900];
|
|
49
|
+
case BANNER_TYPES.DANGER:
|
|
50
|
+
return colors.danger[900];
|
|
51
|
+
}
|
|
52
|
+
};
|
|
53
|
+
const handleAnimation = (isAnimating, isOpen, height = null) => {
|
|
54
|
+
if (isAnimating) {
|
|
55
|
+
if (isOpen) {
|
|
56
|
+
return css`
|
|
57
|
+
animation: ${height ? spanContainer(height) : slideIn} 0.5s ease-in;
|
|
58
|
+
`;
|
|
59
|
+
} else {
|
|
60
|
+
return css`
|
|
61
|
+
animation: ${height ? shrinkContainer(height) : slideOut} 0.5s ease-in;
|
|
62
|
+
`;
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
};
|
|
66
|
+
export {
|
|
67
|
+
handleAnimation,
|
|
68
|
+
handleBorderColor
|
|
69
|
+
};
|
|
70
|
+
//# sourceMappingURL=styleHelpers.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../../../scripts/build/transpile/react-shim.js", "../../../src/utils/styleHelpers.ts"],
|
|
4
|
+
"sourcesContent": ["import * as React from 'react';\nexport { React };\n", "import { kfrm, css } from '@elliemae/ds-system';\nimport type { FlattenSimpleInterpolation } from 'styled-components';\nimport { BANNER_TYPES } from './bannerTypes';\n\nconst slideIn = kfrm`\n 0% {\n transform: translate3d(0, -100%, 0);\n }\n 100% {\n transform: translate3d(0, 0, 0);\n }\n`;\n\nconst slideOut = kfrm`\n 0% {\n transform: translate3d(0, 0, 0);\n opacity: 1;\n }\n 60% {\n opacity: 0;\n }\n 100% {\n opacity: 0;\n transform: translate3d(0, -100%, 0);\n }\n`;\n\nconst spanContainer = (height: number) => kfrm`\n 0% {\n height: 0px;\n }\n 100% {\n height: ${height}px;\n }\n`;\n\nconst shrinkContainer = (height: number) => kfrm`\n 0% {\n height: ${height}px;\n }\n 100% {\n height: 0px;\n }\n`;\n\nexport const handleBorderColor = (type, { colors }): string => {\n switch (type) {\n case BANNER_TYPES.SUCCESS:\n return colors.success[900];\n case BANNER_TYPES.INFO:\n return colors.brand[600];\n case BANNER_TYPES.WARNING:\n return colors.warning[900];\n case BANNER_TYPES.DANGER:\n return colors.danger[900];\n }\n};\n\nexport const handleAnimation = (\n isAnimating: boolean,\n isOpen: boolean,\n height: number | null = null,\n): FlattenSimpleInterpolation => {\n if (isAnimating) {\n if (isOpen) {\n return css`\n animation: ${height ? spanContainer(height) : slideIn} 0.5s ease-in;\n `;\n } else {\n return css`\n animation: ${height ? shrinkContainer(height) : slideOut} 0.5s ease-in;\n `;\n }\n }\n};\n"],
|
|
5
|
+
"mappings": "AAAA;ACAA;AAEA;AAEA,MAAM,UAAU;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAShB,MAAM,WAAW;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAcjB,MAAM,gBAAgB,CAAC,WAAmB;AAAA;AAAA;AAAA;AAAA;AAAA,cAK5B;AAAA;AAAA;AAId,MAAM,kBAAkB,CAAC,WAAmB;AAAA;AAAA,cAE9B;AAAA;AAAA;AAAA;AAAA;AAAA;AAOP,MAAM,oBAAoB,CAAC,MAAM,EAAE,aAAqB;AAC7D,UAAQ;AAAA,SACD,aAAa;AAChB,aAAO,OAAO,QAAQ;AAAA,SACnB,aAAa;AAChB,aAAO,OAAO,MAAM;AAAA,SACjB,aAAa;AAChB,aAAO,OAAO,QAAQ;AAAA,SACnB,aAAa;AAChB,aAAO,OAAO,OAAO;AAAA;AAAA;AAIpB,MAAM,kBAAkB,CAC7B,aACA,QACA,SAAwB,SACO;AAC/B,MAAI,aAAa;AACf,QAAI,QAAQ;AACV,aAAO;AAAA,qBACQ,SAAS,cAAc,UAAU;AAAA;AAAA,WAE3C;AACL,aAAO;AAAA,qBACQ,SAAS,gBAAgB,UAAU;AAAA;AAAA;AAAA;AAAA;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import type { StyledActionLinkT, StyledBannerContainerT, StyledInnerContainerT } from './index.d';
|
|
2
|
-
export declare const StyledBannerContainer: import("styled-components").StyledComponent<StyledBannerContainerT, import("@elliemae/ds-system/types/styled/types").Theme, {}, never>;
|
|
3
|
-
export declare const StyledInnerContainer: import("styled-components").StyledComponent<StyledInnerContainerT, import("@elliemae/ds-system/types/styled/types").Theme, {}, never>;
|
|
4
|
-
export declare const StyledIconContainer: import("styled-components").StyledComponent<"div", import("@elliemae/ds-system/types/styled/types").Theme, {}, never>;
|
|
5
|
-
export declare const StyledTitle: import("styled-components").StyledComponent<"div", import("@elliemae/ds-system/types/styled/types").Theme, {}, never>;
|
|
6
|
-
export declare const StyledSubTitle: import("styled-components").StyledComponent<"div", import("@elliemae/ds-system/types/styled/types").Theme, {}, never>;
|
|
7
|
-
export declare const StyledActionLink: import("styled-components").StyledComponent<StyledActionLinkT, import("@elliemae/ds-system/types/styled/types").Theme, {}, never>;
|
|
8
|
-
export declare const StyledCloseButton: import("styled-components").StyledComponent<any, import("@elliemae/ds-system/types/styled/types").Theme, any, any>;
|
|
2
|
+
export declare const StyledBannerContainer: import("styled-components").StyledComponent<StyledBannerContainerT, import("@elliemae/ds-system/dist/types/styled/types").Theme, {}, never>;
|
|
3
|
+
export declare const StyledInnerContainer: import("styled-components").StyledComponent<StyledInnerContainerT, import("@elliemae/ds-system/dist/types/styled/types").Theme, {}, never>;
|
|
4
|
+
export declare const StyledIconContainer: import("styled-components").StyledComponent<"div", import("@elliemae/ds-system/dist/types/styled/types").Theme, {}, never>;
|
|
5
|
+
export declare const StyledTitle: import("styled-components").StyledComponent<"div", import("@elliemae/ds-system/dist/types/styled/types").Theme, {}, never>;
|
|
6
|
+
export declare const StyledSubTitle: import("styled-components").StyledComponent<"div", import("@elliemae/ds-system/dist/types/styled/types").Theme, {}, never>;
|
|
7
|
+
export declare const StyledActionLink: import("styled-components").StyledComponent<StyledActionLinkT, import("@elliemae/ds-system/dist/types/styled/types").Theme, {}, never>;
|
|
8
|
+
export declare const StyledCloseButton: import("styled-components").StyledComponent<any, import("@elliemae/ds-system/dist/types/styled/types").Theme, any, any>;
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|