qpp-style 9.16.9 → 9.18.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.
Files changed (153) hide show
  1. package/.husky/pre-commit +5 -0
  2. package/components/Alert/Alert.stories.js +1 -1
  3. package/components/Alert/index.js +8 -1
  4. package/components/Footer/Footer.stories.js +2 -9
  5. package/components/Footer/FooterUI.jsx +172 -230
  6. package/components/Footer/footer.js +2 -12
  7. package/components/GovBanner/index.js +65 -57
  8. package/components/Header/HeaderContainer.jsx +1 -1
  9. package/components/Header/HeaderMenuItem.jsx +13 -6
  10. package/components/Header/HeaderMenuLink.js +6 -0
  11. package/components/Modal/Modal.jsx +1 -1
  12. package/components/NotificationBanner/CollapsedView.js +32 -0
  13. package/components/NotificationBanner/ExpandedView.js +45 -0
  14. package/components/NotificationBanner/NotificationBanner.stories.js +5 -5
  15. package/components/NotificationBanner/index.js +122 -166
  16. package/components/SideNav/AnimationGroup/AnimationGroup.jsx +2 -2
  17. package/components/SideNav/Content/LevelOneContent.jsx +147 -156
  18. package/components/SideNav/Content/SelectRole/index.js +77 -0
  19. package/components/SideNav/Content/SelectRole/utils.js +128 -0
  20. package/components/SideNav/Details/PracticeDetails.jsx +1 -1
  21. package/components/SideNav/Links/NavLinkDrawer.jsx +1 -1
  22. package/components/SideNav/Links/NavLinkInline.jsx +6 -1
  23. package/components/SideNav/UI/SideNavUI.jsx +9 -3
  24. package/components/SideNav/UI/default-content.json +15 -1
  25. package/components/SideNav/helpers.js +273 -0
  26. package/components/Tabs/Tab.js +1 -1
  27. package/components/Tabs/TabPanel.js +8 -1
  28. package/components/Tabs/index.js +46 -41
  29. package/components/TextInput/index.js +1 -1
  30. package/components/hooks/useGetConfig.js +1 -0
  31. package/dist/browser.js +1 -1
  32. package/dist/browser.js.LICENSE.txt +10 -1
  33. package/dist/browser.js.map +1 -1
  34. package/dist/index.js +1 -1
  35. package/dist/index.js.LICENSE.txt +10 -1
  36. package/dist/index.js.map +1 -1
  37. package/dist/react/index.js +1 -1
  38. package/dist/react/index.js.LICENSE.txt +9 -0
  39. package/dist/react/index.js.map +1 -1
  40. package/images/icons/svg/arrow-down.svg +3 -1
  41. package/images/icons/svg/arrow-up.svg +3 -0
  42. package/lib/SvgComponents.jsx +31 -0
  43. package/package.json +18 -16
  44. package/styles/qppds/components/_dropdown.scss +1 -0
  45. package/styles/qppds/components/_sidebar.scss +1 -0
  46. package/styles/qppds/components/sidebar/_links.scss +14 -1
  47. package/styles/qppds/components/sidebar/_select-role-dropdown.scss +21 -0
  48. package/test/components/FooterUI.test.js +0 -30
  49. package/components/Footer/LegacyFooterUI.jsx +0 -194
  50. package/coverage/clover.xml +0 -1294
  51. package/coverage/coverage-final.json +0 -70
  52. package/coverage/lcov-report/base.css +0 -224
  53. package/coverage/lcov-report/block-navigation.js +0 -87
  54. package/coverage/lcov-report/favicon.png +0 -0
  55. package/coverage/lcov-report/index.html +0 -461
  56. package/coverage/lcov-report/prettify.css +0 -1
  57. package/coverage/lcov-report/prettify.js +0 -2
  58. package/coverage/lcov-report/react/components/Accordion/index.html +0 -116
  59. package/coverage/lcov-report/react/components/Accordion/index.jsx.html +0 -364
  60. package/coverage/lcov-report/react/components/Button/index.html +0 -116
  61. package/coverage/lcov-report/react/components/Button/index.js.html +0 -355
  62. package/coverage/lcov-report/react/components/Error/Collapsible.jsx.html +0 -349
  63. package/coverage/lcov-report/react/components/Error/ErrorUI.jsx.html +0 -178
  64. package/coverage/lcov-report/react/components/Error/error.js.html +0 -163
  65. package/coverage/lcov-report/react/components/Error/index.html +0 -146
  66. package/coverage/lcov-report/react/components/Footer/FooterUI.jsx.html +0 -880
  67. package/coverage/lcov-report/react/components/Footer/LegacyFooterUI.jsx.html +0 -667
  68. package/coverage/lcov-report/react/components/Footer/SocialLinks.jsx.html +0 -265
  69. package/coverage/lcov-report/react/components/Footer/Subscribe.jsx.html +0 -187
  70. package/coverage/lcov-report/react/components/Footer/footer.js.html +0 -175
  71. package/coverage/lcov-report/react/components/Footer/index.html +0 -176
  72. package/coverage/lcov-report/react/components/GovBanner/index.html +0 -116
  73. package/coverage/lcov-report/react/components/GovBanner/index.js.html +0 -409
  74. package/coverage/lcov-report/react/components/Header/HeaderAccountMenu.jsx.html +0 -592
  75. package/coverage/lcov-report/react/components/Header/HeaderCancel.jsx.html +0 -133
  76. package/coverage/lcov-report/react/components/Header/HeaderContainer.jsx.html +0 -280
  77. package/coverage/lcov-report/react/components/Header/HeaderLogo.jsx.html +0 -211
  78. package/coverage/lcov-report/react/components/Header/HeaderMenuButton.js.html +0 -235
  79. package/coverage/lcov-report/react/components/Header/HeaderMenuItem.jsx.html +0 -781
  80. package/coverage/lcov-report/react/components/Header/HeaderMenuLink.js.html +0 -235
  81. package/coverage/lcov-report/react/components/Header/HeaderMenuSignOutButton.js.html +0 -271
  82. package/coverage/lcov-report/react/components/Header/HeaderMobileButton.js.html +0 -196
  83. package/coverage/lcov-report/react/components/Header/HeaderUI.jsx.html +0 -586
  84. package/coverage/lcov-report/react/components/Header/HelpIcon.jsx.html +0 -181
  85. package/coverage/lcov-report/react/components/Header/ImpersonatorBanner.jsx.html +0 -331
  86. package/coverage/lcov-report/react/components/Header/NavigationButtonIcon.jsx.html +0 -166
  87. package/coverage/lcov-report/react/components/Header/header.js.html +0 -205
  88. package/coverage/lcov-report/react/components/Header/hooks.js.html +0 -241
  89. package/coverage/lcov-report/react/components/Header/index.html +0 -341
  90. package/coverage/lcov-report/react/components/Header/utag-helpers.js.html +0 -112
  91. package/coverage/lcov-report/react/components/Infotip/Infotip.jsx.html +0 -310
  92. package/coverage/lcov-report/react/components/Infotip/InfotipIcon.jsx.html +0 -208
  93. package/coverage/lcov-report/react/components/Infotip/index.html +0 -146
  94. package/coverage/lcov-report/react/components/Infotip/index.js.html +0 -94
  95. package/coverage/lcov-report/react/components/Modal/LegacyModal.jsx.html +0 -301
  96. package/coverage/lcov-report/react/components/Modal/Modal.jsx.html +0 -505
  97. package/coverage/lcov-report/react/components/Modal/index.html +0 -146
  98. package/coverage/lcov-report/react/components/Modal/index.jsx.html +0 -151
  99. package/coverage/lcov-report/react/components/NotificationBanner/index.html +0 -116
  100. package/coverage/lcov-report/react/components/NotificationBanner/index.js.html +0 -880
  101. package/coverage/lcov-report/react/components/SanitizedContent/index.html +0 -116
  102. package/coverage/lcov-report/react/components/SanitizedContent/index.jsx.html +0 -685
  103. package/coverage/lcov-report/react/components/SessionDialog/index.html +0 -116
  104. package/coverage/lcov-report/react/components/SessionDialog/sessionDialog.js.html +0 -163
  105. package/coverage/lcov-report/react/components/SessionDialogUI.jsx.html +0 -868
  106. package/coverage/lcov-report/react/components/SideNav/AnimationGroup/AnimationGroup.jsx.html +0 -166
  107. package/coverage/lcov-report/react/components/SideNav/AnimationGroup/index.html +0 -116
  108. package/coverage/lcov-report/react/components/SideNav/Chart/ScoreChart.jsx.html +0 -889
  109. package/coverage/lcov-report/react/components/SideNav/Chart/index.html +0 -131
  110. package/coverage/lcov-report/react/components/SideNav/Chart/index.js.html +0 -94
  111. package/coverage/lcov-report/react/components/SideNav/Content/LevelOneContent.jsx.html +0 -709
  112. package/coverage/lcov-report/react/components/SideNav/Content/LevelTwoContent.jsx.html +0 -733
  113. package/coverage/lcov-report/react/components/SideNav/Content/index.html +0 -146
  114. package/coverage/lcov-report/react/components/SideNav/Content/index.js.html +0 -97
  115. package/coverage/lcov-report/react/components/SideNav/Details/IndividualDetails.jsx.html +0 -139
  116. package/coverage/lcov-report/react/components/SideNav/Details/PracticeDetails.jsx.html +0 -220
  117. package/coverage/lcov-report/react/components/SideNav/Details/index.html +0 -146
  118. package/coverage/lcov-report/react/components/SideNav/Details/index.js.html +0 -97
  119. package/coverage/lcov-report/react/components/SideNav/Links/CmsSwitchLink.jsx.html +0 -208
  120. package/coverage/lcov-report/react/components/SideNav/Links/NavItemInline.jsx.html +0 -247
  121. package/coverage/lcov-report/react/components/SideNav/Links/NavLinkContainer.jsx.html +0 -199
  122. package/coverage/lcov-report/react/components/SideNav/Links/NavLinkDrawer.jsx.html +0 -883
  123. package/coverage/lcov-report/react/components/SideNav/Links/NavLinkInline.jsx.html +0 -406
  124. package/coverage/lcov-report/react/components/SideNav/Links/NavLinkToggle.jsx.html +0 -187
  125. package/coverage/lcov-report/react/components/SideNav/Links/index.html +0 -206
  126. package/coverage/lcov-report/react/components/SideNav/Links/index.js.html +0 -124
  127. package/coverage/lcov-report/react/components/SideNav/UI/SideNavUI.jsx.html +0 -1087
  128. package/coverage/lcov-report/react/components/SideNav/UI/index.html +0 -131
  129. package/coverage/lcov-report/react/components/SideNav/UI/index.js.html +0 -94
  130. package/coverage/lcov-report/react/components/SideNav/helpers.js.html +0 -238
  131. package/coverage/lcov-report/react/components/SideNav/index.html +0 -131
  132. package/coverage/lcov-report/react/components/SideNav/index.js.html +0 -244
  133. package/coverage/lcov-report/react/components/Tooltip/Tooltip.jsx.html +0 -349
  134. package/coverage/lcov-report/react/components/Tooltip/index.html +0 -146
  135. package/coverage/lcov-report/react/components/Tooltip/index.js.html +0 -94
  136. package/coverage/lcov-report/react/components/Tooltip/position.js.html +0 -289
  137. package/coverage/lcov-report/react/components/hooks/index.html +0 -116
  138. package/coverage/lcov-report/react/components/hooks/useGetConfig.js.html +0 -307
  139. package/coverage/lcov-report/react/components/index.html +0 -116
  140. package/coverage/lcov-report/react/index.html +0 -116
  141. package/coverage/lcov-report/react/index.js.html +0 -178
  142. package/coverage/lcov-report/react/lib/Chevron.jsx.html +0 -181
  143. package/coverage/lcov-report/react/lib/SvgComponents.jsx.html +0 -1702
  144. package/coverage/lcov-report/react/lib/index.html +0 -146
  145. package/coverage/lcov-report/react/lib/svg-definitions.svg.html +0 -460
  146. package/coverage/lcov-report/react/session/index.html +0 -161
  147. package/coverage/lcov-report/react/session/index.js.html +0 -100
  148. package/coverage/lcov-report/react/session/logout.js.html +0 -307
  149. package/coverage/lcov-report/react/session/refresh.js.html +0 -232
  150. package/coverage/lcov-report/react/session/ttl.js.html +0 -196
  151. package/coverage/lcov-report/sort-arrow-sprite.png +0 -0
  152. package/coverage/lcov-report/sorter.js +0 -196
  153. package/coverage/lcov.info +0 -2924
