@elliemae/ds-banner 1.58.0-rc.1 → 1.58.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/cjs/DSBanner.js CHANGED
@@ -52,10 +52,16 @@ var DSBanner = function DSBanner(_ref) {
52
52
  height = _useState6[0];
53
53
  _useState6[1];
54
54
 
55
+ var _useState7 = React.useState(undefined),
56
+ _useState8 = _slicedToArray__default['default'](_useState7, 2),
57
+ alertTabIndex = _useState8[0],
58
+ setAlertTabIndex = _useState8[1];
59
+
55
60
  React__default['default'].useEffect(function () {
56
61
  if (actionRef && actionRef.current) {
57
62
  actionRef.current.focusOnWrapper = function () {
58
63
  if (innerContainerRef.current) {
64
+ setAlertTabIndex(0);
59
65
  setTimeout(function () {
60
66
  innerContainerRef.current.focus();
61
67
  }, 100);
@@ -72,6 +78,9 @@ var DSBanner = function DSBanner(_ref) {
72
78
  React.useLayoutEffect(function () {
73
79
  if (isOpen !== current || isOpen) setIsAnimating(true);else setIsAnimating(false);
74
80
  }, [isOpen, current]);
81
+ var handleBlur = React.useCallback(function () {
82
+ setAlertTabIndex(undefined);
83
+ }, []);
75
84
  var handleOnKeyDown = React.useCallback(function (e) {
76
85
  if (e.key === 'Enter' || e.key === ' ') {
77
86
  e.preventDefault();
@@ -95,7 +104,8 @@ var DSBanner = function DSBanner(_ref) {
95
104
  isAnimating: isAnimating,
96
105
  "data-testid": "ds-banner",
97
106
  role: "alert",
98
- tabIndex: 0
107
+ tabIndex: alertTabIndex,
108
+ onBlur: handleBlur
99
109
  }, /*#__PURE__*/React__default['default'].createElement(styles.StyledIconContainer, {
100
110
  "data-testid": "ds-banner-icon"
101
111
  }, utils_icons.icons[type]), /*#__PURE__*/React__default['default'].createElement(styles.StyledTitle, null, label), /*#__PURE__*/React__default['default'].createElement(styles.StyledSubTitle, null, /*#__PURE__*/React__default['default'].createElement("span", null, body), actionLink && /*#__PURE__*/React__default['default'].createElement(styles.StyledActionLink, {
@@ -106,7 +116,7 @@ var DSBanner = function DSBanner(_ref) {
106
116
  onKeyDown: handleOnKeyDown,
107
117
  tabIndex: 0,
108
118
  isBodyEmpty: body
109
- }, actionLink.label)), showCloseButton && /*#__PURE__*/React__default['default'].createElement(styles.StyledCloseButton, {
119
+ }, actionLink.label)), showCloseButton ? /*#__PURE__*/React__default['default'].createElement(styles.StyledCloseButton, {
110
120
  "data-testid": "ds-banner-close-button",
111
121
  buttonType: "secondary",
112
122
  onClick: onClose,
@@ -115,7 +125,7 @@ var DSBanner = function DSBanner(_ref) {
115
125
  width: "12px",
116
126
  height: "12px"
117
127
  })
118
- })));
128
+ }) : /*#__PURE__*/React__default['default'].createElement("span", null)));
119
129
  };
120
130
 
121
131
  DSBanner.defaultProps = defaultProps.defaultProps;
@@ -1 +1 @@
1
- {"version":3,"file":"DSBanner.js","sources":["../../src/DSBanner.tsx"],"sourcesContent":["import React, { useLayoutEffect, useEffect, 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 [height, setHeight] = useState<number>(0);\n\n React.useEffect(() => {\n if (actionRef && actionRef.current) {\n actionRef.current.focusOnWrapper = () => {\n if (innerContainerRef.current) {\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 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 height={height}\n data-testid=\"ds-banner-container\"\n {...containerProps}\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={0}\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 </StyledInnerContainer>\n </StyledBannerContainer>\n );\n};\n\nDSBanner.defaultProps = defaultProps;\nDSBanner.propTypes = propTypes;\nconst DSBannerWithSchema = describe(DSBanner);\nDSBannerWithSchema.propTypes = propTypes;\n\nexport default DSBanner;\nexport { DSBannerWithSchema };\n"],"names":["DSBanner","type","isOpen","onClose","label","body","actionLink","showCloseButton","containerProps","actionRef","innerContainerRef","useRef","linkRef","useState","current","setCurrent","isAnimating","setIsAnimating","height","React","useEffect","focusOnWrapper","setTimeout","focus","focusOnLink","useLayoutEffect","handleOnKeyDown","useCallback","e","key","preventDefault","click","StyledBannerContainer","StyledInnerContainer","StyledIconContainer","icons","StyledTitle","StyledSubTitle","StyledActionLink","onClick","href","StyledCloseButton","CloseX","defaultProps","propTypes","DSBannerWithSchema","describe"],"mappings":"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"}
1
+ {"version":3,"file":"DSBanner.js","sources":["../../src/DSBanner.tsx"],"sourcesContent":["import React, { useLayoutEffect, useEffect, 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 [height, setHeight] = useState<number>(0);\n const [alertTabIndex, setAlertTabIndex] = useState<number | undefined>(undefined);\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 height={height}\n data-testid=\"ds-banner-container\"\n {...containerProps}\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 { DSBannerWithSchema };\n"],"names":["DSBanner","type","isOpen","onClose","label","body","actionLink","showCloseButton","containerProps","actionRef","innerContainerRef","useRef","linkRef","useState","current","setCurrent","isAnimating","setIsAnimating","height","undefined","alertTabIndex","setAlertTabIndex","React","useEffect","focusOnWrapper","setTimeout","focus","focusOnLink","useLayoutEffect","handleBlur","useCallback","handleOnKeyDown","e","key","preventDefault","click","StyledBannerContainer","StyledInnerContainer","StyledIconContainer","icons","StyledTitle","StyledSubTitle","StyledActionLink","onClick","href","StyledCloseButton","CloseX","defaultProps","propTypes","DSBannerWithSchema","describe"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;IAiBMA,QAAQ,GAAG,SAAXA,QAAW,OAUgB;AAAA,MAT/BC,IAS+B,QAT/BA,IAS+B;AAAA,MAR/BC,MAQ+B,QAR/BA,MAQ+B;AAAA,MAP/BC,OAO+B,QAP/BA,OAO+B;AAAA,MAN/BC,KAM+B,QAN/BA,KAM+B;AAAA,MAL/BC,IAK+B,QAL/BA,IAK+B;AAAA,MAJ/BC,UAI+B,QAJ/BA,UAI+B;AAAA,MAH/BC,eAG+B,QAH/BA,eAG+B;AAAA,MAF/BC,cAE+B,QAF/BA,cAE+B;AAAA,MAD/BC,SAC+B,QAD/BA,SAC+B;AAC/B,MAAMC,iBAAiB,GAAGC,YAAM,CAAwB,IAAxB,CAAhC;AACA,MAAMC,OAAO,GAAGD,YAAM,CAA2B,IAA3B,CAAtB;;AACA,kBAA8BE,cAAQ,CAAUX,MAAV,CAAtC;AAAA;AAAA,MAAOY,OAAP;AAAA,MAAgBC,UAAhB;;AACA,mBAAsCF,cAAQ,CAAU,KAAV,CAA9C;AAAA;AAAA,MAAOG,WAAP;AAAA,MAAoBC,cAApB;;AACA,mBAA4BJ,cAAQ,CAAS,CAAT,CAApC;AAAA;AAAA,MAAOK,MAAP;AAAA;;AACA,mBAA0CL,cAAQ,CAAqBM,SAArB,CAAlD;AAAA;AAAA,MAAOC,aAAP;AAAA,MAAsBC,gBAAtB;;AAEAC,EAAAA,yBAAK,CAACC,SAAN,CAAgB,YAAM;AACpB,QAAId,SAAS,IAAIA,SAAS,CAACK,OAA3B,EAAoC;AAClCL,MAAAA,SAAS,CAACK,OAAV,CAAkBU,cAAlB,GAAmC,YAAM;AACvC,YAAId,iBAAiB,CAACI,OAAtB,EAA+B;AAC7BO,UAAAA,gBAAgB,CAAC,CAAD,CAAhB;AACAI,UAAAA,UAAU,CAAC,YAAM;AACff,YAAAA,iBAAiB,CAACI,OAAlB,CAA0BY,KAA1B;AACD,WAFS,EAEP,GAFO,CAAV;AAGD;AACF,OAPD;;AAQAjB,MAAAA,SAAS,CAACK,OAAV,CAAkBa,WAAlB,GAAgC,YAAM;AACpC,YAAIf,OAAO,CAACE,OAAZ,EAAqB;AACnBF,UAAAA,OAAO,CAACE,OAAR,CAAgBY,KAAhB;AACD;AACF,OAJD;AAKD;AACF,GAhBD,EAgBG,CAACjB,SAAD,CAhBH;AAkBAmB,EAAAA,qBAAe,CAAC,YAAM;AACpB,QAAI1B,MAAM,KAAKY,OAAX,IAAsBZ,MAA1B,EAAkCe,cAAc,CAAC,IAAD,CAAd,CAAlC,KACKA,cAAc,CAAC,KAAD,CAAd;AACN,GAHc,EAGZ,CAACf,MAAD,EAASY,OAAT,CAHY,CAAf;AAKA,MAAMe,UAAU,GAAGC,iBAAW,CAAC,YAAM;AACnCT,IAAAA,gBAAgB,CAACF,SAAD,CAAhB;AACD,GAF6B,EAE5B,EAF4B,CAA9B;AAGA,MAAMY,eAAe,GAAGD,iBAAW,CAAC,UAACE,CAAD,EAA4B;AAC9D,QAAIA,CAAC,CAACC,GAAF,KAAU,OAAV,IAAqBD,CAAC,CAACC,GAAF,KAAU,GAAnC,EAAwC;AACtCD,MAAAA,CAAC,CAACE,cAAF;AACA,UAAItB,OAAO,CAACE,OAAZ,EAAqBF,OAAO,CAACE,OAAR,CAAgBqB,KAAhB;AACtB;AACF,GALkC,EAKhC,EALgC,CAAnC;AAOA,MAAI,CAACnB,WAAD,IAAgB,CAACd,MAArB,EAA6B,OAAO,IAAP;AAE7B,sBACEoB,wCAACc,4BAAD;AACE,IAAA,IAAI,EAAEnC,IADR;AAEE,IAAA,MAAM,EAAEC,MAFV;AAGE,IAAA,WAAW,EAAEc,WAHf;AAIE,IAAA,cAAc,EAAE;AAAA,aAAMD,UAAU,CAACb,MAAD,CAAhB;AAAA,KAJlB;AAKE,IAAA,MAAM,EAAEgB,MALV;AAME,mBAAY;AANd,KAOMV,cAPN,gBASEc,wCAACe,2BAAD;AACE,IAAA,IAAI,EAAEpC,IADR;AAEE,IAAA,MAAM,EAAEC,MAFV;AAGE,IAAA,GAAG,EAAEQ,iBAHP;AAIE,IAAA,WAAW,EAAEM,WAJf;AAKE,mBAAY,WALd;AAME,IAAA,IAAI,EAAC,OANP;AAOE,IAAA,QAAQ,EAAEI,aAPZ;AAQE,IAAA,MAAM,EAAES;AARV,kBAUEP,wCAACgB,0BAAD;AAAqB,mBAAY;AAAjC,KAAmDC,iBAAK,CAACtC,IAAD,CAAxD,CAVF,eAWEqB,wCAACkB,kBAAD,QAAcpC,KAAd,CAXF,eAYEkB,wCAACmB,qBAAD,qBACEnB,sDAAOjB,IAAP,CADF,EAEGC,UAAU,iBACTgB,wCAACoB,uBAAD;AACE,mBAAY,uBADd;AAEE,IAAA,OAAO,EAAEpC,UAAU,CAACqC,OAFtB;AAGE,IAAA,IAAI,EAAErC,UAAU,CAACsC,IAHnB;AAIE,IAAA,GAAG,EAAEhC,OAJP;AAKE,IAAA,SAAS,EAAEmB,eALb;AAME,IAAA,QAAQ,EAAE,CANZ;AAOE,IAAA,WAAW,EAAE1B;AAPf,KASGC,UAAU,CAACF,KATd,CAHJ,CAZF,EA6BGG,eAAe,gBACde,wCAACuB,wBAAD;AACE,mBAAY,wBADd;AAEE,IAAA,UAAU,EAAC,WAFb;AAGE,IAAA,OAAO,EAAE1C,OAHX;AAIE,kBAAW,YAJb;AAKE,IAAA,IAAI,eAAEmB,wCAACwB,cAAD;AAAQ,MAAA,KAAK,EAAC,MAAd;AAAqB,MAAA,MAAM,EAAC;AAA5B;AALR,IADc,gBASdxB,qDAtCJ,CATF,CADF;AAqDD;;AAEDtB,QAAQ,CAAC+C,YAAT,GAAwBA,yBAAxB;AACA/C,QAAQ,CAACgD,SAAT,GAAqBA,mBAArB;IACMC,kBAAkB,GAAGC,kBAAQ,CAAClD,QAAD;AACnCiD,kBAAkB,CAACD,SAAnB,GAA+BA,mBAA/B;;;;;"}
package/cjs/styles.js CHANGED
@@ -27,7 +27,7 @@ var StyledBannerContainer = /*#__PURE__*/styled__default['default'].div.withConf
27
27
  });
28
28
  var StyledInnerContainer = /*#__PURE__*/styled__default['default'].div.withConfig({
29
29
  componentId: "sc-ffu2hq-1"
30
- })(["padding-right:6px;display:flex;align-items:center;min-height:41px;width:100%;background-color:", ";border-bottom:5px solid ", ";", ";&:focus{position:relative;&:after{content:'';display:block;position:absolute;top:0;left:0;pointer-events:none;border-radius:2px;width:calc(100%);border:2px solid #1e79c2;height:calc(100% + 4px);}}"], function (_ref3) {
30
+ })(["padding-right:6px;display:grid;align-items:center;min-height:41px;width:100%;background-color:", ";border-bottom:5px solid ", ";", ";&:focus{position:relative;&:after{content:'';display:block;position:absolute;top:0;left:0;pointer-events:none;border-radius:2px;width:calc(100%);border:2px solid #1e79c2;height:calc(100% + 4px);}}grid-template-columns:auto 1fr auto auto;"], function (_ref3) {
31
31
  var theme = _ref3.theme;
32
32
  return theme.colors.neutral['000'];
33
33
  }, function (_ref4) {
@@ -50,7 +50,7 @@ var StyledIconContainer = /*#__PURE__*/styled__default['default'].div.withConfig
50
50
  });
51
51
  var StyledTitle = /*#__PURE__*/styled__default['default'].div.withConfig({
52
52
  componentId: "sc-ffu2hq-3"
53
- })(["color:", ";font-size:", ";font-weight:", ";white-space:nowrap;"], function (_ref8) {
53
+ })(["color:", ";font-size:", ";font-weight:", ";"], function (_ref8) {
54
54
  var theme = _ref8.theme;
55
55
  return theme.colors.neutral[700];
56
56
  }, function (_ref9) {
@@ -92,7 +92,7 @@ var StyledCloseButton = /*#__PURE__*/styled__default['default'](DSButton__defaul
92
92
  componentId: "sc-ffu2hq-6"
93
93
  })(["margin-left:", ";&:not(focus){border:transparent;}"], function (_ref18) {
94
94
  var theme = _ref18.theme;
95
- return theme.space.s;
95
+ return theme.space.xxs;
96
96
  });
97
97
 
98
98
  exports.StyledActionLink = StyledActionLink;
package/cjs/styles.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"styles.js","sources":["../../src/styles.tsx"],"sourcesContent":["import styled from 'styled-components';\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.div<StyledBannerContainerT>`\n overflow: hidden;\n height: ${({ isOpen }) => (isOpen ? 'auto' : '0px')};\n ${({ isAnimating, isOpen, height }) => handleAnimation(isAnimating, isOpen, height)};\n`;\n\nexport const StyledInnerContainer = styled.div<StyledInnerContainerT>`\n padding-right: 6px;\n display: flex;\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`;\n\nexport const StyledIconContainer = styled.div`\n margin-right: ${({ theme }) => theme.space.xxs};\n margin-left: ${({ theme }) => theme.space.xs};\n`;\n\nexport const StyledTitle = styled.div`\n color: ${({ theme }) => theme.colors.neutral[700]};\n font-size: ${({ theme }) => theme.fontSizes.label[400]};\n font-weight: ${({ theme }) => theme.fontWeights.semibold};\n white-space: nowrap;\n`;\n\nexport const StyledSubTitle = styled.div`\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.a<StyledActionLinkT>`\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)`\n margin-left: ${({ theme }) => theme.space.s};\n &:not(focus) {\n border: transparent;\n }\n`;\n"],"names":["StyledBannerContainer","styled","div","isOpen","isAnimating","height","handleAnimation","StyledInnerContainer","theme","colors","neutral","type","handleBorderColor","StyledIconContainer","space","xxs","xs","StyledTitle","fontSizes","label","fontWeights","semibold","StyledSubTitle","subTitle","regular","StyledActionLink","a","isBodyEmpty","hyperlink","brand","StyledCloseButton","DSButton","s"],"mappings":";;;;;;;;;;;;;;;;IAKaA,qBAAqB,gBAAGC,0BAAM,CAACC,GAAV;AAAA;AAAA,0CAEtB;AAAA,MAAGC,MAAH,QAAGA,MAAH;AAAA,SAAiBA,MAAM,GAAG,MAAH,GAAY,KAAnC;AAAA,CAFsB,EAG9B;AAAA,MAAGC,WAAH,SAAGA,WAAH;AAAA,MAAgBD,MAAhB,SAAgBA,MAAhB;AAAA,MAAwBE,MAAxB,SAAwBA,MAAxB;AAAA,SAAqCC,kCAAe,CAACF,WAAD,EAAcD,MAAd,EAAsBE,MAAtB,CAApD;AAAA,CAH8B;IAMrBE,oBAAoB,gBAAGN,0BAAM,CAACC,GAAV;AAAA;AAAA,kVAMX;AAAA,MAAGM,KAAH,SAAGA,KAAH;AAAA,SAAeA,KAAK,CAACC,MAAN,CAAaC,OAAb,CAAqB,KAArB,CAAf;AAAA,CANW,EAOJ;AAAA,MAAGC,IAAH,SAAGA,IAAH;AAAA,MAASH,KAAT,SAASA,KAAT;AAAA,SAAqBI,oCAAiB,CAACD,IAAD,EAAOH,KAAP,CAAtC;AAAA,CAPI,EAQ7B;AAAA,MAAGJ,WAAH,SAAGA,WAAH;AAAA,MAAgBD,MAAhB,SAAgBA,MAAhB;AAAA,SAA6BG,kCAAe,CAACF,WAAD,EAAcD,MAAd,CAA5C;AAAA,CAR6B;IA0BpBU,mBAAmB,gBAAGZ,0BAAM,CAACC,GAAV;AAAA;AAAA,4CACd;AAAA,MAAGM,KAAH,SAAGA,KAAH;AAAA,SAAeA,KAAK,CAACM,KAAN,CAAYC,GAA3B;AAAA,CADc,EAEf;AAAA,MAAGP,KAAH,SAAGA,KAAH;AAAA,SAAeA,KAAK,CAACM,KAAN,CAAYE,EAA3B;AAAA,CAFe;IAKnBC,WAAW,gBAAGhB,0BAAM,CAACC,GAAV;AAAA;AAAA,uEACb;AAAA,MAAGM,KAAH,SAAGA,KAAH;AAAA,SAAeA,KAAK,CAACC,MAAN,CAAaC,OAAb,CAAqB,GAArB,CAAf;AAAA,CADa,EAET;AAAA,MAAGF,KAAH,SAAGA,KAAH;AAAA,SAAeA,KAAK,CAACU,SAAN,CAAgBC,KAAhB,CAAsB,GAAtB,CAAf;AAAA,CAFS,EAGP;AAAA,MAAGX,KAAH,UAAGA,KAAH;AAAA,SAAeA,KAAK,CAACY,WAAN,CAAkBC,QAAjC;AAAA,CAHO;IAOXC,cAAc,gBAAGrB,0BAAM,CAACC,GAAV;AAAA;AAAA,qEAEV;AAAA,MAAGM,KAAH,UAAGA,KAAH;AAAA,SAAeA,KAAK,CAACM,KAAN,CAAYE,EAA3B;AAAA,CAFU,EAGZ;AAAA,MAAGR,KAAH,UAAGA,KAAH;AAAA,SAAeA,KAAK,CAACU,SAAN,CAAgBK,QAAhB,CAAyB,GAAzB,CAAf;AAAA,CAHY,EAIV;AAAA,MAAGf,KAAH,UAAGA,KAAH;AAAA,SAAeA,KAAK,CAACY,WAAN,CAAkBI,OAAjC;AAAA,CAJU;IAOdC,gBAAgB,gBAAGxB,0BAAM,CAACyB,CAAV;AAAA;AAAA,6HACZ;AAAA,MAAGlB,KAAH,UAAGA,KAAH;AAAA,MAAUmB,WAAV,UAAUA,WAAV;AAAA,SAA6BA,WAAW,GAAGnB,KAAK,CAACM,KAAN,CAAYE,EAAf,GAAoB,CAA5D;AAAA,CADY,EAKd;AAAA,MAAGR,KAAH,UAAGA,KAAH;AAAA,SAAeA,KAAK,CAACU,SAAN,CAAgBU,SAAhB,CAA0B,GAA1B,CAAf;AAAA,CALc,EAMZ;AAAA,MAAGpB,KAAH,UAAGA,KAAH;AAAA,SAAeA,KAAK,CAACY,WAAN,CAAkBI,OAAjC;AAAA,CANY,EAOlB;AAAA,MAAGhB,KAAH,UAAGA,KAAH;AAAA,SAAeA,KAAK,CAACC,MAAN,CAAaoB,KAAb,CAAmB,GAAnB,CAAf;AAAA,CAPkB;IAUhBC,iBAAiB,gBAAG7B,0BAAM,CAAC8B,4BAAD,CAAT;AAAA;AAAA,2DACb;AAAA,MAAGvB,KAAH,UAAGA,KAAH;AAAA,SAAeA,KAAK,CAACM,KAAN,CAAYkB,CAA3B;AAAA,CADa;;;;;;;;;;"}
1
+ {"version":3,"file":"styles.js","sources":["../../src/styles.tsx"],"sourcesContent":["import styled from 'styled-components';\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.div<StyledBannerContainerT>`\n overflow: hidden;\n height: ${({ isOpen }) => (isOpen ? 'auto' : '0px')};\n ${({ isAnimating, isOpen, height }) => handleAnimation(isAnimating, isOpen, height)};\n`;\n\nexport const StyledInnerContainer = styled.div<StyledInnerContainerT>`\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 1fr auto auto;\n`;\n\nexport const StyledIconContainer = styled.div`\n margin-right: ${({ theme }) => theme.space.xxs};\n margin-left: ${({ theme }) => theme.space.xs};\n`;\n\nexport const StyledTitle = styled.div`\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`\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.a<StyledActionLinkT>`\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)`\n margin-left: ${({ theme }) => theme.space.xxs};\n &:not(focus) {\n border: transparent;\n }\n`;\n"],"names":["StyledBannerContainer","styled","div","isOpen","isAnimating","height","handleAnimation","StyledInnerContainer","theme","colors","neutral","type","handleBorderColor","StyledIconContainer","space","xxs","xs","StyledTitle","fontSizes","label","fontWeights","semibold","StyledSubTitle","subTitle","regular","StyledActionLink","a","isBodyEmpty","hyperlink","brand","StyledCloseButton","DSButton"],"mappings":"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"}
package/esm/DSBanner.js CHANGED
@@ -42,10 +42,16 @@ var DSBanner = function DSBanner(_ref) {
42
42
  height = _useState6[0];
43
43
  _useState6[1];
44
44
 
45
+ var _useState7 = useState(undefined),
46
+ _useState8 = _slicedToArray(_useState7, 2),
47
+ alertTabIndex = _useState8[0],
48
+ setAlertTabIndex = _useState8[1];
49
+
45
50
  React.useEffect(function () {
46
51
  if (actionRef && actionRef.current) {
47
52
  actionRef.current.focusOnWrapper = function () {
48
53
  if (innerContainerRef.current) {
54
+ setAlertTabIndex(0);
49
55
  setTimeout(function () {
50
56
  innerContainerRef.current.focus();
51
57
  }, 100);
@@ -62,6 +68,9 @@ var DSBanner = function DSBanner(_ref) {
62
68
  useLayoutEffect(function () {
63
69
  if (isOpen !== current || isOpen) setIsAnimating(true);else setIsAnimating(false);
64
70
  }, [isOpen, current]);
71
+ var handleBlur = useCallback(function () {
72
+ setAlertTabIndex(undefined);
73
+ }, []);
65
74
  var handleOnKeyDown = useCallback(function (e) {
66
75
  if (e.key === 'Enter' || e.key === ' ') {
67
76
  e.preventDefault();
@@ -85,7 +94,8 @@ var DSBanner = function DSBanner(_ref) {
85
94
  isAnimating: isAnimating,
86
95
  "data-testid": "ds-banner",
87
96
  role: "alert",
88
- tabIndex: 0
97
+ tabIndex: alertTabIndex,
98
+ onBlur: handleBlur
89
99
  }, /*#__PURE__*/React.createElement(StyledIconContainer, {
90
100
  "data-testid": "ds-banner-icon"
91
101
  }, icons[type]), /*#__PURE__*/React.createElement(StyledTitle, null, label), /*#__PURE__*/React.createElement(StyledSubTitle, null, /*#__PURE__*/React.createElement("span", null, body), actionLink && /*#__PURE__*/React.createElement(StyledActionLink, {
@@ -96,7 +106,7 @@ var DSBanner = function DSBanner(_ref) {
96
106
  onKeyDown: handleOnKeyDown,
97
107
  tabIndex: 0,
98
108
  isBodyEmpty: body
99
- }, actionLink.label)), showCloseButton && /*#__PURE__*/React.createElement(StyledCloseButton, {
109
+ }, actionLink.label)), showCloseButton ? /*#__PURE__*/React.createElement(StyledCloseButton, {
100
110
  "data-testid": "ds-banner-close-button",
101
111
  buttonType: "secondary",
102
112
  onClick: onClose,
@@ -105,7 +115,7 @@ var DSBanner = function DSBanner(_ref) {
105
115
  width: "12px",
106
116
  height: "12px"
107
117
  })
108
- })));
118
+ }) : /*#__PURE__*/React.createElement("span", null)));
109
119
  };
110
120
 
111
121
  DSBanner.defaultProps = defaultProps;
@@ -1 +1 @@
1
- {"version":3,"file":"DSBanner.js","sources":["../../src/DSBanner.tsx"],"sourcesContent":["import React, { useLayoutEffect, useEffect, 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 [height, setHeight] = useState<number>(0);\n\n React.useEffect(() => {\n if (actionRef && actionRef.current) {\n actionRef.current.focusOnWrapper = () => {\n if (innerContainerRef.current) {\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 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 height={height}\n data-testid=\"ds-banner-container\"\n {...containerProps}\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={0}\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 </StyledInnerContainer>\n </StyledBannerContainer>\n );\n};\n\nDSBanner.defaultProps = defaultProps;\nDSBanner.propTypes = propTypes;\nconst DSBannerWithSchema = describe(DSBanner);\nDSBannerWithSchema.propTypes = propTypes;\n\nexport default DSBanner;\nexport { DSBannerWithSchema };\n"],"names":["DSBanner","type","isOpen","onClose","label","body","actionLink","showCloseButton","containerProps","actionRef","innerContainerRef","useRef","linkRef","useState","current","setCurrent","isAnimating","setIsAnimating","height","React","useEffect","focusOnWrapper","setTimeout","focus","focusOnLink","useLayoutEffect","handleOnKeyDown","useCallback","e","key","preventDefault","click","icons","onClick","href","defaultProps","propTypes","DSBannerWithSchema","describe"],"mappings":"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"}
1
+ {"version":3,"file":"DSBanner.js","sources":["../../src/DSBanner.tsx"],"sourcesContent":["import React, { useLayoutEffect, useEffect, 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 [height, setHeight] = useState<number>(0);\n const [alertTabIndex, setAlertTabIndex] = useState<number | undefined>(undefined);\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 height={height}\n data-testid=\"ds-banner-container\"\n {...containerProps}\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 { DSBannerWithSchema };\n"],"names":["DSBanner","type","isOpen","onClose","label","body","actionLink","showCloseButton","containerProps","actionRef","innerContainerRef","useRef","linkRef","useState","current","setCurrent","isAnimating","setIsAnimating","height","undefined","alertTabIndex","setAlertTabIndex","React","useEffect","focusOnWrapper","setTimeout","focus","focusOnLink","useLayoutEffect","handleBlur","useCallback","handleOnKeyDown","e","key","preventDefault","click","icons","onClick","href","defaultProps","propTypes","DSBannerWithSchema","describe"],"mappings":"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"}
package/esm/styles.js CHANGED
@@ -18,7 +18,7 @@ var StyledBannerContainer = /*#__PURE__*/styled.div.withConfig({
18
18
  });
19
19
  var StyledInnerContainer = /*#__PURE__*/styled.div.withConfig({
20
20
  componentId: "sc-ffu2hq-1"
21
- })(["padding-right:6px;display:flex;align-items:center;min-height:41px;width:100%;background-color:", ";border-bottom:5px solid ", ";", ";&:focus{position:relative;&:after{content:'';display:block;position:absolute;top:0;left:0;pointer-events:none;border-radius:2px;width:calc(100%);border:2px solid #1e79c2;height:calc(100% + 4px);}}"], function (_ref3) {
21
+ })(["padding-right:6px;display:grid;align-items:center;min-height:41px;width:100%;background-color:", ";border-bottom:5px solid ", ";", ";&:focus{position:relative;&:after{content:'';display:block;position:absolute;top:0;left:0;pointer-events:none;border-radius:2px;width:calc(100%);border:2px solid #1e79c2;height:calc(100% + 4px);}}grid-template-columns:auto 1fr auto auto;"], function (_ref3) {
22
22
  var theme = _ref3.theme;
23
23
  return theme.colors.neutral['000'];
24
24
  }, function (_ref4) {
@@ -41,7 +41,7 @@ var StyledIconContainer = /*#__PURE__*/styled.div.withConfig({
41
41
  });
42
42
  var StyledTitle = /*#__PURE__*/styled.div.withConfig({
43
43
  componentId: "sc-ffu2hq-3"
44
- })(["color:", ";font-size:", ";font-weight:", ";white-space:nowrap;"], function (_ref8) {
44
+ })(["color:", ";font-size:", ";font-weight:", ";"], function (_ref8) {
45
45
  var theme = _ref8.theme;
46
46
  return theme.colors.neutral[700];
47
47
  }, function (_ref9) {
@@ -83,7 +83,7 @@ var StyledCloseButton = /*#__PURE__*/styled(DSButton).withConfig({
83
83
  componentId: "sc-ffu2hq-6"
84
84
  })(["margin-left:", ";&:not(focus){border:transparent;}"], function (_ref18) {
85
85
  var theme = _ref18.theme;
86
- return theme.space.s;
86
+ return theme.space.xxs;
87
87
  });
88
88
 
89
89
  export { StyledActionLink, StyledBannerContainer, StyledCloseButton, StyledIconContainer, StyledInnerContainer, StyledSubTitle, StyledTitle };
package/esm/styles.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"styles.js","sources":["../../src/styles.tsx"],"sourcesContent":["import styled from 'styled-components';\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.div<StyledBannerContainerT>`\n overflow: hidden;\n height: ${({ isOpen }) => (isOpen ? 'auto' : '0px')};\n ${({ isAnimating, isOpen, height }) => handleAnimation(isAnimating, isOpen, height)};\n`;\n\nexport const StyledInnerContainer = styled.div<StyledInnerContainerT>`\n padding-right: 6px;\n display: flex;\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`;\n\nexport const StyledIconContainer = styled.div`\n margin-right: ${({ theme }) => theme.space.xxs};\n margin-left: ${({ theme }) => theme.space.xs};\n`;\n\nexport const StyledTitle = styled.div`\n color: ${({ theme }) => theme.colors.neutral[700]};\n font-size: ${({ theme }) => theme.fontSizes.label[400]};\n font-weight: ${({ theme }) => theme.fontWeights.semibold};\n white-space: nowrap;\n`;\n\nexport const StyledSubTitle = styled.div`\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.a<StyledActionLinkT>`\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)`\n margin-left: ${({ theme }) => theme.space.s};\n &:not(focus) {\n border: transparent;\n }\n`;\n"],"names":["StyledBannerContainer","styled","div","isOpen","isAnimating","height","handleAnimation","StyledInnerContainer","theme","colors","neutral","type","handleBorderColor","StyledIconContainer","space","xxs","xs","StyledTitle","fontSizes","label","fontWeights","semibold","StyledSubTitle","subTitle","regular","StyledActionLink","a","isBodyEmpty","hyperlink","brand","StyledCloseButton","DSButton","s"],"mappings":";;;;;;;IAKaA,qBAAqB,gBAAGC,MAAM,CAACC,GAAV;AAAA;AAAA,0CAEtB;AAAA,MAAGC,MAAH,QAAGA,MAAH;AAAA,SAAiBA,MAAM,GAAG,MAAH,GAAY,KAAnC;AAAA,CAFsB,EAG9B;AAAA,MAAGC,WAAH,SAAGA,WAAH;AAAA,MAAgBD,MAAhB,SAAgBA,MAAhB;AAAA,MAAwBE,MAAxB,SAAwBA,MAAxB;AAAA,SAAqCC,eAAe,CAACF,WAAD,EAAcD,MAAd,EAAsBE,MAAtB,CAApD;AAAA,CAH8B;IAMrBE,oBAAoB,gBAAGN,MAAM,CAACC,GAAV;AAAA;AAAA,kVAMX;AAAA,MAAGM,KAAH,SAAGA,KAAH;AAAA,SAAeA,KAAK,CAACC,MAAN,CAAaC,OAAb,CAAqB,KAArB,CAAf;AAAA,CANW,EAOJ;AAAA,MAAGC,IAAH,SAAGA,IAAH;AAAA,MAASH,KAAT,SAASA,KAAT;AAAA,SAAqBI,iBAAiB,CAACD,IAAD,EAAOH,KAAP,CAAtC;AAAA,CAPI,EAQ7B;AAAA,MAAGJ,WAAH,SAAGA,WAAH;AAAA,MAAgBD,MAAhB,SAAgBA,MAAhB;AAAA,SAA6BG,eAAe,CAACF,WAAD,EAAcD,MAAd,CAA5C;AAAA,CAR6B;IA0BpBU,mBAAmB,gBAAGZ,MAAM,CAACC,GAAV;AAAA;AAAA,4CACd;AAAA,MAAGM,KAAH,SAAGA,KAAH;AAAA,SAAeA,KAAK,CAACM,KAAN,CAAYC,GAA3B;AAAA,CADc,EAEf;AAAA,MAAGP,KAAH,SAAGA,KAAH;AAAA,SAAeA,KAAK,CAACM,KAAN,CAAYE,EAA3B;AAAA,CAFe;IAKnBC,WAAW,gBAAGhB,MAAM,CAACC,GAAV;AAAA;AAAA,uEACb;AAAA,MAAGM,KAAH,SAAGA,KAAH;AAAA,SAAeA,KAAK,CAACC,MAAN,CAAaC,OAAb,CAAqB,GAArB,CAAf;AAAA,CADa,EAET;AAAA,MAAGF,KAAH,SAAGA,KAAH;AAAA,SAAeA,KAAK,CAACU,SAAN,CAAgBC,KAAhB,CAAsB,GAAtB,CAAf;AAAA,CAFS,EAGP;AAAA,MAAGX,KAAH,UAAGA,KAAH;AAAA,SAAeA,KAAK,CAACY,WAAN,CAAkBC,QAAjC;AAAA,CAHO;IAOXC,cAAc,gBAAGrB,MAAM,CAACC,GAAV;AAAA;AAAA,qEAEV;AAAA,MAAGM,KAAH,UAAGA,KAAH;AAAA,SAAeA,KAAK,CAACM,KAAN,CAAYE,EAA3B;AAAA,CAFU,EAGZ;AAAA,MAAGR,KAAH,UAAGA,KAAH;AAAA,SAAeA,KAAK,CAACU,SAAN,CAAgBK,QAAhB,CAAyB,GAAzB,CAAf;AAAA,CAHY,EAIV;AAAA,MAAGf,KAAH,UAAGA,KAAH;AAAA,SAAeA,KAAK,CAACY,WAAN,CAAkBI,OAAjC;AAAA,CAJU;IAOdC,gBAAgB,gBAAGxB,MAAM,CAACyB,CAAV;AAAA;AAAA,6HACZ;AAAA,MAAGlB,KAAH,UAAGA,KAAH;AAAA,MAAUmB,WAAV,UAAUA,WAAV;AAAA,SAA6BA,WAAW,GAAGnB,KAAK,CAACM,KAAN,CAAYE,EAAf,GAAoB,CAA5D;AAAA,CADY,EAKd;AAAA,MAAGR,KAAH,UAAGA,KAAH;AAAA,SAAeA,KAAK,CAACU,SAAN,CAAgBU,SAAhB,CAA0B,GAA1B,CAAf;AAAA,CALc,EAMZ;AAAA,MAAGpB,KAAH,UAAGA,KAAH;AAAA,SAAeA,KAAK,CAACY,WAAN,CAAkBI,OAAjC;AAAA,CANY,EAOlB;AAAA,MAAGhB,KAAH,UAAGA,KAAH;AAAA,SAAeA,KAAK,CAACC,MAAN,CAAaoB,KAAb,CAAmB,GAAnB,CAAf;AAAA,CAPkB;IAUhBC,iBAAiB,gBAAG7B,MAAM,CAAC8B,QAAD,CAAT;AAAA;AAAA,2DACb;AAAA,MAAGvB,KAAH,UAAGA,KAAH;AAAA,SAAeA,KAAK,CAACM,KAAN,CAAYkB,CAA3B;AAAA,CADa;;;;"}
1
+ {"version":3,"file":"styles.js","sources":["../../src/styles.tsx"],"sourcesContent":["import styled from 'styled-components';\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.div<StyledBannerContainerT>`\n overflow: hidden;\n height: ${({ isOpen }) => (isOpen ? 'auto' : '0px')};\n ${({ isAnimating, isOpen, height }) => handleAnimation(isAnimating, isOpen, height)};\n`;\n\nexport const StyledInnerContainer = styled.div<StyledInnerContainerT>`\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 1fr auto auto;\n`;\n\nexport const StyledIconContainer = styled.div`\n margin-right: ${({ theme }) => theme.space.xxs};\n margin-left: ${({ theme }) => theme.space.xs};\n`;\n\nexport const StyledTitle = styled.div`\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`\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.a<StyledActionLinkT>`\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)`\n margin-left: ${({ theme }) => theme.space.xxs};\n &:not(focus) {\n border: transparent;\n }\n`;\n"],"names":["StyledBannerContainer","styled","div","isOpen","isAnimating","height","handleAnimation","StyledInnerContainer","theme","colors","neutral","type","handleBorderColor","StyledIconContainer","space","xxs","xs","StyledTitle","fontSizes","label","fontWeights","semibold","StyledSubTitle","subTitle","regular","StyledActionLink","a","isBodyEmpty","hyperlink","brand","StyledCloseButton","DSButton"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@elliemae/ds-banner",
3
- "version": "1.58.0-rc.1",
3
+ "version": "1.58.0-rc.2",
4
4
  "license": "MIT",
5
5
  "description": "Ellie Mae - Dim Sum - Banner",
6
6
  "module": "esm/index.js",
@@ -16,9 +16,9 @@
16
16
  "build": "node ../../scripts/build/build.js"
17
17
  },
18
18
  "dependencies": {
19
- "@elliemae/ds-basic": "1.58.0-rc.1",
20
- "@elliemae/ds-icons": "1.58.0-rc.1",
21
- "@elliemae/ds-system": "1.58.0-rc.1",
19
+ "@elliemae/ds-basic": "1.58.0-rc.2",
20
+ "@elliemae/ds-icons": "1.58.0-rc.2",
21
+ "@elliemae/ds-system": "1.58.0-rc.2",
22
22
  "react-desc": "^4.1.2"
23
23
  },
24
24
  "devDependencies": {