From 4db2e8c1219b10226c0a3bfaf7b5944b4c6d38fd Mon Sep 17 00:00:00 2001 From: NikoHelle Date: Thu, 7 Dec 2023 11:53:47 +0200 Subject: [PATCH 01/59] (hds-1968) Utility function to remove

as first child --- site/src/components/stripParagraphAsFirstChild.js | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 site/src/components/stripParagraphAsFirstChild.js diff --git a/site/src/components/stripParagraphAsFirstChild.js b/site/src/components/stripParagraphAsFirstChild.js new file mode 100644 index 0000000000..ab3c3aacb4 --- /dev/null +++ b/site/src/components/stripParagraphAsFirstChild.js @@ -0,0 +1,6 @@ +export function stripParagraphAsFirstChild(children) { + if (children && children.type === 'p' && children.props && children.props.children) { + return children.props.children; + } + return children; +} From 253192200b8d6cdc9c694f09e9b6ace41ac69472 Mon Sep 17 00:00:00 2001 From: NikoHelle Date: Thu, 7 Dec 2023 11:54:54 +0200 Subject: [PATCH 02/59] (hds-1968) Strip

from components that should not have it --- site/src/components/AnchorLink.js | 6 +++++- site/src/components/ExternalLink.js | 4 +++- site/src/components/InternalLink.js | 4 +++- site/src/components/LeadParagraph.js | 13 +++++-------- site/src/components/PageTabs.js | 14 ++++++++++---- 5 files changed, 26 insertions(+), 15 deletions(-) diff --git a/site/src/components/AnchorLink.js b/site/src/components/AnchorLink.js index 1fbaa552ba..237b287dd2 100644 --- a/site/src/components/AnchorLink.js +++ b/site/src/components/AnchorLink.js @@ -3,6 +3,8 @@ import InternalLink from './InternalLink'; import PropTypes from 'prop-types'; import { useLocation } from '@reach/router'; +import { stripParagraphAsFirstChild } from './stripParagraphAsFirstChild'; + export const AnchorLink = ({ anchor, children, path }) => { const location = useLocation(); const parsedPath = path || location.path; @@ -10,7 +12,9 @@ export const AnchorLink = ({ anchor, children, path }) => { .toLowerCase() .replace(/ /g, '-') .replace(/[^\w-]/g, ''); - return {children}; + return ( + {stripParagraphAsFirstChild(children)} + ); }; AnchorLink.propTypes = { diff --git a/site/src/components/ExternalLink.js b/site/src/components/ExternalLink.js index 39052bb7ee..b73020669a 100644 --- a/site/src/components/ExternalLink.js +++ b/site/src/components/ExternalLink.js @@ -2,6 +2,8 @@ import React from 'react'; import { Link } from 'hds-react'; import PropTypes from 'prop-types'; +import { stripParagraphAsFirstChild } from './stripParagraphAsFirstChild'; + const ExternalLink = ({ href, children, openInNewTab, openInNewTabAriaLabel, openInExternalDomainAriaLabel, size }) => { const openInNewTabProps = openInNewTab ? { openInNewTab, openInNewTabAriaLabel: openInNewTabAriaLabel || 'Opens in a new tab.' } @@ -15,7 +17,7 @@ const ExternalLink = ({ href, children, openInNewTab, openInNewTabAriaLabel, ope {...openInNewTabProps} size={size} > - {children} + {stripParagraphAsFirstChild(children)} ); }; diff --git a/site/src/components/InternalLink.js b/site/src/components/InternalLink.js index 24975cce71..c4a92d058a 100644 --- a/site/src/components/InternalLink.js +++ b/site/src/components/InternalLink.js @@ -3,6 +3,8 @@ import { Link } from 'hds-react'; import PropTypes from 'prop-types'; import { navigate, withPrefix } from 'gatsby'; +import { stripParagraphAsFirstChild } from './stripParagraphAsFirstChild'; + const InternalLink = ({ href, children, openInNewTab, openInNewTabAriaLabel, size }) => { const openInNewTabProps = openInNewTab ? { openInNewTab, openInNewTabAriaLabel: openInNewTabAriaLabel || 'Opens in a new tab.' } @@ -18,7 +20,7 @@ const InternalLink = ({ href, children, openInNewTab, openInNewTabAriaLabel, siz navigate(href); }} > - {children} + {stripParagraphAsFirstChild(children)} ); }; diff --git a/site/src/components/LeadParagraph.js b/site/src/components/LeadParagraph.js index 800cd05f0f..79c818e8cc 100644 --- a/site/src/components/LeadParagraph.js +++ b/site/src/components/LeadParagraph.js @@ -1,12 +1,9 @@ import React from 'react'; import PropTypes from 'prop-types'; -const LeadParagraph = ({ - color = 'var(--color-black-90)', - size = 'var(--fontsize-body-xl)', - style = {}, - children, -}) => ( +import { stripParagraphAsFirstChild } from './stripParagraphAsFirstChild'; + +const LeadParagraph = ({ color = 'var(--color-black-90)', size = 'var(--fontsize-body-xl)', style = {}, children }) => (

- {children} + {stripParagraphAsFirstChild(children)}

); @@ -24,4 +21,4 @@ LeadParagraph.propTypes = { size: PropTypes.string, }; -export default LeadParagraph; \ No newline at end of file +export default LeadParagraph; diff --git a/site/src/components/PageTabs.js b/site/src/components/PageTabs.js index 75f975fd1f..ccc256c332 100644 --- a/site/src/components/PageTabs.js +++ b/site/src/components/PageTabs.js @@ -3,6 +3,8 @@ import PropTypes from 'prop-types'; import { navigate } from 'gatsby'; import { Tabs } from 'hds-react'; +import { stripParagraphAsFirstChild } from './stripParagraphAsFirstChild'; + import './PageTabs.scss'; const resolvePathFromSubSlug = (slug) => { @@ -22,8 +24,12 @@ const PageTabs = ({ pageContext, children }) => { const mdxChildren = Array.isArray(children) ? children : [children]; - const tabList = mdxChildren.find((reactChild) => isValidElement(reactChild) && reactChild.type.componentName === pageTabListComponentName); - const tabPanel = mdxChildren.find((reactChild) => isValidElement(reactChild) && reactChild.type.componentName === pageTabPanelComponentName); + const tabList = mdxChildren.find( + (reactChild) => isValidElement(reactChild) && reactChild.type.componentName === pageTabListComponentName, + ); + const tabPanel = mdxChildren.find( + (reactChild) => isValidElement(reactChild) && reactChild.type.componentName === pageTabPanelComponentName, + ); const tabs = tabList.props?.children.filter((reactChild) => reactChild.type.componentName === pageTabComponentName); const tabActiveIndex = tabs.findIndex((tab) => slug.endsWith(tab.props.href)); const activeIndex = tabActiveIndex === -1 ? 0 : tabActiveIndex; @@ -37,7 +43,7 @@ const PageTabs = ({ pageContext, children }) => { key={tab.props.href} onClick={() => navigate(`${tab.props.href === '/' ? rootPath : rootPath + tab.props.href}`)} > - {tab.props.children} + {stripParagraphAsFirstChild(tab.props.children)} ))} @@ -63,7 +69,7 @@ TabList.componentName = pageTabListComponentName; TabList.propTypes = { children: PropTypes.node.isRequired, }; -const Tab = ({ href, slug, children }) => {children}; +const Tab = ({ href, slug, children }) => {children}; Tab.componentName = pageTabComponentName; Tab.propTypes = { slug: PropTypes.string, From adb2f0697a0d0d4f10d634e84d866979dd916918 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 15 Dec 2023 05:40:34 +0000 Subject: [PATCH 03/59] Bump actions/download-artifact from 3 to 4 Bumps [actions/download-artifact](https://github.com/actions/download-artifact) from 3 to 4. - [Release notes](https://github.com/actions/download-artifact/releases) - [Commits](https://github.com/actions/download-artifact/compare/v3...v4) --- updated-dependencies: - dependency-name: actions/download-artifact dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- .github/workflows/development.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/development.yml b/.github/workflows/development.yml index 4614976e33..ea0f35bdd2 100644 --- a/.github/workflows/development.yml +++ b/.github/workflows/development.yml @@ -75,7 +75,7 @@ jobs: steps: - name: download storybook - uses: actions/download-artifact@v3 + uses: actions/download-artifact@v4 with: name: storybook-${{ github.sha }} From 02e7b59957e2a5e1422cf4a18ef6b20f8b93b914 Mon Sep 17 00:00:00 2001 From: harriplappalainen Date: Tue, 19 Dec 2023 15:22:56 +0200 Subject: [PATCH 04/59] Next release template --- CHANGELOG.md | 97 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 97 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index ccf052c9c8..19ecaef6df 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,103 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). +## [3.X.X] - Month, XX, 202X + +### React + +#### Breaking + +- [Component] What are the breaking changes? + +#### Added + +- [Component] What is added? + +#### Changed + +Changes that are not related to specific components +- [Component] What has been changed + +#### Fixed + +- [Component] What bugs/typos are fixed? + +### Core + +#### Breaking + +- [Component] What are the breaking changes? + +#### Added + +- [Component] What is added? + +#### Changed + +Changes that are not related to specific components +- [Component] What has been changed + +#### Fixed + +- [Component] What bugs/typos are fixed? + +### Documentation + +#### Breaking + +- [Component] What are the breaking changes? + +#### Added + +- [Component] What is added? + +#### Changed + +Changes that are not related to specific components +- [Component] What has been changed + +#### Fixed + +- [Component] What bugs/typos are fixed? + +### Figma + +#### Breaking + +- [Component] What are the breaking changes? + +#### Added + +- [Component] What is added? + +#### Changed + +Changes that are not related to specific components +- [Component] What has been changed + +#### Fixed + +- [Component] What bugs/typos are fixed? + +### Sketch/Abstract + +#### Breaking + +- [Component] What are the breaking changes? + +#### Added + +- [Component] What is added? + +#### Changed + +Changes that are not related to specific components +- [Component] What has been changed + +#### Fixed + +- [Component] What bugs/typos are fixed? + ## [3.3.0] - December, 19, 2023 ### React From 692b527b42863168bba9def60b24bbeba2ef5be6 Mon Sep 17 00:00:00 2001 From: Github Actions Date: Tue, 19 Dec 2023 14:50:10 +0000 Subject: [PATCH 05/59] Updated icon library --- packages/core/src/icons/icons.css | 3 +- packages/core/src/icons/twitter_old.css | 4 +++ packages/core/src/icons/x.css | 4 +++ packages/core/src/svg/twitter_old.svg | 3 ++ packages/core/src/svg/x.svg | 4 +++ packages/react/src/icons/IconTwitterOld.tsx | 33 +++++++++++++++++++ packages/react/src/icons/IconX.tsx | 34 ++++++++++++++++++++ packages/react/src/icons/index.ts | 3 +- release/hds-icon-kit.zip | Bin 796369 -> 803135 bytes release/icon-kit-template-CHANGELOG.txt | 2 +- 10 files changed, 87 insertions(+), 3 deletions(-) create mode 100644 packages/core/src/icons/twitter_old.css create mode 100644 packages/core/src/icons/x.css create mode 100644 packages/core/src/svg/twitter_old.svg create mode 100644 packages/core/src/svg/x.svg create mode 100644 packages/react/src/icons/IconTwitterOld.tsx create mode 100644 packages/react/src/icons/IconX.tsx diff --git a/packages/core/src/icons/icons.css b/packages/core/src/icons/icons.css index e85d34bee6..8484586dd8 100644 --- a/packages/core/src/icons/icons.css +++ b/packages/core/src/icons/icons.css @@ -168,7 +168,7 @@ @import url("trash.css"); @import url("traveler.css"); @import url("twitch.css"); -@import url("twitter.css"); +@import url("twitter_old.css"); @import url("upload.css"); @import url("upload-cloud.css"); @import url("user.css"); @@ -185,6 +185,7 @@ @import url("whatsapp.css"); @import url("wifi.css"); @import url("wifi-crossed.css"); +@import url("x.css"); @import url("yle.css"); @import url("youth.css"); @import url("youtube.css"); diff --git a/packages/core/src/icons/twitter_old.css b/packages/core/src/icons/twitter_old.css new file mode 100644 index 0000000000..32cdb54587 --- /dev/null +++ b/packages/core/src/icons/twitter_old.css @@ -0,0 +1,4 @@ +.hds-icon--twitter_old { + -webkit-mask-image: url("data:image/svg+xml;charset=utf-8,%3Csvg role='img' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E %3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M19.0714 3C20.0855 3 20.9173 3.78353 20.9942 4.7779L21 4.92857V19.0714C21 20.0855 20.2165 20.9173 19.2221 20.9942L19.0714 21H4.92857C3.91454 21 3.08273 20.2165 3.0058 19.2221L3 19.0714V4.92857C3 3.91454 3.78353 3.08273 4.7779 3.0058L4.92857 3H19.0714ZM14.6916 6.43652C13.1015 6.43652 11.8223 7.72458 11.8223 9.30582C11.8223 9.52791 11.8489 9.74997 11.8933 9.96317C9.51265 9.83878 7.38954 8.70174 5.97709 6.96062C5.72835 7.38702 5.58624 7.8756 5.58624 8.40859C5.58624 9.40352 6.09257 10.283 6.86541 10.7982C6.46189 10.783 6.07789 10.6829 5.73587 10.5204L5.56847 10.434V10.4695C5.56847 11.8642 6.55454 13.019 7.86926 13.2855C7.62943 13.3477 7.37179 13.3832 7.11419 13.3832C6.92762 13.3832 6.74997 13.3655 6.57229 13.3388C6.93651 14.4759 7.99362 15.302 9.25505 15.3287C8.269 16.1015 7.03421 16.5546 5.69285 16.5546C5.45299 16.5546 5.23093 16.5457 4.99996 16.5191C6.27027 17.3363 7.78042 17.8071 9.40607 17.8071C14.6827 17.8071 17.5698 13.4365 17.5698 9.64338C17.5698 9.51902 17.5698 9.39464 17.5609 9.27028C18.1206 8.86162 18.6092 8.3553 19 7.78679C18.4847 8.00885 17.9251 8.16878 17.3477 8.23094C17.9428 7.87563 18.3959 7.31598 18.6091 6.64972C18.0583 6.9784 17.4365 7.21826 16.788 7.34262C16.2639 6.78297 15.5177 6.43652 14.6916 6.43652Z' fill='currentColor'%3E%3C/path%3E %3C/svg%3E"); + mask-image: url("data:image/svg+xml;charset=utf-8,%3Csvg role='img' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E %3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M19.0714 3C20.0855 3 20.9173 3.78353 20.9942 4.7779L21 4.92857V19.0714C21 20.0855 20.2165 20.9173 19.2221 20.9942L19.0714 21H4.92857C3.91454 21 3.08273 20.2165 3.0058 19.2221L3 19.0714V4.92857C3 3.91454 3.78353 3.08273 4.7779 3.0058L4.92857 3H19.0714ZM14.6916 6.43652C13.1015 6.43652 11.8223 7.72458 11.8223 9.30582C11.8223 9.52791 11.8489 9.74997 11.8933 9.96317C9.51265 9.83878 7.38954 8.70174 5.97709 6.96062C5.72835 7.38702 5.58624 7.8756 5.58624 8.40859C5.58624 9.40352 6.09257 10.283 6.86541 10.7982C6.46189 10.783 6.07789 10.6829 5.73587 10.5204L5.56847 10.434V10.4695C5.56847 11.8642 6.55454 13.019 7.86926 13.2855C7.62943 13.3477 7.37179 13.3832 7.11419 13.3832C6.92762 13.3832 6.74997 13.3655 6.57229 13.3388C6.93651 14.4759 7.99362 15.302 9.25505 15.3287C8.269 16.1015 7.03421 16.5546 5.69285 16.5546C5.45299 16.5546 5.23093 16.5457 4.99996 16.5191C6.27027 17.3363 7.78042 17.8071 9.40607 17.8071C14.6827 17.8071 17.5698 13.4365 17.5698 9.64338C17.5698 9.51902 17.5698 9.39464 17.5609 9.27028C18.1206 8.86162 18.6092 8.3553 19 7.78679C18.4847 8.00885 17.9251 8.16878 17.3477 8.23094C17.9428 7.87563 18.3959 7.31598 18.6091 6.64972C18.0583 6.9784 17.4365 7.21826 16.788 7.34262C16.2639 6.78297 15.5177 6.43652 14.6916 6.43652Z' fill='currentColor'%3E%3C/path%3E %3C/svg%3E"); +} diff --git a/packages/core/src/icons/x.css b/packages/core/src/icons/x.css new file mode 100644 index 0000000000..aaa9156a34 --- /dev/null +++ b/packages/core/src/icons/x.css @@ -0,0 +1,4 @@ +.hds-icon--x { + -webkit-mask-image: url("data:image/svg+xml;charset=utf-8,%3Csvg role='img' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E %3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M5 3C4 3 3 4 3 5V19C3 20 4 21 5 21H19C20 21 21 20 21 19V5C21 4 20 3 19 3H5ZM16.9092 7H15.2128L12.4174 10.1954L10.0005 7H6.5L10.6826 12.4692L6.71846 17H8.4159L11.4754 13.5041L14.1492 17H17.5631L13.2031 11.2359L16.9092 7Z' fill='currentColor'%3E%3C/path%3E %3Cpath d='M14.6174 15.9846H15.5574L9.48974 7.96205H8.48103L14.6174 15.9846Z' fill='currentColor'%3E%3C/path%3E %3C/svg%3E"); + mask-image: url("data:image/svg+xml;charset=utf-8,%3Csvg role='img' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E %3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M5 3C4 3 3 4 3 5V19C3 20 4 21 5 21H19C20 21 21 20 21 19V5C21 4 20 3 19 3H5ZM16.9092 7H15.2128L12.4174 10.1954L10.0005 7H6.5L10.6826 12.4692L6.71846 17H8.4159L11.4754 13.5041L14.1492 17H17.5631L13.2031 11.2359L16.9092 7Z' fill='currentColor'%3E%3C/path%3E %3Cpath d='M14.6174 15.9846H15.5574L9.48974 7.96205H8.48103L14.6174 15.9846Z' fill='currentColor'%3E%3C/path%3E %3C/svg%3E"); +} diff --git a/packages/core/src/svg/twitter_old.svg b/packages/core/src/svg/twitter_old.svg new file mode 100644 index 0000000000..69ba5bab7a --- /dev/null +++ b/packages/core/src/svg/twitter_old.svg @@ -0,0 +1,3 @@ + + + diff --git a/packages/core/src/svg/x.svg b/packages/core/src/svg/x.svg new file mode 100644 index 0000000000..c3f51f0c17 --- /dev/null +++ b/packages/core/src/svg/x.svg @@ -0,0 +1,4 @@ + + + + diff --git a/packages/react/src/icons/IconTwitterOld.tsx b/packages/react/src/icons/IconTwitterOld.tsx new file mode 100644 index 0000000000..7d0a74faf0 --- /dev/null +++ b/packages/react/src/icons/IconTwitterOld.tsx @@ -0,0 +1,33 @@ +import React from 'react'; + +import { IconProps } from './Icon.interface'; +import styles from './Icon.module.css'; + +export const IconTwitterOld = ({ + ariaLabel = 'twitter_old', + ariaLabelledby, + ariaHidden = true, + className = '', + color, + size = 's', + style = {}, +}: React.SVGProps & IconProps) => ( + e).join(' ')} + role="img" + xmlns="http://www.w3.org/2000/svg" + viewBox="0 0 24 24" + aria-label={ariaLabel} + aria-labelledby={ariaLabelledby} + aria-hidden={ariaHidden} + color={color} + style={style} + > + + +); diff --git a/packages/react/src/icons/IconX.tsx b/packages/react/src/icons/IconX.tsx new file mode 100644 index 0000000000..6aaf9aff24 --- /dev/null +++ b/packages/react/src/icons/IconX.tsx @@ -0,0 +1,34 @@ +import React from 'react'; + +import { IconProps } from './Icon.interface'; +import styles from './Icon.module.css'; + +export const IconX = ({ + ariaLabel = 'x', + ariaLabelledby, + ariaHidden = true, + className = '', + color, + size = 's', + style = {}, +}: React.SVGProps & IconProps) => ( + e).join(' ')} + role="img" + xmlns="http://www.w3.org/2000/svg" + viewBox="0 0 24 24" + aria-label={ariaLabel} + aria-labelledby={ariaLabelledby} + aria-hidden={ariaHidden} + color={color} + style={style} + > + + + +); diff --git a/packages/react/src/icons/index.ts b/packages/react/src/icons/index.ts index 03fbf02e47..e21d5e8dd0 100644 --- a/packages/react/src/icons/index.ts +++ b/packages/react/src/icons/index.ts @@ -170,7 +170,7 @@ export { IconTiktok } from './IconTiktok'; export { IconTrash } from './IconTrash'; export { IconTraveler } from './IconTraveler'; export { IconTwitch } from './IconTwitch'; -export { IconTwitter } from './IconTwitter'; +export { IconTwitterOld } from './IconTwitterOld'; export { IconUpload } from './IconUpload'; export { IconUploadCloud } from './IconUploadCloud'; export { IconUser } from './IconUser'; @@ -187,6 +187,7 @@ export { IconVolumePlus } from './IconVolumePlus'; export { IconWhatsapp } from './IconWhatsapp'; export { IconWifi } from './IconWifi'; export { IconWifiCrossed } from './IconWifiCrossed'; +export { IconX } from './IconX'; export { IconYle } from './IconYle'; export { IconYouth } from './IconYouth'; export { IconYoutube } from './IconYoutube'; diff --git a/release/hds-icon-kit.zip b/release/hds-icon-kit.zip index 2989189a8a21823590c36e9a9839e09e26ca2f42..44e96ae514dbfbf8aa151e502cdd28e7d3a28df3 100644 GIT binary patch delta 64258 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 diff --git a/release/icon-kit-template-CHANGELOG.txt b/release/icon-kit-template-CHANGELOG.txt index e9f18b38a2..833a784517 100755 --- a/release/icon-kit-template-CHANGELOG.txt +++ b/release/icon-kit-template-CHANGELOG.txt @@ -1,4 +1,4 @@ -# Helsinki Design System, Icon kit, version 3.1.0 +# Helsinki Design System, Icon kit, version 3.3.0 ## CHANGELOG From 586c59e4a7ea1c3a4e9c61710dee6ae920bb7673 Mon Sep 17 00:00:00 2001 From: NikoHelle Date: Thu, 7 Dec 2023 12:29:54 +0200 Subject: [PATCH 06/59] (hds-1968) Strip

from StatusLabel Created a new component to site, that is basically a wrapper for HDS StatusLabel. But it strips

tags from children. --- site/src/components/StatusLabel.js | 18 ++++++++++++++++++ .../about/accessibility/hds-accessibility.mdx | 2 +- site/src/docs/components/accordion/tabs.mdx | 5 ++--- site/src/docs/components/breadcrumb/tabs.mdx | 3 +-- site/src/docs/components/buttons/tabs.mdx | 5 ++--- site/src/docs/components/card/tabs.mdx | 8 +++++--- site/src/docs/components/checkbox/tabs.mdx | 3 +-- .../docs/components/cookie-consent/tabs.mdx | 10 +++++----- site/src/docs/components/date-input/tabs.mdx | 3 +-- site/src/docs/components/dialog/tabs.mdx | 3 +-- site/src/docs/components/dropdown/tabs.mdx | 3 +-- site/src/docs/components/fieldset/tabs.mdx | 3 +-- site/src/docs/components/file-input/tabs.mdx | 3 +-- site/src/docs/components/footer/tabs.mdx | 3 +-- site/src/docs/components/header/tabs.mdx | 3 ++- site/src/docs/components/hero/tabs.mdx | 8 +++----- site/src/docs/components/highlight/tabs.mdx | 7 +++---- site/src/docs/components/icon/tabs.mdx | 4 +--- site/src/docs/components/koros/tabs.mdx | 3 +-- site/src/docs/components/link/tabs.mdx | 3 +-- site/src/docs/components/linkbox/tabs.mdx | 3 +-- .../docs/components/loading-spinner/tabs.mdx | 3 +-- site/src/docs/components/login/tabs.mdx | 6 +++--- site/src/docs/components/logo/tabs.mdx | 3 +-- site/src/docs/components/notification/tabs.mdx | 3 +-- site/src/docs/components/number-input/tabs.mdx | 3 +-- site/src/docs/components/pagination/tabs.mdx | 3 ++- .../docs/components/password-input/tabs.mdx | 3 +-- site/src/docs/components/phone-input/tabs.mdx | 3 +-- site/src/docs/components/radio-button/tabs.mdx | 3 +-- site/src/docs/components/search-input/tabs.mdx | 3 +-- .../docs/components/selection-group/tabs.mdx | 3 +-- .../docs/components/side-navigation/tabs.mdx | 3 ++- site/src/docs/components/status-label/tabs.mdx | 3 ++- site/src/docs/components/step-by-step/tabs.mdx | 3 +-- site/src/docs/components/stepper/tabs.mdx | 3 ++- site/src/docs/components/table/tabs.mdx | 3 ++- site/src/docs/components/tabs/tabs.mdx | 3 +-- site/src/docs/components/tag/index.mdx | 2 +- site/src/docs/components/tag/tabs.mdx | 3 ++- site/src/docs/components/text-area/tabs.mdx | 3 +-- site/src/docs/components/text-input/tabs.mdx | 3 +-- site/src/docs/components/time-input/tabs.mdx | 3 +-- .../src/docs/components/toggle-button/tabs.mdx | 3 +-- site/src/docs/components/tooltip/tabs.mdx | 3 +-- .../design-tokens/breakpoints/tabs.mdx | 5 ++--- .../foundation/design-tokens/colour/tabs.mdx | 5 ++--- .../foundation/design-tokens/spacing/tabs.mdx | 5 ++--- .../design-tokens/typography/tabs.mdx | 5 ++--- .../docs/foundation/guidelines/inclusivity.mdx | 2 +- site/src/docs/patterns/cookies/basics.mdx | 3 ++- .../cookies/common-helsinki-cookies.mdx | 2 +- .../cookies/using-the-cookieconsent.mdx | 3 ++- site/src/docs/patterns/forms/form-building.mdx | 2 +- .../navigation/building-navigation.mdx | 4 ++-- site/src/docs/patterns/navigation/examples.mdx | 5 +++-- 56 files changed, 105 insertions(+), 113 deletions(-) create mode 100644 site/src/components/StatusLabel.js diff --git a/site/src/components/StatusLabel.js b/site/src/components/StatusLabel.js new file mode 100644 index 0000000000..473f97b7a0 --- /dev/null +++ b/site/src/components/StatusLabel.js @@ -0,0 +1,18 @@ +import React from 'react'; +import { StatusLabel as HDSStatusLabel } from 'hds-react'; +import PropTypes from 'prop-types'; + +import { stripParagraphAsFirstChild } from './stripParagraphAsFirstChild'; + +const StatusLabel = ({ children, ...props }) => { + return {stripParagraphAsFirstChild(children)}; +}; + +StatusLabel.propTypes = { + className: PropTypes.string, + dataTestId: PropTypes.string, + type: PropTypes.oneOf(['neutral', 'info', 'success', 'alert', 'error']), + iconLeft: PropTypes.node, +}; + +export default StatusLabel; diff --git a/site/src/docs/about/accessibility/hds-accessibility.mdx b/site/src/docs/about/accessibility/hds-accessibility.mdx index 05a73b8e43..3324b71103 100644 --- a/site/src/docs/about/accessibility/hds-accessibility.mdx +++ b/site/src/docs/about/accessibility/hds-accessibility.mdx @@ -3,11 +3,11 @@ slug: '/about/accessibility/hds-accessibility' title: 'HDS Accessibility' navTitle: 'HDS Accessibility' --- -import { StatusLabel } from 'hds-react'; import ExternalLink from '../../../components/ExternalLink'; import LeadParagraph from '../../../components/LeadParagraph'; import InternalLink from '../../../components/InternalLink'; +import StatusLabel from '../../../components/StatusLabel'; # HDS Accessibility diff --git a/site/src/docs/components/accordion/tabs.mdx b/site/src/docs/components/accordion/tabs.mdx index 5769d4ee12..6dc31cb613 100644 --- a/site/src/docs/components/accordion/tabs.mdx +++ b/site/src/docs/components/accordion/tabs.mdx @@ -3,12 +3,11 @@ slug: '/components/accordion/tabs' title: 'Accordion' --- -import { StatusLabel } from 'hds-react'; - import StatusLabelTooltip from '../../../components/StatusLabelTooltip'; import LeadParagraph from '../../../components/LeadParagraph'; -import Layout from '../../../components/layout' +import Layout from '../../../components/layout'; import PageTabs from '../../../components/PageTabs'; +import StatusLabel from '../../../components/StatusLabel'; # Accordion diff --git a/site/src/docs/components/breadcrumb/tabs.mdx b/site/src/docs/components/breadcrumb/tabs.mdx index 3db48fdf34..a1302c2d29 100644 --- a/site/src/docs/components/breadcrumb/tabs.mdx +++ b/site/src/docs/components/breadcrumb/tabs.mdx @@ -3,12 +3,11 @@ slug: '/components/breadcrumb/tabs' title: 'Breadcrumb' --- -import { StatusLabel } from 'hds-react'; - import LeadParagraph from '../../../components/LeadParagraph'; import Layout from '../../../components/layout'; import PageTabs from '../../../components/PageTabs'; import StatusLabelTooltip from '../../../components/StatusLabelTooltip'; +import StatusLabel from '../../../components/StatusLabel'; # Breadcrumb diff --git a/site/src/docs/components/buttons/tabs.mdx b/site/src/docs/components/buttons/tabs.mdx index af052c0c1f..769f9f3595 100644 --- a/site/src/docs/components/buttons/tabs.mdx +++ b/site/src/docs/components/buttons/tabs.mdx @@ -3,12 +3,11 @@ slug: '/components/buttons/tabs' title: 'Button' --- -import { StatusLabel } from 'hds-react'; - import StatusLabelTooltip from '../../../components/StatusLabelTooltip'; import LeadParagraph from '../../../components/LeadParagraph'; -import Layout from '../../../components/layout' +import Layout from '../../../components/layout'; import PageTabs from '../../../components/PageTabs'; +import StatusLabel from '../../../components/StatusLabel'; # Button diff --git a/site/src/docs/components/card/tabs.mdx b/site/src/docs/components/card/tabs.mdx index 964ea8ebe4..f65d7de917 100644 --- a/site/src/docs/components/card/tabs.mdx +++ b/site/src/docs/components/card/tabs.mdx @@ -3,12 +3,11 @@ slug: '/components/card/tabs' title: 'Card' --- -import { StatusLabel } from 'hds-react'; - import StatusLabelTooltip from '../../../components/StatusLabelTooltip'; import LeadParagraph from '../../../components/LeadParagraph'; import Layout from '../../../components/layout'; import PageTabs from '../../../components/PageTabs'; +import StatusLabel from '../../../components/StatusLabel'; # Card @@ -18,7 +17,10 @@ import PageTabs from '../../../components/PageTabs'; -Cards can be used to divide and organise interface content for better understandability and readability. When used correctly, Cards can help your users to scan through vast amounts of information quicker. + + Cards can be used to divide and organise interface content for better understandability and readability. When used + correctly, Cards can help your users to scan through vast amounts of information quicker. + diff --git a/site/src/docs/components/checkbox/tabs.mdx b/site/src/docs/components/checkbox/tabs.mdx index da55c2c9c9..1a018d8eea 100644 --- a/site/src/docs/components/checkbox/tabs.mdx +++ b/site/src/docs/components/checkbox/tabs.mdx @@ -3,12 +3,11 @@ slug: '/components/checkbox/tabs' title: 'Checkbox' --- -import { StatusLabel } from 'hds-react'; - import StatusLabelTooltip from '../../../components/StatusLabelTooltip'; import LeadParagraph from '../../../components/LeadParagraph'; import Layout from '../../../components/layout'; import PageTabs from '../../../components/PageTabs'; +import StatusLabel from '../../../components/StatusLabel'; # Checkbox diff --git a/site/src/docs/components/cookie-consent/tabs.mdx b/site/src/docs/components/cookie-consent/tabs.mdx index c863ddf738..a41a2198e9 100644 --- a/site/src/docs/components/cookie-consent/tabs.mdx +++ b/site/src/docs/components/cookie-consent/tabs.mdx @@ -2,13 +2,11 @@ slug: '/components/cookie-consent/tabs' title: 'CookieConsent' --- - -import { StatusLabel, Notification } from 'hds-react'; - import StatusLabelTooltip from '../../../components/StatusLabelTooltip'; import LeadParagraph from '../../../components/LeadParagraph'; import Layout from '../../../components/layout'; import PageTabs from '../../../components/PageTabs'; +import StatusLabel from '../../../components/StatusLabel'; # CookieConsent @@ -18,8 +16,10 @@ import PageTabs from '../../../components/PageTabs'; -The cookie compliance component informs users about cookie usage. This banner is shown when they visit a website or an - application for the first time. + + The cookie compliance component informs users about cookie usage. This banner is shown when they visit a website or an + application for the first time. + diff --git a/site/src/docs/components/date-input/tabs.mdx b/site/src/docs/components/date-input/tabs.mdx index 6b57d8cefa..b5f0fcb34c 100644 --- a/site/src/docs/components/date-input/tabs.mdx +++ b/site/src/docs/components/date-input/tabs.mdx @@ -3,12 +3,11 @@ slug: '/components/date-input/tabs' title: 'DateInput' --- -import { StatusLabel } from 'hds-react'; - import StatusLabelTooltip from '../../../components/StatusLabelTooltip'; import LeadParagraph from '../../../components/LeadParagraph'; import Layout from '../../../components/layout'; import PageTabs from '../../../components/PageTabs'; +import StatusLabel from '../../../components/StatusLabel'; # DateInput diff --git a/site/src/docs/components/dialog/tabs.mdx b/site/src/docs/components/dialog/tabs.mdx index 61b99d34ac..954e5c9e7a 100644 --- a/site/src/docs/components/dialog/tabs.mdx +++ b/site/src/docs/components/dialog/tabs.mdx @@ -3,12 +3,11 @@ slug: '/components/dialog/tabs' title: 'Dialog' --- -import { StatusLabel } from 'hds-react'; - import StatusLabelTooltip from '../../../components/StatusLabelTooltip'; import LeadParagraph from '../../../components/LeadParagraph'; import Layout from '../../../components/layout'; import PageTabs from '../../../components/PageTabs'; +import StatusLabel from '../../../components/StatusLabel'; # Dialog diff --git a/site/src/docs/components/dropdown/tabs.mdx b/site/src/docs/components/dropdown/tabs.mdx index 6f3996e8e8..55326ebfd5 100644 --- a/site/src/docs/components/dropdown/tabs.mdx +++ b/site/src/docs/components/dropdown/tabs.mdx @@ -3,12 +3,11 @@ slug: '/components/dropdown/tabs' title: 'Dropdown' --- -import { StatusLabel } from 'hds-react'; - import StatusLabelTooltip from '../../../components/StatusLabelTooltip'; import LeadParagraph from '../../../components/LeadParagraph'; import Layout from '../../../components/layout'; import PageTabs from '../../../components/PageTabs'; +import StatusLabel from '../../../components/StatusLabel'; # Dropdown diff --git a/site/src/docs/components/fieldset/tabs.mdx b/site/src/docs/components/fieldset/tabs.mdx index d1f892b8da..fd3c6cc754 100644 --- a/site/src/docs/components/fieldset/tabs.mdx +++ b/site/src/docs/components/fieldset/tabs.mdx @@ -3,12 +3,11 @@ slug: '/components/fieldset/tabs' title: 'Fieldset' --- -import { StatusLabel } from 'hds-react'; - import StatusLabelTooltip from '../../../components/StatusLabelTooltip'; import LeadParagraph from '../../../components/LeadParagraph'; import Layout from '../../../components/layout'; import PageTabs from '../../../components/PageTabs'; +import StatusLabel from '../../../components/StatusLabel'; # Fieldset diff --git a/site/src/docs/components/file-input/tabs.mdx b/site/src/docs/components/file-input/tabs.mdx index 7473f5d052..176ec86e3e 100644 --- a/site/src/docs/components/file-input/tabs.mdx +++ b/site/src/docs/components/file-input/tabs.mdx @@ -3,12 +3,11 @@ slug: '/components/file-input/tabs' title: 'FileInput' --- -import { StatusLabel } from 'hds-react'; - import StatusLabelTooltip from '../../../components/StatusLabelTooltip'; import LeadParagraph from '../../../components/LeadParagraph'; import Layout from '../../../components/layout'; import PageTabs from '../../../components/PageTabs'; +import StatusLabel from '../../../components/StatusLabel'; # FileInput diff --git a/site/src/docs/components/footer/tabs.mdx b/site/src/docs/components/footer/tabs.mdx index 630f5bec96..0e4a081860 100644 --- a/site/src/docs/components/footer/tabs.mdx +++ b/site/src/docs/components/footer/tabs.mdx @@ -3,12 +3,11 @@ slug: '/components/footer/tabs' title: 'Footer' --- -import { StatusLabel } from 'hds-react'; - import StatusLabelTooltip from '../../../components/StatusLabelTooltip'; import LeadParagraph from '../../../components/LeadParagraph'; import Layout from '../../../components/layout'; import PageTabs from '../../../components/PageTabs'; +import StatusLabel from '../../../components/StatusLabel'; # Footer diff --git a/site/src/docs/components/header/tabs.mdx b/site/src/docs/components/header/tabs.mdx index 2c6cdf3153..48188bba59 100644 --- a/site/src/docs/components/header/tabs.mdx +++ b/site/src/docs/components/header/tabs.mdx @@ -3,12 +3,13 @@ slug: '/components/header/tabs' title: 'Header' --- -import { StatusLabel, Notification } from 'hds-react'; +import { Notification } from 'hds-react'; import StatusLabelTooltip from '../../../components/StatusLabelTooltip'; import LeadParagraph from '../../../components/LeadParagraph'; import Layout from '../../../components/layout'; import PageTabs from '../../../components/PageTabs'; +import StatusLabel from '../../../components/StatusLabel'; # Header diff --git a/site/src/docs/components/hero/tabs.mdx b/site/src/docs/components/hero/tabs.mdx index da1cd30f60..e1f7a6eeaa 100644 --- a/site/src/docs/components/hero/tabs.mdx +++ b/site/src/docs/components/hero/tabs.mdx @@ -3,19 +3,17 @@ slug: '/components/hero/tabs' title: 'Hero' --- -import { StatusLabel } from 'hds-react'; - import LeadParagraph from '../../../components/LeadParagraph'; import Layout from '../../../components/layout'; import PageTabs from '../../../components/PageTabs'; import StatusLabelTooltip from '../../../components/StatusLabelTooltip'; +import StatusLabel from '../../../components/StatusLabel'; # Hero -

- Stable - Accessible + Stable + Accessible
diff --git a/site/src/docs/components/highlight/tabs.mdx b/site/src/docs/components/highlight/tabs.mdx index 90866128c7..c617e6a7aa 100644 --- a/site/src/docs/components/highlight/tabs.mdx +++ b/site/src/docs/components/highlight/tabs.mdx @@ -3,18 +3,17 @@ slug: '/components/highlight/tabs' title: 'Highlight' --- -import { StatusLabel } from 'hds-react'; - import StatusLabelTooltip from '../../../components/StatusLabelTooltip'; import LeadParagraph from '../../../components/LeadParagraph'; import Layout from '../../../components/layout'; import PageTabs from '../../../components/PageTabs'; +import StatusLabel from '../../../components/StatusLabel'; # Highlight
- Beta - Accessible + Beta + Accessible
diff --git a/site/src/docs/components/icon/tabs.mdx b/site/src/docs/components/icon/tabs.mdx index 1ded11dd74..f259a058e7 100644 --- a/site/src/docs/components/icon/tabs.mdx +++ b/site/src/docs/components/icon/tabs.mdx @@ -3,13 +3,11 @@ slug: '/components/icon/tabs' title: 'Icon' --- -import { StatusLabel } from 'hds-react'; - import StatusLabelTooltip from '../../../components/StatusLabelTooltip'; import Layout from '../../../components/layout'; import PageTabs from '../../../components/PageTabs'; - import LeadParagraph from '../../../components/LeadParagraph'; +import StatusLabel from '../../../components/StatusLabel'; # Icon diff --git a/site/src/docs/components/koros/tabs.mdx b/site/src/docs/components/koros/tabs.mdx index 0cfb675461..e0f8db44d2 100644 --- a/site/src/docs/components/koros/tabs.mdx +++ b/site/src/docs/components/koros/tabs.mdx @@ -3,11 +3,10 @@ slug: '/components/koros/tabs' title: 'Koros' --- -import { StatusLabel } from 'hds-react'; - import StatusLabelTooltip from '../../../components/StatusLabelTooltip'; import LeadParagraph from '../../../components/LeadParagraph'; import PageTabs from '../../../components/PageTabs'; +import StatusLabel from '../../../components/StatusLabel'; # Koros diff --git a/site/src/docs/components/link/tabs.mdx b/site/src/docs/components/link/tabs.mdx index 9f2fcf3b06..21c4e2cfca 100644 --- a/site/src/docs/components/link/tabs.mdx +++ b/site/src/docs/components/link/tabs.mdx @@ -3,12 +3,11 @@ slug: '/components/link/tabs' title: 'Link' --- -import { StatusLabel } from 'hds-react'; - import StatusLabelTooltip from '../../../components/StatusLabelTooltip'; import LeadParagraph from '../../../components/LeadParagraph'; import Layout from '../../../components/layout'; import PageTabs from '../../../components/PageTabs'; +import StatusLabel from '../../../components/StatusLabel'; # Link diff --git a/site/src/docs/components/linkbox/tabs.mdx b/site/src/docs/components/linkbox/tabs.mdx index ce2d4bd033..e7929705b8 100644 --- a/site/src/docs/components/linkbox/tabs.mdx +++ b/site/src/docs/components/linkbox/tabs.mdx @@ -3,12 +3,11 @@ slug: '/components/linkbox/tabs' title: 'Linkbox' --- -import { StatusLabel } from 'hds-react'; - import StatusLabelTooltip from '../../../components/StatusLabelTooltip'; import LeadParagraph from '../../../components/LeadParagraph'; import Layout from '../../../components/layout'; import PageTabs from '../../../components/PageTabs'; +import StatusLabel from '../../../components/StatusLabel'; # Linkbox diff --git a/site/src/docs/components/loading-spinner/tabs.mdx b/site/src/docs/components/loading-spinner/tabs.mdx index c7dc4bf144..1b4b6330ee 100644 --- a/site/src/docs/components/loading-spinner/tabs.mdx +++ b/site/src/docs/components/loading-spinner/tabs.mdx @@ -3,12 +3,11 @@ slug: '/components/loading-spinner/tabs' title: 'LoadingSpinner' --- -import { StatusLabel } from 'hds-react'; - import StatusLabelTooltip from '../../../components/StatusLabelTooltip'; import LeadParagraph from '../../../components/LeadParagraph'; import Layout from '../../../components/layout'; import PageTabs from '../../../components/PageTabs'; +import StatusLabel from '../../../components/StatusLabel'; # LoadingSpinner diff --git a/site/src/docs/components/login/tabs.mdx b/site/src/docs/components/login/tabs.mdx index 656479c1a6..1c56308574 100644 --- a/site/src/docs/components/login/tabs.mdx +++ b/site/src/docs/components/login/tabs.mdx @@ -3,17 +3,17 @@ slug: '/components/login/tabs' title: 'Login' --- -import { StatusLabel, Notification } from 'hds-react'; - import StatusLabelTooltip from '../../../components/StatusLabelTooltip'; import LeadParagraph from '../../../components/LeadParagraph'; import PageTabs from '../../../components/PageTabs'; +import Notification from '../../../components/Notification'; +import StatusLabel from '../../../components/StatusLabel'; # Login
Draft - Accessible + Accessible
diff --git a/site/src/docs/components/logo/tabs.mdx b/site/src/docs/components/logo/tabs.mdx index eba69d3403..692db7904f 100644 --- a/site/src/docs/components/logo/tabs.mdx +++ b/site/src/docs/components/logo/tabs.mdx @@ -3,12 +3,11 @@ slug: '/components/logo/tabs' title: 'Logo' --- -import { StatusLabel } from 'hds-react'; - import StatusLabelTooltip from '../../../components/StatusLabelTooltip'; import LeadParagraph from '../../../components/LeadParagraph'; import Layout from '../../../components/layout'; import PageTabs from '../../../components/PageTabs'; +import StatusLabel from '../../../components/StatusLabel'; # Logo diff --git a/site/src/docs/components/notification/tabs.mdx b/site/src/docs/components/notification/tabs.mdx index fccc7844e4..7646130f72 100644 --- a/site/src/docs/components/notification/tabs.mdx +++ b/site/src/docs/components/notification/tabs.mdx @@ -3,12 +3,11 @@ slug: '/components/notification/tabs' title: 'Notification' --- -import { StatusLabel } from 'hds-react'; - import StatusLabelTooltip from '../../../components/StatusLabelTooltip'; import LeadParagraph from '../../../components/LeadParagraph'; import Layout from '../../../components/layout'; import PageTabs from '../../../components/PageTabs'; +import StatusLabel from '../../../components/StatusLabel'; # Notification diff --git a/site/src/docs/components/number-input/tabs.mdx b/site/src/docs/components/number-input/tabs.mdx index 9eacf603be..cdf395a0a1 100644 --- a/site/src/docs/components/number-input/tabs.mdx +++ b/site/src/docs/components/number-input/tabs.mdx @@ -3,12 +3,11 @@ slug: '/components/number/tabs' title: 'NumberInput' --- -import { StatusLabel } from 'hds-react'; - import StatusLabelTooltip from '../../../components/StatusLabelTooltip'; import LeadParagraph from '../../../components/LeadParagraph'; import Layout from '../../../components/layout'; import PageTabs from '../../../components/PageTabs'; +import StatusLabel from '../../../components/StatusLabel'; # NumberInput diff --git a/site/src/docs/components/pagination/tabs.mdx b/site/src/docs/components/pagination/tabs.mdx index bd31eb38f7..c450ee7be9 100644 --- a/site/src/docs/components/pagination/tabs.mdx +++ b/site/src/docs/components/pagination/tabs.mdx @@ -3,12 +3,13 @@ slug: '/components/pagination/tabs' title: 'Pagination' --- -import { StatusLabel, Notification } from 'hds-react'; +import { Notification } from 'hds-react'; import StatusLabelTooltip from '../../../components/StatusLabelTooltip'; import LeadParagraph from '../../../components/LeadParagraph'; import Layout from '../../../components/layout'; import PageTabs from '../../../components/PageTabs'; +import StatusLabel from '../../../components/StatusLabel'; # Pagination diff --git a/site/src/docs/components/password-input/tabs.mdx b/site/src/docs/components/password-input/tabs.mdx index 397090d017..97199b34b4 100644 --- a/site/src/docs/components/password-input/tabs.mdx +++ b/site/src/docs/components/password-input/tabs.mdx @@ -3,12 +3,11 @@ slug: '/components/password-input/tabs' title: 'PasswordInput' --- -import { StatusLabel } from 'hds-react'; - import StatusLabelTooltip from '../../../components/StatusLabelTooltip'; import LeadParagraph from '../../../components/LeadParagraph'; import Layout from '../../../components/layout'; import PageTabs from '../../../components/PageTabs'; +import StatusLabel from '../../../components/StatusLabel'; # PasswordInput diff --git a/site/src/docs/components/phone-input/tabs.mdx b/site/src/docs/components/phone-input/tabs.mdx index cdb43917eb..de3e6e9fe7 100644 --- a/site/src/docs/components/phone-input/tabs.mdx +++ b/site/src/docs/components/phone-input/tabs.mdx @@ -3,12 +3,11 @@ slug: '/components/phone-input/tabs' title: 'PhoneInput' --- -import { StatusLabel } from 'hds-react'; - import StatusLabelTooltip from '../../../components/StatusLabelTooltip'; import LeadParagraph from '../../../components/LeadParagraph'; import Layout from '../../../components/layout'; import PageTabs from '../../../components/PageTabs'; +import StatusLabel from '../../../components/StatusLabel'; # PhoneInput diff --git a/site/src/docs/components/radio-button/tabs.mdx b/site/src/docs/components/radio-button/tabs.mdx index 01d371dffa..26d9d83041 100644 --- a/site/src/docs/components/radio-button/tabs.mdx +++ b/site/src/docs/components/radio-button/tabs.mdx @@ -3,12 +3,11 @@ slug: '/components/radio-button/tabs' title: 'RadioButton' --- -import { StatusLabel } from 'hds-react'; - import StatusLabelTooltip from '../../../components/StatusLabelTooltip'; import LeadParagraph from '../../../components/LeadParagraph'; import Layout from '../../../components/layout'; import PageTabs from '../../../components/PageTabs'; +import StatusLabel from '../../../components/StatusLabel'; # RadioButton diff --git a/site/src/docs/components/search-input/tabs.mdx b/site/src/docs/components/search-input/tabs.mdx index 29940de098..955ba3f063 100644 --- a/site/src/docs/components/search-input/tabs.mdx +++ b/site/src/docs/components/search-input/tabs.mdx @@ -3,12 +3,11 @@ slug: '/components/search-input/tabs' title: 'SearchInput' --- -import { StatusLabel } from 'hds-react'; - import StatusLabelTooltip from '../../../components/StatusLabelTooltip'; import LeadParagraph from '../../../components/LeadParagraph'; import Layout from '../../../components/layout'; import PageTabs from '../../../components/PageTabs'; +import StatusLabel from '../../../components/StatusLabel'; # SearchInput diff --git a/site/src/docs/components/selection-group/tabs.mdx b/site/src/docs/components/selection-group/tabs.mdx index 27a2ed00a5..82e011048b 100644 --- a/site/src/docs/components/selection-group/tabs.mdx +++ b/site/src/docs/components/selection-group/tabs.mdx @@ -3,12 +3,11 @@ slug: '/components/selection-group/tabs' title: 'SelectionGroup' --- -import { StatusLabel } from 'hds-react'; - import StatusLabelTooltip from '../../../components/StatusLabelTooltip'; import LeadParagraph from '../../../components/LeadParagraph'; import Layout from '../../../components/layout'; import PageTabs from '../../../components/PageTabs'; +import StatusLabel from '../../../components/StatusLabel'; # SelectionGroup diff --git a/site/src/docs/components/side-navigation/tabs.mdx b/site/src/docs/components/side-navigation/tabs.mdx index fd2c5ac2da..347c746441 100644 --- a/site/src/docs/components/side-navigation/tabs.mdx +++ b/site/src/docs/components/side-navigation/tabs.mdx @@ -3,12 +3,13 @@ slug: '/components/side-navigation/tabs' title: 'SideNavigation' --- -import { StatusLabel, Notification } from 'hds-react'; +import { Notification } from 'hds-react'; import StatusLabelTooltip from '../../../components/StatusLabelTooltip'; import LeadParagraph from '../../../components/LeadParagraph'; import Layout from '../../../components/layout'; import PageTabs from '../../../components/PageTabs'; +import StatusLabel from '../../../components/StatusLabel'; # SideNavigation diff --git a/site/src/docs/components/status-label/tabs.mdx b/site/src/docs/components/status-label/tabs.mdx index 965677cabd..c9e9caabbe 100644 --- a/site/src/docs/components/status-label/tabs.mdx +++ b/site/src/docs/components/status-label/tabs.mdx @@ -3,12 +3,13 @@ slug: '/components/status-label/tabs' title: 'StatusLabel' --- -import { StatusLabel, Notification } from 'hds-react'; +import { Notification } from 'hds-react'; import StatusLabelTooltip from '../../../components/StatusLabelTooltip'; import LeadParagraph from '../../../components/LeadParagraph'; import Layout from '../../../components/layout'; import PageTabs from '../../../components/PageTabs'; +import StatusLabel from '../../../components/StatusLabel'; # StatusLabel diff --git a/site/src/docs/components/step-by-step/tabs.mdx b/site/src/docs/components/step-by-step/tabs.mdx index 858b5846dd..ab1e1248f3 100644 --- a/site/src/docs/components/step-by-step/tabs.mdx +++ b/site/src/docs/components/step-by-step/tabs.mdx @@ -3,11 +3,10 @@ slug: '/components/step-by-step/tabs' title: 'StepByStep' --- -import { StatusLabel } from 'hds-react'; - import StatusLabelTooltip from '../../../components/StatusLabelTooltip'; import LeadParagraph from '../../../components/LeadParagraph'; import PageTabs from '../../../components/PageTabs'; +import StatusLabel from '../../../components/StatusLabel'; # StepByStep diff --git a/site/src/docs/components/stepper/tabs.mdx b/site/src/docs/components/stepper/tabs.mdx index cb6000f0d9..6471a6a15e 100644 --- a/site/src/docs/components/stepper/tabs.mdx +++ b/site/src/docs/components/stepper/tabs.mdx @@ -3,12 +3,13 @@ slug: '/components/stepper/tabs' title: 'Stepper' --- -import { StatusLabel, Notification } from 'hds-react'; +import { Notification } from 'hds-react'; import StatusLabelTooltip from '../../../components/StatusLabelTooltip'; import LeadParagraph from '../../../components/LeadParagraph'; import Layout from '../../../components/layout'; import PageTabs from '../../../components/PageTabs'; +import StatusLabel from '../../../components/StatusLabel'; # Stepper diff --git a/site/src/docs/components/table/tabs.mdx b/site/src/docs/components/table/tabs.mdx index fc6f56cb50..ffd5a8a823 100644 --- a/site/src/docs/components/table/tabs.mdx +++ b/site/src/docs/components/table/tabs.mdx @@ -3,12 +3,13 @@ slug: '/components/table/tabs' title: 'Table' --- -import { StatusLabel, Notification } from 'hds-react'; +import { Notification } from 'hds-react'; import StatusLabelTooltip from '../../../components/StatusLabelTooltip'; import LeadParagraph from '../../../components/LeadParagraph'; import Layout from '../../../components/layout'; import PageTabs from '../../../components/PageTabs'; +import StatusLabel from '../../../components/StatusLabel'; # Table diff --git a/site/src/docs/components/tabs/tabs.mdx b/site/src/docs/components/tabs/tabs.mdx index f2c8790758..86194c0f34 100644 --- a/site/src/docs/components/tabs/tabs.mdx +++ b/site/src/docs/components/tabs/tabs.mdx @@ -3,12 +3,11 @@ slug: '/components/tabs/tabs' title: 'Tabs' --- -import { StatusLabel } from 'hds-react'; - import StatusLabelTooltip from '../../../components/StatusLabelTooltip'; import LeadParagraph from '../../../components/LeadParagraph'; import Layout from '../../../components/layout'; import PageTabs from '../../../components/PageTabs'; +import StatusLabel from '../../../components/StatusLabel'; # Tabs diff --git a/site/src/docs/components/tag/index.mdx b/site/src/docs/components/tag/index.mdx index 0559a9e936..bd3de442ab 100644 --- a/site/src/docs/components/tag/index.mdx +++ b/site/src/docs/components/tag/index.mdx @@ -4,7 +4,7 @@ title: 'Tag' navTitle: 'Tag' --- -import { Tag, StatusLabel } from 'hds-react'; +import { Tag } from 'hds-react'; import TabsLayout from './tabs.mdx'; export default ({ children, pageContext }) => {children}; diff --git a/site/src/docs/components/tag/tabs.mdx b/site/src/docs/components/tag/tabs.mdx index 7d000ed5b6..7e1fcc07f4 100644 --- a/site/src/docs/components/tag/tabs.mdx +++ b/site/src/docs/components/tag/tabs.mdx @@ -3,12 +3,13 @@ slug: '/components/tag/tabs' title: 'Tag' --- -import { StatusLabel, Notification } from 'hds-react'; +import { Notification } from 'hds-react'; import StatusLabelTooltip from '../../../components/StatusLabelTooltip'; import LeadParagraph from '../../../components/LeadParagraph'; import Layout from '../../../components/layout'; import PageTabs from '../../../components/PageTabs'; +import StatusLabel from '../../../components/StatusLabel'; # Tag diff --git a/site/src/docs/components/text-area/tabs.mdx b/site/src/docs/components/text-area/tabs.mdx index ab09a49e9c..c65877f21a 100644 --- a/site/src/docs/components/text-area/tabs.mdx +++ b/site/src/docs/components/text-area/tabs.mdx @@ -3,12 +3,11 @@ slug: '/components/text-area/tabs' title: 'TextArea' --- -import { StatusLabel } from 'hds-react'; - import StatusLabelTooltip from '../../../components/StatusLabelTooltip'; import LeadParagraph from '../../../components/LeadParagraph'; import Layout from '../../../components/layout'; import PageTabs from '../../../components/PageTabs'; +import StatusLabel from '../../../components/StatusLabel'; # TextArea diff --git a/site/src/docs/components/text-input/tabs.mdx b/site/src/docs/components/text-input/tabs.mdx index 843613b128..3f8a33dfc6 100644 --- a/site/src/docs/components/text-input/tabs.mdx +++ b/site/src/docs/components/text-input/tabs.mdx @@ -3,12 +3,11 @@ slug: '/components/text-input/tabs' title: 'TextInput' --- -import { StatusLabel } from 'hds-react'; - import StatusLabelTooltip from '../../../components/StatusLabelTooltip'; import LeadParagraph from '../../../components/LeadParagraph'; import Layout from '../../../components/layout'; import PageTabs from '../../../components/PageTabs'; +import StatusLabel from '../../../components/StatusLabel'; # TextInput diff --git a/site/src/docs/components/time-input/tabs.mdx b/site/src/docs/components/time-input/tabs.mdx index d4d7059ffa..7efafaa159 100644 --- a/site/src/docs/components/time-input/tabs.mdx +++ b/site/src/docs/components/time-input/tabs.mdx @@ -3,12 +3,11 @@ slug: '/components/time-input/tabs' title: 'TimeInput' --- -import { StatusLabel } from 'hds-react'; - import StatusLabelTooltip from '../../../components/StatusLabelTooltip'; import LeadParagraph from '../../../components/LeadParagraph'; import Layout from '../../../components/layout'; import PageTabs from '../../../components/PageTabs'; +import StatusLabel from '../../../components/StatusLabel'; # TimeInput diff --git a/site/src/docs/components/toggle-button/tabs.mdx b/site/src/docs/components/toggle-button/tabs.mdx index 4a71e89fbd..7ef2781c09 100644 --- a/site/src/docs/components/toggle-button/tabs.mdx +++ b/site/src/docs/components/toggle-button/tabs.mdx @@ -3,12 +3,11 @@ slug: '/components/toggle-button/tabs' title: 'ToggleButton' --- -import { StatusLabel } from 'hds-react'; - import StatusLabelTooltip from '../../../components/StatusLabelTooltip'; import LeadParagraph from '../../../components/LeadParagraph'; import Layout from '../../../components/layout'; import PageTabs from '../../../components/PageTabs'; +import StatusLabel from '../../../components/StatusLabel'; # ToggleButton diff --git a/site/src/docs/components/tooltip/tabs.mdx b/site/src/docs/components/tooltip/tabs.mdx index a34245881c..a63d160996 100644 --- a/site/src/docs/components/tooltip/tabs.mdx +++ b/site/src/docs/components/tooltip/tabs.mdx @@ -3,12 +3,11 @@ slug: '/components/tooltip/tabs' title: 'Tooltip' --- -import { StatusLabel } from 'hds-react'; - import StatusLabelTooltip from '../../../components/StatusLabelTooltip'; import LeadParagraph from '../../../components/LeadParagraph'; import Layout from '../../../components/layout'; import PageTabs from '../../../components/PageTabs'; +import StatusLabel from '../../../components/StatusLabel'; # Tooltip diff --git a/site/src/docs/foundation/design-tokens/breakpoints/tabs.mdx b/site/src/docs/foundation/design-tokens/breakpoints/tabs.mdx index 39408d40d6..7e5cfa07e4 100644 --- a/site/src/docs/foundation/design-tokens/breakpoints/tabs.mdx +++ b/site/src/docs/foundation/design-tokens/breakpoints/tabs.mdx @@ -3,11 +3,10 @@ slug: '/foundation/design-tokens/breakpoints/tabs' title: 'Breakpoint tokens' --- -import { StatusLabel } from 'hds-react'; - import LeadParagraph from '../../../../components/LeadParagraph'; -import Layout from '../../../../components/layout' +import Layout from '../../../../components/layout'; import PageTabs from '../../../../components/PageTabs'; +import StatusLabel from '../../../../components/StatusLabel'; # Breakpoints diff --git a/site/src/docs/foundation/design-tokens/colour/tabs.mdx b/site/src/docs/foundation/design-tokens/colour/tabs.mdx index bc3f4c5fb9..5e010d182b 100644 --- a/site/src/docs/foundation/design-tokens/colour/tabs.mdx +++ b/site/src/docs/foundation/design-tokens/colour/tabs.mdx @@ -3,11 +3,10 @@ slug: '/foundation/design-tokens/tabs' title: 'Colour tokens' --- -import { StatusLabel } from 'hds-react'; - import LeadParagraph from '../../../../components/LeadParagraph'; -import Layout from '../../../../components/layout' +import Layout from '../../../../components/layout'; import PageTabs from '../../../../components/PageTabs'; +import StatusLabel from '../../../../components/StatusLabel'; # Colour diff --git a/site/src/docs/foundation/design-tokens/spacing/tabs.mdx b/site/src/docs/foundation/design-tokens/spacing/tabs.mdx index 767c941599..091d2cd697 100644 --- a/site/src/docs/foundation/design-tokens/spacing/tabs.mdx +++ b/site/src/docs/foundation/design-tokens/spacing/tabs.mdx @@ -3,11 +3,10 @@ slug: '/foundation/design-tokens/tabs' title: 'Spacing tokens' --- -import { StatusLabel } from 'hds-react'; - import LeadParagraph from '../../../../components/LeadParagraph'; -import Layout from '../../../../components/layout' +import Layout from '../../../../components/layout'; import PageTabs from '../../../../components/PageTabs'; +import StatusLabel from '../../../../components/StatusLabel'; # Spacing diff --git a/site/src/docs/foundation/design-tokens/typography/tabs.mdx b/site/src/docs/foundation/design-tokens/typography/tabs.mdx index ffe4a5f040..6681f79f2a 100644 --- a/site/src/docs/foundation/design-tokens/typography/tabs.mdx +++ b/site/src/docs/foundation/design-tokens/typography/tabs.mdx @@ -3,11 +3,10 @@ slug: '/foundation/design-tokens/tabs' title: 'Typography tokens' --- -import { StatusLabel } from 'hds-react'; - import LeadParagraph from '../../../../components/LeadParagraph'; -import Layout from '../../../../components/layout' +import Layout from '../../../../components/layout'; import PageTabs from '../../../../components/PageTabs'; +import StatusLabel from '../../../../components/StatusLabel'; # Typography diff --git a/site/src/docs/foundation/guidelines/inclusivity.mdx b/site/src/docs/foundation/guidelines/inclusivity.mdx index 3345a2f8ba..f8f91d8ad1 100644 --- a/site/src/docs/foundation/guidelines/inclusivity.mdx +++ b/site/src/docs/foundation/guidelines/inclusivity.mdx @@ -4,11 +4,11 @@ title: 'Inclusivity' navTitle: 'Inclusivity' --- -import { StatusLabel } from 'hds-react'; import ExternalLink from '../../../components/ExternalLink'; import LeadParagraph from '../../../components/LeadParagraph'; import Image from '../../../components/LeadParagraph'; import InternalLink from '../../../components/InternalLink'; +import StatusLabel from '../../../components/StatusLabel'; # Inclusivity diff --git a/site/src/docs/patterns/cookies/basics.mdx b/site/src/docs/patterns/cookies/basics.mdx index cbf1609e33..a671b2c54e 100644 --- a/site/src/docs/patterns/cookies/basics.mdx +++ b/site/src/docs/patterns/cookies/basics.mdx @@ -4,11 +4,12 @@ title: 'Basics' navTitle: 'Basics' --- -import { StatusLabel, Notification } from 'hds-react'; import LeadParagraph from '../../../components/LeadParagraph'; import Image from '../../../components/Image'; import ExternalLink from '../../../components/ExternalLink'; import InternalLink from '../../../components/InternalLink'; +import Notification from '../../../components/Notification'; +import StatusLabel from '../../../components/StatusLabel'; # Basics diff --git a/site/src/docs/patterns/cookies/common-helsinki-cookies.mdx b/site/src/docs/patterns/cookies/common-helsinki-cookies.mdx index 892b28ef05..a49c604964 100644 --- a/site/src/docs/patterns/cookies/common-helsinki-cookies.mdx +++ b/site/src/docs/patterns/cookies/common-helsinki-cookies.mdx @@ -4,9 +4,9 @@ title: 'Common Helsinki cookies' navTitle: 'Common Helsinki cookies' --- -import { StatusLabel } from 'hds-react'; import LeadParagraph from '../../../components/LeadParagraph'; import ExternalLink from '../../../components/ExternalLink'; +import StatusLabel from '../../../components/StatusLabel'; # Common Helsinki cookies diff --git a/site/src/docs/patterns/cookies/using-the-cookieconsent.mdx b/site/src/docs/patterns/cookies/using-the-cookieconsent.mdx index 132926f36b..d8c9e39353 100644 --- a/site/src/docs/patterns/cookies/using-the-cookieconsent.mdx +++ b/site/src/docs/patterns/cookies/using-the-cookieconsent.mdx @@ -4,10 +4,11 @@ title: 'Using the CookieConsent' navTitle: 'Using the CookieConsent' --- -import { StatusLabel, IconCheck, IconError } from 'hds-react'; +import { IconCheck, IconError } from 'hds-react'; import LeadParagraph from '../../../components/LeadParagraph'; import Image from '../../../components/Image'; import InternalLink from '../../../components/InternalLink'; +import StatusLabel from '../../../components/StatusLabel'; # Using the CookieConsent diff --git a/site/src/docs/patterns/forms/form-building.mdx b/site/src/docs/patterns/forms/form-building.mdx index 00b9800907..eb83e58bba 100644 --- a/site/src/docs/patterns/forms/form-building.mdx +++ b/site/src/docs/patterns/forms/form-building.mdx @@ -4,7 +4,7 @@ title: 'Building forms' navTitle: 'Building forms' --- -import { Link, IconCheck, IconError, StatusLabel } from 'hds-react'; +import { Link, IconCheck, IconError } from 'hds-react'; import ExternalLink from '../../../components/ExternalLink'; import LeadParagraph from '../../../components/LeadParagraph'; import Image from '../../../components/Image'; diff --git a/site/src/docs/patterns/navigation/building-navigation.mdx b/site/src/docs/patterns/navigation/building-navigation.mdx index 8d61350b98..e15ec890a1 100644 --- a/site/src/docs/patterns/navigation/building-navigation.mdx +++ b/site/src/docs/patterns/navigation/building-navigation.mdx @@ -6,6 +6,7 @@ navTitle: 'Building navigation' import LeadParagraph from '../../../components/LeadParagraph'; import Image from '../../../components/Image'; +import StatusLabel from '../../../components/StatusLabel'; import { Breadcrumb, Button, @@ -13,7 +14,6 @@ import { Hero, Navigation, SideNavigation, - StatusLabel, Tabs, Footer, IconCheck, @@ -30,7 +30,7 @@ import { # Building navigation -Draft +Draft Navigation components are crucial as they help users navigate through an application or website seamlessly. diff --git a/site/src/docs/patterns/navigation/examples.mdx b/site/src/docs/patterns/navigation/examples.mdx index 8ece4dceb3..fb33a2fe6d 100644 --- a/site/src/docs/patterns/navigation/examples.mdx +++ b/site/src/docs/patterns/navigation/examples.mdx @@ -4,15 +4,16 @@ title: 'Examples' navTitle: 'Examples' --- -import { Link, StatusLabel } from 'hds-react'; +import { Link } from 'hds-react'; import ExternalLink from '../../../components/ExternalLink'; import LeadParagraph from '../../../components/LeadParagraph'; import Image from '../../../components/Image'; import InternalLink from '../../../components/InternalLink'; +import StatusLabel from '../../../components/StatusLabel'; # Examples -Draft +Draft Explore our collection of navigation patterns from the City of Helsinki's digital services. These examples demonstrate the effective implementation of user-centric design principles, resulting in accessible and efficient navigation experiences. From e9e55879d1c0c442bdd1d9d07fd045e2a226faff Mon Sep 17 00:00:00 2001 From: NikoHelle Date: Thu, 7 Dec 2023 12:59:30 +0200 Subject: [PATCH 07/59] (hds-1968) Strip

from Notifications Created a new component to site, that is basically a wrapper for HDS Notification. But it strips

tags from children. --- site/src/components/Notification.js | 20 +++++++++++++++++++ .../components/checkbox/customisation.mdx | 8 +++++--- site/src/docs/components/header/index.mdx | 4 +++- site/src/docs/components/header/tabs.mdx | 3 +-- .../docs/components/koros/customisation.mdx | 3 ++- .../docs/components/logo/customisation.mdx | 3 ++- site/src/docs/components/pagination/tabs.mdx | 2 -- .../components/radio-button/customisation.mdx | 3 ++- .../docs/components/side-navigation/tabs.mdx | 3 +-- .../src/docs/components/status-label/tabs.mdx | 2 -- site/src/docs/components/stepper/tabs.mdx | 3 +-- site/src/docs/components/table/tabs.mdx | 3 +-- site/src/docs/components/tag/tabs.mdx | 2 -- .../design-tokens/breakpoints/tokens.mdx | 2 +- .../design-tokens/typography/tokens.mdx | 3 +-- .../checkbox-radiobutton-toggle.mdx | 3 ++- site/src/docs/foundation/guidelines/grid.mdx | 2 +- .../guidelines/server-side-rendering.mdx | 3 ++- .../getting-started/contributing/design.mdx | 2 +- .../contributing/how-to-contribute.mdx | 2 +- .../docs/patterns/forms/form-validation.mdx | 2 +- 21 files changed, 48 insertions(+), 30 deletions(-) create mode 100644 site/src/components/Notification.js diff --git a/site/src/components/Notification.js b/site/src/components/Notification.js new file mode 100644 index 0000000000..334cb63bd9 --- /dev/null +++ b/site/src/components/Notification.js @@ -0,0 +1,20 @@ +import React from 'react'; +import { Notification as HDSNotification } from 'hds-react'; +import PropTypes from 'prop-types'; + +import { stripParagraphAsFirstChild } from './stripParagraphAsFirstChild'; + +const Notification = ({ children, ...props }) => { + return {stripParagraphAsFirstChild(children)}; +}; + +// listed only used props +Notification.propTypes = { + type: PropTypes.string, + label: PropTypes.string, + className: PropTypes.string, + style: PropTypes.object, + size: PropTypes.oneOf(['default', 'small' , 'large']), +}; + +export default Notification; \ No newline at end of file diff --git a/site/src/docs/components/checkbox/customisation.mdx b/site/src/docs/components/checkbox/customisation.mdx index 3df039b730..9c64d3c70e 100644 --- a/site/src/docs/components/checkbox/customisation.mdx +++ b/site/src/docs/components/checkbox/customisation.mdx @@ -1,9 +1,11 @@ --- slug: '/components/checkbox/customisation' +title: 'Checkbox - Customisation' --- -import { Checkbox, Notification } from 'hds-react'; +import { Checkbox } from 'hds-react'; import TabsLayout from './tabs.mdx'; +import Notification from '../../../components/Notification'; export default ({ children, pageContext }) => {children}; @@ -37,10 +39,10 @@ See all available theme variables in the table below. ### Customisation example - + ```jsx -import { Checkbox, Notification } from 'hds-react'; +import { Checkbox } from 'hds-react'; () => { const [checked, setChecked] = React.useState(false); diff --git a/site/src/docs/components/header/index.mdx b/site/src/docs/components/header/index.mdx index 611c735839..831d73e882 100644 --- a/site/src/docs/components/header/index.mdx +++ b/site/src/docs/components/header/index.mdx @@ -4,9 +4,11 @@ title: 'Header' navTitle: 'Header' --- -import { Header, IconBell, IconSearch, Notification, Logo, logoFi, logoFiDark } from 'hds-react'; +import { Header, IconBell, IconSearch, Logo, logoFi, logoFiDark } from 'hds-react'; import TabsLayout from './tabs.mdx'; +import Notification from '../../../components/Notification'; + export default ({ children, pageContext }) => {children}; ## Usage diff --git a/site/src/docs/components/header/tabs.mdx b/site/src/docs/components/header/tabs.mdx index 48188bba59..e6e4a4f0e7 100644 --- a/site/src/docs/components/header/tabs.mdx +++ b/site/src/docs/components/header/tabs.mdx @@ -3,13 +3,12 @@ slug: '/components/header/tabs' title: 'Header' --- -import { Notification } from 'hds-react'; - import StatusLabelTooltip from '../../../components/StatusLabelTooltip'; import LeadParagraph from '../../../components/LeadParagraph'; import Layout from '../../../components/layout'; import PageTabs from '../../../components/PageTabs'; import StatusLabel from '../../../components/StatusLabel'; +import Notification from '../../../components/Notification'; # Header diff --git a/site/src/docs/components/koros/customisation.mdx b/site/src/docs/components/koros/customisation.mdx index 5fcf6f2d50..9390ed3341 100644 --- a/site/src/docs/components/koros/customisation.mdx +++ b/site/src/docs/components/koros/customisation.mdx @@ -3,9 +3,10 @@ slug: '/components/koros/customisation' title: 'Koros - Customisation' --- -import { Koros, Notification } from 'hds-react'; +import { Koros } from 'hds-react'; import TabsLayout from './tabs.mdx'; +import Notification from '../../../components/Notification'; export default ({ children, pageContext }) => {children}; diff --git a/site/src/docs/components/logo/customisation.mdx b/site/src/docs/components/logo/customisation.mdx index 32872705f3..19b88be9de 100644 --- a/site/src/docs/components/logo/customisation.mdx +++ b/site/src/docs/components/logo/customisation.mdx @@ -3,8 +3,9 @@ slug: '/components/logo/customisation' title: 'Logo - Customisation' --- -import { Logo, Notification, logoFi } from 'hds-react'; +import { Logo, logoFi } from 'hds-react'; import TabsLayout from './tabs.mdx'; +import Notification from '../../../components/Notification'; export default ({ children, pageContext }) => {children}; diff --git a/site/src/docs/components/pagination/tabs.mdx b/site/src/docs/components/pagination/tabs.mdx index c450ee7be9..8671ebb673 100644 --- a/site/src/docs/components/pagination/tabs.mdx +++ b/site/src/docs/components/pagination/tabs.mdx @@ -3,8 +3,6 @@ slug: '/components/pagination/tabs' title: 'Pagination' --- -import { Notification } from 'hds-react'; - import StatusLabelTooltip from '../../../components/StatusLabelTooltip'; import LeadParagraph from '../../../components/LeadParagraph'; import Layout from '../../../components/layout'; diff --git a/site/src/docs/components/radio-button/customisation.mdx b/site/src/docs/components/radio-button/customisation.mdx index e667938d5f..3f32330960 100644 --- a/site/src/docs/components/radio-button/customisation.mdx +++ b/site/src/docs/components/radio-button/customisation.mdx @@ -3,9 +3,10 @@ slug: '/components/radio-button/customisation' title: 'RadioButton - Customisation' --- -import { RadioButton, Notification } from 'hds-react'; +import { RadioButton } from 'hds-react'; import { useState } from 'react'; import TabsLayout from './tabs.mdx'; +import Notification from '../../../components/Notification'; export default ({ children, pageContext }) => {children}; diff --git a/site/src/docs/components/side-navigation/tabs.mdx b/site/src/docs/components/side-navigation/tabs.mdx index 347c746441..9046750ede 100644 --- a/site/src/docs/components/side-navigation/tabs.mdx +++ b/site/src/docs/components/side-navigation/tabs.mdx @@ -3,13 +3,12 @@ slug: '/components/side-navigation/tabs' title: 'SideNavigation' --- -import { Notification } from 'hds-react'; - import StatusLabelTooltip from '../../../components/StatusLabelTooltip'; import LeadParagraph from '../../../components/LeadParagraph'; import Layout from '../../../components/layout'; import PageTabs from '../../../components/PageTabs'; import StatusLabel from '../../../components/StatusLabel'; +import Notification from '../../../components/Notification'; # SideNavigation diff --git a/site/src/docs/components/status-label/tabs.mdx b/site/src/docs/components/status-label/tabs.mdx index c9e9caabbe..ba8de0058d 100644 --- a/site/src/docs/components/status-label/tabs.mdx +++ b/site/src/docs/components/status-label/tabs.mdx @@ -3,8 +3,6 @@ slug: '/components/status-label/tabs' title: 'StatusLabel' --- -import { Notification } from 'hds-react'; - import StatusLabelTooltip from '../../../components/StatusLabelTooltip'; import LeadParagraph from '../../../components/LeadParagraph'; import Layout from '../../../components/layout'; diff --git a/site/src/docs/components/stepper/tabs.mdx b/site/src/docs/components/stepper/tabs.mdx index 6471a6a15e..430aa37750 100644 --- a/site/src/docs/components/stepper/tabs.mdx +++ b/site/src/docs/components/stepper/tabs.mdx @@ -3,13 +3,12 @@ slug: '/components/stepper/tabs' title: 'Stepper' --- -import { Notification } from 'hds-react'; - import StatusLabelTooltip from '../../../components/StatusLabelTooltip'; import LeadParagraph from '../../../components/LeadParagraph'; import Layout from '../../../components/layout'; import PageTabs from '../../../components/PageTabs'; import StatusLabel from '../../../components/StatusLabel'; +import Notification from '../../../components/Notification'; # Stepper diff --git a/site/src/docs/components/table/tabs.mdx b/site/src/docs/components/table/tabs.mdx index ffd5a8a823..90f73d933c 100644 --- a/site/src/docs/components/table/tabs.mdx +++ b/site/src/docs/components/table/tabs.mdx @@ -3,13 +3,12 @@ slug: '/components/table/tabs' title: 'Table' --- -import { Notification } from 'hds-react'; - import StatusLabelTooltip from '../../../components/StatusLabelTooltip'; import LeadParagraph from '../../../components/LeadParagraph'; import Layout from '../../../components/layout'; import PageTabs from '../../../components/PageTabs'; import StatusLabel from '../../../components/StatusLabel'; +import Notification from '../../../components/Notification'; # Table diff --git a/site/src/docs/components/tag/tabs.mdx b/site/src/docs/components/tag/tabs.mdx index 7e1fcc07f4..3a00e13872 100644 --- a/site/src/docs/components/tag/tabs.mdx +++ b/site/src/docs/components/tag/tabs.mdx @@ -3,8 +3,6 @@ slug: '/components/tag/tabs' title: 'Tag' --- -import { Notification } from 'hds-react'; - import StatusLabelTooltip from '../../../components/StatusLabelTooltip'; import LeadParagraph from '../../../components/LeadParagraph'; import Layout from '../../../components/layout'; diff --git a/site/src/docs/foundation/design-tokens/breakpoints/tokens.mdx b/site/src/docs/foundation/design-tokens/breakpoints/tokens.mdx index 4c4855b57f..c3e66879b9 100644 --- a/site/src/docs/foundation/design-tokens/breakpoints/tokens.mdx +++ b/site/src/docs/foundation/design-tokens/breakpoints/tokens.mdx @@ -3,7 +3,7 @@ slug: '/foundation/design-tokens/breakpoints/tokens' title: 'Breakpoints tokens - Tokens' --- -import { Notification } from 'hds-react'; +import Notification from '../../../../components/Notification'; import TabsLayout from './tabs.mdx'; diff --git a/site/src/docs/foundation/design-tokens/typography/tokens.mdx b/site/src/docs/foundation/design-tokens/typography/tokens.mdx index c99f809aef..e78b37f923 100644 --- a/site/src/docs/foundation/design-tokens/typography/tokens.mdx +++ b/site/src/docs/foundation/design-tokens/typography/tokens.mdx @@ -3,11 +3,10 @@ slug: '/foundation/design-tokens/typography/tokens' title: 'Typography tokens - Tokens' --- -import { Notification } from "hds-react"; - import ExternalLink from '../../../../components/ExternalLink' import Playground from '../../../../components/Playground'; import TextExample from '../../../../components/examples/TextExample'; +import Notification from '../../../../components/Notification'; import TabsLayout from './tabs.mdx'; diff --git a/site/src/docs/foundation/guidelines/checkbox-radiobutton-toggle.mdx b/site/src/docs/foundation/guidelines/checkbox-radiobutton-toggle.mdx index 1c841d5946..c96adb62ee 100644 --- a/site/src/docs/foundation/guidelines/checkbox-radiobutton-toggle.mdx +++ b/site/src/docs/foundation/guidelines/checkbox-radiobutton-toggle.mdx @@ -4,11 +4,12 @@ title: "Checkboxes, radio buttons, or toggles?" navTitle: 'Checkboxes, radio buttons, or toggles?' --- -import { Notification, Checkbox, RadioButton, ToggleButton, SelectionGroup, Link } from "hds-react"; +import { Checkbox, RadioButton, ToggleButton, SelectionGroup, Link } from "hds-react"; import ExternalLink from '../../../components/ExternalLink'; import LeadParagraph from '../../../components/LeadParagraph'; import PlaygroundPreview from '../../../components/Playground'; import InternalLink from '../../../components/InternalLink'; +import Notification from '../../../components/Notification'; # Checkboxes, radio buttons, or toggles? diff --git a/site/src/docs/foundation/guidelines/grid.mdx b/site/src/docs/foundation/guidelines/grid.mdx index 1ffdcf5d59..f9ee8f686e 100644 --- a/site/src/docs/foundation/guidelines/grid.mdx +++ b/site/src/docs/foundation/guidelines/grid.mdx @@ -4,10 +4,10 @@ title: 'Grid' navTitle: 'Grid' --- -import { Notification } from 'hds-react'; import LeadParagraph from '../../../components/LeadParagraph'; import Image from '../../../components/Image'; import InternalLink from '../../../components/InternalLink'; +import Notification from '../../../components/Notification'; # Grid diff --git a/site/src/docs/foundation/guidelines/server-side-rendering.mdx b/site/src/docs/foundation/guidelines/server-side-rendering.mdx index a043f4eace..bceeb1f78e 100644 --- a/site/src/docs/foundation/guidelines/server-side-rendering.mdx +++ b/site/src/docs/foundation/guidelines/server-side-rendering.mdx @@ -3,8 +3,9 @@ slug: "/foundation/guidelines/server-side-rendering" title: "Server-side rendering" navTitle: 'Server-side rendering' --- -import { Accordion, Notification } from 'hds-react'; +import { Accordion } from 'hds-react'; import LeadParagraph from '../../../components/LeadParagraph'; +import Notification from '../../../components/Notification'; # Server-side rendering diff --git a/site/src/docs/getting-started/contributing/design.mdx b/site/src/docs/getting-started/contributing/design.mdx index 0df8024ec9..a9fb6d0541 100644 --- a/site/src/docs/getting-started/contributing/design.mdx +++ b/site/src/docs/getting-started/contributing/design.mdx @@ -4,10 +4,10 @@ title: 'Design' navTitle: 'Design' --- -import { Notification } from 'hds-react'; import ExternalLink from '../../../components/ExternalLink'; import LeadParagraph from '../../../components/LeadParagraph'; import Image from '../../../components/Image'; +import Notification from '../../../components/Notification'; # Contributing to the design diff --git a/site/src/docs/getting-started/contributing/how-to-contribute.mdx b/site/src/docs/getting-started/contributing/how-to-contribute.mdx index d0824662ad..c12af318ed 100644 --- a/site/src/docs/getting-started/contributing/how-to-contribute.mdx +++ b/site/src/docs/getting-started/contributing/how-to-contribute.mdx @@ -4,11 +4,11 @@ title: 'How to contribute' navTitle: 'How to contribute' --- -import { Notification } from 'hds-react'; import ExternalLink from '../../../components/ExternalLink'; import LeadParagraph from '../../../components/LeadParagraph'; import Image from '../../../components/Image'; import InternalLink from '../../../components/InternalLink'; +import Notification from '../../../components/Notification'; # How to contribute diff --git a/site/src/docs/patterns/forms/form-validation.mdx b/site/src/docs/patterns/forms/form-validation.mdx index 70b92b9331..4cabc8c552 100644 --- a/site/src/docs/patterns/forms/form-validation.mdx +++ b/site/src/docs/patterns/forms/form-validation.mdx @@ -10,12 +10,12 @@ import { ErrorSummary, IconCheck, IconError, - Notification, TextInput, StatusLabel, } from 'hds-react'; import LeadParagraph from '../../../components/LeadParagraph'; import Image from '../../../components/Image'; +import Notification from '../../../components/Notification'; # Form validation From 6865a53f2a21c765f19eaba6f26fc337401f22c8 Mon Sep 17 00:00:00 2001 From: NikoHelle Date: Thu, 7 Dec 2023 13:39:12 +0200 Subject: [PATCH 08/59] (hds-1968) Fixed terminal error related to mini-css-extract-plugin Error message listed hero and breadcrumb mdx files having wrong order of css files compared to others. Error: Conflicting order. Following module has been added [list] despite it was not able to fulfill desired ordering with these modules: [list] couldn't fulfill desired order of chunk group(s) Fixed by re-ordering component imports . --- site/src/docs/components/breadcrumb/tabs.mdx | 2 +- site/src/docs/components/hero/tabs.mdx | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/site/src/docs/components/breadcrumb/tabs.mdx b/site/src/docs/components/breadcrumb/tabs.mdx index a1302c2d29..4717d5b42a 100644 --- a/site/src/docs/components/breadcrumb/tabs.mdx +++ b/site/src/docs/components/breadcrumb/tabs.mdx @@ -3,10 +3,10 @@ slug: '/components/breadcrumb/tabs' title: 'Breadcrumb' --- +import StatusLabelTooltip from '../../../components/StatusLabelTooltip'; import LeadParagraph from '../../../components/LeadParagraph'; import Layout from '../../../components/layout'; import PageTabs from '../../../components/PageTabs'; -import StatusLabelTooltip from '../../../components/StatusLabelTooltip'; import StatusLabel from '../../../components/StatusLabel'; # Breadcrumb diff --git a/site/src/docs/components/hero/tabs.mdx b/site/src/docs/components/hero/tabs.mdx index e1f7a6eeaa..177eb4fd39 100644 --- a/site/src/docs/components/hero/tabs.mdx +++ b/site/src/docs/components/hero/tabs.mdx @@ -3,10 +3,10 @@ slug: '/components/hero/tabs' title: 'Hero' --- +import StatusLabelTooltip from '../../../components/StatusLabelTooltip'; import LeadParagraph from '../../../components/LeadParagraph'; import Layout from '../../../components/layout'; import PageTabs from '../../../components/PageTabs'; -import StatusLabelTooltip from '../../../components/StatusLabelTooltip'; import StatusLabel from '../../../components/StatusLabel'; # Hero From aad40a6b90dfd8519299e5766c37ccc599c0bf0b Mon Sep 17 00:00:00 2001 From: Github Actions Date: Wed, 20 Dec 2023 09:55:01 +0000 Subject: [PATCH 09/59] Updated icon library --- packages/core/src/icons/icons.css | 2 +- packages/react/src/icons/index.ts | 2 +- release/hds-icon-kit.zip | Bin 803135 -> 803128 bytes 3 files changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/core/src/icons/icons.css b/packages/core/src/icons/icons.css index 8484586dd8..295859d152 100644 --- a/packages/core/src/icons/icons.css +++ b/packages/core/src/icons/icons.css @@ -168,7 +168,7 @@ @import url("trash.css"); @import url("traveler.css"); @import url("twitch.css"); -@import url("twitter_old.css"); +@import url("twitter.css"); @import url("upload.css"); @import url("upload-cloud.css"); @import url("user.css"); diff --git a/packages/react/src/icons/index.ts b/packages/react/src/icons/index.ts index e21d5e8dd0..8e4cd43660 100644 --- a/packages/react/src/icons/index.ts +++ b/packages/react/src/icons/index.ts @@ -170,7 +170,7 @@ export { IconTiktok } from './IconTiktok'; export { IconTrash } from './IconTrash'; export { IconTraveler } from './IconTraveler'; export { IconTwitch } from './IconTwitch'; -export { IconTwitterOld } from './IconTwitterOld'; +export { IconTwitter } from './IconTwitter'; export { IconUpload } from './IconUpload'; export { IconUploadCloud } from './IconUploadCloud'; export { IconUser } from './IconUser'; diff --git a/release/hds-icon-kit.zip b/release/hds-icon-kit.zip index 44e96ae514dbfbf8aa151e502cdd28e7d3a28df3..085c7831846b485feda0412d09fe1cf8beb6664e 100644 GIT binary patch delta 58420 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%0A`;4lbIeg#%HKSjw_OKx-vp z_1>cnII_yUysS2{l)!|tw4%i5oSc9Ia2cu25TYfmF0subFLAbL$rUTk{|MJwwPLg+ zhsO|>=%$9ImPt(v6@a-KlhLxfX<$<<^EZ7>eY#TBBJOyQf{Tzc|BI*Z^J>n0Yz&5D zYeFAl>a(Phn%fRlg1&n%;MS^X>-oY{YgGoy!G**IIl!L%v(V9YkI7mOS@l@A#WZO` zabzXC-{q|5<9lCju|rGB$=qGtf#JW5C&ub5%H3jJXNrDrY|x{@w@}hMHUXjja^gB* zc{#EkjU0Gr9Z2R@RbySHl|5&-U6N~2dD5PlFC$F9rvxP zL+DLA34D2HIe9*TW1Pa}ors8)!bc3_RV>s{EG(f_d`2hbExqse5Pw7`QU6()$c?Ij z7HaP$929+4yzvwV_xgcC@=F`AzX!k@_Yw5~4|OCh=3wvrM2%S@mEGe3T?p;)&a8K? zLf}eBukx&T*8yVLu%<=1uXj*Qu*^S1!7xS-7A$+cbSnNGW{83(%f3@LjaZ5`(d(M( zeAnNTcQm84C!V?~gz&Ez4t6|B*2hZ6HiYICuk*@9%aJw?(3`n>soCkk_JW{)5S*H$ z`*L=g%f@=C+3AQETF*UB!eOo=eYz*)^YsSCsw~p<=`4AzCN#r_CSB$8QeO-K*+ILU zCdSh-0n$&=1X=Zc`{wweTQ5N>ll^dp$nKpfhipbw|LIjhwja?!o~t!GOJwTDB)7T^pH&b>X}%>yUdYjYFXSUmOhT1qmbFH=8t^JI*Lv#Qb0AW=;U9b$!!@+Do;vssad7BU z5(&$Eaoe3VqYxtb)d$+eXM_gVz_+bxFcx@AIbP_$gqK!djfxLA_^sC@jCTXob%GlJ zeAK`~{4fECYM{!xn}df`ATX+TD^q*7h5*0sKwxZBTUfV-suNXz{B+*~1fLdgBzaMO z#YlwP8tQ}=uCeB)&GS3KE%LC(B0FA9N1`#ltp?4uZ$p;7_J;nM0rNE6)8v9zTg>`5&?C?+i7>-vJg2}<6Rb`@ysO)6Bdd}fouelRO ziLY)hA>279s{Oq#;2H^cmZzxmS+JivMZNO#o33vF^N^d0U8g#=(6_pilrBW)i~S(O z)S85W&f5-v!T!L=@+6EHe|7S3goB@X6Bw#-WX1lv04Ex0+z2>5djy11&{v2}?C^~RO-JSG4v`!^skLcBHN3e|f4vL#|ERJ#HOle5W>>~VlD zNec6RZn6x20PJMs0{N8xYG2+0jsf^ON&A+fk-Sky-{&doA>3P@3;oVg0@cv)Di9J6 z3LuG5vD_-LkilA{Tn&k@0|iax36n-ln1GTZYA6u0ghn^p`jX3nF37$#4P~-bU($-2 zLvnd*@(i}x0x{hm*hJ^8LO|axuips-z9aIwJd^0%k~$?SacAiXg>$@af{y36CY*q# zD&L`f4zA}~bg~%*_u3MTPdnMKg*YK4o;xalY$imKCt%_2iA;q2mrd1Z;P(#1$?8Bj zB^{iksfZ9bnq#zmmoP+TzSqw|iqb;m?)6-Lst*ZVAh?{wRx!6`>RjJiZe2ByTNi2x zL(iT?H&f$qYBNaV9z;0z^kAWf?#8o|_;l+g3@__paaW@GsJTw%qJuM^2u1dv*+NzSt`=avz7OG))ozz; zAe0;PJiUM~$Ty-}avFHfnzXdgeNftN>y(yY+N(b?-QH5CLZPEAMN=2LfY}1LuB@Z^ z1BoWNv!erZMm={qaJ6d%z7Gcx4$8e-SHMD#>p1wz5Xw6_t<<-J_V}?43zCzU@_TzxDus6-D5kQRPIMgB;_p z*@SVwz3N|H9V|8RA$jW#)`aTArgp&cHfWv`>zwI?dD}cESC-nrLf_e4=LCb;i!uV- z$>PJ>bp*k>#ZIhA3%ngoNp^BzR~9=tvFRO4sS-O{YQA}SsS_L9+Th8qbhKz6Wcn~u zClE(2FNL9!qbu85$=rZV?qsQ9IJ}A^-_ptQj&Q@PozS26;^?WRb19=5oh?2N?rX7< Hc;o*7euGd4 delta 52095 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 From be7ba7a6f626cca433c1d3684e43f8bd89c533fb Mon Sep 17 00:00:00 2001 From: Tuomo Kivinen Date: Wed, 20 Dec 2023 10:50:35 +0200 Subject: [PATCH 10/59] ((no branch, rebasing HDS-2049) (HDS-2049) enable using TextInput as a simple search field with a clear button. --- .../src/components/text-input/text-input.css | 11 +- ...7_Components_TextInput_As_search_input.png | Bin 0 -> 6747 bytes ...put_As_search_input_with_default_value.png | Bin 0 -> 10321 bytes ..._Textfield_used_as_simple_search_input.png | Bin 0 -> 6486 bytes ...p_Components_TextInput_As_search_input.png | Bin 0 -> 2938 bytes ...put_As_search_input_with_default_value.png | Bin 0 -> 4469 bytes ..._Textfield_used_as_simple_search_input.png | Bin 0 -> 2818 bytes .../components/textInput/TextInput.module.css | 16 +++ .../textInput/TextInput.stories.tsx | 50 ++++++- .../components/textInput/TextInput.test.tsx | 116 +++++++++++++++- .../src/components/textInput/TextInput.tsx | 110 +++++++++++---- .../__snapshots__/TextInput.test.tsx.snap | 52 +++++++ .../internal/input-wrapper/InputWrapper.tsx | 130 ++++++++++-------- .../docs/components/search-input/index.mdx | 1 + 14 files changed, 393 insertions(+), 93 deletions(-) create mode 100644 packages/react/.loki/reference/chrome_iphone7_Components_TextInput_As_search_input.png create mode 100644 packages/react/.loki/reference/chrome_iphone7_Components_TextInput_As_search_input_with_default_value.png create mode 100644 packages/react/.loki/reference/chrome_iphone7_Components_TextInput_Textfield_used_as_simple_search_input.png create mode 100644 packages/react/.loki/reference/chrome_laptop_Components_TextInput_As_search_input.png create mode 100644 packages/react/.loki/reference/chrome_laptop_Components_TextInput_As_search_input_with_default_value.png create mode 100644 packages/react/.loki/reference/chrome_laptop_Components_TextInput_Textfield_used_as_simple_search_input.png diff --git a/packages/core/src/components/text-input/text-input.css b/packages/core/src/components/text-input/text-input.css index f6ed82ca70..f93ea505da 100644 --- a/packages/core/src/components/text-input/text-input.css +++ b/packages/core/src/components/text-input/text-input.css @@ -62,6 +62,15 @@ will-change: transform, box-shadow; } +.hds-text-input:not([data-hds-textinput-filled]) .hds-text-input__button-clear, +.hds-text-input__input-clear::-webkit-search-cancel-button { + display: none; +} + +.hds-text-input .hds-text-input__button-clear > * { + pointer-events: none; +} + /* text-input transitions */ .hds-text-input .hds-text-input__input:hover { border-color: var(--input-border-color-hover); @@ -297,4 +306,4 @@ .hds-text-input__button:focus { outline: var(--outline-width) solid var(--color-focus-outline); -} +} \ No newline at end of file diff --git a/packages/react/.loki/reference/chrome_iphone7_Components_TextInput_As_search_input.png b/packages/react/.loki/reference/chrome_iphone7_Components_TextInput_As_search_input.png new file mode 100644 index 0000000000000000000000000000000000000000..0b4414d368c47a047c745232ed7a69985e322323 GIT binary patch literal 6747 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 Ht9Skh!c>c! literal 0 HcmV?d00001 diff --git a/packages/react/.loki/reference/chrome_iphone7_Components_TextInput_As_search_input_with_default_value.png b/packages/react/.loki/reference/chrome_iphone7_Components_TextInput_As_search_input_with_default_value.png new file mode 100644 index 0000000000000000000000000000000000000000..8789d9c951f0d6bbe86bf130ba751092610ddecb GIT binary patch literal 10321 zcmdsdWl)vjx9?U$Bt$v{loToHE=fT|x+MgpyBm>GL_|PJQjpk`bc3W40+P}V0us`F z*7kqD+?hLbXU>Q7;p}1D$d31U*R$68#d=<;D9htvQ(_|!2t0*{GHM9K)gt&k7Yh^q zr4_Q}hNmkoYVuNuq90Vh;XmjuQVJSa@bJYl3r8UCAQWUCXn217Gv%eBv9utuEx;1Q zYRYks3L{I27=xFWkA$0x6@xoo1D&nHkzzoDSmJB0x!!WDzIDgL#Jnuih@|Lw!kU+_ zlkN$g^cE^%s-YPyA6~QAblBXWzv;4bF5Ky|Jbl{Zl13reDbVLfN|vIWgGK<4=oqBx zFy0+Hc$8jy$%^`u!qxxwGcx7s)vL2hOBna>->=^v(bt@!Dvg=zv-`XF9e#ytuv{zq zx<6Ut@=!tHfv2b7+4=e0pFfc|sD+LD(;w*6dvb9Y)?1d%k z@@#z-9v;3rK!;tFot>Q^=EE-~E&auN-}3u_70fDN^*@c@BVO2Lq z^ie*W5v;pnVq!bzhcgRt+J+AzNZDtXmqSMi_36dMY3e+-;s;HNm;ICpM30~W={*7Cd0`_kzY(}M+Vy>_7 z+l>cHT%MJ^Pgc|rhl>`hF~J&Cg@zEu+~3!Vn=VREJ~KT|y2H;;ih!*PfzM^?mOanp zuKW{*WXu- zjEu@1W@zp=opFC)*MIILmE7R|XFP<l!cRbvDTDHY=Cd9zRB$YEr%g0C3;BzRq zK2k_PN*d~SdZ62I_?B9P^LY=s==t8@_Rh`&Nl8Q~E=AD(`sl)RgAcz%6%xscn7zE% zx_k!-)7&hHx&i|OI?wZ-<~UYu+mQzld(BQ+ZA^cE|CXKrGBPqY-BNT_RaMfNgyiIi z$I1LA5P@9%s-o}vfq@8OVqydW^9EHo39FV){l&qA!za6mN^%i*HX2b+W3|zGuicwu zWMOIkC)Z6o-^yB9h*(oj(Xwg*LzCaCWrA%+B7vHjI=tw;m~Y6?scw zKG7nTAmu(Yb2HRabX=VIPUFSJg-(MvpRb=E`?SYowG$Q|o~(fZ)$53e$7`M&Uph;y z2ALpZM&|t>Uvt-n5M4pmmlx+DF~TV~h?ta`S&Qp~iW^T9kD_K&U;~J;Lw@zIF~!g0BW0+)ijZS7qgbQF`l z)q&^Itcb~aFQT2D9nt`N=uNrS*JH|{uWXN*M!n*IJ-s>j`LT58TWSIdidRp>kI^Y3 zKeyb9{_p`aQ7N>%oOf|)$pk_{&S@Oz*Z`X+9g6!vLE$>2%uCq+xuHCDopMWp$*HLj z=ZPwZDoTTqVxy>_psO;nvL;pEP63HX~eX+Cy7HEGb`|BYKkToXfC;OSTcs_#A7F<-1|5k2|SJ)&7I?-*; zG~uUjM4uMumi=pQOG{Ab{*qPpQ^9|)-JmKt8M}ml%dPxKfdmMNx%(vZNt$>|#mj5> z^9O$>T6Rvinxde_u{-<3PuVIRX5OBi`BDiwO73aQcEzzizl*(QH(q`nc7LnkkjB}? zB^oMasXIQR!zNA4XJq*u2DI9II$<=pz+gyN*t)2gSm8xPczD0vSjhtqsOl8PKND4C zT}{W!$y&ue-rj4arKK{Xj~+d8o2qpqilgAOj#UubYPxL9?STaqPT!@a{c7uD6magQ zS_7*bKlieqs?FX#JR~bB*7?%1A@=sRM3K#}((Lv=+wVIIorV5#0E{957xn$2IjP=? zIcj+<1%3(&3Yn+HMorU;4IZ151b*_+=Q7tjB*IYlI;xy1dau^~_^&y9a&W5NOMSG~ z&1TNm)3drLD@#UW3$E)5B_~Azm^cN!gKgRa7RzKeQ)!o++vBs*WYSKr>FY3bz%6o<)oyp0^B(*ev5Vvvj_+XP>rHi89|PgSv(o25t#OD zU2K32C8E~%iT$&-_WDF6N-21`QK?_ zx3$@w&f8>f3+=jvk&}94$m;cAh}fmId^dHGgVgaP#)<`}y5J z(aV;5lTBCqGngQOF1$?UNf8FMuHT!5+nk|{g0Q(>i>4J zV&ULO$1pucAfPkl#vZr&oF*$Yb%^KMXhiuFcP^SM5`yYeRW2A-yvJg|xON%B|ER zMse4d7uleUR~QsSfesx(#Cl0>fdR?ArFzwyEMN+KG1E;S2OB$G3&~oQP11Z6UH1hO zj}ohxTGwIU#Ao%*Xk&$@I{=pF<@q77L-tyrQuo*ls&786b8qiSoL$qLF?;G_H zD1yLd)JO$ezy+-@>;>92JwJ8mt6zMNo$F85kS#*;@gDiu0hi}h!|S0}iv7<|+(&J6 zDxuvyeDuhr-pSq3%}v(Tl{fR#C#RD=D>E}QkuMvb=49T07gc}Z$EzUiyU|Az|~|IFt#RZ)V&G|?o@WfQgYOpZARBI zvg?)KG@QV;U!suk0^B;gINd@70-ZAXnWdnD97Zh>N<7$^?7m?eP)pVVKj6=hclkH< z&d<(DoEGHFEG$fq|1JU5AQu%CmC2~2Bd(Lu}z=0SZ z^97cEXAgZJ6I1w>1f$El8TaLDlW&e%(6}ncTs(gNWK_)^?8~g`1TN2B-{^l{JKX;F z8Xje^)!^q}8xMG0p){2exiNs2wdZRhm5Kx$rm1$9ds`tp89ok11r&xKn46owy5KzC zDC_J0B#$2>e-Ro}#v%nM5i*KTBU(~@McUq;!+x^*1@u08Uf!W1iF#lh5527s%?Vtl z{Us*Sb7s$2w?gkb;bjfB;Gd;-PTad39LD@*qC z=g)rN?pZlG3xJa-=7mx!(6zOV{78&^cS2P7fqRO1?;SblU%W$I8=49h=K-9Hkk8-Ebhy&sY4VrB@=+B7AM#TR7uRYU5|~8osE*XXl{E&^u=XG zIYS9@otknP#hZW9vW1ZVF9J+D+X}cO^49D7C`6CVv+U{ZJsUI_Z1 zRrhzieh0DBO2NR`y)BUth1JF#ty3iT>b1OUm({%y&bnHYO+Yy|tpLB4v< zjmG2UTdrHvQ`SO&fVSi13WTPGfS{{$3AU2`u<>UAz(-5*M%$3%cSJ;P#dADufy7WP zHWY){W`ZWjw3EzcU}M7tc^Rsf*VZR-`37huFVq~|wXCnNZw(Dkw;8wZ`Tpq9@0_#} zuifWVLeA&{_LGvZtnI~^Cn!10#l@BBl>C-l%$pYzmpl+eBxPb^;t?oWRUI8H0Re%d zlau+Hl~idZr8n){TB!$ao0Amq&?z;$&dtNK10*05>K_Xix2@V~;U*#BRVXHu@Rg9b z?d9dgeDB_uYO6qcfX`r*l7d$L@W~T-cX$2^AofFr`eaYU_K8t)YOXa*`&$E)(>Jf0 zRhDO*nM62PST{)*Z-WevRWv85f|tU>X+n?VW>5}7_($CTkGCOJVWb&|dT0K%gK9#+ z=4b}a|KaB$HD+SXDNKkn9bNL+f+8fH%=_lq|NB{``$)#w*;%vvC2Fw`+dMf)eGE{y z_>hqNfBCburW+dSrgP_Qr)o)nq)|p<>J^d-2?-$r)6?&KGvhuwI=aKnjoLlUNwrR{ zfBUEKQSQ?Vsf<895Pe8KeYxAlS0uC59x%nw!aF0#?uRNdofaqQaZs^HLcEpl-o1Mb zJLD=b46GYBLL(v~R*f7TIWsde(^Z&dUTmmlsW9K9qQZ?+H0LT$`ZR2vp_VthzK#8Z{J8KSpXHWp#9P zLNE?t=^N7x6M5c7k!XDX_A*z|szR@=z5VOxD4AmR&$)i=*bu{Pwd>%Qz+Z)ic9~`2 zrnmR^`EKboG&Io0cYiVOCI$GG&KZ0Fz6Ue_{Yu*x1{`5kRaMe%!Z`mjS~X4;IUGmG zYtBufrmhb9R5xQ^7_CqX2fj9Dt7l^37A!tIGO_|m6Q>vw8%u0Z@2To)$P@$Eg`+&M z+eM=dcjS!i=fv(Sb5X($f)erS0u)&b%ktYPxuxYM(S%9@8v!wzWwX zYDs9|=P5D0)GL&O9<=JKtb9XFO|5HiNb&2xO1jLet`^K4wvO3_O_D0kpr=)WQ~(c* zGO}aio&32Ydfwm@LmpxR0+R!LgnXU`OHAr0;Mv&ks}lcO$hk#Nh!#FRK7<=gm286r z7F0mh)ZV3}*!?`s*Fti6{ap+znxM$a$_fw4s;cq`3Dy#eQ)Emk&mOi;*%XOUa%5*` zFI;1aedIOKWYI^1a>&3^If5R`lB+o!HWVNMtqa4tVw}Me0~1r~(?EFW)mUv6m7Bbj zcvsQTWLNed*(nS|+m!8G!aM2M`#Li&hD>4zT1S~%&)UNC?K`BA;Rkma8RuZ-lB%i% zq-;8Y5*J6Gg7ohCsa>Amq4OqQjj!ikoSS>m)6=7v*uW9<{as?B)z4j);q1~k9&LXQ z4%{v2J~Y5?J@$T@a&JS#&5@mhqXWe_MvVffM~jV$*Omnf=q8E>Uum(wjEHztvxdBp zb#eMYW{){h)T@-)Q}emy@L-s>^pB&X37U?%FWm9R+(i>dA_a=d)CLaV+HN(T7Ud`J z^s|(n1MzzqA5TWfYZ(am@U^=eDYX{Iop>jEh^KVHWT*tv_1woTvO98cgL!Biq z)6~JiA)+C*gO-<%Z`gY3AT~|Zi#t}45gP|b){fggo`=U)Bv5f`WTe`D!AF}hXVZxh zvi^6Ohg!4~R>knHwS!lp(sM#J*z9Qbj)qhcp~T(P%93tj*6D~{>z-Ofd>D*6Q; z_7K%aE0HU~I<+}+pPcd~lr80O9(OQ0RT0J+}W*M|?*_oiK%10_A_^4kJ$@9izHXGh&iQzbZ4Ijk?Z`1S_LdZPaWBdLDkX; z3sbg+;dg>5-~@0mN()?T0E`WwsXw1l0~PSRI9}m$Thl;^DGUsZ>VQje zxWn!4`%RJ=D(RrO$4X3E1CG9LXamO~CL=RF+MWxKit3D}mv=lpu!FzQ-@lKK)GCw$ zUF$U4e5G!E@V9G%xSud4KFu2t>Y2H@4|5%sy5djU>BiCk%k5_B%XPN0l0S{AzlIvO*UW!vkjKz zcyZ>1bR#AuebyCw&l5bauHoe_l_r0`w$4sd7*UXR6O)jj?8Iv4rPsYD;I>{1k$M4K zP?rtm+k)DD)|1(Q0(v`FpO%*9Xn5%W&SK^v69WU*i!uVLK)5A^aGyeQ~2kN$Ue7o}amS-@F>a{6NXi#vJ$X|>}Oq;|0!_(FhFAzSn! zA`^?JD$K;-znW$Hax@Dy8o>xE%_$1m(BSc*1yhsJ!Xxxwr^p{f|lnKA53 z;==)>I5;is_T=PbKiCyu>Z1D`Zps2p4t55#2Y2rnUp(6ne3ol~hPE?})F@*XEcLnN zWmIV}$0-hQs2`loL))SNi|7Fig+4z?pQS)lHi|p? zgO!=NMCi*JME{|Zk_>3%UPFhm5?ZYS9a>)xU0q#4pMwqQ%8$U9#iM?5yoXX{kYpi# zjXl+_9M>8VY|@Do9sg6?I14?u2SZ zAnq!ETgbWXxffK}#hZAw(yFljX_d8yo_vi}JnXw> z_%OJN`C~I|?G_R|3WOmhyPN4r>V^g@He#5e+OWyL!C*_kw`U7N0~aRzBp-!JaNspB ze-Gx+3ks5hG22?V)flnR85LjkJuV-dGXC!Bnwsmypiqn}Hi({xnvDA4b^lsxXQa!N zZ*65;Ftgi7$ZOr=d_K9LmpJiRi`1p=Ezl3(Qes0TR|>Tvz$T5^DFw;OBv$_;T@QUU z;Nm#PV9Q~$`pfFr)D$&17wxe9FzG}<$|58|lYh8x^p?!XmjLBCd3)EkXP^(i5_>?- zd`m4|TSG%bw-*fP>s&OA7L!Peo{{(3Z#m-3zj-F!wMb%jD2DqkyP{dBg}NUwCM)WS zU_?kKC^)ugF+VpqS8g*oQu?&*m;w`tGNa9mcUoa&L^17uYFB@LFaf;{o12>(RT$tm z-+^WfQ&B4`D`kO>ip*b>is>HfBkXe({_~Us1Y+ZK^z^cq_Z@)O>lKb{&|CV9T17@i zVjyBlPq>$Z3bl}KYv!pN88d-j2_xlR0yPA7g`)Zy85uAqB)#zb_Wk=;=)uv6iPtOi z>?#lSZ|kMlg$Ei|tUAH$A#eMnYQ~?{!>`I=hF>>!Y;ch1lU$?}D00wJoZfqu2=i`> zNNSPF$wSxYP&;MFk8_{#LM4bKMR&`}%ZIGRLa!u*hi9=fGk-IyQ`2uK3T0#WGS6EX z{u!gP;6sTie6NI94=?`P&p}IG7&?c)c_Ra|!N9;^7X0nmS!1v(r1CV9@Csr3`Ym~t z&l@x%W~~J&e)nfcGc%VWuazSZ*S1h+0hmjUQ!#Kz@6gjryKZhy)v4rZpuA4;^F8&5 zExVyyg5@765#oL)2*eE<(eRCpjWFAW-P8S1BUJ+f+p>>yidVt+C|}isSwqMuAXSN8 z9{>uKEiKs1JPV9*goK1W;+y<8K2?rbRaDi343Uxw8s-<`d6WSt4uWdLtmVTeXiV=u zeth%sBUR2Ht6?PRS4|ix^Ps`Rr7%=E-S*E?X97BL`;Ns&=p}=0+Jq+-(lL; zC1^nXi5O#j(U0{H)3t6mMt=Ko!`uMsC}$yfp`?U!z^yfdxT7wP;&eILfhIFfMrN@9 zcNG6xS5Q{A`G-A|q3K?XjeEsF>w`+2l0U{(^yf>Yy?-ABxFyLEpZw=VMO$kt8n_Xt zSPBtzQ{~(!f=7$Zf}zHFZJ{^3(y|UCS7X@A=j-)wN&w}-?%hch_tPVfI-ZZXk1eqc zG;0pxRyF411JnPFsXA@JBCz~w#`_de~XdeSldH|yl&^9;-l>OOX^i)KZqSbH* zMqu;JFVLQ^pTJki=-23}rvQv)uJv?w%I{tBs#JP5X1i&cnwnCNlXU4FLl|Rf?t}eC z$cjBiq_+=tOE4|sKN?LQ_=#*QFYx+-Iu8dher$i0Vt}j#LG;^47f;B|aesSTGLq8# zG0cjYhOGJQXBs2TyFbtZmC`OUAn3Y5$%{oT;*PFD$^vi~37b8?_&tUh$U2;$D6tvk zsNZhE$xL*1S?(biVYY(-GWg~pHqhLq)5QHstcO`(D479{BG9a{3L7#MKLP^|0oUZ~ zhl+Qum`SX#{Y3~M`8EB)%k2UA+q7WUfG2&lUfi_ZD=>3MRMg;z12r%9nD*+-dJBpc zXaRO7w8ai^GD83_(#y+xXV1o7sX znG$k1N%YFz_VzoOtxWoi;dlOF?AdCsdU}*Bc_~+2h2aM{$sHaZb@EFVS>=X&Noc+U zdFppfxK087BZ@%8n*x?1x+<-oR@zb+`t55PH2G7*01_Gy82M#7moVy7@^^$L(2}Q~ zvklhSRc3v9tqc{Nr+LOb30!b?!wV9j$9r$}1uz9#F)?ZsN6M6qVEgb`QIWeY-37wK z2?SLsMVJJkqN5WIy2WI?+$z%$SGd=0{Y!zQIR zRk?s`&#CAGkurRVvzq`wrS0pRo1318Qy!?Hd4xG?Waox~3H~G7(^_IUso-9P zto3b@k%&$W0BS=Ov!#F-_2;V6qZ~IF zuN?tobGa-l#r%bVU$9E|&wi+#J#zNvv zV~$${(Oq;63JSUj*39>qyV`E*7d*Iym0Z>Dbx}o?tNQ6bqFd(b+kXn0PQlm_rKJD& wKj)hJ0-e^76+wBG;RVm4{@;h|S}xH#ii|9l@JtusSRg_{R#~P<$~fr10Mb*Kng9R* literal 0 HcmV?d00001 diff --git a/packages/react/.loki/reference/chrome_iphone7_Components_TextInput_Textfield_used_as_simple_search_input.png b/packages/react/.loki/reference/chrome_iphone7_Components_TextInput_Textfield_used_as_simple_search_input.png new file mode 100644 index 0000000000000000000000000000000000000000..7725dd8c96c52e058ff41f36a3f3b21f6d42b972 GIT binary patch literal 6486 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 Kn}xC_e*Xa=zatv} literal 0 HcmV?d00001 diff --git a/packages/react/.loki/reference/chrome_laptop_Components_TextInput_As_search_input.png b/packages/react/.loki/reference/chrome_laptop_Components_TextInput_As_search_input.png new file mode 100644 index 0000000000000000000000000000000000000000..eb3a1ab7d68fa2afa1024fd6b21c3bbe22a2c460 GIT binary patch literal 2938 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 literal 0 HcmV?d00001 diff --git a/packages/react/.loki/reference/chrome_laptop_Components_TextInput_Textfield_used_as_simple_search_input.png b/packages/react/.loki/reference/chrome_laptop_Components_TextInput_Textfield_used_as_simple_search_input.png new file mode 100644 index 0000000000000000000000000000000000000000..6486d61be907ea31aadd3540707db5b051778483 GIT binary patch literal 2818 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 literal 0 HcmV?d00001 diff --git a/packages/react/src/components/textInput/TextInput.module.css b/packages/react/src/components/textInput/TextInput.module.css index eeb8f47a57..47c7ae3a81 100644 --- a/packages/react/src/components/textInput/TextInput.module.css +++ b/packages/react/src/components/textInput/TextInput.module.css @@ -15,6 +15,22 @@ padding-right: calc(2 * var(--spacing-s) + 1.5rem); } +.input.hasClearButton { + padding-right: calc(2 * var(--spacing-s) + 1.5rem); +} + +.input.hasButton.hasClearButton { + padding-right: calc(4 * var(--spacing-s) + 1.5rem); +} + +.clearButton { + composes: hds-text-input__button-clear from 'hds-core/lib/components/text-input/text-input.css'; +} + +.hasClearButton { + composes: hds-text-input__input-clear from 'hds-core/lib/components/text-input/text-input.css'; +} + .errorText { composes: hds-text-input__error-text from 'hds-core/lib/components/text-input/text-input.css'; } diff --git a/packages/react/src/components/textInput/TextInput.stories.tsx b/packages/react/src/components/textInput/TextInput.stories.tsx index 1575586a13..133716f3fb 100644 --- a/packages/react/src/components/textInput/TextInput.stories.tsx +++ b/packages/react/src/components/textInput/TextInput.stories.tsx @@ -1,8 +1,10 @@ import React, { useRef } from 'react'; import { ArgsTable, Stories, Title } from '@storybook/addon-docs/blocks'; +import { action } from '@storybook/addon-actions'; import { TextInput } from './TextInput'; import { Button } from '../button'; +import { IconSearch } from '../../icons'; const textInputProps = { helperText: 'Assistive text', @@ -58,7 +60,7 @@ WithTooltip.storyName = 'With tooltip'; export const NumberInput = () => ; export const UsingRef = () => { - const ref = useRef(null); + const ref = useRef(null); return ( <> @@ -115,3 +117,49 @@ Playground.args = { 'Tooltips contain "nice to have" information. Default Tooltip contents should not be longer than two to three sentences. For longer descriptions, provide a link to a separate page.', tooltipButtonAriaLabelText: 'Tooltip', }; + +export const SimpleSearchInput = (args) => { + const [inputValue, setInputValue] = React.useState(''); + const ref = useRef(null); + + const doSearch = (value: string | undefined) => { + action('search for')(value); + }; + + const onButtonClick = () => { + doSearch(ref?.current?.value); + }; + + const onChangeHandler = (e) => { + setInputValue(e.target.value); + }; + + const onKeyUpHandler = (e) => { + if (e.key === 'Enter') { + doSearch(e.target.value); + } + }; + + return ( + } + clearButtonAriaLabel="Clear search" + label="Simple search" + onButtonClick={onButtonClick} + onChange={onChangeHandler} + onKeyUp={onKeyUpHandler} + ref={ref} + type="search" + /> + ); +}; + +SimpleSearchInput.storyName = 'As search input'; + +export const SimpleSearchInputWithDefaultValue = (args) => { + return ; +}; + +SimpleSearchInputWithDefaultValue.storyName = 'As search input with default value'; diff --git a/packages/react/src/components/textInput/TextInput.test.tsx b/packages/react/src/components/textInput/TextInput.test.tsx index 43201b64a8..922f8a53b7 100644 --- a/packages/react/src/components/textInput/TextInput.test.tsx +++ b/packages/react/src/components/textInput/TextInput.test.tsx @@ -1,8 +1,10 @@ import React from 'react'; -import { render } from '@testing-library/react'; +import { fireEvent, render } from '@testing-library/react'; import { axe } from 'jest-axe'; +import { act } from 'react-dom/test-utils'; import { TextInput } from './TextInput'; +import { IconSearch } from '../../icons'; const textInputProps = { id: 'hdsInput', @@ -26,4 +28,116 @@ describe(' spec', () => { ); expect(asFragment()).toMatchSnapshot(); }); + it('renders the component with search clear button', () => { + const { asFragment } = render(); + expect(asFragment()).toMatchSnapshot(); + + // clear the search field + const rootElement = document.querySelector('.root') as HTMLDivElement; + const clearButton = document.querySelector('.clearButton') as HTMLButtonElement; + const input = document.querySelector('.hasClearButton') as HTMLInputElement; + expect(rootElement).toHaveAttribute('data-hds-textinput-filled'); + expect(input).toHaveValue('string to search for'); + expect(clearButton).toBeInTheDocument(); + act(() => { + fireEvent.click(clearButton); + }); + expect(rootElement).not.toHaveAttribute('data-hds-textinput-filled'); + expect(input).toHaveValue(''); + }); + + it('should not have filled attribute if no default value given', () => { + render(); + const rootElement = document.querySelector('.root') as HTMLDivElement; + expect(rootElement).not.toHaveAttribute('data-hds-textinput-filled'); + }); + + it('test adding text and then removing it', () => { + render(); + const rootElement = document.querySelector('.root') as HTMLDivElement; + const input = document.querySelector('.hasClearButton') as HTMLInputElement; + expect(rootElement).not.toHaveAttribute('data-hds-textinput-filled'); + + act(() => { + fireEvent.change(input, { target: { value: 'test' } }); + }); + + expect(rootElement).toHaveAttribute('data-hds-textinput-filled'); + + act(() => { + fireEvent.change(input, { target: { value: '' } }); + }); + + expect(rootElement).not.toHaveAttribute('data-hds-textinput-filled'); + }); + + // test input callback functions + it('test onChange callback', () => { + const onChange = jest.fn(); + render(); + const input = document.querySelector('input') as HTMLInputElement; + act(() => { + fireEvent.change(input, { target: { value: 'test' } }); + }); + expect(onChange).toHaveBeenCalled(); + }); + + // test input onKeyUp callback functions + it('test onKeyUp callback', () => { + const onKeyUp = jest.fn(); + render(); + const input = document.querySelector('input') as HTMLInputElement; + act(() => { + fireEvent.keyUp(input, { key: 'Enter', code: 'Enter' }); + }); + expect(onKeyUp).toHaveBeenCalled(); + }); + + // test that input with clear button triggers onChange callback + it('test onChange callback on clear button click', () => { + const onChange = jest.fn(); + render(); + const clearButton = document.querySelector('.clearButton') as HTMLButtonElement; + act(() => { + fireEvent.click(clearButton); + }); + expect(onChange).toHaveBeenCalled(); + }); + + // test input with buttonIcon and onButtonClick callback + it('test onButtonClick callback and that two buttons exist', () => { + const onButtonClick = jest.fn(); + const { getByLabelText } = render( + } + buttonAriaLabel="Search" + onButtonClick={onButtonClick} + defaultValue="test input" + />, + ); + const button = getByLabelText('Search') as HTMLButtonElement; + act(() => { + fireEvent.click(button); + }); + expect(onButtonClick).toHaveBeenCalled(); + }); + + // test that two buttons exist when type="search" and a button is given + it('test that two buttons exist when type="search" and a button is given', () => { + const onButtonClick = jest.fn(); + render( + } + defaultValue="test input" + onButtonClick={onButtonClick} + type="search" + />, + ); + + const buttons = document.getElementsByClassName('button'); + expect(buttons.length).toBe(2); + }); }); diff --git a/packages/react/src/components/textInput/TextInput.tsx b/packages/react/src/components/textInput/TextInput.tsx index 74eded034b..0b6d2451ff 100644 --- a/packages/react/src/components/textInput/TextInput.tsx +++ b/packages/react/src/components/textInput/TextInput.tsx @@ -1,4 +1,4 @@ -import React from 'react'; +import React, { SyntheticEvent } from 'react'; // import base styles import '../../styles/base.css'; @@ -7,12 +7,22 @@ import styles from './TextInput.module.css'; import { InputWrapper } from '../../internal/input-wrapper/InputWrapper'; import classNames from '../../utils/classNames'; import composeAriaDescribedBy from '../../utils/composeAriaDescribedBy'; +import { IconCrossCircle } from '../../icons'; export type TextInputProps = { /** * Additional class names to apply to the text input */ className?: string; + /** + * The aria-label for the clear button. + * @default 'Clear' + */ + clearButtonAriaLabel?: string; + /** + * Use clear button + */ + clearButton?: boolean; /** * Additional children to render after the input. */ @@ -53,6 +63,10 @@ export type TextInputProps = { * Callback fired when the state is changed */ onChange?: React.ChangeEventHandler; + /** + * Button click callback + */ + onButtonClick?: React.MouseEventHandler; /** * Short hint displayed in the input before the user enters a value */ @@ -109,37 +123,35 @@ export type TextInputProps = { * Button aria-label */ buttonAriaLabel?: string; - /** - * Button click callback - */ - onButtonClick?: React.MouseEventHandler; } & React.ComponentPropsWithoutRef<'input'>; export const TextInput = React.forwardRef( ( { - className = '', + buttonAriaLabel, + buttonIcon, children, - disabled = false, + className = '', + clearButtonAriaLabel = 'Clear', + clearButton = false, defaultValue, + disabled = false, errorText, helperText, hideLabel, - invalid, id, + infoText, + invalid, label, + onButtonClick, onChange = () => null, required, style, successText, - infoText, + tooltipButtonLabel, tooltipLabel, tooltipText, - tooltipButtonLabel, type = 'text', - buttonIcon, - buttonAriaLabel, - onButtonClick, ...rest }: TextInputProps, ref?: React.Ref, @@ -150,47 +162,85 @@ export const TextInput = React.forwardRef( helperText, hideLabel, id, + infoText, invalid, label, required, style, successText, - infoText, + tooltipButtonLabel, tooltipLabel, tooltipText, - tooltipButtonLabel, }; + const innerWrapperRef = React.useRef(null); + // Compose aria-describedby attribute const ariaDescribedBy = composeAriaDescribedBy(id, helperText, errorText, successText, infoText); - const hasButton = Boolean(buttonIcon && onButtonClick); + const hasClearButton = Boolean(clearButton || type === 'search'); + + const innerOnChange = (e: React.ChangeEvent) => { + onChange(e); + if (!hasClearButton) return; + const inputElement = e.target; + const innerValue = inputElement.value; + if (hasClearButton && innerValue.length > 0) { + innerWrapperRef.current.setAttribute('data-hds-textinput-filled', 'true'); + } else { + innerWrapperRef.current.removeAttribute('data-hds-textinput-filled'); + } + }; + + const onClearButtonClick = (e: SyntheticEvent) => { + const input = innerWrapperRef.current.querySelector('input') as HTMLInputElement; + input.value = ''; + input.focus(); + innerOnChange(e as React.ChangeEvent); + }; + + if (defaultValue?.length > 0 && hasClearButton) { + wrapperProps['data-hds-textinput-filled'] = true; + } return ( - + 0 ? ariaDescribedBy : null} + className={classNames(styles.input, hasButton && styles.hasButton, hasClearButton && styles.hasClearButton)} defaultValue={defaultValue} disabled={disabled} id={id} - onChange={onChange} + onChange={innerOnChange} ref={ref} required={required} type={type} - aria-describedby={ariaDescribedBy.length > 0 ? ariaDescribedBy : null} {...rest} /> - {hasButton && ( + {(hasButton || hasClearButton) && (

- + {hasClearButton && ( + + )} + {buttonIcon && onButtonClick && ( + + )}
)} {children} diff --git a/packages/react/src/components/textInput/__snapshots__/TextInput.test.tsx.snap b/packages/react/src/components/textInput/__snapshots__/TextInput.test.tsx.snap index 0612f771da..66b92026f8 100644 --- a/packages/react/src/components/textInput/__snapshots__/TextInput.test.tsx.snap +++ b/packages/react/src/components/textInput/__snapshots__/TextInput.test.tsx.snap @@ -26,6 +26,58 @@ exports[` spec renders the component 1`] = ` `; +exports[` spec renders the component with search clear button 1`] = ` + +
+ +
+ +
+ +
+
+
+
+`; + exports[` spec renders the component with tooltip 1`] = `
; +} & React.ComponentPropsWithoutRef<'div'>; -export const InputWrapper = ({ - children, - className = '', - errorText, - helperText, - hideLabel = false, - id, - invalid = false, - isAriaLabelledBy = false, - label, - labelId, - onBlur, - required = false, - style, - successText, - infoText, - tooltipLabel, - tooltipText, - tooltipButtonLabel, -}: InputWrapperProps) => ( -
- {label && ( -