@@ -1,95 +1,103 @@
1
- import React, { useState } from 'react'
1
+ import React, { useState } from 'react';
2
2
 
3
3
  const GovBanner = () => {
4
- const [hideContent, setHideContent] = useState(true)
4
+ const [hideContent, setHideContent] = useState(true);
5
5
 
6
6
  return (
7
- <section className='qpp-c-gov-banner' aria-label='Official government website'>
8
- <div className='qpp-c-gov-banner__expand-wrap'>
9
- <header
10
- className={ `qpp-c-gov-banner__header ${!hideContent ? 'qpp-c-gov-banner__header--expanded' : ''}` }
7
+ <section
8
+ className="qpp-c-gov-banner"
9
+ aria-label="Official government website"
10
+ >
11
+ <div className="qpp-c-gov-banner__expand-wrap">
12
+ <header
13
+ className={`qpp-c-gov-banner__header ${
14
+ !hideContent ? 'qpp-c-gov-banner__header--expanded' : ''
15
+ }`}
11
16
  >
12
- <div className='qpp-c-gov-banner__inner'>
13
- <div className='qpp-c-gov-banner__header-col1'>
17
+ <div className="qpp-c-gov-banner__inner">
18
+ <div className="qpp-c-gov-banner__header-col1">
14
19
  <img
15
- className='qpp-c-gov-banner__header-flag'
16
- src='/images/us_flag_small.png'
17
- alt='U.S. flag'
20
+ className="qpp-c-gov-banner__header-flag"
21
+ src="/images/us_flag_small.png"
22
+ alt="U.S. flag"
18
23
  />
19
24
  </div>
20
- <div className='qpp-c-gov-banner__header-col2'>
21
- <p className='qpp-c-gov-banner__header-text'>
25
+ <div className="qpp-c-gov-banner__header-col2">
26
+ <p className="qpp-c-gov-banner__header-text">
22
27
  An official website of the United States government
23
28
  </p>
24
- <p className='qpp-c-gov-banner__header-action' aria-hidden='true'>
25
- <span className='qpp-c-gov-banner__header-action-text qpp-c-button qpp-c-button--text'>Here’s how you know</span><span className='qpp-c-gov-banner__header-action-icon qpp-c-button qpp-c-button--text'></span>
29
+ <p className="qpp-c-gov-banner__header-action" aria-hidden="true">
30
+ <span className="qpp-c-gov-banner__header-action-text qpp-c-button qpp-c-button--text">
31
+ Here’s how you know
32
+ </span>
33
+ <span className="qpp-c-gov-banner__header-action-icon qpp-c-button qpp-c-button--text"></span>
26
34
  </p>
27
35
  </div>
28
36
  <button
29
- className='qpp-c-gov-banner__button qpp-c-button qpp-c-button--icon-after qpp-c-button--text'
30
- aria-expanded={ !hideContent }
31
- aria-controls='qpp-gov-banner-content'
32
- onClick={ () => setHideContent(!hideContent) }
37
+ className="qpp-c-gov-banner__button qpp-c-button qpp-c-button--icon-after qpp-c-button--text"
38
+ aria-expanded={!hideContent}
39
+ aria-controls="qpp-gov-banner-content"
40
+ onClick={() => setHideContent(!hideContent)}
33
41
  >
34
- <span className='qpp-c-gov-banner__button-text'>Here’s how you know</span>
42
+ <span className="qpp-c-gov-banner__button-text">
43
+ Here’s how you know
44
+ </span>
35
45
  </button>
36
46
  </div>
37
47
  </header>
38
48
  <div
39
- className='qpp-c-gov-banner__content'
40
- id='qpp-gov-banner-content'
41
- hidden={ hideContent }
49
+ className="qpp-c-gov-banner__content"
50
+ id="qpp-gov-banner-content"
51
+ hidden={hideContent}
42
52
  >
43
- <div className='qpp-u-display--flex qpp-u-flex-direction--column qpp-u-xs-flex-direction--row qpp-u-flex-gap--24'>
44
- <div className='qpp-c-gov-banner__guidance'>
53
+ <div className="qpp-u-display--flex qpp-u-flex-direction--column qpp-u-xs-flex-direction--row qpp-u-flex-gap--24">
54
+ <div className="qpp-c-gov-banner__guidance">
45
55
  <img
46
- className='qpp-c-gov-banner__icon'
47
- src='/images/icon-dot-gov.svg'
48
- role='img'
49
- alt=''
50
- aria-hidden='true'
56
+ className="qpp-c-gov-banner__icon"
57
+ src="/images/icon-dot-gov.svg"
58
+ role="img"
59
+ alt=""
60
+ aria-hidden="true"
51
61
  />
52
62
  <div>
53
63
  <p>
54
64
  <strong> Official websites use .gov </strong>
55
- <br />
56
- A <strong>.gov</strong> website belongs to an official
65
+ <br />A <strong>.gov</strong> website belongs to an official
57
66
  government organization in the United States.
58
67
  </p>
59
68
  </div>
60
69
  </div>
61
- <div className='qpp-c-gov-banner__guidance'>
70
+ <div className="qpp-c-gov-banner__guidance">
62
71
  <img
63
- className='qpp-c-gov-banner__icon'
64
- src='/images/icon-https.svg'
65
- role='img'
66
- alt=''
67
- aria-hidden='true'
72
+ className="qpp-c-gov-banner__icon"
73
+ src="/images/icon-https.svg"
74
+ role="img"
75
+ alt=""
76
+ aria-hidden="true"
68
77
  />
69
78
  <div>
70
79
  <p>
71
80
  <strong> Secure .gov websites use HTTPS </strong>
72
- <br />
73
- A <strong>lock</strong> (
74
- <span className='icon-lock'>
81
+ <br />A <strong>lock</strong> (
82
+ <span className="icon-lock">
75
83
  <svg
76
- xmlns='http://www.w3.org/2000/svg'
77
- width='52'
78
- height='64'
79
- viewBox='0 0 52 64'
80
- className='qpp-c-gov-banner__lock-image '
81
- role='img'
82
- aria-labelledby='banner-lock-title-default banner-lock-description-default'
83
- focusable='false'
84
+ xmlns="http://www.w3.org/2000/svg"
85
+ width="52"
86
+ height="64"
87
+ viewBox="0 0 52 64"
88
+ className="qpp-c-gov-banner__lock-image "
89
+ role="img"
90
+ aria-labelledby="banner-lock-title-default banner-lock-description-default"
91
+ focusable="false"
84
92
  >
85
- <title id='banner-lock-title-default'>Lock</title>
86
- <desc id='banner-lock-description-default'>
93
+ <title id="banner-lock-title-default">Lock</title>
94
+ <desc id="banner-lock-description-default">
87
95
  A locked padlock
88
96
  </desc>
89
97
  <path
90
- fill='#000000'
91
- fillRule='evenodd'
92
- d='M26 0c10.493 0 19 8.507 19 19v9h3a4 4 0 0 1 4 4v28a4 4 0 0 1-4 4H4a4 4 0 0 1-4-4V32a4 4 0 0 1 4-4h3v-9C7 8.507 15.507 0 26 0zm0 8c-5.979 0-10.843 4.77-10.996 10.712L15 19v9h22v-9c0-6.075-4.925-11-11-11z'
98
+ fill="#000000"
99
+ fillRule="evenodd"
100
+ d="M26 0c10.493 0 19 8.507 19 19v9h3a4 4 0 0 1 4 4v28a4 4 0 0 1-4 4H4a4 4 0 0 1-4-4V32a4 4 0 0 1 4-4h3v-9C7 8.507 15.507 0 26 0zm0 8c-5.979 0-10.843 4.77-10.996 10.712L15 19v9h22v-9c0-6.075-4.925-11-11-11z"
93
101
  />
94
102
  </svg>
95
103
  </span>
@@ -103,7 +111,7 @@ const GovBanner = () => {
103
111
  </div>
104
112
  </div>
105
113
  </section>
106
- )
107
- }
114
+ );
115
+ };
108
116
 
109
- export default GovBanner
117
+ export default GovBanner;
@@ -40,7 +40,7 @@ const HeaderContainer = ({
40
40
  </a>
41
41
  )}
42
42
  <GovBanner />
43
- {!isIESupportPage && <NotificationBanner />}
43
+ {!isIESupportPage && <NotificationBanner />}
44
44
  <header id="top" className={showCancelButton ? 'show-cancel-button' : ''}>
45
45
  <HeaderLogo />
46
46
  {children}
@@ -77,7 +77,7 @@ const HeaderMenuItem = ({
77
77
  ) {
78
78
  return;
79
79
  }
80
- setOpenMobileSubMenu('')
80
+ setOpenMobileSubMenu('');
81
81
  closeMenus();
82
82
  };
83
83
  document.addEventListener('mousedown', listener);
@@ -85,10 +85,10 @@ const HeaderMenuItem = ({
85
85
  }, [menuRef]);
86
86
 
87
87
  useEffect(() => {
88
- if (!isMobileMenuExpanded || !isOpen){
89
- setOpenMobileSubMenu('')
88
+ if (!isMobileMenuExpanded || !isOpen) {
89
+ setOpenMobileSubMenu('');
90
90
  }
91
- }, [isMobileMenuExpanded, isOpen])
91
+ }, [isMobileMenuExpanded, isOpen]);
92
92
 
