qpp-style 1.2.0-rm.1 → 1.2.1-bv.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/.editorconfig +1 -1
- package/.eslintrc.js +29 -28
- package/.husky/pre-commit +5 -0
- package/.prettierrc +1 -0
- package/README.md +56 -1
- package/components/Accordion/index.jsx +17 -13
- package/components/Alert/index.js +15 -8
- package/components/Breadcrumb/index.js +8 -8
- package/components/Button/index.js +15 -15
- package/components/Details/DetailsIcons.js +50 -0
- package/components/Details/index.js +53 -0
- package/components/Dropdown/index.js +85 -0
- package/components/DropdownButton/Menu.js +25 -0
- package/components/DropdownButton/MenuButton.js +41 -0
- package/components/DropdownButton/MenuItem.js +25 -0
- package/components/DropdownButton/MenuItemLink.js +27 -0
- package/components/Error/Collapsible.jsx +3 -3
- package/components/Error/ErrorUI.jsx +4 -4
- package/components/Error/error.js +4 -4
- package/components/FlashNotification/FlashNotificationUI.jsx +11 -11
- package/components/FlashNotification/index.js +5 -5
- package/components/Footer/FooterUI.jsx +181 -225
- package/components/Footer/SocialLinks.jsx +1 -1
- package/components/Footer/Subscribe.jsx +1 -1
- package/components/Footer/footer.js +6 -16
- package/components/GovBanner/index.js +117 -0
- package/components/Header/HeaderAccountMenu.jsx +18 -93
- package/components/Header/HeaderCancel.jsx +2 -2
- package/components/Header/HeaderContainer.jsx +53 -26
- package/components/Header/HeaderLogo.jsx +25 -5
- package/components/Header/HeaderMenuButton.js +7 -7
- package/components/Header/HeaderMenuItem.jsx +48 -41
- package/components/Header/HeaderMenuLink.js +13 -7
- package/components/Header/HeaderMenuSignOutButton.js +9 -9
- package/components/Header/HeaderMobileButton.js +4 -4
- package/components/Header/HeaderUI.jsx +84 -73
- package/components/Header/HelpIcon.jsx +1 -1
- package/components/Header/ImpersonatorBanner.jsx +87 -0
- package/components/Header/NavigationButtonIcon.jsx +1 -1
- package/components/Header/header.js +6 -4
- package/components/Header/hooks.js +24 -10
- package/components/Header/utag-helpers.js +1 -1
- package/components/HeaderSearchBar/index.jsx +80 -0
- package/components/Infotip/Infotip.jsx +15 -19
- package/components/Infotip/InfotipContent.jsx +48 -0
- package/components/Infotip/InfotipIcon.jsx +5 -5
- package/components/Infotip/index.js +1 -1
- package/components/Link/index.js +61 -0
- package/components/Modal/LegacyModal.jsx +8 -8
- package/components/Modal/Modal.jsx +9 -9
- package/components/Modal/index.jsx +5 -5
- package/components/NotificationBanner/CollapsedView.js +39 -0
- package/components/NotificationBanner/ExpandedView.js +45 -0
- package/components/NotificationBanner/index.js +133 -177
- package/components/SanitizedContent/index.jsx +189 -166
- package/components/Search/index.js +54 -41
- package/components/Session/Session.jsx +89 -0
- package/components/Session/SessionDialogWrapped.jsx +12 -0
- package/components/Session/index.jsx +3 -0
- package/components/SideNav/AnimationGroup/AnimationGroup.jsx +11 -6
- package/components/SideNav/Content/LevelOneContent.jsx +34 -145
- package/components/SideNav/Content/SelectRole/index.js +70 -0
- package/components/SideNav/Content/SelectRole/utils.js +142 -0
- package/components/SideNav/Content/index.js +2 -3
- package/components/SideNav/Details/IndividualDetails.jsx +2 -2
- package/components/SideNav/Details/PracticeDetails.jsx +13 -3
- package/components/SideNav/Details/index.js +2 -2
- package/components/SideNav/Links/CmsSwitchLink.jsx +4 -4
- package/components/SideNav/Links/NavItemInline.jsx +7 -7
- package/components/SideNav/Links/NavLinkContainer.jsx +2 -2
- package/components/SideNav/Links/NavLinkDrawer.jsx +157 -54
- package/components/SideNav/Links/NavLinkInline.jsx +23 -19
- package/components/SideNav/Links/NavLinkToggle.jsx +7 -7
- package/components/SideNav/Links/index.js +5 -5
- package/components/SideNav/UI/SideNavUI.jsx +123 -122
- package/components/SideNav/UI/default-markup.js +4 -0
- package/components/SideNav/UI/index.js +1 -1
- package/components/SideNav/UI/utils.js +0 -0
- package/components/SideNav/helpers.js +32 -33
- package/components/SideNav/index.js +11 -35
- package/components/Tabs/TabPanel.js +2 -37
- package/components/Tabs/Tabs.js +73 -0
- package/components/TextInput/index.js +21 -21
- package/components/hooks/useGetConfig.js +9 -9
- package/components/index.js +24 -24
- package/dist/browser.js +1 -1
- package/dist/browser.js.LICENSE.txt +1 -7
- package/dist/browser.js.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.LICENSE.txt +1 -7
- package/dist/index.js.map +1 -1
- package/dist/react/index.js +1 -1
- package/dist/react/index.js.LICENSE.txt +16 -16
- package/dist/react/index.js.map +1 -1
- package/fonts/PublicSans-Black.ttf +0 -0
- package/fonts/PublicSans-BlackItalic.ttf +0 -0
- package/fonts/PublicSans-Bold.ttf +0 -0
- package/fonts/PublicSans-BoldItalic.ttf +0 -0
- package/fonts/PublicSans-ExtraBold.ttf +0 -0
- package/fonts/PublicSans-ExtraBoldItalic.ttf +0 -0
- package/fonts/PublicSans-ExtraLight.ttf +0 -0
- package/fonts/PublicSans-ExtraLightItalic.ttf +0 -0
- package/fonts/PublicSans-Italic.ttf +0 -0
- package/fonts/PublicSans-Light.ttf +0 -0
- package/fonts/PublicSans-LightItalic.ttf +0 -0
- package/fonts/PublicSans-Medium.ttf +0 -0
- package/fonts/PublicSans-MediumItalic.ttf +0 -0
- package/fonts/PublicSans-Regular.ttf +0 -0
- package/fonts/PublicSans-SemiBold.ttf +0 -0
- package/fonts/PublicSans-SemiBoldItalic.ttf +0 -0
- package/fonts/PublicSans-Thin.ttf +0 -0
- package/fonts/PublicSans-ThinItalic.ttf +0 -0
- package/images/icon-dot-gov.svg +1 -0
- package/images/icon-https.svg +1 -0
- package/images/icons/svg/arrow-down.svg +2 -2
- package/images/icons/svg/arrow-download.svg +1 -5
- package/images/icons/svg/arrow-right.svg +1 -5
- package/images/icons/svg/arrow-up.svg +3 -0
- package/images/icons/svg/block.svg +5 -0
- package/images/icons/svg/calendar.svg +1 -0
- package/images/icons/svg/check-circle.svg +5 -0
- package/images/icons/svg/checkmark.svg +7 -0
- package/images/icons/svg/chevron-down.svg +11 -0
- package/images/icons/svg/chevron-left.svg +12 -0
- package/images/icons/svg/chevron-right.svg +12 -0
- package/images/icons/svg/chevron-up.svg +12 -0
- package/images/icons/svg/clipboard.svg +1 -0
- package/images/icons/svg/close.svg +1 -3
- package/images/icons/svg/divide.svg +13 -0
- package/images/icons/svg/doctors-and-clinicians-preview.svg +10 -0
- package/images/icons/svg/download.svg +1 -1
- package/images/icons/svg/dropdown-arrow.svg +1 -0
- package/images/icons/svg/equals.svg +13 -0
- package/images/icons/svg/exclamation.svg +10 -0
- package/images/icons/svg/external.svg +1 -4
- package/images/icons/svg/file-download.svg +1 -0
- package/images/icons/svg/file-upload.svg +1 -1
- package/images/icons/svg/info.svg +17 -0
- package/images/icons/svg/manage-user-access.svg +8 -0
- package/images/icons/svg/multiply.svg +12 -0
- package/images/icons/svg/performance-feedback.svg +1 -0
- package/images/icons/svg/plus.svg +12 -0
- package/images/icons/svg/preview.svg +15 -0
- package/images/icons/svg/print.svg +1 -4
- package/images/icons/svg/registration.svg +8 -0
- package/images/icons/svg/reporting.svg +15 -0
- package/images/icons/svg/save-disk.svg +5 -0
- package/images/icons/svg/search.svg +1 -0
- package/images/icons/svg/subtract.svg +15 -0
- package/images/icons/svg/targeted-review.svg +15 -0
- package/images/icons/svg/tooltip-question.svg +1 -0
- package/images/icons/svg/trash.svg +1 -5
- package/images/icons/svg/upload.svg +1 -3
- package/images/us_flag_small.png +0 -0
- package/index.js +2 -2
- package/jest.config.js +132 -132
- package/lib/SvgComponents.jsx +167 -1
- package/package.json +49 -78
- package/session/logout.js +57 -19
- package/session/refresh.js +33 -33
- package/session/ttl.js +18 -34
- package/styles/_main.scss +3 -2
- package/styles/components/_accordion.scss +7 -0
- package/styles/components/_notification-banner.scss +151 -150
- package/styles/components/_text.scss +102 -102
- package/styles/qppds/base/_backgrounds.scss +3 -3
- package/styles/qppds/base/_fonts.scss +29 -5
- package/styles/qppds/base/_icon.scss +31 -0
- package/styles/qppds/base/_layout.scss +2 -2
- package/styles/qppds/base/_typography.scss +71 -51
- package/styles/qppds/base/index.scss +5 -9
- package/styles/qppds/components/_alert.scss +40 -34
- package/styles/qppds/components/_breadcrumbs.scss +52 -18
- package/styles/qppds/components/_button.scss +102 -88
- package/styles/qppds/components/_card.scss +22 -21
- package/styles/qppds/components/_checkbox.scss +201 -0
- package/styles/qppds/components/_circular-loader.scss +47 -0
- package/styles/qppds/components/_details.scss +91 -0
- package/styles/qppds/components/_dropdown-menu.scss +126 -0
- package/styles/qppds/components/_dropdown.scss +22 -17
- package/styles/qppds/components/_footer.scss +18 -9
- package/styles/qppds/components/_gov-banner.scss +342 -0
- package/styles/qppds/components/_header.scss +129 -84
- package/styles/qppds/components/_link.scss +29 -27
- package/styles/qppds/components/_modal.scss +92 -21
- package/styles/qppds/components/_page-header.scss +61 -22
- package/styles/qppds/components/_pagination.scss +230 -0
- package/styles/qppds/components/_process-list.scss +106 -0
- package/styles/qppds/components/_radio-button.scss +185 -0
- package/styles/qppds/components/_search.scss +133 -21
- package/styles/qppds/components/_sidebar.scss +1 -0
- package/styles/qppds/components/_step-indicator.scss +193 -0
- package/styles/qppds/components/_table.scss +62 -42
- package/styles/qppds/components/_tabs.scss +79 -34
- package/styles/qppds/components/_text-input.scss +22 -22
- package/styles/qppds/components/index.scss +22 -12
- package/styles/qppds/components/sidebar/_details.scss +3 -0
- package/styles/qppds/components/sidebar/_links.scss +48 -1
- package/styles/qppds/components/sidebar/_select-role-dropdown.scss +21 -0
- package/styles/qppds/components/sidebar/_sidebar-animation.scss +72 -102
- package/styles/qppds/components/sidebar/_sidebar.scss +5 -1
- package/styles/qppds/settings/_functions.scss +3 -1
- package/styles/qppds/settings/_index.scss +3 -3
- package/styles/qppds/settings/mixins/_borders.scss +2 -2
- package/styles/qppds/settings/mixins/_focus.scss +9 -7
- package/styles/qppds/settings/mixins/_icons.scss +39 -2
- package/styles/qppds/settings/mixins/_index.scss +8 -7
- package/styles/qppds/settings/mixins/_layout.scss +16 -16
- package/styles/qppds/settings/mixins/_table.scss +18 -17
- package/styles/qppds/settings/mixins/_type.scss +90 -0
- package/styles/qppds/settings/variables/_index.scss +4 -3
- package/styles/qppds/settings/variables/_layout.scss +15 -13
- package/styles/qppds/settings/variables/_type.scss +13 -10
- package/styles/qppds/settings/variables/_z-index.scss +8 -0
- package/styles/qppds/utilities/_background-color.scss +34 -34
- package/styles/qppds/utilities/_color.scss +16 -8
- package/styles/qppds/utilities/_display-visibility.scss +5 -4
- package/styles/qppds/utilities/_flexbox.scss +22 -22
- package/styles/qppds/utilities/_font-family.scss +3 -2
- package/styles/qppds/utilities/_font-size.scss +2 -2
- package/styles/qppds/utilities/_font-weight.scss +4 -2
- package/styles/qppds/utilities/_gap.scss +38 -0
- package/styles/qppds/utilities/_height.scss +81 -0
- package/styles/qppds/utilities/_list-style.scss +17 -0
- package/styles/qppds/utilities/_margin.scss +6 -6
- package/styles/qppds/utilities/_padding.scss +6 -6
- package/styles/qppds/utilities/_position.scss +3 -3
- package/styles/qppds/utilities/_text-align.scss +3 -3
- package/styles/qppds/utilities/_text-transform.scss +1 -1
- package/styles/qppds/utilities/_vertical-align.scss +72 -0
- package/styles/qppds/utilities/_width.scss +46 -8
- package/styles/qppds/utilities/index.scss +17 -14
- package/svgo.config.js +14 -0
- package/test/components/FooterUI.test.js +18 -49
- package/test/components/HeaderUI.test.js +5 -15
- package/test/components/Infotip.test.js +41 -37
- package/test/session/session.test.js +67 -68
- package/test-setup.js +0 -8
- package/webpack.config.js +29 -39
- package/webpack.config.react.js +7 -18
- package/.storybook/.babelrc +0 -4
- package/.storybook/main.js +0 -89
- package/.storybook/preview-head.html +0 -9
- package/.storybook/preview.js +0 -5
- package/Session.vim +0 -83
- package/components/Accordion/Accordion.stories.js +0 -20
- package/components/Alert/Alert.stories.js +0 -61
- package/components/Breadcrumb/Breadcrumb.stories.js +0 -58
- package/components/Button/Button.stories.js +0 -121
- package/components/CalloutBox/CalloutBox.stories.js +0 -94
- package/components/CalloutBox/index.js +0 -109
- package/components/Card/Card.stories.js +0 -163
- package/components/Card/index.js +0 -137
- package/components/Footer/Footer.stories.js +0 -20
- package/components/Footer/LegacyFooterUI.jsx +0 -194
- package/components/Header/Header.stories.js +0 -32
- package/components/Infotip/Infotip.stories.js +0 -50
- package/components/Modal/Modal.stories.js +0 -159
- package/components/NotificationBanner/NotificationBanner.stories.js +0 -23
- package/components/Search/Search.stories.js +0 -21
- package/components/SessionDialog/sessionDialog.js +0 -26
- package/components/SessionDialogUI.jsx +0 -261
- package/components/SideNav/Chart/ScoreChart.jsx +0 -268
- package/components/SideNav/Chart/__tests__/ScoreChart.test.js +0 -22
- package/components/SideNav/Chart/__tests__/__snapshots__/ScoreChart.test.js.snap +0 -173
- package/components/SideNav/Chart/index.js +0 -3
- package/components/SideNav/Content/LevelTwoContent.jsx +0 -214
- package/components/SideNav/SideNav.stories.js +0 -349
- package/components/SideNav/UI/default-content.json +0 -77
- package/components/Spinner/index.js +0 -9
- package/components/Tabs/Tab.js +0 -66
- package/components/Tabs/Tabs.stories.js +0 -120
- package/components/Tabs/index.js +0 -135
- package/components/TextInput/TextInput.stories.js +0 -118
- package/components/Tooltip/Tooltip.jsx +0 -88
- package/components/Tooltip/Tooltip.stories.js +0 -80
- package/components/Tooltip/index.js +0 -3
- package/components/Tooltip/position.js +0 -68
- package/components/UnwrappedSpinner/index.js +0 -8
- package/coverage/clover.xml +0 -1218
- package/coverage/coverage-final.json +0 -67
- package/coverage/lcov-report/Accordion/index.html +0 -111
- package/coverage/lcov-report/Accordion/index.jsx.html +0 -389
- package/coverage/lcov-report/Error/Collapsible.jsx.html +0 -344
- package/coverage/lcov-report/Error/ErrorUI.jsx.html +0 -173
- package/coverage/lcov-report/Error/index.html +0 -111
- package/coverage/lcov-report/ErrorUI.jsx.html +0 -173
- package/coverage/lcov-report/HeaderUI.jsx.html +0 -593
- package/coverage/lcov-report/ScoreChart.jsx.html +0 -1025
- package/coverage/lcov-report/SideNav/Chart/ScoreChart.jsx.html +0 -884
- package/coverage/lcov-report/SideNav/Chart/index.html +0 -111
- package/coverage/lcov-report/base.css +0 -224
- package/coverage/lcov-report/block-navigation.js +0 -79
- package/coverage/lcov-report/components/Accordion/index.html +0 -111
- package/coverage/lcov-report/components/Accordion/index.jsx.html +0 -389
- package/coverage/lcov-report/components/Error/Collapsible.jsx.html +0 -344
- package/coverage/lcov-report/components/Error/ErrorUI.jsx.html +0 -179
- package/coverage/lcov-report/components/Error/index.html +0 -126
- package/coverage/lcov-report/components/Footer/FooterUI.jsx.html +0 -710
- package/coverage/lcov-report/components/Footer/LegacyFooterUI.jsx.html +0 -668
- package/coverage/lcov-report/components/Footer/SocialLinks.jsx.html +0 -302
- package/coverage/lcov-report/components/Footer/Subscribe.jsx.html +0 -182
- package/coverage/lcov-report/components/Footer/index.html +0 -156
- package/coverage/lcov-report/components/Header/HeaderAccountMenu.jsx.html +0 -794
- package/coverage/lcov-report/components/Header/HeaderCancel.jsx.html +0 -137
- package/coverage/lcov-report/components/Header/HeaderUI.jsx.html +0 -1142
- package/coverage/lcov-report/components/Header/NavigationButtonIcon.jsx.html +0 -161
- package/coverage/lcov-report/components/Header/index.html +0 -156
- package/coverage/lcov-report/components/InfoModal/index.html +0 -111
- package/coverage/lcov-report/components/InfoModal/index.jsx.html +0 -401
- package/coverage/lcov-report/components/Infotip/Infotip.jsx.html +0 -305
- package/coverage/lcov-report/components/Infotip/InfotipIcon.jsx.html +0 -203
- package/coverage/lcov-report/components/Infotip/index.html +0 -141
- package/coverage/lcov-report/components/Infotip/index.js.html +0 -89
- package/coverage/lcov-report/components/NotificationBanner/NotificationBannerUI.jsx.html +0 -1010
- package/coverage/lcov-report/components/NotificationBanner/index.html +0 -111
- package/coverage/lcov-report/components/SanitizedContent/index.html +0 -111
- package/coverage/lcov-report/components/SanitizedContent/index.jsx.html +0 -260
- package/coverage/lcov-report/components/SessionDialogUI.jsx.html +0 -863
- package/coverage/lcov-report/components/SideNav/AnimationGroup/AnimationGroup.jsx.html +0 -131
- package/coverage/lcov-report/components/SideNav/AnimationGroup/index.html +0 -111
- package/coverage/lcov-report/components/SideNav/Chart/ScoreChart.jsx.html +0 -1025
- package/coverage/lcov-report/components/SideNav/Chart/index.html +0 -126
- package/coverage/lcov-report/components/SideNav/Chart/index.js.html +0 -89
- package/coverage/lcov-report/components/SideNav/Content/LevelOneContent.jsx.html +0 -1007
- package/coverage/lcov-report/components/SideNav/Content/LevelTwoContent.jsx.html +0 -728
- package/coverage/lcov-report/components/SideNav/Content/index.html +0 -141
- package/coverage/lcov-report/components/SideNav/Content/index.js.html +0 -92
- package/coverage/lcov-report/components/SideNav/Details/IndividualDetails.jsx.html +0 -143
- package/coverage/lcov-report/components/SideNav/Details/PracticeDetails.jsx.html +0 -203
- package/coverage/lcov-report/components/SideNav/Details/index.html +0 -141
- package/coverage/lcov-report/components/SideNav/Details/index.js.html +0 -92
- package/coverage/lcov-report/components/SideNav/Links/CmsSwitchLink.jsx.html +0 -200
- package/coverage/lcov-report/components/SideNav/Links/NavItemInline.jsx.html +0 -242
- package/coverage/lcov-report/components/SideNav/Links/NavLinkContainer.jsx.html +0 -200
- package/coverage/lcov-report/components/SideNav/Links/NavLinkDrawer.jsx.html +0 -779
- package/coverage/lcov-report/components/SideNav/Links/NavLinkInline.jsx.html +0 -356
- package/coverage/lcov-report/components/SideNav/Links/NavLinkToggle.jsx.html +0 -179
- package/coverage/lcov-report/components/SideNav/Links/index.html +0 -201
- package/coverage/lcov-report/components/SideNav/Links/index.js.html +0 -119
- package/coverage/lcov-report/components/SideNav/UI/SideNavUI.jsx.html +0 -1298
- package/coverage/lcov-report/components/SideNav/UI/index.html +0 -126
- package/coverage/lcov-report/components/SideNav/UI/index.js.html +0 -89
- package/coverage/lcov-report/components/SideNav/helpers.js.html +0 -197
- package/coverage/lcov-report/components/SideNav/index.html +0 -111
- package/coverage/lcov-report/components/Tooltip/Tooltip.jsx.html +0 -344
- package/coverage/lcov-report/components/Tooltip/index.html +0 -141
- package/coverage/lcov-report/components/Tooltip/index.js.html +0 -89
- package/coverage/lcov-report/components/Tooltip/position.js.html +0 -296
- package/coverage/lcov-report/components/index.html +0 -111
- package/coverage/lcov-report/favicon.png +0 -0
- package/coverage/lcov-report/index.html +0 -426
- package/coverage/lcov-report/lib/index.html +0 -111
- package/coverage/lcov-report/lib/svg-definitions.svg.html +0 -1319
- package/coverage/lcov-report/prettify.css +0 -1
- package/coverage/lcov-report/prettify.js +0 -2
- package/coverage/lcov-report/react/components/Accordion/index.html +0 -111
- package/coverage/lcov-report/react/components/Accordion/index.jsx.html +0 -359
- package/coverage/lcov-report/react/components/Error/Collapsible.jsx.html +0 -344
- package/coverage/lcov-report/react/components/Error/ErrorUI.jsx.html +0 -173
- package/coverage/lcov-report/react/components/Error/error.js.html +0 -158
- package/coverage/lcov-report/react/components/Error/index.html +0 -141
- package/coverage/lcov-report/react/components/FlashNotification/FlashNotificationUI.jsx.html +0 -296
- package/coverage/lcov-report/react/components/FlashNotification/index.html +0 -126
- package/coverage/lcov-report/react/components/FlashNotification/index.js.html +0 -170
- package/coverage/lcov-report/react/components/Footer/FooterUI.jsx.html +0 -845
- package/coverage/lcov-report/react/components/Footer/LegacyFooterUI.jsx.html +0 -662
- package/coverage/lcov-report/react/components/Footer/SocialLinks.jsx.html +0 -260
- package/coverage/lcov-report/react/components/Footer/Subscribe.jsx.html +0 -182
- package/coverage/lcov-report/react/components/Footer/footer.js.html +0 -170
- package/coverage/lcov-report/react/components/Footer/index.html +0 -171
- package/coverage/lcov-report/react/components/Header/HeaderAccountMenu.jsx.html +0 -587
- package/coverage/lcov-report/react/components/Header/HeaderCancel.jsx.html +0 -128
- package/coverage/lcov-report/react/components/Header/HeaderContainer.jsx.html +0 -266
- package/coverage/lcov-report/react/components/Header/HeaderLogo.jsx.html +0 -206
- package/coverage/lcov-report/react/components/Header/HeaderMenuButton.js.html +0 -230
- package/coverage/lcov-report/react/components/Header/HeaderMenuItem.jsx.html +0 -758
- package/coverage/lcov-report/react/components/Header/HeaderMenuLink.js.html +0 -230
- package/coverage/lcov-report/react/components/Header/HeaderMenuSignOutButton.js.html +0 -266
- package/coverage/lcov-report/react/components/Header/HeaderMobileButton.js.html +0 -191
- package/coverage/lcov-report/react/components/Header/HeaderUI.jsx.html +0 -557
- package/coverage/lcov-report/react/components/Header/HelpIcon.jsx.html +0 -170
- package/coverage/lcov-report/react/components/Header/NavigationButtonIcon.jsx.html +0 -161
- package/coverage/lcov-report/react/components/Header/header.js.html +0 -194
- package/coverage/lcov-report/react/components/Header/hooks.js.html +0 -236
- package/coverage/lcov-report/react/components/Header/index.html +0 -321
- package/coverage/lcov-report/react/components/Header/utag-helpers.js.html +0 -110
- package/coverage/lcov-report/react/components/InfoModal/index.html +0 -111
- package/coverage/lcov-report/react/components/InfoModal/index.jsx.html +0 -392
- package/coverage/lcov-report/react/components/Infotip/Infotip.jsx.html +0 -305
- package/coverage/lcov-report/react/components/Infotip/InfotipIcon.jsx.html +0 -203
- package/coverage/lcov-report/react/components/Infotip/index.html +0 -141
- package/coverage/lcov-report/react/components/Infotip/index.js.html +0 -89
- package/coverage/lcov-report/react/components/Modal/LegacyModal.jsx.html +0 -296
- package/coverage/lcov-report/react/components/Modal/Modal.jsx.html +0 -500
- package/coverage/lcov-report/react/components/Modal/index.html +0 -141
- package/coverage/lcov-report/react/components/Modal/index.jsx.html +0 -146
- package/coverage/lcov-report/react/components/NotificationBanner/NotificationBannerUI.jsx.html +0 -926
- package/coverage/lcov-report/react/components/NotificationBanner/index.html +0 -111
- package/coverage/lcov-report/react/components/NotificationBanner/index.js.html +0 -875
- package/coverage/lcov-report/react/components/SanitizedContent/index.html +0 -111
- package/coverage/lcov-report/react/components/SanitizedContent/index.jsx.html +0 -680
- package/coverage/lcov-report/react/components/SessionDialog/index.html +0 -111
- package/coverage/lcov-report/react/components/SessionDialog/sessionDialog.js.html +0 -158
- package/coverage/lcov-report/react/components/SessionDialogUI.jsx.html +0 -863
- package/coverage/lcov-report/react/components/SideNav/AnimationGroup/AnimationGroup.jsx.html +0 -140
- package/coverage/lcov-report/react/components/SideNav/AnimationGroup/index.html +0 -111
- package/coverage/lcov-report/react/components/SideNav/Chart/ScoreChart.jsx.html +0 -884
- package/coverage/lcov-report/react/components/SideNav/Chart/index.html +0 -126
- package/coverage/lcov-report/react/components/SideNav/Chart/index.js.html +0 -89
- package/coverage/lcov-report/react/components/SideNav/Content/LevelOneContent.jsx.html +0 -1007
- package/coverage/lcov-report/react/components/SideNav/Content/LevelTwoContent.jsx.html +0 -722
- package/coverage/lcov-report/react/components/SideNav/Content/index.html +0 -141
- package/coverage/lcov-report/react/components/SideNav/Content/index.js.html +0 -92
- package/coverage/lcov-report/react/components/SideNav/Details/IndividualDetails.jsx.html +0 -134
- package/coverage/lcov-report/react/components/SideNav/Details/PracticeDetails.jsx.html +0 -203
- package/coverage/lcov-report/react/components/SideNav/Details/index.html +0 -141
- package/coverage/lcov-report/react/components/SideNav/Details/index.js.html +0 -92
- package/coverage/lcov-report/react/components/SideNav/Links/CmsSwitchLink.jsx.html +0 -203
- package/coverage/lcov-report/react/components/SideNav/Links/NavItemInline.jsx.html +0 -242
- package/coverage/lcov-report/react/components/SideNav/Links/NavLinkContainer.jsx.html +0 -209
- package/coverage/lcov-report/react/components/SideNav/Links/NavLinkDrawer.jsx.html +0 -659
- package/coverage/lcov-report/react/components/SideNav/Links/NavLinkInline.jsx.html +0 -401
- package/coverage/lcov-report/react/components/SideNav/Links/NavLinkToggle.jsx.html +0 -182
- package/coverage/lcov-report/react/components/SideNav/Links/index.html +0 -201
- package/coverage/lcov-report/react/components/SideNav/Links/index.js.html +0 -119
- package/coverage/lcov-report/react/components/SideNav/UI/SideNavUI.jsx.html +0 -1103
- package/coverage/lcov-report/react/components/SideNav/UI/index.html +0 -126
- package/coverage/lcov-report/react/components/SideNav/UI/index.js.html +0 -89
- package/coverage/lcov-report/react/components/SideNav/helpers.js.html +0 -221
- package/coverage/lcov-report/react/components/SideNav/index.html +0 -126
- package/coverage/lcov-report/react/components/SideNav/index.js.html +0 -239
- package/coverage/lcov-report/react/components/Spinner/index.html +0 -111
- package/coverage/lcov-report/react/components/Spinner/index.js.html +0 -107
- package/coverage/lcov-report/react/components/Tabs/TabsUI.jsx.html +0 -443
- package/coverage/lcov-report/react/components/Tabs/index.html +0 -126
- package/coverage/lcov-report/react/components/Tabs/tabs.js.html +0 -188
- package/coverage/lcov-report/react/components/Tooltip/Tooltip.jsx.html +0 -344
- package/coverage/lcov-report/react/components/Tooltip/index.html +0 -141
- package/coverage/lcov-report/react/components/Tooltip/index.js.html +0 -89
- package/coverage/lcov-report/react/components/Tooltip/position.js.html +0 -284
- package/coverage/lcov-report/react/components/hooks/index.html +0 -111
- package/coverage/lcov-report/react/components/hooks/useGetConfig.js.html +0 -302
- package/coverage/lcov-report/react/components/index.html +0 -111
- package/coverage/lcov-report/react/index.html +0 -111
- package/coverage/lcov-report/react/index.js.html +0 -173
- package/coverage/lcov-report/react/lib/Chevron.jsx.html +0 -161
- package/coverage/lcov-report/react/lib/SvgComponents.jsx.html +0 -1697
- package/coverage/lcov-report/react/lib/index.html +0 -141
- package/coverage/lcov-report/react/lib/svg-definitions.svg.html +0 -455
- package/coverage/lcov-report/react/session/index.html +0 -156
- package/coverage/lcov-report/react/session/index.js.html +0 -95
- package/coverage/lcov-report/react/session/logout.js.html +0 -203
- package/coverage/lcov-report/react/session/refresh.js.html +0 -227
- package/coverage/lcov-report/react/session/ttl.js.html +0 -191
- package/coverage/lcov-report/session/index.html +0 -126
- package/coverage/lcov-report/session/index.js.html +0 -95
- package/coverage/lcov-report/session/logout.js.html +0 -203
- package/coverage/lcov-report/session/refresh.js.html +0 -227
- package/coverage/lcov-report/session/ttl.js.html +0 -191
- package/coverage/lcov-report/sort-arrow-sprite.png +0 -0
- package/coverage/lcov-report/sorter.js +0 -170
- package/coverage/lcov.info +0 -2704
- package/styles/components/_footer.scss +0 -593
- package/styles/components/_header.scss +0 -887
- package/styles/components/_header_backup.scss +0 -574
- package/styles/components/_sidebar.scss +0 -8
- package/styles/components/sidebar/_animations.scss +0 -38
- package/styles/components/sidebar/_cms.scss +0 -61
- package/styles/components/sidebar/_details.scss +0 -58
- package/styles/components/sidebar/_links.scss +0 -415
- package/styles/components/sidebar/_sidebar-animation.scss +0 -121
- package/styles/components/sidebar/_sidebar-tooltip.scss +0 -33
- package/styles/components/sidebar/_sidebar.scss +0 -141
- package/styles/components/sidebar/project-specific/_wi.scss +0 -42
- package/styles/qppds/utilities/_display-visability.scss +0 -83
- package/styles/qppds/utilities/_truncate.scss +0 -8
- package/test/components/SessionDialogUI.test.js +0 -339
- package/test/components/Tooltip.test.js +0 -147
package/.editorconfig
CHANGED
package/.eslintrc.js
CHANGED
|
@@ -1,31 +1,32 @@
|
|
|
1
1
|
module.exports = {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
}
|
|
2
|
+
extends: ["eslint:recommended", "plugin:react/recommended"],
|
|
3
|
+
parser: "@babel/eslint-parser",
|
|
4
|
+
parserOptions: {
|
|
5
|
+
sourceType: "module",
|
|
6
|
+
ecmaFeatures: {
|
|
7
|
+
jsx: true,
|
|
9
8
|
},
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
9
|
+
},
|
|
10
|
+
env: {
|
|
11
|
+
es6: true,
|
|
12
|
+
node: true,
|
|
13
|
+
browser: true,
|
|
14
|
+
jquery: true,
|
|
15
|
+
mocha: true,
|
|
16
|
+
},
|
|
17
|
+
rules: {
|
|
18
|
+
"no-unused-vars": [
|
|
19
|
+
"error",
|
|
20
|
+
{
|
|
21
|
+
args: "none",
|
|
22
|
+
},
|
|
23
|
+
],
|
|
24
|
+
"linebreak-style": ["error", "unix"],
|
|
25
|
+
"no-console": 0,
|
|
26
|
+
"no-prototype-builtins": [0],
|
|
27
|
+
"react/no-deprecated": [0],
|
|
28
|
+
},
|
|
29
|
+
settings: {
|
|
30
|
+
react: { version: "detect" },
|
|
31
|
+
},
|
|
31
32
|
};
|
package/.prettierrc
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{}
|
package/README.md
CHANGED
|
@@ -2,4 +2,59 @@
|
|
|
2
2
|
|
|
3
3
|
This directory contains react implementations of the components for QPP.
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
## Github Branch and Pull Request process
|
|
6
|
+
|
|
7
|
+
1. Create branch off main and create a Pull Request into main for the feature.
|
|
8
|
+
> Example Branch Name: feature/QPPXX-XXXX_make_icon_better
|
|
9
|
+
2. Once merged into main, create release branch from main.
|
|
10
|
+
3. Name the new branch release/x.xx.x
|
|
11
|
+
4. Run the version bump:
|
|
12
|
+
|
|
13
|
+
```bash
|
|
14
|
+
cd qpp-style/react
|
|
15
|
+
npm version --no-git-tag-version patch
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
Example Commit Message:
|
|
19
|
+
|
|
20
|
+
> x.xx.x release
|
|
21
|
+
|
|
22
|
+
5. Create a pull request against main with the PR Title: x.xx.x release [Example PR](https://github.com/CMSgov/qpp-style/pull/1065)
|
|
23
|
+
6. Enter the change in the description of the pull request i.e.:
|
|
24
|
+
> Added new svg for Icon Name
|
|
25
|
+
|
|
26
|
+
## Generate an NPM token with Publish permissions
|
|
27
|
+
|
|
28
|
+
1. If you do not already have an access token, sign in to npmjs.com and navigate to access tokens.
|
|
29
|
+
2. Click generate new token.
|
|
30
|
+
3. Select publish under type.
|
|
31
|
+
4. Copy the npm token and set its value as the environment variable: NPM_TOKEN
|
|
32
|
+
|
|
33
|
+
```bash
|
|
34
|
+
export NPM_TOKEN={npm_token}
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
## Publish the react qpp-style npm package (used by both react and angular)
|
|
38
|
+
|
|
39
|
+
```bash
|
|
40
|
+
cd qpp-style/react
|
|
41
|
+
npm i
|
|
42
|
+
npm publish
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
7. Once published successfully, merge into main.
|
|
46
|
+
|
|
47
|
+
The Side Nav contains multiple item array types: divider, container, linkBack, linkHome, practiceDetails, individualDetails, linkDrawer, custom, chart, and switchLink.
|
|
48
|
+
|
|
49
|
+
| Item Array Type | Description |
|
|
50
|
+
|-------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
|
|
51
|
+
| divider | <hr> element that is located above and below the practice container. |
|
|
52
|
+
| container | gets Dynamic Content of multiple items and contains the linkDrawer item. Level One and Level Two content are located in this container. |
|
|
53
|
+
| linkBack | <button> that links the user back to a URL. This uses a chevron Left icon. |
|
|
54
|
+
| linkHome | <a> tag element which sends the user back to the “Account Home” page /user/submissions. This uses the home icon SVG and is located at the top of the side nav. |
|
|
55
|
+
| practiceDetails | <div> element with the class name practice-container. Inside this container is the <h2> element which includes the Practice Name and the <p> element which is the Practice Tin. The Practice Tin shows either the CPC+ ID, PCF ID, APM Entity ID, VG ID, or Practice Tin. |
|
|
56
|
+
| individualDetails | <div> element with the class name “individual-container”. This parent element contains two other elements which are the <h3> Individual Name and the <p> Individual NPI. |
|
|
57
|
+
| linkDrawer | This is the most complex item type. This item displays the Level One and Level Two <button> elements which contain navigation links depending on each page as well as specific SVG icons. Depending on the page there can be multiple links to the user can access quickly using the side nav. |
|
|
58
|
+
| custom | This option is for sanitized HTML content. This custom HTML will be cleaned of any potentially harmful elements that could compromise the security of the web app. |
|
|
59
|
+
| chart | This option uses the ScoreChart component to display Chart Data on the Side Nav. This data includes categories from Quality Measures, Advancing Care Info, Promoting Interoperability, Improvement Activities, and Cost. |
|
|
60
|
+
| switchLink | This is an implementation of the “Switch Practice” button for the Side Nav. Clicking 'Switch Practice' will take the user back to the TIN list for the part of the application they are viewing. |
|
|
@@ -1,30 +1,30 @@
|
|
|
1
|
-
import React, { useState, useRef, useEffect } from
|
|
2
|
-
import PropTypes from
|
|
3
|
-
import { Chevron } from
|
|
1
|
+
import React, { useState, useRef, useEffect } from "react";
|
|
2
|
+
import PropTypes from "prop-types";
|
|
3
|
+
import { Chevron } from "../../lib/Chevron.jsx";
|
|
4
4
|
|
|
5
5
|
const Accordion = (props) => {
|
|
6
6
|
const content = useRef(null);
|
|
7
|
-
const [setActive, setActiveState] = useState(props.isOpen ?
|
|
8
|
-
const ariaPressed = setActive ?
|
|
7
|
+
const [setActive, setActiveState] = useState(props.isOpen ? "active" : "");
|
|
8
|
+
const ariaPressed = setActive ? "true" : "false";
|
|
9
9
|
const getHeight = (node) => {
|
|
10
10
|
if (node) {
|
|
11
11
|
return `${node.scrollHeight}px`;
|
|
12
12
|
}
|
|
13
|
-
return
|
|
13
|
+
return "auto";
|
|
14
14
|
};
|
|
15
|
-
const height = setActive ? getHeight(content.current) :
|
|
16
|
-
const rotate = setActive ?
|
|
15
|
+
const height = setActive ? getHeight(content.current) : "0px";
|
|
16
|
+
const rotate = setActive ? "accordion-icon rotate" : "accordion-icon";
|
|
17
17
|
|
|
18
18
|
function toggleAccordion() {
|
|
19
|
-
setActiveState(setActive ===
|
|
19
|
+
setActiveState(setActive === "" ? "active" : "");
|
|
20
20
|
}
|
|
21
21
|
|
|
22
22
|
function openAccordion() {
|
|
23
|
-
setActiveState(
|
|
23
|
+
setActiveState("active");
|
|
24
24
|
}
|
|
25
25
|
|
|
26
26
|
function closeAccordion() {
|
|
27
|
-
setActiveState(
|
|
27
|
+
setActiveState("");
|
|
28
28
|
}
|
|
29
29
|
|
|
30
30
|
useEffect(() => {
|
|
@@ -38,7 +38,9 @@ const Accordion = (props) => {
|
|
|
38
38
|
return (
|
|
39
39
|
<div className="accordion-section" data-testid="accordion">
|
|
40
40
|
<button
|
|
41
|
-
className={`accordion ${setActive}
|
|
41
|
+
className={`accordion ${setActive} ${
|
|
42
|
+
setActive && props.isSticky ? "sticky" : ""
|
|
43
|
+
}`}
|
|
42
44
|
aria-label={props.title}
|
|
43
45
|
aria-pressed={ariaPressed}
|
|
44
46
|
aria-expanded={ariaPressed}
|
|
@@ -83,11 +85,13 @@ Accordion.propTypes = {
|
|
|
83
85
|
centerItem: PropTypes.string,
|
|
84
86
|
rightItem: PropTypes.string,
|
|
85
87
|
isOpen: PropTypes.bool,
|
|
88
|
+
isSticky: PropTypes.bool,
|
|
86
89
|
};
|
|
87
90
|
|
|
88
91
|
Accordion.defaultProps = {
|
|
89
|
-
title:
|
|
92
|
+
title: "",
|
|
90
93
|
isOpen: false,
|
|
94
|
+
isSticky: false,
|
|
91
95
|
};
|
|
92
96
|
|
|
93
97
|
export default Accordion;
|
|
@@ -1,8 +1,15 @@
|
|
|
1
|
-
import React from
|
|
2
|
-
import PropTypes from
|
|
1
|
+
import React from "react";
|
|
2
|
+
import PropTypes from "prop-types";
|
|
3
3
|
|
|
4
|
-
const Alert = ({
|
|
5
|
-
|
|
4
|
+
const Alert = ({
|
|
5
|
+
title,
|
|
6
|
+
children,
|
|
7
|
+
description,
|
|
8
|
+
variant,
|
|
9
|
+
className,
|
|
10
|
+
...rest
|
|
11
|
+
}) => {
|
|
12
|
+
const HeadingComponent = title?.headingLevel || "h2";
|
|
6
13
|
return (
|
|
7
14
|
<div
|
|
8
15
|
className={`qpp-c-alert qpp-c-alert--${variant} ${className}`}
|
|
@@ -12,7 +19,7 @@ const Alert = ({ title, children, description, variant, className, ...rest }) =>
|
|
|
12
19
|
<div className="qpp-c-alert__body">
|
|
13
20
|
{title && (
|
|
14
21
|
<HeadingComponent className="h4 qpp-c-alert__heading">
|
|
15
|
-
{typeof title ===
|
|
22
|
+
{typeof title === "object" ? title.text : title}
|
|
16
23
|
</HeadingComponent>
|
|
17
24
|
)}
|
|
18
25
|
{description && <p className="qpp-c-alert__text">{description}</p>}
|
|
@@ -33,14 +40,14 @@ Alert.propTypes = {
|
|
|
33
40
|
headingLevel: PropTypes.string,
|
|
34
41
|
}),
|
|
35
42
|
]),
|
|
36
|
-
variant: PropTypes.oneOf([
|
|
43
|
+
variant: PropTypes.oneOf(["info", "warning", "success", "error"]),
|
|
37
44
|
};
|
|
38
45
|
Alert.defaultProps = {
|
|
39
46
|
children: null,
|
|
40
|
-
className:
|
|
47
|
+
className: "",
|
|
41
48
|
description: null,
|
|
42
49
|
title: null,
|
|
43
|
-
variant:
|
|
50
|
+
variant: "info",
|
|
44
51
|
};
|
|
45
52
|
|
|
46
53
|
export default Alert;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import React from
|
|
2
|
-
import PropTypes from
|
|
1
|
+
import React from "react";
|
|
2
|
+
import PropTypes from "prop-types";
|
|
3
3
|
|
|
4
4
|
const Breadcrumb = ({
|
|
5
5
|
breadcrumbClass,
|
|
@@ -11,7 +11,7 @@ const Breadcrumb = ({
|
|
|
11
11
|
return (
|
|
12
12
|
<nav
|
|
13
13
|
className={`qpp-c-breadcrumbs ${
|
|
14
|
-
!dark ?
|
|
14
|
+
!dark ? "qpp-c-breadcrumbs--light" : ""
|
|
15
15
|
} ${breadcrumbClass}`}
|
|
16
16
|
aria-label="Breadcrumbs"
|
|
17
17
|
>
|
|
@@ -50,12 +50,12 @@ const Breadcrumb = ({
|
|
|
50
50
|
return (
|
|
51
51
|
<li
|
|
52
52
|
key={crumb}
|
|
53
|
-
className=
|
|
53
|
+
className={`${
|
|
54
|
+
i === crumbs.length - 1 ? "sr-only" : ""
|
|
55
|
+
} qpp-c-breadcrumbs__list-itemqpp-c-breadcrumbs__list-item--current`}
|
|
54
56
|
aria-current="page"
|
|
55
57
|
>
|
|
56
|
-
<span
|
|
57
|
-
{crumb}
|
|
58
|
-
</span>
|
|
58
|
+
<span>{crumb}</span>
|
|
59
59
|
</li>
|
|
60
60
|
);
|
|
61
61
|
}
|
|
@@ -74,7 +74,7 @@ Breadcrumb.propTypes = {
|
|
|
74
74
|
};
|
|
75
75
|
|
|
76
76
|
Breadcrumb.defaultProps = {
|
|
77
|
-
breadcrumbClass:
|
|
77
|
+
breadcrumbClass: "",
|
|
78
78
|
dark: false,
|
|
79
79
|
RouterLink: null,
|
|
80
80
|
routerExcludedLinks: [],
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import React from
|
|
2
|
-
import PropTypes from
|
|
1
|
+
import React from "react";
|
|
2
|
+
import PropTypes from "prop-types";
|
|
3
3
|
|
|
4
|
-
const VARIANTS = [
|
|
5
|
-
const SIZES = [
|
|
4
|
+
const VARIANTS = ["secondary", "outline", "danger", "white"];
|
|
5
|
+
const SIZES = ["big"];
|
|
6
6
|
|
|
7
7
|
const Button = ({
|
|
8
8
|
children,
|
|
@@ -15,16 +15,16 @@ const Button = ({
|
|
|
15
15
|
type,
|
|
16
16
|
...rest
|
|
17
17
|
}) => {
|
|
18
|
-
let btnClass =
|
|
18
|
+
let btnClass = "qpp-c-button";
|
|
19
19
|
|
|
20
20
|
if (VARIANTS.includes(variant)) {
|
|
21
|
-
btnClass = btnClass.concat(
|
|
21
|
+
btnClass = btnClass.concat(" ", `qpp-c-button--${variant}`);
|
|
22
22
|
}
|
|
23
23
|
if (SIZES.includes(size)) {
|
|
24
|
-
btnClass = btnClass.concat(
|
|
24
|
+
btnClass = btnClass.concat(" ", `qpp-c-button--${size}`);
|
|
25
25
|
}
|
|
26
26
|
if (className) {
|
|
27
|
-
btnClass = btnClass.concat(
|
|
27
|
+
btnClass = btnClass.concat(" ", className);
|
|
28
28
|
}
|
|
29
29
|
|
|
30
30
|
if (href) {
|
|
@@ -32,7 +32,7 @@ const Button = ({
|
|
|
32
32
|
<a
|
|
33
33
|
href={href}
|
|
34
34
|
data-testid="ds-btn"
|
|
35
|
-
className={btnClass ||
|
|
35
|
+
className={btnClass || ""}
|
|
36
36
|
onClick={onClick}
|
|
37
37
|
>
|
|
38
38
|
{children}
|
|
@@ -42,7 +42,7 @@ const Button = ({
|
|
|
42
42
|
return (
|
|
43
43
|
<button
|
|
44
44
|
data-testid="ds-btn"
|
|
45
|
-
className={btnClass ||
|
|
45
|
+
className={btnClass || ""}
|
|
46
46
|
onClick={onClick}
|
|
47
47
|
disabled={loading}
|
|
48
48
|
type={type}
|
|
@@ -66,16 +66,16 @@ Button.propTypes = {
|
|
|
66
66
|
|
|
67
67
|
Button.defaultProps = {
|
|
68
68
|
children: false,
|
|
69
|
-
className:
|
|
70
|
-
href:
|
|
69
|
+
className: "",
|
|
70
|
+
href: "",
|
|
71
71
|
loading: false,
|
|
72
72
|
onClick: () => null,
|
|
73
73
|
size: null,
|
|
74
|
-
type:
|
|
74
|
+
type: "button",
|
|
75
75
|
variant: null,
|
|
76
76
|
};
|
|
77
77
|
|
|
78
|
-
export const TextButton = ({ className =
|
|
78
|
+
export const TextButton = ({ className = "", ...props }) => (
|
|
79
79
|
<Button className={`qpp-c-button--text ${className}`} {...props} />
|
|
80
80
|
);
|
|
81
81
|
|
|
@@ -84,7 +84,7 @@ TextButton.propTypes = {
|
|
|
84
84
|
};
|
|
85
85
|
|
|
86
86
|
TextButton.defaultProps = {
|
|
87
|
-
className:
|
|
87
|
+
className: "",
|
|
88
88
|
};
|
|
89
89
|
|
|
90
90
|
export default Button;
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import PropTypes from "prop-types";
|
|
3
|
+
|
|
4
|
+
export const Add = ({ iconText }) => (
|
|
5
|
+
<>
|
|
6
|
+
<svg
|
|
7
|
+
className="qpp-c-details--icon-closed qpp-icon-mat qpp-icon-inline--md"
|
|
8
|
+
aria-hidden="true"
|
|
9
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
10
|
+
viewBox="0 0 24 24"
|
|
11
|
+
role="img"
|
|
12
|
+
focusable="false"
|
|
13
|
+
>
|
|
14
|
+
<path d="M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z" />
|
|
15
|
+
</svg>{" "}
|
|
16
|
+
{iconText}
|
|
17
|
+
</>
|
|
18
|
+
);
|
|
19
|
+
|
|
20
|
+
Add.propTypes = {
|
|
21
|
+
iconText: PropTypes.string,
|
|
22
|
+
};
|
|
23
|
+
|
|
24
|
+
Add.defaultProps = {
|
|
25
|
+
iconText: null,
|
|
26
|
+
};
|
|
27
|
+
|
|
28
|
+
export const Remove = ({ iconText }) => (
|
|
29
|
+
<>
|
|
30
|
+
<svg
|
|
31
|
+
className="qpp-c-details--icon-open qpp-icon-mat qpp-icon-inline--md"
|
|
32
|
+
aria-hidden="true"
|
|
33
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
34
|
+
viewBox="0 0 24 24"
|
|
35
|
+
role="img"
|
|
36
|
+
focusable="false"
|
|
37
|
+
>
|
|
38
|
+
<path d="M19 13H5v-2h14v2z" />
|
|
39
|
+
</svg>
|
|
40
|
+
{iconText}
|
|
41
|
+
</>
|
|
42
|
+
);
|
|
43
|
+
|
|
44
|
+
Remove.propTypes = {
|
|
45
|
+
iconText: PropTypes.string,
|
|
46
|
+
};
|
|
47
|
+
|
|
48
|
+
Remove.defaultProps = {
|
|
49
|
+
iconText: null,
|
|
50
|
+
};
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import PropTypes from "prop-types";
|
|
3
|
+
import { Add, Remove } from "./DetailsIcons";
|
|
4
|
+
|
|
5
|
+
const Details = ({ children, title, variant, className, ...rest }) => {
|
|
6
|
+
if (variant === "header") {
|
|
7
|
+
return (
|
|
8
|
+
<details className="qpp-c-details qpp-c-details--header">
|
|
9
|
+
<summary>
|
|
10
|
+
{title}
|
|
11
|
+
<span className="qpp-c-details--icon-closed" aria-hidden="true">
|
|
12
|
+
<Add iconText="View" />
|
|
13
|
+
</span>
|
|
14
|
+
<span className="qpp-c-details--icon-open" aria-hidden="true">
|
|
15
|
+
<Remove iconText="Hide" />
|
|
16
|
+
</span>
|
|
17
|
+
</summary>
|
|
18
|
+
{children}
|
|
19
|
+
</details>
|
|
20
|
+
);
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
return (
|
|
24
|
+
<details className={`qpp-c-details ${className}`} {...rest}>
|
|
25
|
+
<summary
|
|
26
|
+
className={
|
|
27
|
+
variant === "text-button" ? "qpp-c-button qpp-c-button--text" : ""
|
|
28
|
+
}
|
|
29
|
+
>
|
|
30
|
+
<Add />
|
|
31
|
+
<Remove />
|
|
32
|
+
{title}
|
|
33
|
+
</summary>
|
|
34
|
+
{children}
|
|
35
|
+
</details>
|
|
36
|
+
);
|
|
37
|
+
};
|
|
38
|
+
|
|
39
|
+
Details.propTypes = {
|
|
40
|
+
children: PropTypes.node,
|
|
41
|
+
title: PropTypes.node,
|
|
42
|
+
variant: PropTypes.oneOf(["header", "text-button"]),
|
|
43
|
+
className: PropTypes.string,
|
|
44
|
+
};
|
|
45
|
+
|
|
46
|
+
Details.defaultProps = {
|
|
47
|
+
children: false,
|
|
48
|
+
title: null,
|
|
49
|
+
variant: null,
|
|
50
|
+
className: "",
|
|
51
|
+
};
|
|
52
|
+
|
|
53
|
+
export default Details;
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import PropTypes from "prop-types";
|
|
3
|
+
|
|
4
|
+
const Dropdown = ({
|
|
5
|
+
className,
|
|
6
|
+
id,
|
|
7
|
+
ariaLabelledBy,
|
|
8
|
+
ariaLabel,
|
|
9
|
+
onChange,
|
|
10
|
+
dataTestId,
|
|
11
|
+
name,
|
|
12
|
+
dataType,
|
|
13
|
+
disabled,
|
|
14
|
+
size,
|
|
15
|
+
options,
|
|
16
|
+
children,
|
|
17
|
+
parentElement,
|
|
18
|
+
...rest
|
|
19
|
+
}) => {
|
|
20
|
+
const dropdownClass = [
|
|
21
|
+
"qpp-c-dropdown",
|
|
22
|
+
size === "big" && "qpp-c-dropdown--big",
|
|
23
|
+
className,
|
|
24
|
+
]
|
|
25
|
+
.filter(Boolean)
|
|
26
|
+
.join(" ");
|
|
27
|
+
|
|
28
|
+
return (
|
|
29
|
+
<select
|
|
30
|
+
id={id}
|
|
31
|
+
aria-labelledby={ariaLabelledBy}
|
|
32
|
+
aria-label={ariaLabel}
|
|
33
|
+
className={dropdownClass || ""}
|
|
34
|
+
onChange={onChange}
|
|
35
|
+
data-testid={dataTestId}
|
|
36
|
+
name={name}
|
|
37
|
+
disabled={disabled}
|
|
38
|
+
data-type={dataType}
|
|
39
|
+
{...rest}
|
|
40
|
+
>
|
|
41
|
+
{children}
|
|
42
|
+
{options.map(({ disabled, name, value }) => (
|
|
43
|
+
<option disabled={disabled} key={value} value={value}>
|
|
44
|
+
{name}
|
|
45
|
+
</option>
|
|
46
|
+
))}
|
|
47
|
+
</select>
|
|
48
|
+
);
|
|
49
|
+
};
|
|
50
|
+
|
|
51
|
+
Dropdown.propTypes = {
|
|
52
|
+
children: PropTypes.node,
|
|
53
|
+
className: PropTypes.string,
|
|
54
|
+
id: PropTypes.string,
|
|
55
|
+
ariaLabelledBy: PropTypes.string,
|
|
56
|
+
ariaLabel: PropTypes.string,
|
|
57
|
+
onChange: PropTypes.func,
|
|
58
|
+
value: PropTypes.string,
|
|
59
|
+
defaultValue: PropTypes.string,
|
|
60
|
+
dataTestId: PropTypes.string,
|
|
61
|
+
name: PropTypes.string,
|
|
62
|
+
dataType: PropTypes.string,
|
|
63
|
+
disabled: PropTypes.bool,
|
|
64
|
+
size: PropTypes.oneOf(["big"]),
|
|
65
|
+
options: PropTypes.array,
|
|
66
|
+
parentElement: PropTypes.string,
|
|
67
|
+
};
|
|
68
|
+
|
|
69
|
+
Dropdown.defaultProps = {
|
|
70
|
+
children: false,
|
|
71
|
+
className: "qpp-u-width--100",
|
|
72
|
+
id: null,
|
|
73
|
+
ariaLabelledBy: null,
|
|
74
|
+
ariaLabel: null,
|
|
75
|
+
onChange: () => null,
|
|
76
|
+
dataTestId: null,
|
|
77
|
+
name: null,
|
|
78
|
+
dataType: null,
|
|
79
|
+
disabled: false,
|
|
80
|
+
size: null,
|
|
81
|
+
options: [],
|
|
82
|
+
parentElement: "span",
|
|
83
|
+
};
|
|
84
|
+
|
|
85
|
+
export default Dropdown;
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import PropTypes from "prop-types";
|
|
3
|
+
import { Menu as AriaKitMenu } from "ariakit/menu";
|
|
4
|
+
|
|
5
|
+
function Menu({ state, className, children, ...props }) {
|
|
6
|
+
return (
|
|
7
|
+
<AriaKitMenu as="ul" state={state} className={className} {...props}>
|
|
8
|
+
{children}
|
|
9
|
+
</AriaKitMenu>
|
|
10
|
+
);
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
Menu.propTypes = {
|
|
14
|
+
state: PropTypes.object.isRequired,
|
|
15
|
+
className: PropTypes.string,
|
|
16
|
+
children: PropTypes.node,
|
|
17
|
+
};
|
|
18
|
+
|
|
19
|
+
Menu.defaultProps = {
|
|
20
|
+
className:
|
|
21
|
+
"qpp-c-dropdown-menu qpp-c-dropdown-menu__box qpp-c-dropdown-menu__list",
|
|
22
|
+
children: null,
|
|
23
|
+
};
|
|
24
|
+
|
|
25
|
+
export default Menu;
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import PropTypes from "prop-types";
|
|
3
|
+
import { MenuButton as AriaKitButton } from "ariakit/menu";
|
|
4
|
+
|
|
5
|
+
function MenuButton({ state, className, iconExist, children, ...props }) {
|
|
6
|
+
const dropDownIsOpen = state.open;
|
|
7
|
+
|
|
8
|
+
const CheveronUpIcon = "M12 8l-6 6 1.41 1.41L12 10.83l4.59 4.58L18 14z";
|
|
9
|
+
const CheveronDownIcon = "M16.59 8.59L12 13.17 7.41 8.59 6 10l6 6 6-6z";
|
|
10
|
+
|
|
11
|
+
return (
|
|
12
|
+
<AriaKitButton state={state} className={className} {...props}>
|
|
13
|
+
{children}{" "}
|
|
14
|
+
{iconExist && (
|
|
15
|
+
<svg
|
|
16
|
+
className="qpp-icon-mat qpp-icon-inline--lg"
|
|
17
|
+
focusable="false"
|
|
18
|
+
viewBox="0 0 24 24"
|
|
19
|
+
aria-hidden="true"
|
|
20
|
+
>
|
|
21
|
+
<path d={dropDownIsOpen ? CheveronUpIcon : CheveronDownIcon} />
|
|
22
|
+
</svg>
|
|
23
|
+
)}
|
|
24
|
+
</AriaKitButton>
|
|
25
|
+
);
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
MenuButton.propTypes = {
|
|
29
|
+
state: PropTypes.object.isRequired,
|
|
30
|
+
className: PropTypes.string,
|
|
31
|
+
iconExist: PropTypes.bool,
|
|
32
|
+
children: PropTypes.node,
|
|
33
|
+
};
|
|
34
|
+
|
|
35
|
+
MenuButton.defaultProps = {
|
|
36
|
+
className: "qpp-c-button",
|
|
37
|
+
iconExist: true,
|
|
38
|
+
children: null,
|
|
39
|
+
};
|
|
40
|
+
|
|
41
|
+
export default MenuButton;
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import PropTypes from "prop-types";
|
|
3
|
+
import { MenuItem as AriaKitMenuItem } from "ariakit/menu";
|
|
4
|
+
|
|
5
|
+
function MenuItem({ as, className, children, ...props }) {
|
|
6
|
+
return (
|
|
7
|
+
<AriaKitMenuItem as={as} className={className} {...props}>
|
|
8
|
+
{children}
|
|
9
|
+
</AriaKitMenuItem>
|
|
10
|
+
);
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
MenuItem.propTypes = {
|
|
14
|
+
as: PropTypes.string,
|
|
15
|
+
className: PropTypes.string,
|
|
16
|
+
children: PropTypes.node,
|
|
17
|
+
};
|
|
18
|
+
|
|
19
|
+
MenuItem.defaultProps = {
|
|
20
|
+
as: "li",
|
|
21
|
+
className: "qpp-c-dropdown-menu__item",
|
|
22
|
+
children: null,
|
|
23
|
+
};
|
|
24
|
+
|
|
25
|
+
export default MenuItem;
|