93
93
  return (
94
94
  <li
@@ -148,7 +148,11 @@ const HeaderMenuItem = ({
148
148
  <li
149
149
  onClick={handleClick}
150
150
  key={`item-link-${item.name}`}
151
- className={isSubLink ? 'nav-link-li sublink' : 'nav-link-li'}
151
+ className={
152
+ isSubLink
153
+ ? 'nav-link-li sublink'
154
+ : 'nav-link-li'
155
+ }
152
156
  >
153
157
  <SubMenuComponent
154
158
  href={item.href}
@@ -170,7 +174,10 @@ const HeaderMenuItem = ({
170
174
  >
171
175
  <Accordion
172
176
  title={c.heading}
173
- isOpen={isMobileMenuExpanded && openMobileSubMenu === c.heading}
177
+ isOpen={
178
+ isMobileMenuExpanded &&
179
+ openMobileSubMenu === c.heading
180
+ }
174
181
  >
175
182
  <ul>
176
183
  {c.items.map((item) => {
@@ -33,6 +33,12 @@ const HeaderMenuLink = ({ href, name }) => {
33
33
  data-track-category="TopNav"
34
34
  data-track-action="click"
35
35
  data-track-label={name}
36
+ onKeyDown={(e) => {
37
+ if (e.key === ' ' || e.code === 'Space') {
38
+ window.location.href = window.location.origin + href;
39
+ setUtagLink('main navbar', 'keydown', href);
40
+ }
41
+ }}
36
42
  onClick={() => {
37
43
  setUtagLink('main navbar', 'click', href);
38
44
  }}
@@ -72,7 +72,7 @@ const Modal = ({
72
72
  id="modal-body"
73
73
  className="qpp-c-modal__body"
74
74
  ref={contentRef}
75
- tabIndex={overflowSeparator ? "0" : undefined}
75
+ tabIndex={overflowSeparator ? '0' : undefined}
76
76
  >
77
77
  {children}
78
78
  </div>
@@ -0,0 +1,32 @@
1
+ import React, { forwardRef } from 'react';
2
+ import PropTypes from 'prop-types';
3
+ import { BellOutline } from '../../lib/SvgComponents.jsx';
4
+
5
+ const CollapsedView = (
6
+ { expandNotification, label },
7
+ { collapsedWrapperRef, collapsedBannerRef }
8
+ ) => {
9
+ return (
10
+ <div
11
+ ref={collapsedWrapperRef}
12
+ className={`notification-banner-wrapper collapsed-view`}
13
+ onClick={expandNotification}
14
+ >
15
+ <button ref={collapsedBannerRef} className={`notification-banner-label`}>
16
+ {label}
17
+ <span className="bell-icon">
18
+ <svg aria-hidden="true" focusable="false">
19
+ <BellOutline />
20
+ </svg>
21
+ </span>
22
+ </button>
23
+ </div>
24
+ );
25
+ };
26
+
27
+ CollapsedView.propTypes = {
28
+ expandNotification: PropTypes.func,
29
+ label: PropTypes.string,
30
+ };
31
+
32
+ export default forwardRef(CollapsedView);
@@ -0,0 +1,45 @@
1
+ import React from 'react';
2
+ import PropTypes from 'prop-types';
3
+ import SanitizedContent from '../SanitizedContent';
4
+ import { CloseXIcon } from '../../lib/SvgComponents.jsx';
5
+
6
+ const ExpandedView = ({
7
+ label,
8
+ expanded,
9
+ content,
10
+ dismissable,
11
+ collapseNotification,
12
+ }) => {
13
+ return (
14
+ <div className={`notification-banner-wrapper expanded-view`}>
15
+ <div className="notification-banner-label">{label}</div>
16
+ <div className="notification-banner-content">
17
+ <SanitizedContent
18
+ html={expanded ? content : '<p>No notifications to display</p>'}
19
+ />
20
+ </div>
21
+ {expanded && dismissable && (
22
+ <button
23
+ onClick={collapseNotification}
24
+ type="button"
25
+ className="notification-banner-close"
26
+ >
27
+ <svg className="close-icon" aria-hidden="true" focusable="false">
28
+ <CloseXIcon />
29
+ </svg>
30
+ <span className="sr-only">Close</span>
31
+ </button>
32
+ )}
33
+ </div>
34
+ );
35
+ };
36
+
37
+ ExpandedView.propTypes = {
38
+ label: PropTypes.string,
39
+ expanded: PropTypes.bool,
40
+ content: PropTypes.string,
41
+ dismissable: PropTypes.bool,
42
+ collapseNotification: PropTypes.func,
43
+ };
44
+
45
+ export default ExpandedView;
@@ -1,6 +1,6 @@
1
1
  import React from 'react';
2
2
  import NotificationBanner from './index';
3
- import { withKnobs, boolean } from '@storybook/addon-knobs';
3
+ import { withKnobs } from '@storybook/addon-knobs';
4
4
 
5
5
  export default {
6
6
  title: 'NotificationBanner',
@@ -11,11 +11,11 @@ export default {
11
11
  export const ExampleNotificationBanner = () => (
12
12
  <NotificationBanner
13
13
  result={{
14
- content: 'CONTENT',
15
- label: 'Label',
16
- name: 'name',
14
+ display: true,
15
+ dismissable: true,
16
+ content: 'test',
17
+ label: 'Update',
17
18
  color: 'blue',
18
- dismissable: boolean('dismissable', false),
19
19
  }}
20
20
  />
21
21
  );