From 4a1e477a8a48df195eb0f7a94f2da50a303a5610 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Iv=C3=A1n=20G=C3=B3mez=20Pinta?= <44321109+GomezIvann@users.noreply.github.com> Date: Thu, 3 Apr 2025 11:51:03 +0200 Subject: [PATCH 01/10] Staying consistent with radio group PR --- packages/lib/src/styles/forms/ErrorMessage.tsx | 2 +- packages/lib/src/styles/forms/HelperText.tsx | 2 +- packages/lib/src/styles/forms/Label.tsx | 6 +++--- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/packages/lib/src/styles/forms/ErrorMessage.tsx b/packages/lib/src/styles/forms/ErrorMessage.tsx index 95095a3e3..05d328bef 100644 --- a/packages/lib/src/styles/forms/ErrorMessage.tsx +++ b/packages/lib/src/styles/forms/ErrorMessage.tsx @@ -9,7 +9,7 @@ const ErrorMessageContainer = styled.div` font-size: var(--typography-helper-text-s); font-weight: var(--typography-helper-text-regular, 400); margin-top: var(--spacing-gap-xs); - + /* Error icon */ > span[role="img"] { font-size: var(--height-xxs); diff --git a/packages/lib/src/styles/forms/HelperText.tsx b/packages/lib/src/styles/forms/HelperText.tsx index d35a3592c..800dae63f 100644 --- a/packages/lib/src/styles/forms/HelperText.tsx +++ b/packages/lib/src/styles/forms/HelperText.tsx @@ -5,7 +5,7 @@ const HelperText = styled.span<{ disabled: boolean, hasMargin?: boolean }>` font-family: var(--typography-font-family); font-size: var(--typography-helper-text-s); font-weight: var(--typography-helper-text-regular); - ${({ hasMargin = false }) => hasMargin && "margin-bottom: var(--spacing-gap-xs);"} + ${({ hasMargin = false }) => hasMargin && "margin-bottom: var(--spacing-padding-xxs);"} `; export default HelperText; \ No newline at end of file diff --git a/packages/lib/src/styles/forms/Label.tsx b/packages/lib/src/styles/forms/Label.tsx index 4f8fcd879..58a212f23 100644 --- a/packages/lib/src/styles/forms/Label.tsx +++ b/packages/lib/src/styles/forms/Label.tsx @@ -8,8 +8,8 @@ const Label = styled.label<{ font-family: var(--typography-font-family); font-size: var(--typography-label-m); font-weight: var(--typography-label-semibold); - ${({ hasMargin = false }) => hasMargin && "margin-bottom: var(--spacing-gap-xs);"} - + ${({ hasMargin = false }) => hasMargin && "margin-bottom: var(--spacing-padding-xxs);"} + /* Optional text */ > span { color: ${({ disabled }) => (disabled ? "var(--color-fg-neutral-medium)" : "var(--color-fg-neutral-stronger)")}; @@ -17,4 +17,4 @@ const Label = styled.label<{ } `; -export default Label; +export default Label; \ No newline at end of file From 4207a9aa9ffc1a619094721ca9f0a31199a906ae Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Iv=C3=A1n=20G=C3=B3mez=20Pinta?= <44321109+GomezIvann@users.noreply.github.com> Date: Wed, 9 Apr 2025 12:30:42 +0200 Subject: [PATCH 02/10] Suggestions design updates --- packages/lib/src/select/ListOption.tsx | 5 +---- packages/lib/src/text-input/Suggestion.tsx | 7 ++++++- packages/lib/src/text-input/Suggestions.tsx | 8 ++++---- 3 files changed, 11 insertions(+), 9 deletions(-) diff --git a/packages/lib/src/select/ListOption.tsx b/packages/lib/src/select/ListOption.tsx index 8bb2d66af..a81200d5f 100644 --- a/packages/lib/src/select/ListOption.tsx +++ b/packages/lib/src/select/ListOption.tsx @@ -12,10 +12,7 @@ const OptionItem = styled.li<{ padding: var(--spacing-padding-none) var(--spacing-padding-xs); cursor: pointer; ${({ selected }) => selected && "background-color: var(--color-bg-secondary-lighter);"}; - &:hover { - background-color: ${({ selected }) => - selected ? "var(--color-bg-secondary-medium)" : "var(--color-bg-neutral-light)"}; - } + &:hover, &:active { background-color: ${({ selected }) => selected ? "var(--color-bg-secondary-medium)" : "var(--color-bg-neutral-light)"}; diff --git a/packages/lib/src/text-input/Suggestion.tsx b/packages/lib/src/text-input/Suggestion.tsx index 97336517f..c9cea450c 100644 --- a/packages/lib/src/text-input/Suggestion.tsx +++ b/packages/lib/src/text-input/Suggestion.tsx @@ -26,6 +26,11 @@ const StyledSuggestion = styled.span` overflow: hidden; text-overflow: ellipsis; white-space: nowrap; + + /* Highlighted text */ + > span { + font-weight: var(--typography-label-semibold); + } `; const Suggestion = ({ highlighted, id, isLast, onClick, suggestion, value, visuallyFocused }: SuggestionProps) => { @@ -48,7 +53,7 @@ const Suggestion = ({ highlighted, id, isLast, onClick, suggestion, value, visua {highlighted ? ( <> - {matchedSuggestion.matchedWords} + {matchedSuggestion.matchedWords} {matchedSuggestion.noMatchedWords} ) : ( diff --git a/packages/lib/src/text-input/Suggestions.tsx b/packages/lib/src/text-input/Suggestions.tsx index a4b4eacd6..74dca76a9 100644 --- a/packages/lib/src/text-input/Suggestions.tsx +++ b/packages/lib/src/text-input/Suggestions.tsx @@ -7,19 +7,19 @@ import DxcIcon from "../icon/Icon"; import { scrollbarStyles } from "../styles/scroll"; const SuggestionsContainer = styled.div` + box-sizing: border-box; + max-height: 304px; + padding: var(--spacing-padding-xxs) var(--spacing-padding-none); background-color: var(--color-bg-neutral-lightest); border: var(--border-width-s) var(--border-style-default) var(--border-color-neutral-medium); border-radius: var(--border-radius-s); box-shadow: var(--shadow-mid-x-position) var(--shadow-mid-y-position) var(--shadow-mid-blur) var(--shadow-mid-spread) var(--shadow-light); - box-sizing: border-box; - max-height: 304px; - padding: var(--spacing-padding-xxs) var(--spacing-padding-none); color: var(--color-fg-neutral-dark); font-family: var(--typography-font-family); font-size: var(--typography-label-m); font-weight: var(--typography-label-regular); - overflow: auto; + overflow-y: auto; ${scrollbarStyles} `; From 9e9cbc5df464d859b7ce804994c57499738ef2a8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Iv=C3=A1n=20G=C3=B3mez=20Pinta?= <44321109+GomezIvann@users.noreply.github.com> Date: Wed, 9 Apr 2025 13:23:16 +0200 Subject: [PATCH 03/10] TextInput doc updates --- .../pages/components/text-input/code.tsx | 17 + .../pages/components/text-input/index.tsx | 24 +- .../components/text-input/specifications.tsx | 21 - .../pages/components/text-input/usage.tsx | 21 - .../components/alert/code/AlertCodePage.tsx | 2 +- .../text-input/TextInputPageLayout.tsx | 7 +- .../text-input/code/TextInputCodePage.tsx | 305 ++-- .../text-input/code/examples/action.ts | 25 +- .../TextInputOverviewPage.tsx} | 82 +- .../examples/autosuggest.ts | 0 .../examples/helperText.ts | 0 .../examples/prefixSuffix.ts | 0 .../images/input_actions_clear.png | Bin .../images/input_actions_custom.png | Bin .../text-input/specs/TextInputSpecsPage.tsx | 1438 ----------------- .../specs/images/autosuggest_anatomy.png | Bin 20227 -> 0 bytes .../specs/images/autosuggest_specs.png | Bin 23353 -> 0 bytes .../images/autosuggest_states_listItem.png | Bin 21000 -> 0 bytes .../text-input/specs/images/input_anatomy.png | Bin 20497 -> 0 bytes .../text-input/specs/images/input_specs.png | Bin 24579 -> 0 bytes .../text-input/specs/images/input_states.png | Bin 23197 -> 0 bytes 21 files changed, 220 insertions(+), 1722 deletions(-) create mode 100644 apps/website/pages/components/text-input/code.tsx delete mode 100644 apps/website/pages/components/text-input/specifications.tsx delete mode 100644 apps/website/pages/components/text-input/usage.tsx rename apps/website/screens/components/text-input/{usage/TextInputUsagePage.tsx => overview/TextInputOverviewPage.tsx} (63%) rename apps/website/screens/components/text-input/{usage => overview}/examples/autosuggest.ts (100%) rename apps/website/screens/components/text-input/{usage => overview}/examples/helperText.ts (100%) rename apps/website/screens/components/text-input/{usage => overview}/examples/prefixSuffix.ts (100%) rename apps/website/screens/components/text-input/{usage => overview}/images/input_actions_clear.png (100%) rename apps/website/screens/components/text-input/{usage => overview}/images/input_actions_custom.png (100%) delete mode 100644 apps/website/screens/components/text-input/specs/TextInputSpecsPage.tsx delete mode 100644 apps/website/screens/components/text-input/specs/images/autosuggest_anatomy.png delete mode 100644 apps/website/screens/components/text-input/specs/images/autosuggest_specs.png delete mode 100644 apps/website/screens/components/text-input/specs/images/autosuggest_states_listItem.png delete mode 100644 apps/website/screens/components/text-input/specs/images/input_anatomy.png delete mode 100644 apps/website/screens/components/text-input/specs/images/input_specs.png delete mode 100644 apps/website/screens/components/text-input/specs/images/input_states.png diff --git a/apps/website/pages/components/text-input/code.tsx b/apps/website/pages/components/text-input/code.tsx new file mode 100644 index 000000000..0a9d99f24 --- /dev/null +++ b/apps/website/pages/components/text-input/code.tsx @@ -0,0 +1,17 @@ +import Head from "next/head"; +import type { ReactElement } from "react"; +import TextInputPageLayout from "screens/components/text-input/TextInputPageLayout"; +import TextInputCodePage from "screens/components/text-input/code/TextInputCodePage"; + +const Code = () => ( + <> + + Text input code — Halstack Design System + + + +); + +Code.getLayout = (page: ReactElement) => {page}; + +export default Code; diff --git a/apps/website/pages/components/text-input/index.tsx b/apps/website/pages/components/text-input/index.tsx index 8e172a08a..ce50bf4f3 100644 --- a/apps/website/pages/components/text-input/index.tsx +++ b/apps/website/pages/components/text-input/index.tsx @@ -1,21 +1,17 @@ import Head from "next/head"; import type { ReactElement } from "react"; -import TextInputCodePage from "screens/components/text-input/code/TextInputCodePage"; +import TextInputOverviewPage from "screens/components/text-input/overview/TextInputOverviewPage"; import TextInputPageLayout from "screens/components/text-input/TextInputPageLayout"; -const Index = () => { - return ( - <> - - Text Input — Halstack Design System - - - - ); -}; +const Index = () => ( + <> + + Text input — Halstack Design System + + + +); -Index.getLayout = function getLayout(page: ReactElement) { - return {page}; -}; +Index.getLayout = (page: ReactElement) => {page}; export default Index; diff --git a/apps/website/pages/components/text-input/specifications.tsx b/apps/website/pages/components/text-input/specifications.tsx deleted file mode 100644 index 6341df4f4..000000000 --- a/apps/website/pages/components/text-input/specifications.tsx +++ /dev/null @@ -1,21 +0,0 @@ -import Head from "next/head"; -import type { ReactElement } from "react"; -import TextInputSpecsPage from "screens/components/text-input/specs/TextInputSpecsPage"; -import TextInputPageLayout from "screens/components/text-input/TextInputPageLayout"; - -const Specifications = () => { - return ( - <> - - Text Input Specs — Halstack Design System - - - - ); -}; - -Specifications.getLayout = function getLayout(page: ReactElement) { - return {page}; -}; - -export default Specifications; diff --git a/apps/website/pages/components/text-input/usage.tsx b/apps/website/pages/components/text-input/usage.tsx deleted file mode 100644 index 79032ee10..000000000 --- a/apps/website/pages/components/text-input/usage.tsx +++ /dev/null @@ -1,21 +0,0 @@ -import Head from "next/head"; -import type { ReactElement } from "react"; -import TextInputPageLayout from "screens/components/text-input/TextInputPageLayout"; -import TextInputUsagePage from "screens/components/text-input/usage/TextInputUsagePage"; - -const Usage = () => { - return ( - <> - - Text Input Usage — Halstack Design System - - - - ); -}; - -Usage.getLayout = function getLayout(page: ReactElement) { - return {page}; -}; - -export default Usage; diff --git a/apps/website/screens/components/alert/code/AlertCodePage.tsx b/apps/website/screens/components/alert/code/AlertCodePage.tsx index a7a26fb7f..0ecb57222 100644 --- a/apps/website/screens/components/alert/code/AlertCodePage.tsx +++ b/apps/website/screens/components/alert/code/AlertCodePage.tsx @@ -11,7 +11,7 @@ import Code from "@/common/Code"; import StatusBadge from "@/common/StatusBadge"; const actionTypeString = `{ - icon?: (React.ReactNode + icon?: string | (React.ReactNode & React.SVGProps); label: string; onClick: () => void; diff --git a/apps/website/screens/components/text-input/TextInputPageLayout.tsx b/apps/website/screens/components/text-input/TextInputPageLayout.tsx index 422fc960f..3c9d6656a 100644 --- a/apps/website/screens/components/text-input/TextInputPageLayout.tsx +++ b/apps/website/screens/components/text-input/TextInputPageLayout.tsx @@ -6,9 +6,8 @@ import { ReactNode } from "react"; const TextInputPageHeading = ({ children }: { children: ReactNode }) => { const tabs = [ - { label: "Code", path: "/components/text-input" }, - { label: "Usage", path: "/components/text-input/usage" }, - { label: "Specifications", path: "/components/text-input/specifications" }, + { label: "Overview", path: "/components/text-input" }, + { label: "Code", path: "/components/text-input/code" }, ]; return ( @@ -20,7 +19,7 @@ const TextInputPageHeading = ({ children }: { children: ReactNode }) => { Text inputs are input fields typically used in forms that allow the user to enter text data in a structured format. - + {children} diff --git a/apps/website/screens/components/text-input/code/TextInputCodePage.tsx b/apps/website/screens/components/text-input/code/TextInputCodePage.tsx index 27e50064f..5a0bde006 100644 --- a/apps/website/screens/components/text-input/code/TextInputCodePage.tsx +++ b/apps/website/screens/components/text-input/code/TextInputCodePage.tsx @@ -9,7 +9,14 @@ import uncontrolled from "./examples/uncontrolled"; import action from "./examples/action"; import functionSuggestions from "./examples/functionSuggestions"; import errorHandling from "./examples/errorHandling"; -import TableCode from "@/common/TableCode"; +import TableCode, { ExtendedTableCode } from "@/common/TableCode"; + +const actionTypeString = `{ + icon?: string | (React.ReactNode + & React.SVGProps); + onClick: () => void; + title?: string; +}`; const sections = [ { @@ -26,90 +33,43 @@ const sections = [ - defaultValue - - string - - Initial value of the input, only when it is uncontrolled. - - - - - value + action - string + {actionTypeString} - Value of the input. If undefined, the component will be uncontrolled and the value will be managed - internally by the component. + Action to be displayed on the right side of the input. - - label + ariaLabel string - Text to be placed above the input. Under the hood, this prop also serves as an accessible label for the - list of suggestions. + Specifies a string to be used as the name for the textInput element when no label is + provided. - - - - - name - string + 'Text input' - Name attribute of the input element. - - - helperText - - string - - Helper text to be placed above the input. - - - - - placeholder + autocomplete string - Text to be put as placeholder of the input. - - - - - action - - { - "{ icon: string | (React.ReactNode & React.SVGProps ); onClick: () => void; title?: string }" - } - + HTML autocomplete attribute. Lets the user specify if any permission the user agent has to + provide automated assistance in filling out the input value. Its value must be one of all the possible + values of the HTML autocomplete attribute. See{" "} + MDN{" "} + for further information. - Action to be shown in the input. It has the following properties: -
    -
  • - icon: Icon to be placed in the action. It can be either an icon from{" "} - - Material Symbols - {" "} - (string) or a SVG component. -
  • -
  • - onClick: Function to be called when the action button is clicked. -
  • -
  • - title: Text representing advisory information related to the button's action. Under the hood, - this prop also serves as an accessible label for the component. -
  • -
- Note that if the icon is an URL (string), the component's color styling tokens will not be applied to the - image. + 'off' - - clearable @@ -121,6 +81,14 @@ const sections = [ false + + defaultValue + + string + + Initial value of the input, only when it is uncontrolled. + - + disabled @@ -132,61 +100,84 @@ const sections = [ - optional - - boolean - + error - If true, the input will be optional, showing '(Optional)' next to the label. Otherwise, the field will be - considered required and an error will be passed as a parameter to the onBlur and{" "} - onChange functions when it has not been filled. + string - false + If it is a defined value and also a truthy string, the component will change its appearance, showing the + error below the input component. If the defined value is an empty string, it will reserve a space below + the component for a future error, but it would not change its look. In case of being undefined or null, + both the appearance and the space for the error message would not be modified. + - - readOnly + helperText - boolean + string + Helper text to be placed above the input. + - + + + label - If true, the component will not be mutable, meaning the user can not edit the control. In addition, the - clear action will not be displayed even if the flag is set to true and the custom action will not execute - its onClick event. + string - false + Text to be placed above the input. Under the hood, this prop also serves as an accessible label for the + list of suggestions. + - - prefix + margin - string + 'xxsmall' | 'xsmall' | 'small' | 'medium' | 'large' | 'xlarge' | 'xxlarge' | Margin + + + Size of the margin to be applied to the component. You can pass an object with 'top', 'bottom', 'left' and + 'right' properties in order to specify different margin sizes. - Prefix to be placed before the input value. - - suffix + maxLength - string + number + + + Specifies the maximum length allowed by the input. This will be checked both when the input element loses + the focus and while typing within it. If the string entered does not comply the maximum length, the{" "} + onBlur and onChange functions will be called with the current value and an + internal error informing that the value length does not comply the specified range. If a valid length is + reached, the error parameter of both events will not be defined. - Suffix to be placed after the input value. - - onChange + minLength - {"(val: { value: string; error?: string }) => void"} + number - This function will be called when the user types within the input element of the component. An object - including the current value and the error (if the value entered is not valid) will be passed to this - function. If there is no error, error will not be defined. + Specifies the minimum length allowed by the input. This will be checked both when the input element loses + the focus and while typing within it. If the string entered does not comply the minimum length, the{" "} + onBlur and onChange functions will be called with the current value and an + internal error informing that the value length does not comply the specified range. If a valid length is + reached, the error parameter of both events will not be defined. - + + name + + string + + Name attribute of the input element. + - + onBlur @@ -200,36 +191,30 @@ const sections = [ - - error + onChange - string + {"(val: { value: string; error?: string }) => void"} - If it is a defined value and also a truthy string, the component will change its appearance, showing the - error below the input component. If the defined value is an empty string, it will reserve a space below - the component for a future error, but it would not change its look. In case of being undefined or null, - both the appearance and the space for the error message would not be modified. + This function will be called when the user types within the input element of the component. An object + including the current value and the error (if the value entered is not valid) will be passed to this + function. If there is no error, error will not be defined. - - suggestions + optional - {"string[] | ((value: string) => Promise )"} + boolean - These are the options to be displayed as suggestions. It can be either an array or a function: -
    -
  • - Array: List of options that will be filtered by the user's input. -
  • -
  • - Function: This function will be called when the user changes the value. It will receive the new - value as a parameter and should return a promise that resolves to an array with the filtered options. -
  • -
+ If true, the input will be optional, showing '(Optional)' next to the label. Otherwise, the field will be + considered required and an error will be passed as a parameter to the onBlur and{" "} + onChange functions when it has not been filled. + + + false - - pattern @@ -246,58 +231,41 @@ const sections = [ - - minLength - - number - + placeholder - Specifies the minimum length allowed by the input. This will be checked both when the input element loses - the focus and while typing within it. If the string entered does not comply the minimum length, the{" "} - onBlur and onChange functions will be called with the current value and an - internal error informing that the value length does not comply the specified range. If a valid length is - reached, the error parameter of both events will not be defined. + string + Text to be put as placeholder of the input. - - maxLength - - number - + prefix - Specifies the maximum length allowed by the input. This will be checked both when the input element loses - the focus and while typing within it. If the string entered does not comply the maximum length, the{" "} - onBlur and onChange functions will be called with the current value and an - internal error informing that the value length does not comply the specified range. If a valid length is - reached, the error parameter of both events will not be defined. + string + Prefix to be placed before the input value. - - autocomplete + readOnly - string + boolean - HTML autocomplete attribute. Lets the user specify if any permission the user agent has to - provide automated assistance in filling out the input value. Its value must be one of all the possible - values of the HTML autocomplete attribute. See{" "} - MDN{" "} - for further information. + If true, the component will not be mutable, meaning the user can not edit the control. In addition, the + clear action will not be displayed even if the flag is set to true and the custom action will not execute + its onClick event. - 'off' + false - margin - - 'xxsmall' | 'xsmall' | 'small' | 'medium' | 'large' | 'xlarge' | 'xxlarge' | Margin - + ref - Size of the margin to be applied to the component. You can pass an object with 'top', 'bottom', 'left' and - 'right' properties in order to specify different margin sizes. + {"React.Ref"} + Reference to the component. - @@ -311,35 +279,54 @@ const sections = [ - tabIndex + suffix - number + string + Suffix to be placed after the input value. + - + + + suggestions - Value of the tabindex attribute. + {"string[] | ((value: string) => Promise )"} - 0 + These are the options to be displayed as suggestions. It can be either an array or a function: +
    +
  • + Array: List of options that will be filtered by the user's input. +
  • +
  • + Function: This function will be called when the user changes the value. It will receive the new + value as a parameter and should return a promise that resolves to an array with the filtered options. +
  • +
+ - - ref + tabIndex - {"React.Ref"} + number + + + Value of the tabindex attribute. + + + 0 - Reference to the component. - - - ariaLabel + value string - Specifies a string to be used as the name for the textInput element when no label is - provided. + Value of the input. If undefined, the component will be uncontrolled and the value will be managed + internally by the component. - 'Text input' + - @@ -372,15 +359,13 @@ const sections = [ }, ]; -const TextInputCodePage = () => { - return ( - - - - - - - ); -}; +const TextInputCodePage = () => ( + + + + + + +); export default TextInputCodePage; diff --git a/apps/website/screens/components/text-input/code/examples/action.ts b/apps/website/screens/components/text-input/code/examples/action.ts index a8c375ac5..4f5fc374b 100644 --- a/apps/website/screens/components/text-input/code/examples/action.ts +++ b/apps/website/screens/components/text-input/code/examples/action.ts @@ -2,17 +2,34 @@ import { DxcTextInput, DxcInset } from "@dxc-technology/halstack-react"; import { useState } from "react"; const code = `() => { + const [value, setValue] = useState(""); + const onChange = ({ value }) => { + setValue(value); + }; const actionIcon = { + icon: "Content_Copy", onClick: () => { - console.log("Copied."); + navigator.clipboard + .writeText(value) + .then(() => { + alert("Code copied!"); + }) + .catch(() => { + alert("Failed attempt to copy the text."); + }); }, - icon: "Content_Copy", - title: "Copy", + title: "Copy the text", }; return ( - + ); }`; diff --git a/apps/website/screens/components/text-input/usage/TextInputUsagePage.tsx b/apps/website/screens/components/text-input/overview/TextInputOverviewPage.tsx similarity index 63% rename from apps/website/screens/components/text-input/usage/TextInputUsagePage.tsx rename to apps/website/screens/components/text-input/overview/TextInputOverviewPage.tsx index db8f92ab9..2e5fc6000 100644 --- a/apps/website/screens/components/text-input/usage/TextInputUsagePage.tsx +++ b/apps/website/screens/components/text-input/overview/TextInputOverviewPage.tsx @@ -14,45 +14,13 @@ import autosuggest from "./examples/autosuggest"; const sections = [ { - title: "Usage", + title: "Introduction", content: ( Use text inputs in forms to help people enter, select and search for text. Common text input types include: usernames, descriptions, URLs, phone numbers, credit cards, emails, addresses or plain text searches. ), - subSections: [ - { - title: "Do's", - content: ( - - - Do use fixed-width inputs for content that has a specific, known length (e.g. postcode, phone number). - - - Do use sentence for any input text case with standard, local grammar and punctuation rules. - - - Do use helpful and clear text for labels, error messages and helper texts. - - - ), - }, - { - title: "Don'ts", - content: ( - - - Do not use text input for text longer than a single line (e.g. name, phone number). Use the textarea - instead. - - Do not disable copy and paste. - Do not display a pop-up error message after validating. - Avoid masking label, keep it always visible. - - ), - }, - ], }, { title: "Content", @@ -145,36 +113,32 @@ const sections = [ { title: "Usage", content: ( - <> - - - Use the suggestions to help users select from a list of standard responses when needed. - - - If the value for the textbox must be chosen from a predefined set of allowed values, use the{" "} - - select - {" "} - component instead. - - Keep suggestions simple and avoid scroll. - - + + + Use the suggestions to help users select from a list of standard responses when needed. + + + If the value for the textbox must be chosen from a predefined set of allowed values, use the{" "} + + select + {" "} + component instead. + + Keep suggestions simple and avoid scroll. + ), }, ], }, ]; -const TextInputUsagePage = () => { - return ( - - - - - - - ); -}; +const TextInputOverviewPage = () => ( + + + + + + +); -export default TextInputUsagePage; +export default TextInputOverviewPage; diff --git a/apps/website/screens/components/text-input/usage/examples/autosuggest.ts b/apps/website/screens/components/text-input/overview/examples/autosuggest.ts similarity index 100% rename from apps/website/screens/components/text-input/usage/examples/autosuggest.ts rename to apps/website/screens/components/text-input/overview/examples/autosuggest.ts diff --git a/apps/website/screens/components/text-input/usage/examples/helperText.ts b/apps/website/screens/components/text-input/overview/examples/helperText.ts similarity index 100% rename from apps/website/screens/components/text-input/usage/examples/helperText.ts rename to apps/website/screens/components/text-input/overview/examples/helperText.ts diff --git a/apps/website/screens/components/text-input/usage/examples/prefixSuffix.ts b/apps/website/screens/components/text-input/overview/examples/prefixSuffix.ts similarity index 100% rename from apps/website/screens/components/text-input/usage/examples/prefixSuffix.ts rename to apps/website/screens/components/text-input/overview/examples/prefixSuffix.ts diff --git a/apps/website/screens/components/text-input/usage/images/input_actions_clear.png b/apps/website/screens/components/text-input/overview/images/input_actions_clear.png similarity index 100% rename from apps/website/screens/components/text-input/usage/images/input_actions_clear.png rename to apps/website/screens/components/text-input/overview/images/input_actions_clear.png diff --git a/apps/website/screens/components/text-input/usage/images/input_actions_custom.png b/apps/website/screens/components/text-input/overview/images/input_actions_custom.png similarity index 100% rename from apps/website/screens/components/text-input/usage/images/input_actions_custom.png rename to apps/website/screens/components/text-input/overview/images/input_actions_custom.png diff --git a/apps/website/screens/components/text-input/specs/TextInputSpecsPage.tsx b/apps/website/screens/components/text-input/specs/TextInputSpecsPage.tsx deleted file mode 100644 index c4b83cb7c..000000000 --- a/apps/website/screens/components/text-input/specs/TextInputSpecsPage.tsx +++ /dev/null @@ -1,1438 +0,0 @@ -import { DxcParagraph, DxcTable, DxcLink, DxcBulletedList, DxcFlex } from "@dxc-technology/halstack-react"; -import QuickNavContainer from "@/common/QuickNavContainer"; -import QuickNavContainerLayout from "@/common/QuickNavContainerLayout"; -import DocFooter from "@/common/DocFooter"; -import Figure from "@/common/Figure"; -import Code from "@/common/Code"; -import Image from "@/common/Image"; -import inputStates from "./images/input_states.png"; -import inputAnatomy from "./images/input_anatomy.png"; -import inputSpecs from "./images/input_specs.png"; -import autosuggestStatesListItem from "./images/autosuggest_states_listItem.png"; -import autosuggestAnatomy from "./images/autosuggest_anatomy.png"; -import autosuggestSpecs from "./images/autosuggest_specs.png"; - -const sections = [ - { - title: "Specifications", - content: ( - <> -
- Text input design specifications -
-
- Autosuggest text input design specifications -
- - ), - }, - { - title: "States", - content: ( - <> - - Text input states: enabled, hover, focus,{" "} - error and disabled. - -
- Text input states -
- - List option states: enabled, hover, active and{" "} - system. - -
- List option states -
- - ), - }, - { - title: "Anatomy", - content: ( - <> - Text input anatomy - - Label text - - Helper text (Optional) - - Error indicator - - Clear action (Optional) - - - Input action (Optional) - - Input container - Placeholder text - Error message - Prefix - - Autosuggest anatomy - - List dialog - Text input - List option - List option value - - - ), - }, - { - title: "Design tokens", - subSections: [ - { - title: "Color", - subSections: [ - { - title: "Base", - content: ( - - - - Component token - Element - Core token - Value - - - - - - labelFontColor - - Label - - color-black - - #000000 - - - - valueFontColor - - Value - - color-black - - #000000 - - - - helperTextFontColor - - Helper text - - color-black - - #000000 - - - - placeholderFontColor - - Placeholder - - color-grey-600 - - #808080 - - - - enabledBorderColor - - Border:enabled - - color-black - - #000000 - - - - actionIconColor - - Action icon - - color-black - - #000000 - - - - actionBackgroundColor - - Action - - color-transparent - - transparent - - - - suffixColor - - Suffix - - color-grey-700 - - #666666 - - - - prefixColor - - Prefix - - color-grey-700 - - #666666 - - - - listOptionFontColor - - List option value - - color-black - - #000000 - - - - listOptionDividerColor - - List option divider - - color-grey-200 - - #e6e6e6 - - - - listDialogBorderColor - - List dialog - - color-grey-400 - - #bfbfbf - - - - listDialogBackgroundColor - - List dialog - - color-white - - #ffffff - - - - systemMessageFontColor - - System message - - color-grey-700 - - #666666 - - - - ), - }, - { - title: "Interactive", - content: ( - - - - Component token - Element - Core token - Value - - - - - - hoverBorderColor - - Border:hover - - color-purple-500 - - #a46ede - - - - focusBorderColor - - Border:focus - - color-blue-600 - - #0095ff - - - - errorBorderColor - - Border:error - - color-red-700 - - #d0011b - - - - hoverErrorBorderColor - - Border:error:hover - - color-red-600 - - #fe0123 - - - - disabledBorderColor - - Border:disabled - - color-grey-500 - - #999999 - - - - readOnlyBorderColor - - Border:readonly - - color-grey-500 - - #999999 - - - - hoverReadOnlyBorderColor - - Border:readonly:hover - - color-grey-600 - - #808080 - - - - errorMessageColor - - Error message - - color-red-700 - - #d0011b - - - - disabledContainerFillColor - - Input container:disabled - - color-grey-100 - - #f2f2f2 - - - - disabledLabelFontColor - - Label:disabled - - color-grey-500 - - #999999 - - - - disabledValueFontColor - - Value:disabled - - color-grey-500 - - #999999 - - - - disabledHelperTextFontColor - - Helper text:disabled - - color-grey-500 - - #999999 - - - - disabledPlaceholderFontColor - - Placeholder:disabled - - color-grey-500 - - #999999 - - - - hoverActionBackgroundColor - - Action:hover - - color-grey-100 - - #f2f2f2 - - - - focusActionBorderColor - - Action:focus - - color-blue-600 - - #0095ff - - - - activeActionBackgroundColor - - Action:active - - color-grey-300 - - #cccccc - - - - disabledActionBackgroundColor - - Action:disabled - - color-transparent - - transparent - - - - hoverActionIconColor - - Action icon:hover - - color-black - - #000000 - - - - focusActionIconColor - - Action icon:focus - - color-black - - #000000 - - - - activeActionIconColor - - Action icon:active - - color-black - - #000000 - - - - disabledActionIconColor - - Action icon:disabled - - color-grey-500 - - #999999 - - - - disabledSuffixColor - - Suffix:disabled - - color-grey-400 - - #bfbfbf - - - - disabledPrefixColor - - Prefix:disabled - - color-grey-400 - - #bfbfbf - - - - hoverListOptionBackgroundColor - - List option:hover - - color-grey-100 - - #f2f2f2 - - - - focusListOptionBorderColor - - List option:focus - - color-blue-600 - - #0095ff - - - - activeListOptionBackgroundColor - - List option:active - - color-grey-200 - - #e6e6e6 - - - - errorListDialogFontColor - - List dialog error - - color-black - - #000000 - - - - errorListDialogBackgroundColor - - List dialog error - - color-red-50 - - #fff5f6 - - - - errorListDialogBorderColor - - List dialog error - - color-red-700 - - #d0011b - - - - ), - }, - ], - }, - { - title: "Typography", - content: ( - <> - - - - Component token - Element - Core token - Value - - - - - - fontFamily - - All - - font-family-sans - - Open Sans - - - - labelFontSize - - Label - - font-scale-02 - - 0.875rem / 14px - - - - labelFontWeight - - Label - - font-weight-bold - - 600 - - - - labelFontStyle - - Label - - font-style-normal - - normal - - - - labelLineHeight - - Label - - font-leading-loose-01 - - 1.715em - - - - valueFontSize - - Value - - font-scale-03 - - 1rem / 16px - - - - valueFontWeight - - Value - - font-weight-regular - - 400 - - - - valueFontStyle - - Value - - font-style-normal - - normal - - - - helperTextFontSize - - Helper text - - font-scale-01 - - 12px - - - - helperTextFontWeight - - Helper text - - font-weight-regular - - 400 - - - - helperTextFontStyle - - Helper text - - font-style-normal - - normal - - - - helperTextLineHeight - - Helper text - - font-leading-normal - - 1.5em - - - - optionalLabelFontWeight - - Optional indicator - - font-weight-regular - - 400 - - - - listOptionFontSize - - List option - - font-scale-02 - - 0.875rem / 14px - - - - listOptionFontWeight - - List option - - font-weight-regular - - 400 - - - - listOptionFontStyle - - List option - - font-style-normal - - normal - - - - - - - Property - Element - Core token - Value - - - - - - font-size - - Error message - - font-scale-01 - - 0.75rem / 12px - - - - font-weight - - Error message - - font-weight-regular - - 400 - - - - line-height - - Value - - font-leading-normal - - 1.5em - - - - line-height - - Error message - - font-leading-normal - - 1.5em - - - - font-size - - Placeholder - - font-scale-03 - - 1rem / 16px - - - - font-weight - - Placeholder - - font-regular - - 400 - - - - font-weight - - List option typed - - font-bold - - 600 - - - - font-size - - System message - - font-scale-02 - - 0.875 / 14px - - - - font-weight - - System message - - font-regular - - 400 - - - - - ), - }, - { - title: "Spacing", - content: ( - <> - - - - Component token - Element - Core token - Value - - - - - - inputMarginTop - - Input container - - spacing-4 - - 0.25rem / 4px - - - - inputMarginBottom - - Input container - - spacing-4 - - 0.25rem / 4px - - - - prefixDividerPaddingRight - - Prefix - - spacing-8 - - 0.5rem / 8px - - - - suffixDividerPaddingLeft - - Suffix - - spacing-8 - - 0.5rem / 8px - - - - - - - Property - Element - Core token - Value - - - - - - margin-left - - Error icon - - spacing-4 - - 0.25rem / 4px - - - - margin-left - - Action - - spacing-4 - - 0.25rem / 4px - - - - margin-left - - Prefix - - spacing-4 - - 0.25rem / 4px - - - - padding-right - - Prefix - - spacing-8 - - 0.5rem / 8px - - - - padding-left - - Suffix - - spacing-8 - - 0.5rem / 8px - - - - margin-left - - Suffix - - spacing-4 - - 0.25rem / 4px - - - - margin-right - - Suffix - - spacing-4 - - 0.25rem / 4px - - - - padding-left - - Input - - spacing-8 - - 0.5rem / 8px - - - - padding-right - - Input - - spacing-8 - - 0.5rem / 8px - - - - padding-left - - Input container - - spacing-8 - - 0.5rem / 8px - - - - padding-right - - Input container - - spacing-8 - - 0.5rem / 8px - - - - padding-top - - List dialog - - spacing-4 - - 0.25rem / 4px - - - - padding-bottom - - List dialog - - spacing-4 - - 0.25rem / 4px - - - - padding-left - - List option - - spacing-8 - - 0.5rem / 8px - - - - padding-right - - List option - - spacing-8 - - 0.5rem / 8px - - - - padding-top - - List option - - spacing-2 - - 0.125rem / 2px - - - - padding-bottom - - List option - - spacing-2 - - 0.125rem / 2px - - - - padding-left - - List option value - - spacing-8 - - 0.5rem / 8px - - - - padding-right - - List option value - - spacing-8 - - 0.5rem / 8px - - - - - ), - }, - { - title: "Border", - content: ( - <> - - - - Property - Element - Core token - Value - - - - - - prefixDividerBorderWidth - - Prefix - - - 1px - - - - prefixDividerBorderStyle - - Prefix - - border-style-solid - - solid - - - - suffixDividerBorderWidth - - Suffix - - - 1px - - - - suffixDividerBorderStyle - - Suffix - - border-style-solid - - solid - - - - - - - Property - Element - Core token - Value - - - - - - border - - Input container - - border-width-1 - - 1px - - - - border - - Input container - - border-style-solid - - solid - - - - border - - Input container:focus - - border-width-1 - - 1px - - - - border - - Input container:focus - - border-style-solid - - solid - - - - box-shadow - - Input container:focus - - - 0 0 0 2px - - - - box-shadow - - Input container:error - - - 0 0 0 2px - - - - border - - List dialog - - border-width-1 - - 1px - - - - border - - List dialog - - border-style-solid - - solid - - - - border - - List dialog - - border-radius-medium - - 0.25rem / 4px - - - - border - - List option divider - - border-width-1 - - 1px - - - - border - - List option divider - - border-style-solid - - solid - - - - box-shadow - - List dialog - - shadow-default - - 0 8px 14px -2px rgba(0,0,0,0.1) - - - - - ), - }, - { - title: "Width", - content: ( - - - - Width - Value - - - - - - small - - 240px - - - - medium - - 360px - - - - large - - 480px - - - - fillParent - - 100% - - - - ), - }, - { - title: "Margin", - content: ( - <> - - - - Margin - Value - - - - - - xxsmall - - 6px - - - - xsmall - - 16px - - - - small - - 24px - - - - medium - - 36px - - - - large - - 48px - - - - xlarge - - 64px - - - - xxlarge - - 100px - - - - - And also apply different values to each side of the component: top, bottom,{" "} - left and right. - - - ), - }, - ], - }, - { - title: "Accessibility", - subSections: [ - { - title: "WCAG 2.2", - content: ( - - - Understanding WCAG 2.2 -{" "} - - 1.3.1: Information and Relationships - - - - Understanding WCAG 2.2 -{" "} - - 3.3.1: Error Identification - - - - Understanding WCAG 2.2 -{" "} - - 3.3.2: Labels and Instructions - - - - Understanding WCAG 2.2 -{" "} - - 3.3.3: Error Suggestion - - - - Understanding WCAG 2.2 -{" "} - - 4.1.2: Name, Role, Value - - - - ), - }, - ], - }, -]; - -const TextInputSpecsPage = () => { - return ( - - - - - - - ); -}; - -export default TextInputSpecsPage; diff --git a/apps/website/screens/components/text-input/specs/images/autosuggest_anatomy.png b/apps/website/screens/components/text-input/specs/images/autosuggest_anatomy.png deleted file mode 100644 index 36ff25791c1827231dceec810b12feb089f8ce12..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 20227 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 R_*Oea?Tq&6>{Avu{|}VYEU^Fp diff --git a/apps/website/screens/components/text-input/specs/images/autosuggest_specs.png b/apps/website/screens/components/text-input/specs/images/autosuggest_specs.png deleted file mode 100644 index 19a2374201a8e7427504da23d1a9e3d6649043a9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 23353 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 JKt162(_gle9b5na diff --git a/apps/website/screens/components/text-input/specs/images/input_states.png b/apps/website/screens/components/text-input/specs/images/input_states.png deleted file mode 100644 index c46c1a9b4c5ecb48735e199cf959779b2a3d6eb9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 23197 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%0Dq>RZ|ZWL1=>v0FJbS^ouKj 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 Date: Wed, 9 Apr 2025 17:24:13 +0200 Subject: [PATCH 04/10] Number and password input doc updates --- .../pages/components/number-input/code.tsx | 17 ++ .../pages/components/number-input/index.tsx | 24 +- .../number-input/specifications.tsx | 21 -- .../pages/components/number-input/usage.tsx | 21 -- .../pages/components/password-input/code.tsx | 17 ++ .../pages/components/password-input/index.tsx | 24 +- .../password-input/specifications.tsx | 21 -- .../pages/components/password-input/usage.tsx | 21 -- .../number-input/NumberInputPageLayout.tsx | 12 +- .../number-input/code/NumberInputCodePage.tsx | 230 +++++++++--------- .../NumberInputOverviewPage.tsx} | 22 +- .../specs/NumberInputSpecsPage.tsx | 130 ---------- .../specs/images/number_action_states.png | Bin 19412 -> 0 bytes .../specs/images/number_anatomy.png | Bin 19030 -> 0 bytes .../specs/images/number_input_states.png | Bin 20933 -> 0 bytes .../specs/images/number_specs.png | Bin 26430 -> 0 bytes .../PasswordInputPageLayout.tsx | 14 +- .../code/PasswordInputCodePage.tsx | 168 ++++++------- .../PasswordInputOverviewPage.tsx} | 22 +- .../specs/PasswordInputSpecsPage.tsx | 157 ------------ .../specs/images/password_actions.png | Bin 13394 -> 0 bytes .../specs/images/password_anatomy.png | Bin 17277 -> 0 bytes .../specs/images/password_specs.png | Bin 22063 -> 0 bytes .../specs/images/password_states.png | Bin 21622 -> 0 bytes .../text-input/TextInputPageLayout.tsx | 2 +- packages/lib/src/number-input/NumberInput.tsx | 65 ++--- 26 files changed, 315 insertions(+), 673 deletions(-) create mode 100644 apps/website/pages/components/number-input/code.tsx delete mode 100644 apps/website/pages/components/number-input/specifications.tsx delete mode 100644 apps/website/pages/components/number-input/usage.tsx create mode 100644 apps/website/pages/components/password-input/code.tsx delete mode 100644 apps/website/pages/components/password-input/specifications.tsx delete mode 100644 apps/website/pages/components/password-input/usage.tsx rename apps/website/screens/components/number-input/{usage/NumberInputUsagePage.tsx => overview/NumberInputOverviewPage.tsx} (63%) delete mode 100644 apps/website/screens/components/number-input/specs/NumberInputSpecsPage.tsx delete mode 100644 apps/website/screens/components/number-input/specs/images/number_action_states.png delete mode 100644 apps/website/screens/components/number-input/specs/images/number_anatomy.png delete mode 100644 apps/website/screens/components/number-input/specs/images/number_input_states.png delete mode 100644 apps/website/screens/components/number-input/specs/images/number_specs.png rename apps/website/screens/components/password-input/{usage/PasswordInputUsagePage.tsx => overview/PasswordInputOverviewPage.tsx} (68%) delete mode 100644 apps/website/screens/components/password-input/specs/PasswordInputSpecsPage.tsx delete mode 100644 apps/website/screens/components/password-input/specs/images/password_actions.png delete mode 100644 apps/website/screens/components/password-input/specs/images/password_anatomy.png delete mode 100644 apps/website/screens/components/password-input/specs/images/password_specs.png delete mode 100644 apps/website/screens/components/password-input/specs/images/password_states.png diff --git a/apps/website/pages/components/number-input/code.tsx b/apps/website/pages/components/number-input/code.tsx new file mode 100644 index 000000000..367f94ebb --- /dev/null +++ b/apps/website/pages/components/number-input/code.tsx @@ -0,0 +1,17 @@ +import Head from "next/head"; +import type { ReactElement } from "react"; +import NumberInputCodePage from "screens/components/number-input/code/NumberInputCodePage"; +import NumberInputPageLayout from "screens/components/number-input/NumberInputPageLayout"; + +const Code = () => ( + <> + + Number input code — Halstack Design System + + + +); + +Code.getLayout = (page: ReactElement) => {page}; + +export default Code; diff --git a/apps/website/pages/components/number-input/index.tsx b/apps/website/pages/components/number-input/index.tsx index 7c7a89aa9..63d76c1ba 100644 --- a/apps/website/pages/components/number-input/index.tsx +++ b/apps/website/pages/components/number-input/index.tsx @@ -1,21 +1,17 @@ import Head from "next/head"; import type { ReactElement } from "react"; -import NumberInputCodePage from "screens/components/number-input/code/NumberInputCodePage"; import NumberInputPageLayout from "screens/components/number-input/NumberInputPageLayout"; +import NumberInputOverviewPage from "screens/components/number-input/overview/NumberInputOverviewPage"; -const Index = () => { - return ( - <> - - Number Input — Halstack Design System - - - - ); -}; +const Index = () => ( + <> + + Number input — Halstack Design System + + + +); -Index.getLayout = function getLayout(page: ReactElement) { - return {page}; -}; +Index.getLayout = (page: ReactElement) => {page}; export default Index; diff --git a/apps/website/pages/components/number-input/specifications.tsx b/apps/website/pages/components/number-input/specifications.tsx deleted file mode 100644 index 085604274..000000000 --- a/apps/website/pages/components/number-input/specifications.tsx +++ /dev/null @@ -1,21 +0,0 @@ -import Head from "next/head"; -import type { ReactElement } from "react"; -import NumberInputSpecsPage from "screens/components/number-input/specs/NumberInputSpecsPage"; -import NumberInputPageLayout from "screens/components/number-input/NumberInputPageLayout"; - -const Specifications = () => { - return ( - <> - - Number Input Specs — Halstack Design System - - - - ); -}; - -Specifications.getLayout = function getLayout(page: ReactElement) { - return {page}; -}; - -export default Specifications; diff --git a/apps/website/pages/components/number-input/usage.tsx b/apps/website/pages/components/number-input/usage.tsx deleted file mode 100644 index 18d4c4233..000000000 --- a/apps/website/pages/components/number-input/usage.tsx +++ /dev/null @@ -1,21 +0,0 @@ -import Head from "next/head"; -import type { ReactElement } from "react"; -import NumberInputPageLayout from "screens/components/number-input/NumberInputPageLayout"; -import NumberInputUsagePage from "screens/components/number-input/usage/NumberInputUsagePage"; - -const Usage = () => { - return ( - <> - - Number Input Usage — Halstack Design System - - - - ); -}; - -Usage.getLayout = function getLayout(page: ReactElement) { - return {page}; -}; - -export default Usage; diff --git a/apps/website/pages/components/password-input/code.tsx b/apps/website/pages/components/password-input/code.tsx new file mode 100644 index 000000000..26f5d826b --- /dev/null +++ b/apps/website/pages/components/password-input/code.tsx @@ -0,0 +1,17 @@ +import Head from "next/head"; +import type { ReactElement } from "react"; +import PasswordInputPageLayout from "screens/components/password-input/PasswordInputPageLayout"; +import PasswordInputCodePage from "screens/components/password-input/code/PasswordInputCodePage"; + +const Code = () => ( + <> + + Password input code — Halstack Design System + + + +); + +Code.getLayout = (page: ReactElement) => {page}; + +export default Code; diff --git a/apps/website/pages/components/password-input/index.tsx b/apps/website/pages/components/password-input/index.tsx index f7a08991c..ffbaf4818 100644 --- a/apps/website/pages/components/password-input/index.tsx +++ b/apps/website/pages/components/password-input/index.tsx @@ -1,21 +1,17 @@ import Head from "next/head"; import type { ReactElement } from "react"; -import PasswordInputCodePage from "screens/components/password-input/code/PasswordInputCodePage"; +import PasswordInputOverviewPage from "screens/components/password-input/overview/PasswordInputOverviewPage"; import PasswordInputPageLayout from "screens/components/password-input/PasswordInputPageLayout"; -const Index = () => { - return ( - <> - - Password Input — Halstack Design System - - - - ); -}; +const Index = () => ( + <> + + Password input — Halstack Design System + + + +); -Index.getLayout = function getLayout(page: ReactElement) { - return {page}; -}; +Index.getLayout = (page: ReactElement) => {page}; export default Index; diff --git a/apps/website/pages/components/password-input/specifications.tsx b/apps/website/pages/components/password-input/specifications.tsx deleted file mode 100644 index 2cc2c497e..000000000 --- a/apps/website/pages/components/password-input/specifications.tsx +++ /dev/null @@ -1,21 +0,0 @@ -import Head from "next/head"; -import type { ReactElement } from "react"; -import PasswordInputSpecsPage from "screens/components/password-input/specs/PasswordInputSpecsPage"; -import PasswordInputPageLayout from "screens/components/password-input/PasswordInputPageLayout"; - -const Specifications = () => { - return ( - <> - - Password Input Specs — Halstack Design System - - - - ); -}; - -Specifications.getLayout = function getLayout(page: ReactElement) { - return {page}; -}; - -export default Specifications; diff --git a/apps/website/pages/components/password-input/usage.tsx b/apps/website/pages/components/password-input/usage.tsx deleted file mode 100644 index 7c2d9ee71..000000000 --- a/apps/website/pages/components/password-input/usage.tsx +++ /dev/null @@ -1,21 +0,0 @@ -import Head from "next/head"; -import type { ReactElement } from "react"; -import PasswordInputUsagePage from "screens/components/password-input/usage/PasswordInputUsagePage"; -import PasswordInputPageLayout from "screens/components/password-input/PasswordInputPageLayout"; - -const Usage = () => { - return ( - <> - - Password Input Usage — Halstack Design System - - - - ); -}; - -Usage.getLayout = function getLayout(page: ReactElement) { - return {page}; -}; - -export default Usage; diff --git a/apps/website/screens/components/number-input/NumberInputPageLayout.tsx b/apps/website/screens/components/number-input/NumberInputPageLayout.tsx index dabcadd6b..983c5a5f6 100644 --- a/apps/website/screens/components/number-input/NumberInputPageLayout.tsx +++ b/apps/website/screens/components/number-input/NumberInputPageLayout.tsx @@ -6,24 +6,20 @@ import { ReactNode } from "react"; const NumberInputPageHeading = ({ children }: { children: ReactNode }) => { const tabs = [ - { label: "Code", path: "/components/number-input" }, - { label: "Usage", path: "/components/number-input/usage" }, - { - label: "Specifications", - path: "/components/number-input/specifications", - }, + { label: "Overview", path: "/components/number-input" }, + { label: "Code", path: "/components/number-input/code" }, ]; return ( - + The number input is a text input component that only allows numerical values and it has controls for incrementing or decrementing them. - + {children} diff --git a/apps/website/screens/components/number-input/code/NumberInputCodePage.tsx b/apps/website/screens/components/number-input/code/NumberInputCodePage.tsx index 9536cda0a..1de41f38f 100644 --- a/apps/website/screens/components/number-input/code/NumberInputCodePage.tsx +++ b/apps/website/screens/components/number-input/code/NumberInputCodePage.tsx @@ -25,54 +25,40 @@ const sections = [ - defaultValue + ariaLabel string - Initial value of the input element, only when it is uncontrolled. - - - - - value - string + Specifies a string to be used as the name for the number input element when no label is + provided. - Value of the input element. If undefined, the component will be uncontrolled and the value will be managed - internally by the component. + 'Number input' - - - label + autocomplete string - Text to be placed above the number input. - - - - - name - string + HTML autocomplete attribute. Lets the user specify if any permission the user agent has to + provide automated assistance in filling out the input value. Its value must be one of all the possible + values of the HTML autocomplete attribute. See{" "} + MDN{" "} + for further information. - Name attribute of the input element. - - - - - helperText - string + 'off' - Helper text to be placed above the number. - - - placeholder + defaultValue string - Text to be put as placeholder of the number. + Initial value of the input element, only when it is uncontrolled. - @@ -86,55 +72,52 @@ const sections = [ - optional - - boolean - + error - If true, the number will be optional, showing the text '(Optional)' next to the label. Otherwise, the - field will be considered required and an error will be passed as a parameter to the onBlur{" "} - and onChange functions when it has not been filled. + string - false + If it is a defined value and also a truthy string, the component will change its appearance, showing the + error below the input component. If the defined value is an empty string, it will reserve a space below + the component for a future error, but it would not change its look. In case of being undefined or null, + both the appearance and the space for the error message would not be modified. + - - readOnly - - boolean - - - If true, the component will not be mutable, meaning the user can not edit the control. The value won't - change when pressing on the up or down arrows and neither on the spin buttons. - + helperText - false + string + Helper text to be placed above the number. + - - prefix + label string - Prefix to be placed before the number value. + Text to be placed above the number input. - - suffix + margin - string + 'xxsmall' | 'xsmall' | 'small' | 'medium' | 'large' | 'xlarge' | 'xxlarge' | Margin + + + Size of the margin to be applied to the component. You can pass an object with 'top', 'bottom', 'left' and + 'right' properties in order to specify different margin sizes. - Suffix to be placed after the number value. - - min + max number - Minimum value allowed by the number input. If the typed value by the user is lower than min, the{" "} + Maximum value allowed by the number input. If the typed value by the user surpasses max, the{" "} onBlur and onChange functions will be called with the current value and an internal error informing that the current value is not correct. If a valid state is reached, the error parameter will not be defined in both events. @@ -142,12 +125,12 @@ const sections = [ - - max + min number - Maximum value allowed by the number input. If the typed value by the user surpasses max, the{" "} + Minimum value allowed by the number input. If the typed value by the user is lower than min, the{" "} onBlur and onChange functions will be called with the current value and an internal error informing that the current value is not correct. If a valid state is reached, the error parameter will not be defined in both events. @@ -155,14 +138,24 @@ const sections = [ - - step + name - number + string - The step interval to use when using the up and down arrows to adjust the value. + Name attribute of the input element. + - + + + onBlur - 1 + {"(val: { value: string; error?: string }) => void"} + + + This function will be called when the input element loses the focus. An object including the input value + and the error (if the value entered is not valid) will be passed to this function. If there is no error,{" "} + error will not be defined. + - onChange @@ -177,56 +170,73 @@ const sections = [ - - onBlur + optional - {"(val: { value: string; error?: string }) => void"} + boolean - This function will be called when the input element loses the focus. An object including the input value - and the error (if the value entered is not valid) will be passed to this function. If there is no error,{" "} - error will not be defined. + If true, the number will be optional, showing the text '(Optional)' next to the label. Otherwise, the + field will be considered required and an error will be passed as a parameter to the onBlur{" "} + and onChange functions when it has not been filled. + + + false - - - error + placeholder string + Text to be put as placeholder of the number. + - + + + prefix - If it is a defined value and also a truthy string, the component will change its appearance, showing the - error below the input component. If the defined value is an empty string, it will reserve a space below - the component for a future error, but it would not change its look. In case of being undefined or null, - both the appearance and the space for the error message would not be modified. + string + Prefix to be placed before the number value. - - autocomplete + readOnly - string + boolean - HTML autocomplete attribute. Lets the user specify if any permission the user agent has to - provide automated assistance in filling out the input value. Its value must be one of all the possible - values of the HTML autocomplete attribute. See{" "} - MDN{" "} - for further information. + If true, the component will not be mutable, meaning the user can not edit the control. The value won't + change when pressing on the up or down arrows and neither on the spin buttons. - 'off' + false - margin + ref - 'xxsmall' | 'xsmall' | 'small' | 'medium' | 'large' | 'xlarge' | 'xxlarge' | Margin + {"React.Ref"} + Reference to the component. + - + + - Size of the margin to be applied to the component. You can pass an object with 'top', 'bottom', 'left' and - 'right' properties in order to specify different margin sizes. + + + showControls + + + + boolean + + + Decides whether the number input has actions to increase or decrease the value, following the defined + step. + + + true - - size @@ -239,55 +249,45 @@ const sections = [ - tabIndex + step number + The step interval to use when using the up and down arrows to adjust the value. - Value of the tabindex attribute. - - - 0 + 1 - ref + suffix - {"React.Ref"} + string - Reference to the component. + Suffix to be placed after the number value. - - ariaLabel + tabIndex - string + number - Specifies a string to be used as the name for the number input element when no label is - provided. + Value of the tabindex attribute. - 'Number input' + 0 + value - - - showControls - - - - boolean - - - Decides whether the number input has actions to increase or decrease the value, following the defined - step. + string - true + Value of the input element. If undefined, the component will be uncontrolled and the value will be managed + internally by the component. + - @@ -312,15 +312,13 @@ const sections = [ }, ]; -const NumberInputCodePage = () => { - return ( - - - - - - - ); -}; +const NumberInputCodePage = () => ( + + + + + + +); export default NumberInputCodePage; diff --git a/apps/website/screens/components/number-input/usage/NumberInputUsagePage.tsx b/apps/website/screens/components/number-input/overview/NumberInputOverviewPage.tsx similarity index 63% rename from apps/website/screens/components/number-input/usage/NumberInputUsagePage.tsx rename to apps/website/screens/components/number-input/overview/NumberInputOverviewPage.tsx index 313058644..84fc99e95 100644 --- a/apps/website/screens/components/number-input/usage/NumberInputUsagePage.tsx +++ b/apps/website/screens/components/number-input/overview/NumberInputOverviewPage.tsx @@ -5,7 +5,7 @@ import DocFooter from "@/common/DocFooter"; const sections = [ { - title: "Usage", + title: "Introduction", content: ( <> Considerations for the use of the number input component: @@ -21,15 +21,13 @@ const sections = [ }, ]; -const NumberInputUsagePage = () => { - return ( - - - - - - - ); -}; +const NumberInputOverviewPage = () => ( + + + + + + +); -export default NumberInputUsagePage; +export default NumberInputOverviewPage; diff --git a/apps/website/screens/components/number-input/specs/NumberInputSpecsPage.tsx b/apps/website/screens/components/number-input/specs/NumberInputSpecsPage.tsx deleted file mode 100644 index 46cd403b8..000000000 --- a/apps/website/screens/components/number-input/specs/NumberInputSpecsPage.tsx +++ /dev/null @@ -1,130 +0,0 @@ -import { DxcParagraph, DxcFlex, DxcLink, DxcBulletedList } from "@dxc-technology/halstack-react"; -import Link from "next/link"; -import Figure from "@/common/Figure"; -import Code from "@/common/Code"; -import DocFooter from "@/common/DocFooter"; -import Image from "@/common/Image"; -import QuickNavContainer from "@/common/QuickNavContainer"; -import QuickNavContainerLayout from "@/common/QuickNavContainerLayout"; -import numberSpecs from "./images/number_specs.png"; -import numberInputSpecs from "./images/number_input_states.png"; -import numberInputStates from "./images/number_action_states.png"; -import numberAnatomy from "./images/number_anatomy.png"; - -const sections = [ - { - title: "Specifications", - content: ( - <> -
- Number input design specifications -
- - The number input color, typography, border, spacing,{" "} - width and margin specifications are inherited from the text input, for reference - check the{" "} - - text input - {" "} - component documentation. - - - ), - }, - { - title: "States", - subSections: [ - { - title: "Input", - content: ( - <> - - States: enabled, hover, focus, error{" "} - and disabled. - -
- Number input states -
- - ), - }, - { - title: "Spin button", - content: ( - <> - - States: enabled, hover, focus, active{" "} - and disabled. - -
- Spin button states -
- - ), - }, - ], - }, - { - title: "Anatomy", - content: ( - <> - Number input anatomy - - Label - - Helper text (Optional) - - - Suffix (Optional) - - Container - Spin button increase - Spin button decrease - Error indicator - Error message - Value - - - ), - }, - { - title: "Accessibility", - subSections: [ - { - title: "WAI-ARIA", - content: ( - - - WAI-ARIA Authoring practices 1.2 -{" "} - - 3.21 Spinbutton - - - - WAI-ARIA Authoring practices 1.2 -{" "} - - "Date Picker Spin Button" design pattern - - - - ), - }, - ], - }, -]; - -const NumberInputSpecsPage = () => { - return ( - - - - - - - ); -}; - -export default NumberInputSpecsPage; diff --git a/apps/website/screens/components/number-input/specs/images/number_action_states.png b/apps/website/screens/components/number-input/specs/images/number_action_states.png deleted file mode 100644 index 8e6369dff7b6ffde4e4847737c9b1f3c48659969..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 19412 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 LjT=SRE$;nacK(^D diff --git a/apps/website/screens/components/number-input/specs/images/number_anatomy.png b/apps/website/screens/components/number-input/specs/images/number_anatomy.png deleted file mode 100644 index 0f6da22448604303eb847edf71fc934999e7ad85..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 19030 zcmeIaXIPV46E>QJAWZ>LK}5QU(gj87y-Shag9VX}R3TImkfL-Eq<07q1Oe$NDosIp zFDkuDNoWaY1>Enu_xpY4$N71#Yx^UntY?*3vu5slW)`7Z8cL_gFOWkZkW(tk^4bsx zQ4<6LRVF^ObRm$5+j4A*b$hwOkZD z-*Q(V;u?MsYh!iqtIy=1giDv3w^?LJ%UYGtAH~e|8xrz82o3S{{EbB(x%kc4^M>t^9O0j?1g{Mm3sXd1Uhu4_bbckfBrz) zWJ>h+d4f5mQnNsi_mb!@{bK?C5a?^$f2^Ncy6FrIZlQTwC{X^NKd?YtPW^4|gmpfV z^@l8nT0e~XpTXc3C4ZMGK@^%mC=%Dcouv8a4?w6l{wX__e}($5Q2*7`e~mj>E+~-iRpD?C9f2`qH9oH{8=BQc&Y+qisf0D38>AewQ7L zlyPp#<>tH8zF=V2&noysOwZovlxg|^Tcj&Bn6;0;%8fmLL80qa#dHwmHrdDEcUPW) zhNe7Cb9@HGz^7O+16SxX`!tnB>nE&yAWtoAp&%wY{*124+wRkXZ;|&Gdam>3Z(fNY zxD7M^E;BR&8o>;OFJG31RE|b`XNIdPTeP=dUy$IfFs#t@%743MM~^5Hy+sck#(Eee zt=2rz`U`N08Z;~rG3&~CZkWPZ($D;NJ=MFG$0OpW*gA>wSpEGy;5%d6ou)$CaB8Pl zz&jdkDmb1dHI^PnzB(A$NUxIEw^6naF~9Nt92QO@aV8n8-2C*E%OJPVw_B&Bn?ix_ z4IT7B!KNH`79u^jJzvZQf zm#Hfg6t1e#G(YFi?;P#C^PqA%m12yJ-)Hs2Ksp?VN6QrobLw8Xbp|?0k+1js(`hvr zrd+e+BrVZmM(cY_GOJR54fsLsI zQm}hGBG)7z@OyG4E+EZ*YxLe+_N_!Gzx%u143;WEOxlD=rt=DtR)$|ViC`0>+Mm=;82nzb zea~_>>kE;Sj(zRcB5Sd1kEWPGCd}yr(totVmJ{K-Yv~K&Gbl;68+oTvXn-!E;^03| zcd(Z(6Zl~4{o^vbVL|Ke%pi09@%!So13bf(_HRD5v@AiN^kl0DS~NlEZ`j18SkE(n zgUv?$b{HR0CnWSw0y3m=@!~c(ibKM^qP1s$Axd=MR@b%LI6{3}H8kxnfLA%vOQ#bhOe||F61plXbk`;Zs`p zOImcWSu*%$^_xMI34?w-KfX`4km^9OtaEyAxyV4$$QZDx{*HNFPf(|h}TG71Q^iF%UXa3PF)%b%);d} zGB>HOkOfGif8A>QWJP&tykn)=}HFkqZ(i6A@#@Ntc{UHV8*d*dewO2@db{ z)hrQUx?Y1Z@1N;(s^=*ErSqrJUn+BVI;*?G@2R-J?%Ts6p)c#&L~SblLflq}9@D@Tjx< z``ZHgRFbHA;;HlxSbeTTQ~?U}EG|#UnKyAPOGSApTM#g?CSI7Lq{saVh$$bJY)@p$ ztK=~kXh`RrgESjCf#U>&K7wCgdFJmz+-D;ney3w*z92d3Wahm@QXH+75#QHZX3AvA13&KHj2(*fPy?SXN z(bANZWePZi(q5}5JiCR~AHUacvG6fm{qLSHk2GJe?tff(?Sw9p*zmtTJY}3(BTX$pGr|GYa|vacVue<)Wym^}j%M^%TAlMX+TH&C`R9*}!m0iCx?(}goVUn1 zWMvTtziYlGHD>+BFUNWBRp+~e@Wp;My?5e`aJ1RD}S0iH0WCOk_`|CGjk=Mygqi9lT0ipKVqZfyf8eRez zhBWmda8L9w12eby+bN=Y7l6^7{9#o7ux)Fhcji~56h`cMca~B|fll6oq0+k?qC@>C z1GR8k-mrefD~nh3Nq9t!it(3U8vZQb*1pSDk4Cf0i3vxMuJ|QOcxW{At)?(<>~=XX z#~qSb+B0=0A?JCM4Dzn4LEPJKcWVN)6AKQPdU=~6wKU5#%$=&q$jHcf)V`|C55Jkl z7AbMo?QHeqaLtQ{;~Mlk!-{G3S{c|-VKPBmoaCLm)iIUi2Y1&{4~8q7H#Q7R4lur7 z$4}*~eRJbwV*NI1W!HMM7!VNKB9V~o!b()ByF_0M15N0!A7|F-h9@^W|!2Q zAKGEOrpy=TwY%O-mGkghlHkLy=jkQA-)}AUt4S#l54x|6ELdK+{)okXYluP78KML%?^B?>9&NM<0@~}7#k9^+`WHi{mOZBTz}4@@6S-qOJZUs zh#-Bcg|M(NE`3PJUf)gO6p{Pmq7RDQuEh@t6ZS`v713?wsY1k3m8A&YeWt4ix=1N+?WsoNU;uZ)dpa&{ri(=RrJ#7n*Mj zQLK_ShzyP6ATnv&ajfbX4fnWk!9Avu*z1%@`Y9vN3To&ON~r5Sn1?FZ<`F4zBO1z2>p8(b25&TzWN+hz%vSRO3;1vV!rDB4P^KdG60Pqh(&- zdX~_QC6iJ`l;^bjaSdQebb2cl=-*pRVcm#foCIL zD#c|#D-BcxfQW&SH9XatLr6cTZE3TL-XSH#f?-akSF971l zPkjY~I-S4r31H~>kqX-->>}lP0qMy~Qzv4>;CBKR45@F8q&LChpj5Gu>DmMv<&&Ti`CV%u+leH32y<1Gy|IF zoz4uQ{bJqbC}m~I z$3@b@Gn70<6Dx0SWv=g|`knBI-U}PMX(d-(AKW~&58@f|Zk@}&8Tp8pOfQo$UpCk*7~8gKCUqEH_Om=N!_-vY z6Oj-YEjSyzPxFij%&-ZVA(W%o>L5C;>cpylccI=CZPu%fZXFTU1^dr}r}y^#jBuyO z@=)BYkXkP<`isEm=>ntI8=7Hq6vCY)`)ZuVH-5R8LM2cLc{7$z-OrC#Uzsb1#sC0R zGm+wxwgjqcVCfumXU*?A{clvmdR%okmOMiF>>6 z3Zmx0gBfL20joqcjxDE977NL#a%H+@WZf~`-nF2jIkyUpR? zq|7=c+0A%hROP^?0QOn~4j%`9`o}f&I1~47@FOSyLRYC5A;}@HOQ#UNastqy*aU_^ zMM%IQ*t+Vo1gS8?#6~9gITK3aHasfh7x^W5EtAYc&jD0JEf}D6qFYGJqhkWf-}alI zPIZ{UMD^oGDj$qc+)D7tz%at|u>i+hmgzkSBfX_Lm6z}3mB(Ob&Xuz?;64GFzXoJv z%+e>LJ6`x(ZG(}<{OwcI20sbt&_KE798fndU^DbK-hp*i(zQ}F8Kh1)>^Jnt0MVpM z=M$CE2y9gA(X5DSrZIs7YycK%p5plhED}l_all4jN^^vmCE==U&oAtbafP}kJ|HOZ zRiMs!U(ez|7NM8W(Aq2S5jEIeb}bs2zScQ?m3K=?DtB1`r0@dcFXg?4viVEjA+$8= zs}Z3B;LosfrZlxE=pGtnCbeBi9fbtkhg32cOCvy&+10W*ni8mo5MUh`NU z>VB*Zx~`+~r?d65xRsQH!`fpH@%#EF`)eky*4B(4rEc9?g=I98varA{_+W7H%jr+o zxHl`?D}pdld;;wGvpmUzR8{UJ>Zj~ z(!AgF_M+ctvRLib#enZ19U}KjnV0mIti`~d>w=I({~SMY!-))Eqt`?AZ(Xe~%sqb` zTo?;Dq>45btdkJ*vTfM#+W(rzVEHjKMaHec@lB23Y-+Gfirif=C?U!-ys5NyT7XBu z(lTi)^_9(g@4LjD5`BhVl@a{7S5M*3(pC7juJ^Sl+tVKy<|0wy3O?m*Kz@f&r~bCXEq z?USHn)m@oF0l^o8)E74>L@2%f|zCZzeZ|I$yYC5+5X3$8sw4hhP{JoI62RKCDCO(k`} z0s=!-t|0Po`Sxq4Zfms!zW9lHWJhO;7zZ1hEI&5V??5gy%g>LzDq7Im+PbG6>0wmu zoHL;aA|{p~pys@glW<{$YsU0))W8zGi0F!tT$VQX$Al963R$bUq%6I^W|}1Lr0;$) zk4fciK|#T-G{^1DC)@o79Uwrs7VEja*uT-`hu1muY*?*XI;j~F-Njo4^k&teod`2h zEE&wtL(VqE1`b*H<=6}sEiLI|nn9O)=i7$h%#T^^MlTT&x61|%BT;;QNpEE|=BD=~ z904USK@barGZT$kE$@Frnx6DKthXC`e@8W87B9@cIg=}>sP9Yh zvT7riO6|p4e$k{KiB_rI`%>=9Lu@bDlJ~;#Qp( zJproRO2a*E0eEk^V$i(Tz*o$59(bH<;irQ6qf9i$l4?`h(& zFNmPC>eWQ$oEa4unaqF#;C*czE+IqA*6-YJR!t7UPVcyrS146FT-)>I2ZhK$b+%=T{s}|rr z1u;fqv+SbpCQjC9u`?~h&&R5kgaX&lYY>4(kqZYkmnPj`i^n(^fs3Eew-ep>cl-zEv;NVcXNrOSK6E+D5&1 zzREYDfWJa_ivPkqlTKf`+kc%x}LR9K?Yy2rO zh5QO7fe!n2$WBBjCSLX1?Lcg$xw#!S7~gRiEMbJckFve>o%zY8Mz^qV+f)3YN@Jw9 zrQ#ZDx@&}2GC<$Iex1ZzlK=F28E_LF;@Hk_Jc)Z4i>d{*GjT{yU^67?jCgK$KE!aTwEX3zt0|mhL~14nEBjLmVhq-9^<3S z-IAsFf`;AFYim9uP10?#k7Dso;{!t29YkaAX1|Gh94bA*>_pC>kq#;9tlrqdu&G5b z+~hlyv1{P69xlttm+E}>Qww`gXad=wtXPs|)pweiaUN+ z1~}ws+Z*oZ;e_KQGU~faZj~iRBQ6EfzeYnYGBcymdk4QG{p!+1E5dSo0}QA(u4yY4 zUnm$v)g9u4M$P*xzY>B)Ah`N;fzOhWZ;Br>xHGx*5_9U}f=k@zQ%#FMZ1I%m7J)<9 zlttT=mqL=Uu87mXAo`BQT!^E!PF@J)fp+RD66Kony>~ z&zv>)$A(j}?|8r44#61v6lS?0D9)Rx;!aH|+!pb6fqmB^ev(x#cwWr$+d56s@l&;{ zHEMmx+J5E_ecX{3ZaO4ONpR5nD}0b`tx4xe0HLrQ6B3GxTi z)pC9Re!0R6!gfzSV7|JHxNm`7Y6qIf1sp&ro;+UKvd>nhk6imhy!pAzj(F}oDVA_x z)bUJDb6_Q+-s9}1zcXq%e4V?^Ss#$xttGLr%udxRo>(cCE!k^i_B(itw{c3%Fy_^- z6=h>*=QpIsSlLaxbevj)Qf^IF-CT3z;eE%b!Hgb`?Yi;a$0u>OnQ7Pkm&~r~iey@Z z`OexKMqiBuBA7lQOcIl42ER>Bx^*G@soDFrMdOVx^)IGhH5Ny`SZHAO&*}ViL-~Vd zI{MrcAy(!$vbl>DC^4@$cBuQUI9z5KZtC2|aW6ZfhWSqMg|(r#a#UT5THNZ3H@;0g<6p>--_c1Wq-A^a?p{&m*8M9*oUBcYk5fKscW*kjoq57YZs1uRNQF% z@molAe4NFXHEsyAsH<`#^ZMHsrdW_7QStJs5#N~#-1BMl)N~NmR@_#o*H!>ZN4%Jy ze}xducmRT3UQwOMTbcqsxkcr~-o-Ffo;d24Zu@7=P(I{+H5J31j4YB8rm!4Jw?pqc zlJ4-IFIf#FN@s%LSEWdntg@XuiQ5d8^a2f z()+3P7L!CpHi9+8N#OaJykHkz70J=_KE@AGwsHmN1ZZP*};+0z!Aa3|C#ITTkO8KY|$HLZj_b+F8rk<7g9>s5j0H5AMJ^Q(_u9JKJ*2UqSX!qzfW9xg>iV70&}12iM1vE zgTg)1COo>%BGu*Yb;w{p6KVBK&VYICG(A5ol@KDesi7~TBktpJ`cEYajM;mDZrEvMJfqOdQ^m81AYYC0?%2!{NCKwO(r+CqtOS3iAPUvm=m) zg-_pk;j&k?;)?Gzj9_~P1ON~Zc23Qw2#7g*#7k1w837GR)gbyO%s5Nphp+C-eH;bV5Z*m`p2~}vG$1pE2Ak60BG*Mt zS|EJ|uf1B)7{RcsAebF1ZwaEP6aYx`=6=xPB+$*uUj}L*#E`MkKwe<5&$~P-d#_^d zt`i6b)B>Konu<^iX(EQ%a2VRtQMik}8^IKPbfjA$OEMP)EIP^lOW0A=$I9%~=Tje^ zA*{aLtXD{X4}(wrBzKmCQJ&Gl!XuMw^>R!0aO2PM!Rbs-ZWP`3(Hz?}`5pjSE)9RP z%0>-|CF@f+P%H5Bp&Kn;Zv(Zg=CSJp3XrK*_6HGq`929QNCw17`(F z1-wD|jk&EZ_qf1iL3D@m1$zZpC+<_mb7rMdUN+-kILGIN z!L{G@1u~Wi2;!4~*dGwW9+Jml55St?1g>8i>knuP8g3!>jlu``+kL=~SA^)c;9%P? zTTIibym3ohWw9`9TBe@HU`{qCILQEodDx{uMwPgD8U%{cfgP85eCIqAUU!Mmp5IeI z--GNmJXRygi5}UK@I*qz{vNK5CB5N ztVL;`yO;eV;B1@;Px+k8dcR{#7xTrDC+KWRU zBmSr9Xge{t&B5hV!J1b_;A5nfjiQ(I<<5__yqHE+(LbsXlKRTiY%?yJa9J|iS2fnz(vy%{K@52inN~ik_!Yn2L zwmN>hnWX>;U?J8emAsB;&a9-JW$HM&VHd`3fq+(#XqUHGg(T{8H})fz*KQsZ`X<$1 za3o>aBc#=)341|H*b5LpO!psVZCzRMT&KC$N{|ja*xHxL!lEG713rTE+8C4aHzvgI zhk@llN>HFF}hT<)&r-c?`zxdW9=7=uWx`#Qk1(5J4l4jJS*NasoJQ9KWXN zjnXiqxZ?jaN+ZGbsr0l{mH#MF!SF8^Z2!l3!o;vZ6~=`UBH&Ot7}rjNpd;$GQFV*f zZYr;B8wKOynP;c0fv1=wea%QcK9TD3Fg2A>IW|E^&mr;j^)2v+#hM9{y*dP)&yQ|V zRBHXS`XWcI_kDV2mH>hIH?0KpE&m?&$X%c(tg~sC5Qrs#i?jU+q!<@<|1m^=>XDXN zE!?GDkx0yIJ+AdEd7*%TH~eva(EJq-`)e?=z2NoJZJKl933Flc4g7+9?7Ux@$TLN~cN9|HK5apB`3lw?5Yh z?J06sxSC@*<<~n;y-bqnJRdA+bL6J*Mw5P5=DH6sNxsb?ICGVQBZt%J7rI zg$qXl^aKLrBY~Up2;gf|1lP-7_$uxES{D}dnQ@@s{-#gXt13B}5n$?PWLfR=QMGaI zMRje)R(*9z__i-Y5*p%dgVS{0YBr*|Q(klN!e)ss1O8p>uqhc@_l{sAUPI98TY^_d zLsZZ28xJP^6Q*}=hI8twyj##ym0*sI#^xe)B^Nh3Hq`sET{F|lvk4S4uI*hk z<7L%-JNs&7*w74T)&0pC2M3PFXsY<tF%)-VRj$?(`s=aln_UZt`bkp;<&UT%$A|40N;_9y%*{EO08q8X}h50 zNyOu_Qs*P6{tGom&IE7%JI2rT0(_MASGAW86&G-N_uC{AIr@V!@v+=^ZX`1^TS74+ zJuPb_-)V3~`}c>#yacgwA$6MuoWUT1S%WG4NH;}xjnmf%CM^M&euCp&6bU%doY30Y zY~XrIj5O6%r$Bk%HH<1_?BERy~vB>nY096VSC*q*YiHkHUy7Joqm|o zBbQD7p1328s<6RtLkgACS>!j5kUZ!-D}w2^Q!(5M#WzO!NNVn5EBaCeH8l9lu7+@S zMj4M3qD2MgtWn>~=hRl{9otqNB2}_0%S^YcIk)vp+>(1_cUMW$;zoMEs3oFe$x~Wf zjHP-*8ZJjC3`DnUO7b*L^eS;ljF`1oIcAakC=R`;`g8S$^J?GK-5g6!6~lwjSCh?` z=34IzcjvyjwU@K7?OAKT!etzM8Kk!~snC%Q{Rf(ZLmdRk}l{Ds+dF`Dgt z|NibxT!o+>(yBB%>uI#CFrSN)?7n~fW(Bb^@stmdl4?CiV~E)~LzhU#gvF7tQqfLJ ztBx-=>N8=@Bl`)>&D-dL{(d5KL_*D`)jV|PV1rmpXMLYuM>3knp7@rd|J!>K_;u{NM3hZB$i0+VyNMcRu zQ*QB&r5V06MVyM%olEoROW6!~W>9?b`)k<1AMbLbTp0z_2m<>6TzBBPEO8hmjR1{* z+WV_AsWluj`0GA_re;-{;-e)EC)3JRCXC92rj*N1!CU>~hwA(rA<6gy+nCbz=7ZDu zOg)&Mg2;Rl5WRbJH?C+2@r+eR}c-ZCqzvKw3-_mQD$0t(Z0XMNubVqT$P)36(6 zzI*^FszjjnWBP4M(Q-jX6*ok4bxeE|45T_!VzY!K6Sn3QReti1ES2T@@wL$L;fk5; zZ+Jvjelr?RD1teaxTDuG468A(UslaysS|8nQkb&K2Z{#u6PXiEjO-Tej2t|bL?a!j zvL8lvi3n+G68yX)1*lDvIEfdy1bCxA36(fv`Co{n(KrGVHPMG9UxKhuzEp@a}( zl*VTuPm7S4exXz;O@}%Ar~+np36h8VZ5>+V5y}+iqM6*c_N#bfIgOAm2)YhQ(-^-Z z=75wQ4L(?KylX;HX(jY>5xYP8kSRg?aP(ub{^PFIQGUG>lK4^gM{ZqjD;H}kti`Hb zcj=rhrf-GjpX1a!Azql)xZVDyVn5_Co5Z35C#r+|u3vofknQdWQQ1~YFzRHneZa)X zJS{H3^xSH-++mWjn?6>-1$h1=z_KjXyLFNPSf;!Qz>WyUM@zazU9`lHx>SCc%+r6u zm%VzJOb3HL4Gy$f>Aj3e)u@w~YDJaQclTL&^~SA3Ec< z$cHWHn5>|WuQjTyq1q-N`WGo?$V-#**<%km_Cp%@PFL8fcBcAxJufaK9!D@gk#(lB zrjqOZ=wK-SzAvdrqD{mtme&1{@5fBX0`^jit2Mvg-gZo{ltawB5EA8rvhF>fh8f33 zqec>AVvFr5lo=!P5wtouSZn#x>oh_ob!?y6(hP-GrCqu>fPd^UIOb%jxoRe%Higo>5n+$`Fs39ZMA2>rK@wl{jpb z@Vc$4SGVJ^`V=9BB7RhX+wIXq%%U$_)g4AZz?I4%$9o)2%K9H;l!GO|Xd9Q#mR9}2 z6UfR1#v|aFO1Py2h0;;{6%1hfvGSrYw1(=viZ`*(&E=#NCCh`V#@3&_A-L2kP(iJd z?|k>Q^R=A0kXKpuZzc-rX;dT@M8qpIr?Z)(d^At>rm~F7`(2?8**u1{X`3YwucOLz z9T3_2=4sW(L^FTGE%3Hk1?SZBEH>2z?xs9vXQEdt(WYvbv5#mzWu#O}zvbaV-MmJ*k~S0NP^QY`sFgel=Y` zz$C($PYGvdMH!6#tEliqmZA}Sne!MhF5hh4A|)tgx&T2biD69Cf0Y%+M0YNa->$j- zfh*PI)tD!7uf)kZI$mZ zd9YhimqcSm5@b=P=`!qC*Dm*}-aJOKU~bj&)a&{FjNIs&C7KBR}Jk}$C(-YRM_-EaUI%)<-LOvkqgZR-~>UIDBOFDlq z|IPn#XC*|wd1WOC9(q(%3%^YVXsCup;PDJzbEZF?|0_X%W2D@Y*E2&7$3}9us>+Hq zTK1?>TWZC9;^-s^z#|Q(K@bXO-|=q?#8fKAVK71CGR;UL2&^|OqRa#@sW8r zsH>rPPqPgA?ajM>)Ncyt*FBYSk8t${^cw|RWE%TZxoRMEoErC@I74`1IuDecfth>* zPY9>6)Px*AA@HY8C_-Yr{Zaj&Iw5jirrXHVIUlpVZf9R?{rXC%dd^#zxez0JO)|?( zi}GkY=z(TfeLYiueASaB-QW0y`o*`Otg1;&K6SiPN}}7tiA@@FxaeT_#XUeqn64N` zV#ALv`%-al`mp9^bWMDR>TJQq-RY3}ji1TtzAZX^7)AF6(_r^UPBP=o6_tve<20^F z=!dIEBAB`bB=Rdaf|5XPz@?b?O*?Du?M+?6d((HgOS^N_%+_&UdL8Y4C(QWCx(-b! zZP!RJZV|`yaFuwHvM-fuOrD~#JWcsk$YHext-a)fCyQYt6G$qKwwHmNmLEMvH%CRm zg_vP0AM`EM)1V5g_vL4gR`*}FdvpZX`MX2bopS3l=mZGAe|AH84)hwtU<%c92@ zcBL);q80%Zc(gpY4^)OjSE+6q&~^+EapF=3uS+WGQ(3#oBucLYS?82bEMHMq;(Nty z^Qm>_MtfWEyW5Q>#hVwds3I4~EJtiG%W*zsYA&tc_1_sdbgkExt)L~EqyAskL`dq% zoUZS?dS^7#RA$xJ<3+}18RxskbklT9VSHp9NaIe2yX{Yd0JBJ%8y!nOu)%xr3ikV}zwySq&Vg(DZ+t4ONP}d7{(-tUz)Zz# zYUX(e>Ii`~5W|RjHoJJ}==sDD^?EgR^~SI4g(~euhonc8DKZP1M_VO~oA7oklJ&d6 zk7q2~n)J0dhj(eFDox2M>z@i5W8w{JuE!}k7O~$r!5ei^N;6e|j@B;H_SBJ@`T#Y> ze!I#}xDEnb2Pgq;n=1zqgH-YFnXgQ-dxCPtDkHS>H)I?F^wHuYSTC_qUz?JAk~=eu zweO~IQ`r?8Y4#yLm1c1ma#WGK9sRDGu8E5GZ?WOBLwT(g`llJxN5?9Qu#ri8qM#It zaLOE^>{L10Rw(-qCQ1`*L{c~vKaS|=tSjJ4EQI;usJVmB{h*>zpWBYPvfyHX?O;8I znUFMZ;+xq>3~3ZnVXngpgincLxqO*q>c>u zjOWBpPcnc!-@=`H+s=ZOOYt5ilZp5Ai0C%`qhOra7d2@`4mEVBL9_#+4ZgK0-icZfqvXzAB`KuYHEZ|&t_mn z*~7fGenh|Woe>>W2Q#+X_=5EslRoxPKRmPt5efjl?r>V-ipTSy3cA*3Ye#4OmL_l$ zbs||UN9sblbM`NIl`Z?1xhn2`gybS^c?8}59x4Rgr@b_4a2o<4+a~;7fH2I@cl(i4 zHkzrFTj{+0^nNSE%RIzKUgIJM@SJ_F-Jk%HAj|_$_CI`F^w_ZGaq3HHCarP*z8^&i zezyMyu%K@NEF$bJ4p>l38oSr?V+*QvbY~HiN<0;9G5GQ4+J^6vGZM)fkPVUoplcK0 zsqC+va)l985)$y8{Pt0%B8L{$qe6A#RVweVQ-l#tvT7aSwk8Zv+ELBZjK{V${SnN@ zQa@; zOg>EkflJoJvs_1tC;;wP*olgqI`&XUMw#$p2pB=7Y>F^}{T++-NVflUw8u~cG}i}$ zDb~tU|65B!^Ijm~+}K_gg1C=_eDvaf4v2-j&-%>YI|jgja2;l0`ug#9{HM7Ep*WM= zZRA*n|C!9c)Bac5|JA8~mE|a?&kk@&VA~T=(!pszJX8X S8~8&}5ETUt`4U-+r~eOCWJ$IF diff --git a/apps/website/screens/components/number-input/specs/images/number_input_states.png b/apps/website/screens/components/number-input/specs/images/number_input_states.png deleted file mode 100644 index 15d33dfd4e59f5b37bc1e18ce270b9c07f3becf7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 20933 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 diff --git a/apps/website/screens/components/password-input/PasswordInputPageLayout.tsx b/apps/website/screens/components/password-input/PasswordInputPageLayout.tsx index 8a3c6208e..d54cea58c 100644 --- a/apps/website/screens/components/password-input/PasswordInputPageLayout.tsx +++ b/apps/website/screens/components/password-input/PasswordInputPageLayout.tsx @@ -6,25 +6,21 @@ import { ReactNode } from "react"; const PasswordInputPageHeading = ({ children }: { children: ReactNode }) => { const tabs = [ - { label: "Code", path: "/components/password-input" }, - { label: "Usage", path: "/components/password-input/usage" }, - { - label: "Specifications", - path: "/components/password-input/specifications", - }, + { label: "Overview", path: "/components/password-input" }, + { label: "Code", path: "/components/password-input/code" }, ]; return ( - + The password input component is very much like the text input, with the difference that their value is - obscured by default (by replacing its characters with dot symbol ("•"), and the mask can be toggled on/off + obscured by default by replacing its characters with dot symbol ("•"), and the mask can be toggled on/off using the show and hide component action. - + {children} diff --git a/apps/website/screens/components/password-input/code/PasswordInputCodePage.tsx b/apps/website/screens/components/password-input/code/PasswordInputCodePage.tsx index 40c81df14..cc0087fe4 100644 --- a/apps/website/screens/components/password-input/code/PasswordInputCodePage.tsx +++ b/apps/website/screens/components/password-input/code/PasswordInputCodePage.tsx @@ -24,39 +24,33 @@ const sections = [ - value + ariaLabel string - Value of the input element. If undefined, the component will be uncontrolled and the value will be managed - internally by the component. + Specifies a string to be used as the name for the password input element when no label is + provided. - - - - - label - string + 'Password input' - Text to be placed above the password input. - - - name + autocomplete string - Name attribute of the input element. - - - - - helperText - string + HTML autocomplete attribute. Lets the user specify if any permission the user agent has to + provide automated assistance in filling out the input value. Its value must be one of all the possible + values of the HTML autocomplete attribute. See{" "} + MDN{" "} + for further information. + + + 'off' - Helper text to be placed above the password. - - clearable @@ -69,64 +63,53 @@ const sections = [ - onChange + error - {"(val: { value: string; error?: string }) => void"} + string - This function will be called when the user types within the input element of the component. An object - including the current value and the error (if the value entered is not valid) will be passed to this - function. If there is no error, error will not be defined. + If it is a defined value and also a truthy string, the component will change its appearance, showing the + error below the password input component. If the defined value is an empty string, it will reserve a space + below the component for a future error, but it would not change its look. In case of being undefined or + null, both the appearance and the space for the error message would not be modified. - - onBlur - - {"(val: { value: string; error?: string }) => void"} - + helperText - This function will be called when the input element loses the focus. An object including the input value - and the error (if the value entered is not valid) will be passed to this function. If there is no error,{" "} - error will not be defined. + string + Helper text to be placed above the password. - - error + label string - - If it is a defined value and also a truthy string, the component will change its appearance, showing the - error below the password input component. If the defined value is an empty string, it will reserve a space - below the component for a future error, but it would not change its look. In case of being undefined or - null, both the appearance and the space for the error message would not be modified. - + Text to be placed above the password input. - - pattern + margin - string + 'xxsmall' | 'xsmall' | 'small' | 'medium' | 'large' | 'xlarge' | 'xxlarge' | Margin - Regular expression that defines the valid format allowed by the password input. This will be checked both - when the input element loses the focus and while typing within it. If the string entered does not match - the pattern, the onBlur and onChange functions will be called with the current - value and an internal error informing that this value does not match the pattern. If the pattern is met, - the error parameter of both events will not be defined. + Size of the margin to be applied to the component. You can pass an object with 'top', 'bottom', 'left' and + 'right' properties in order to specify different margin sizes. - - minLength + maxLength number - Specifies the minimum length allowed by the input. This will be checked both when the input element loses - the focus and while typing within it. If the string entered does not comply the minimum length, the{" "} + Specifies the maximum length allowed by the input. This will be checked both when the input element loses + the focus and while typing within it. If the string entered does not comply the maximum length, the{" "} onBlur and onChange functions will be called with the current value and an internal error informing that the value length does not comply the specified range. If a valid length is reached, the error parameter of both events will not be defined. @@ -134,13 +117,13 @@ const sections = [ - - maxLength + minLength number - Specifies the maximum length allowed by the input. This will be checked both when the input element loses - the focus and while typing within it. If the string entered does not comply the maximum length, the{" "} + Specifies the minimum length allowed by the input. This will be checked both when the input element loses + the focus and while typing within it. If the string entered does not comply the minimum length, the{" "} onBlur and onChange functions will be called with the current value and an internal error informing that the value length does not comply the specified range. If a valid length is reached, the error parameter of both events will not be defined. @@ -148,32 +131,59 @@ const sections = [ - - autocomplete + name string + Name attribute of the input element. + - + + + onBlur - HTML autocomplete attribute. Lets the user specify if any permission the user agent has to - provide automated assistance in filling out the input value. Its value must be one of all the possible - values of the HTML autocomplete attribute. See{" "} - MDN{" "} - for further information. + {"(val: { value: string; error?: string }) => void"} - 'off' + This function will be called when the input element loses the focus. An object including the input value + and the error (if the value entered is not valid) will be passed to this function. If there is no error,{" "} + error will not be defined. + - - margin + onChange - 'xxsmall' | 'xsmall' | 'small' | 'medium' | 'large' | 'xlarge' | 'xxlarge' | Margin + {"(val: { value: string; error?: string }) => void"} - Size of the margin to be applied to the component. You can pass an object with 'top', 'bottom', 'left' and - 'right' properties in order to specify different margin sizes. + This function will be called when the user types within the input element of the component. An object + including the current value and the error (if the value entered is not valid) will be passed to this + function. If there is no error, error will not be defined. - + + pattern + + string + + + Regular expression that defines the valid format allowed by the password input. This will be checked both + when the input element loses the focus and while typing within it. If the string entered does not match + the pattern, the onBlur and onChange functions will be called with the current + value and an internal error informing that this value does not match the pattern. If the pattern is met, + the error parameter of both events will not be defined. + + - + + + ref + + {"React.Ref"} + + Reference to the component. + - + size @@ -197,23 +207,15 @@ const sections = [ - ref - - {"React.Ref"} - - Reference to the component. - - - - - ariaLabel + value string - Specifies a string to be used as the name for the password input element when no label is - provided. + Value of the input element. If undefined, the component will be uncontrolled and the value will be managed + internally by the component. - 'Password input' + - @@ -238,15 +240,13 @@ const sections = [ }, ]; -const PasswordInputCodePage = () => { - return ( - - - - - - - ); -}; +const PasswordInputCodePage = () => ( + + + + + + +); export default PasswordInputCodePage; diff --git a/apps/website/screens/components/password-input/usage/PasswordInputUsagePage.tsx b/apps/website/screens/components/password-input/overview/PasswordInputOverviewPage.tsx similarity index 68% rename from apps/website/screens/components/password-input/usage/PasswordInputUsagePage.tsx rename to apps/website/screens/components/password-input/overview/PasswordInputOverviewPage.tsx index 08bbd5f70..32665bf86 100644 --- a/apps/website/screens/components/password-input/usage/PasswordInputUsagePage.tsx +++ b/apps/website/screens/components/password-input/overview/PasswordInputOverviewPage.tsx @@ -5,7 +5,7 @@ import DocFooter from "@/common/DocFooter"; const sections = [ { - title: "Usage", + title: "Introduction", subSections: [ { title: "Do's", @@ -33,15 +33,13 @@ const sections = [ }, ]; -const PasswordInputUsagePage = () => { - return ( - - - - - - - ); -}; +const PasswordInputOverviewPage = () => ( + + + + + + +); -export default PasswordInputUsagePage; +export default PasswordInputOverviewPage; diff --git a/apps/website/screens/components/password-input/specs/PasswordInputSpecsPage.tsx b/apps/website/screens/components/password-input/specs/PasswordInputSpecsPage.tsx deleted file mode 100644 index 120f9a5bd..000000000 --- a/apps/website/screens/components/password-input/specs/PasswordInputSpecsPage.tsx +++ /dev/null @@ -1,157 +0,0 @@ -import { DxcParagraph, DxcFlex, DxcLink, DxcBulletedList } from "@dxc-technology/halstack-react"; -import Link from "next/link"; -import Figure from "@/common/Figure"; -import Code from "@/common/Code"; -import DocFooter from "@/common/DocFooter"; -import Image from "@/common/Image"; -import QuickNavContainer from "@/common/QuickNavContainer"; -import QuickNavContainerLayout from "@/common/QuickNavContainerLayout"; -import passwordInputActions from "./images/password_actions.png"; -import passwordInputAnatomy from "./images/password_anatomy.png"; -import passwordInputSpecs from "./images/password_specs.png"; -import passworsInputStates from "./images/password_states.png"; - -const sections = [ - { - title: "Specifications", - content: ( - <> -
- Password input design specifications -
- - The password input color, typography, border, spacing,{" "} - width and margin specifications are inherited from the text input, for reference - check the{" "} - - text input - {" "} - component documentation. - - - The password input doesn't have the following text input elements, therefore their listed styles don't - apply: - - - Placeholder - Prefix / Suffix - - - ), - }, - { - title: "States", - content: ( - <> - The component password has the following states: - - States: enabled, hover, focus, error and{" "} - disabled. - -
- Password input states -
- - ), - }, - - { - title: "Anatomy", - content: ( - <> - Password input anatomy - - Label - - Helper text (Optional) - - Input container - Show/Hide action - Clear action - Error icon - Error message - Input value - - - ), - }, - { - title: "Actions", - content: ( - <> -
- Show and hide action to toggle the value visibility -
- - The value of the input can be toggled on or off using the default action the component provides. The password - input can also be clearable. - - - - The toggle indicates the action that will be performed when clicked, tapped, or pressing keyboard{" "} - Enter key. - - - The toggle has a title with a textual cue for the resulting action. - - - - ), - }, - { - title: "Accessibility", - subSections: [ - { - title: "WCAG", - content: ( - - - Understanding WCAG 2.2 -{" "} - - SC 1.3.5 Identify Input Purpose - - - - Understanding WCAG 2.2 -{" "} - - SC 3.3.3 Error Suggestion - - - - Understanding WCAG 2.2 -{" "} - - SC 3.3.7 Accessible Authentication - - - - ), - }, - { - title: "WAI Web Accessibility Tutorials", - content: ( - - - Forms -{" "} - - Full Password Example - - - - ), - }, - ], - }, -]; - -const PasswordInputSpecsPage = () => { - return ( - - - - - - - ); -}; - -export default PasswordInputSpecsPage; diff --git a/apps/website/screens/components/password-input/specs/images/password_actions.png b/apps/website/screens/components/password-input/specs/images/password_actions.png deleted file mode 100644 index a1c42a4c2863f804f2556d0d96e8a70fe7eba286..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 13394 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 z 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�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 diff --git a/apps/website/screens/components/password-input/specs/images/password_specs.png b/apps/website/screens/components/password-input/specs/images/password_specs.png deleted file mode 100644 index 22cf69b69db22a2f5cdd5c90396d666a2f3a3ec9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 22063 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 SjNlhwA&RnU_lxhEJ^vp;lftzC diff --git a/apps/website/screens/components/password-input/specs/images/password_states.png b/apps/website/screens/components/password-input/specs/images/password_states.png deleted file mode 100644 index e30241c9475d29c371aa9a1d5d1fa73301a5301b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 21622 zcmeHvc{tSV_y3qiMjl(XvX>_+p(6V-C8_MmlC@GX2@l57SjLnP8TDjeN45}>eHm1i zo(f}>eQSiVlbylup49jI$>VojzuzC<>v#RGtNw|(-|u_w`h#DmC~-$O4DUYYs$(MF=f+7l3W)jl=_z{M;7Ch zJRHqk*o6^(5IQIf&i2a>SSxOdnBUY*gSwp`KpYVElV#ub(vNBIoOE=kBQN$G+Hqz& zxPDZeZI9dh+U-ID1c`t+(z^QfTyqEPUqi!OI1s0{p(X6o1Zog zs0XC(m%cTBF)8uxa7E(4^q|MCGTerLSbg+!fgc)ImFUOk}w-diY{Hqj5HgZf@rVH2MOd{ zqny*E?rjx1Xc3z!X|3Se+kiA4YwvvS_4W%;*f;jWYtxP1sq_8-$*k;w0FnB)l8_=ynAQd>}Zx!H5k)81LZCNE9R9OWkZg3|@=orkiJys+`f= zmyw9R&5md&kpRGmkq(+8%r<_-`}k&S(gy09D+3FE^kS!NlCfQtEWlw`lM$U5r)Q!7 zl47f*g#D)0Y%ZgjqPRQG)-|iH-N_eGz!fd8G-DET%g3?`n-s@W-?Atj^BLGBWZF?I z-K;FVJ`<>>&8oV575%}y@9)JvujzU4xT-|K$CH^NemH^mVJeHJtLxL4Bx5sV+I&Qw z_aVX(VOrw7=_QCygMbGownb&B=V^T?UzF-Xre0c@?|cf=_#+Xys>Pzbw2?$FNy4DO z^!e<(D)j2GT=kVta<@K4lX@>B{1E*dc7OU+jptU7@*4!>HmDi+?ZRe=dKq0=XZ-q7<8=GExF#o}N<79%%`y)tF>IG!4Tf0vGa=jdhMQK7G zPi??ZHPK_48Kftgf-$OdG0mx7(*(J7uztPu)rD~{JF~NXh$POSg^4cvJc+)MW20tW zyt1A%1LVar*O7D%J>?S#9({M~*2)@XyN~%SWLxWWJ61S!IaW-PMC0!Ky)lB>u)WqY zYjr!q$oNX>fiKmYYt^kcqbwr@JqNJlBIie44XTUzs>n107<}FVn@c6Ej9YIiCU{Mi z)$wvR$O)n;$#rY_br?a6kbCjQU7@y;k^61z!uon3>riP}PeS+Rza6exn=)UXOI8o$ zrqj~&GC<2 zUYkA88K_46LcX87Ec)(Cppcb!Gd7@>h@qFa~8b z5DKLYm{nu-HrZ^71Kd!F_ zpPGub&ppys3`di974tb&o*+y*IElAu@qmnjmy7bgKQ7L(9J$)vzhUgnw4^Sys&D2s zSrl>#Ih&*xef$e^|67gjN>+Q6e~%tGTi@tm#38<=6<#v)YqBk(K{8rPvh2n+&q`n> zslbGDDOyzaS05xRI5D-go37T>+xGV2eaC8rWb?JkL~4E4y8Eprd~xIHagG;fr<;AI zTux@+@K6C(ktG;N^$n?#kAlUmj@8@Y88~FLPBS*pytQ zHk{e@Hii(DZLf(F~JR-5=KL&+gxFzh1HG zHm`M97+w?7+kPv0k?pxI@b=4(kK*Xf=7aN|H1K|=`CJ9Z(k}tzxPA9`Gaq%FlowN+ zqIv(28BzCv+Q4hhFrt+2YzSw6lc{^>&DQ4zDI^fCf(7ISO#DAND;s#rw}DBz_9=N< z0HkGinf48$8VwASv#Xv?i`JV9)^&2EK09VU1(zFLzH5^qwob=JSNIa>iF&FlH`uKj zys|ouvrXrd`@h@0CSDxlRIf5?l`}ZD%;z$jw0WGqB_LTp*Dj@7|kM z-4bIVuo<>lI*2p(gV_nnehbF5h!E(iL(dVB}#fO#fR`V+^FSJinQ^0cmHd^l`nZY0ArjXXDjOu-+n7-UUSa2=LkDhq#Nd>Bim@1wwRz}7lW?3+#_ zckXkJ93!{?4W-D(rVK_Wm#WF~*RB-zZqU) zfTPUu*>ou7JI9-D;G_)(yLp{`X6_3ebMHeMn#%!*Q4hn60md}&4zzNUo zSmCe8u!$O|!S1qdx56x=yx@e#5G)2>2`262mA&!qF09!?(7L>iV{G;&${`}T zrp;t?A*HEO8)sO{v-U^(rGr@q$m*NR+(9AWIEC(^Ng%ws5K>;SAXRmD*vB+QP?j$MBwJR z0e(Gc+<@2_3U1B_$Up=V?0RJ|b3DIQ@yu{Fbw~=?@$y=okl`%X3aG)U)U}@;t^P_&e)n*R-dCjUjl9)iLD61z z)An0zsBj3@irsF0y7BvDw6H7wHk}Q~Xg&+nv`iGt3tk>l;XLTxR0%X?xd(4!`>}ex zyPC^Zw!y8IU6b>gc6>`EkPzL{e%pA12}uyk01R#p6*D}}&m?-Z%buVsNs)}o`iN8FL#b2lMmAZsf2`6IT z3+p@m5RFcva@n%qcSIvN%x~M?;Faxp9;HkXZ>#o1T;o^g?1wzGkxkc4FoS{9YW~8> z;9R_ikkE32^PO3@d*nw#=Q z%|o?&k@H0hhX|r?65uf=0FphZU{#t5v3w|P+ob(LqQt@>-VF%6k1ObuXq9ElETZ+C zR#=UwmA%02%T4P*<^c#>`;Ljuf)IwY4RcD|m}#!*o%xygf+crC3+qi# z^~4)so7$?+eQ;HyRT;y@fIT-G|FdHj`@9G!vh8i&+>WD%^+1g^G3W0cYpnYA0DI*G zT952Jng}LVHb2C%J$0m2-tcX}#h9^HH|;#C3?{x?e31svX&d;Zj*G|vn4(C~H$iO2 z(Ys*cZ+9ZJcX$(mH3N#VSE1&)`F0f|M~CB_bZL<>_T`>V4gU8(`Ito{Y<1!pd zdSyceRTM+4s!y(eo~JlSWr%Gki#K|@`*Qn`7@;slo_%Gcn!>L1x1?BeX1x!Oc!?`a zW&^ko(FMJX-fp$tb?<5!2S+9uQw~Np$|-C@eNozAiRoi^{t|rq`#ZNzOIf0BqQ4YM zw@y?{>*eVtwR}u}9tXh&(+5nKx|z)`H>X~k+-x;+0)ikkRKt^+ypZ-+p zJa}93*&1w2WaguEGpCU9`lJ&^OOxOE?1w-iyK298+Z=MJD3J5?r{@t2pKXsXgd-a1 z)AbTeyk}$8MS-XK1Z@9i+KBzYr+=ay$)ey zv-82unj}d0JFZ`wFkpodRmk@1Jk}tBXXfNcOcu3U<@E1Y0lGAYmc7`8DRViOpXjjM zWYFvKJu9>pj&i$NqP07HJZUtlk5GRPb!JWSolbpW(Z&FUjt*+MH(I8^T5)W6W0bte z`po@KKckBCblb+c_Q48)@LRoqne*l^IU>_IRHFhMU-?Gy_ka{+oatlS{0;Q*^Stz! zC~fVx?j1)%la}M!ro#nM<_JiyL%Fh*C+UJ1my*z=cax3s!aals?7A4rn}ZBu{CLxc zwU73>%fsP?jn`}@yr-l^o*jT?@dPChOQ_V9!iIdC?7T`Idw%L*d)4b%;_JCqUJ?Ih z!ujmOP>BO%5d zS|pY(?m8E$J+AEKF-Y&JAq(vCPQWWK0flexL|R8PlKKcdUR-q0PWacC+|=n4dg&O2 zP9fP&?TZ2jh&ovQwtF}TdMeOd$#ZO&4ZWWZI!TkV0NwnmtDtl)4F2hIjiP=l*7`*^ zloH!~pZ`ooENk)<2Zf9FD)`N6zxD&R=Vb^M`_q!I4I49_fw3nD$#K7dOwHDs5XKt^ zt_r-nzR#>JSpg9tc-_0UiURXy2O-&5B2eLKR-nEBNciXp8j<6ED-2 zWN|MeT^AO?VdspsXrp^=7@~K!QH;n0ZNpk2KH}kYsNMHFo=SdYQ(Q>hw9@jcvHvl} zum~Mgh3DNhiFb!Q$5!l)Vi7*{E>{>}dJ73}(Yko`8pW%U{=m}=&j|+-Gl$imuffn7 z!huD!-%NHJ9)R7J+}gn9xlG#FpN~H%3VV*V$jn@aUV)o3yxLbU=y3+pYxAZ}lJ-uK zCSsg%p81Cqt4{D0-b2_k0Udqat6a3GO+rH(x!&CrU{gNjA()wfux5M7GXKE9&X*5H zY!temUQC-K)9XXNZYrbI?R$l1Vz;Jvx&i=OGd)c!jEQK~*o(sY)>}gK8F`twWN~$B zP%o87Z}SRzrQDn};k9ALDUTXlAk8EcU-%%ff|c>4-d4#=y|?$pE-v8`1Q(RTy)X4- zT(mmna(dV+#!o-RB{`>~#u$F&hq#92#p4iDG^4wh(PNvn5pigy=V8B2bHY49?wIe# z4Ap33)s^K}u|)eJGX`|%t2Cy)h?4o4h00ml22Av!*tWf%)Y*pCum3y^IptGd$YR+q4edi z=I%Nt4uvTzhpG(u3uZ?YC0=1bE6ZHr6!vSnzOSPHAu#x}|N>JzFxwqpJrM0_rs5yhdNqXzl3tH55bHUQ8Zrd|a z1hA;pCVu-{TEGN9P499W0f&h0oQ|-5EW*EO+Ot84^zMmBYwbf0!%78tQ0Qm{Wkt(R zW&eoArMfmLWWW=huHo z$j!Jc3~|vAw_%3g$2<;p+2I?hgG^Y%Z&6@yNmlxOeN!VILxuVsS2=O-5DAyMFwlbJrj;vl$6v70SW!C)NA6dp2O&tJ7wqcWS z?4OhZ0pe`z!iaJk+f5@N2z>Ije->{k;R^)1a@~#rTeVklzmVlk7=__w6MDfG5NpuE?H|2fi9((O{umw$u;yx60p`*AjL7Q=*1^7W*XPS-{ z=Rnl7@^1|hY;HO4^g{ysrI+^FX<(23v<&0;lrC+2HuUBXFOu7Ic!}L}Fp%wB4SzeS zDM)a^X)Qx8!TDmzz7JN-FLw3vMow7$>DT0Vo^M%l>c~G z1uSerPX*(&V`VZu4_{OEoC!D7MN)c3G!AWmLZbH5?9(J5eTa!2Q9@-~ ze6fq>z&U1aLt$sO0_i_@{-hNJw(MR-NaqmS^Smu6QRQmdTp=~{&V0#Y%z!T>idWP1 zQIe-S?{W0yCGle`5pCGNvF53sbf}O&E?;TX zlF4b#bNKWhaN$&fZ@CWM0cX~%W%;Rv>O7F*IdGKWm}f*obw zT6NZq8lyA9hFkGCo#S!|Tt@h+fE`49(43yQpViT%JQBFm2;cHR2v&}p_Ray+Nj;Dh z{DfxBnud&^So|H9WKHw8xk3e?ZFH^&0Kel@5(7}hDWNmHVnp#D8zh{J-g7|T^#`Pi z)zbiDB3s`cmX77&cz32o@p0Yp#ZnF^MUbP|oes>9qXIS4!#mNCCJkVPcH+5cU7M}A zTV(rp8;4!)mOjho&QHQtX^2GX(V4k!VL!)>eKJKfD5pbzSplp40~(%;(JeoX&-`H# zItlQjVnp(ml)00FV)gJmuot@se$l7dp_D&%=Zjf_O^;pJBt$~6?LVgYs0oFke?YTO zb1j#l*wsB>U$MXw$CLsW;t_#Hv^x*wA2!asK=k zq)I^!)WKc>PGY^`*ko;h;ZeaCP<5-Oqs`4gAMp?k@ zR7HVt%|waYa*lTfO!I$k@IM7U&4Pij`04Hiq#oxlek*=cx6e%4?~RJe#DWE_bC`bLj2~ z&~_6!?nHWueBWZNC1vSt#9RE<7)h<|FVr0@Dr^UtJ3+V0j9xcRHm75y6tpqZKqKIz zE~SlEHRlkpYc1w@6>WziGI=KVq!UTI$zQwMSP137l9aYCyWZV;yk)L%U^Et{p zcRllka_y;Y8WEfJJ*0E@s(aTW@dPr)VAs(Xgr)4@fl)tk^9oi%-m|mN1&-*_rR>QA z^Ymzd)#k`G|drAV*j^wZ-8F0o^2_;QFHzYviSKK`4g(@#++eQpuN!?#K){IE8)Pr!yWQhA`b`A>q&0*Ofhtks zAHP0{z;j~L=!pf>Rcbn$jSr9mr4gh#vCZQ-%Ms0K^JDj9u9g{$rith3NLhN`jQy*1 znuM1N)iK1a-i}>a8^2Wj`abDflA?0x$~?PX`ODr84)AR7U6Irr^e+L+kr~sta!^IhuS*I|PV` z^$G6R$K+6UvFjt%skUL8#<6oHfgy{z^ARbe8OsvA=Jkdn$oe`C!|sn!tuF;T zzdnmUY*Rm-dwxCe4_%SPu2VVGP$?d@u!Mo;#J^k&mZ-Mr+!e0_r>ksuz1}k-r&6Ah zT7_25#Ll$`l86iKj#A_1NFr}`x5o7A0#~E9zHZ)+>0QsXu72=pc5Os&#lUQ`QYbAs&hc@g zGKB-#mgABB*>`PS=1#W+So+!}c77?3+Sf;l7(TP+R2a@yyms23l(;dIkNoPjq%G24 zq8D2^&Ct3hY15Rqcs&w1^){?1urH;xr$MxYf!ME`Z8`JwldO|(Y`dVaW;Hq1Z9NBh z-YbY7yD~WKjWHWyu$JoL^SN?-Jfe^srIv83*F_UOY-6qMRJE2xK4sAGZhi55%Ep39 zozI-8N<{s7Gv@P+NQx*Ov<#SI(vg4iteXaP2JD7+)IvgAXas+JU{5? z>m9X}=9X9`vLIA;XSM?V$hw@8CG#aB)7pN(iqQ1;qoj~znXaC@}vfmDg-hemBD)-x;HBh=Ahe_zI${j>T)|WV$rhM znSi>xCOHw3tDU{Ex|t@%O10zdsVYD}kP^58`ZV_LUWYfnRtv@$uMcG+DcpQg1|>O! z1jA}-sElXh=hknUf{BTq(}ArnLU%E|vrP#h!mD43JkHyz-SxU1r=p}%{<)%cdA!M? zxp^&ZMM_sMY})&(*;>9i=@}ONG(f)yxD`r1a3T%NC5#x-SM9kT zvgzA(WhC9C%LCytaV&9VO)ZtDTYcnn)4BnA%D(?XtFOB*@5^s{m_qhfuEvqFCY7EI zp2v+;txn3MteZaOs#^Z1kQ%sIWY??}Wo60Vc*3s8i1c1eC@J8@spO6e0?Bg|O4H)* zh~_xzW!`mg_@kSB?S%>HRH7e zDw3nzHKO@7U5~9z^#%(x)_rb^Oy69+C$pest!J->c8y)kW+HujC|7B$yXH8Y(H+(q z1W*VS~1wgIJ z+#JX(eyQnSJpxr>#wV@TjF1Kxv$>Mz??u^ijmU>7EDj=Q%EzYR&v-RLpiRVe=ffrHy9+H(e0t4R{4(-DOPS% zQpJP3M5-||*0sT{o}XO}Y{z)5t+WV9fgb6`VA>*sK(5OwCf#?E^|1E(T6N^L5~0_# zGrKD|ST<{BdAc<~Y~TkwPJoyt_DQq zw0njXj#%Y!0l-fqEuZDK8T3{plraFJ zJnL<=V~U{5>Hp;r{fxfEvtVM5StFgF zAN;5Hz{UfYq7ar_1w{Vuar{Ftu_!q^cAF5lo>id5DnU!1ZLw-={Rj>)u}-bYsU3yr z!p(*lQ7&IS_wVlnXG#v-K+;#f_DPF;q1lVqW(@Fw1MR0u7m0L0MxgG>9(7Ds0-yW=hJD|jYja4Z~ zMid`~QUEnLtE00A(DL?G1KJ}A&}w7**7}yxX*~d?=}Ku8KuD>p9t;+doC19anVav! z$xGt7rPuRq?sndc(lN}?)xm7cC53qHX5lyW?{MZk*MJ*?<83k)E{f-b3wqDI{?yhM z*=A;+L*ozd+>}Bxp#1xtk7<5tuf}X%H<{x$zhe+CWWvw7x1umZCoVG5+IQtyCE!=K zuuv}AK7GG~E2ky_+1xqoj*t>WFlhOI@aS>Y?4nUX0Re#2DA#W>@kkZW`44Z!?CAjLc!c>&?B@Yt zGZ|hiBHwo_&Vf`up1W2KQG|{GHucNH_HUWxj&0b+PxBvetrWfYjn*hyUIFCagoB7A z<-0DiYM3f;acu_<2Juf2f1VDkT`JOI!V7^`0t!$CxRYlU$6w6p(V_T1I|Cke#!#fW zH*4zzV69vtxc}(~u zPx3<*-@PsdaT+!V?2ymN6 z0i*iJn_+oF^h8I##*_T)wfEwAoQSx=9YR*@p8#v@^|sD(N7Bs$RYgu!Z*I&dE>&i9 zj8+1Ip-)hX>_L89Z{yoQRy{z__TW8!72#}gjz45JvZV4*&dWD@G!Xn1(KaP6R8=UY zgONbHJdj#S4i*o#Q6?W7t84a~f>*QyiZl7kgAgm{8=8gEZ)SX!dQ0Rt6>{xb!6v-u zP}Z?`y3YJ`nExe0eQ}`IoB*$X5-cx41eBtrs+P&1Goi2WhJ1*gC~)XpjW?}ZqIu&i zg8!x?;3C&GQA#DtzW#mC!b-+3QPl^X-(6;?~c-XX1IzVfd+QA29~dIufhJ21P?1f>j3Po_*VV~o7y5z2%+nC zHWw@Nqg68h2u?blr=L!Mm7{Xt9#e3^v%v%Yvwyt>bYa|L&|@XRfMptMU1M3`=GnFD zwu|5f#2p4yQmg~7`oD!G23DDH&g+OzCi~tIvX~B7>XP1{ z0f`d!Cd%6PF1vAq0bk0w(2F$6f7kU8iQrxmjd9ru8h)2yUF?@M-|;J@@-X8?&f@S2 zW4QK5LTaiG)$5BIGc@jLXizy#<}z+$pPuPBN1~MZoyT)ZBsT=;+zXwX;uY$gh0Ps` zjPg0US?r$1|HK9Vy>5gnNNgINo73Bhi;EB55IlL~-S{f!Yt)1(PJb;lwcP<`I0-#xx1cmJ2G1-Lmao~LOo230(9{jO5{32LVmmVEthoc8)JFE$)Zn*4A zI|6-uFR-M^3X*aXZ+M^9Mpw=nMpql%y4m1)zrkl*~Hq%jmASZ^I7<82)hJQpRogM zLh^vhsGt*b^3WvkUuP)jKPs$#l>qi4kXnSx65%~)@#e~4HmHRy=lB)~^+*tvBj7#2 znIHkX7Fp0Jo1Ll}v0W_-;O29??Te_6*12XiHQ<@t-BsJY1u4D+`s-rzI&!_?i~X2Q zv^oXc^Z8}z#Bm^UD=~*0XtVO%N7T$~h7#kHBG3l1;*npQC};(DANt0Jjy~RIKhI0R zj{63aXe}^Ex!!;fxRq^)-S*I7b)c|-+e{Hh{2Y^ClP*IKfjmO1)=1{pH9V(Pk?QXY zS@Iy-y`dCUz#4|*b?ARxCj$QmQ1JdNiOcDb@&~)M3>m{g-Y3a!((=o85cqnqA6`~p zlqJM+juF2G+o0Wu=h|kA*puKe-F#lG9|Nd1yvKA7>C@7=vlbe^W`bB=+9^<8ZgB$~ z32^P6V>u8+{L8}Z1fvcJgp-T*cLDy({cip69^3(lO71#ya}VC!?xjowf|jxEb>`ZZ z?A-?0aPI7YW;^}=l>j%{q7__k#h$V^p3MW-05SkNTIx6l5Z0N0AuKJhkalk~uzpoK zRCO9m&}Y5{)$g;E27K8{QkM$2%|NrTG)4|lRD~Lp;@En3dw*hPH&}bD9_!ZTOZ;nS z5cX8Ng(0jNAY8rd-16HkQ@-n~X}}}RgKKB$;O>{Q1{(pu9hAK$plu&Yzjtn%nMZPf z{!P#01;_jJM8bHc43r?j*5Gh>~ZEbqW(TfZ_2ZyAX6B3FGg^ zOjw}#9~7WN0`48xzU1?tH8r$XuY4a;%~h`Cz>To^5&txS~PgLPP+htiKXw#P+hf>yL>--Jg3f?pLTC3 zxZh(Ux(^VScwInNT|0DZ`xyxV3X?oDgpPwKwm0go7WfKn_pjjLVudeQ&^ za4^RFZ}S(s?0IZY1B!TXiadE@1fDp!9I6pEVpj|13X1gFK36VnuA>p7K2VA_gK^0# z4nXS!7p1Jx0B?o_veaXo>vk~?R)b4xfcV=-ENc!q$cQh9JE?f~*YLGUqZ8`=p+3iZ zz|S#}5X*?t6b5%d*wDitW9mL=KH6vC-yEv^*IySF0Ks0G*J^w8M~Q;_gxZJa`kC<3 zLRWi5erUL7d+|ethW3KQtK;a2E1{W!>=at;Qo8+nzW>+qYgXH&7WTS#rx~Q28){cj zIf%e(L0dEQ^yGR`hF#zmSOuy&Zkx*od}h!(_Aolyy7r$D_GXuQFL+%VOS?|V%rAf3 z0i?$Xy<&Oc1IfIbQt}+%b(MoJFN5Z|^4)J= zY02q#R|c-qwjA6RAO7QB20WRTe#`^klm<@)_o_ar3*-7?j$b=t1_+Y=%?tZn2()hJ zf4HLv5RSyfOt$;!t%t@ypv!HLA3yXTFZ}l=j`FY}OmuV4Z1Wgf(|@7`>M-XvtsO@% zOM;2xEgt;$Wd9-B=O7}M3l6@B+IbYzsx1}D_H6S6TPxIO1&&pv{)*Jjqh(-X7Z8sy{#1@RDd2A_StTi?T^tRF!B3;jL!ce_aA%1 zq5&`&KhcD~u;b`^8iIS8y&WoT)j=0%;n*gA;qU*{=YPrUw_<;)?zdupLi^t*_J=q6 zePVx_1pK!v{_Tpl$DZfEW9*Of@jJ%;v<>~=;AsnXf#Tb5RJ;{O@xM{=k8J9HFx?s0 c+?72wqWi!}>jU^hqL2$3x@U9GT)p?d0K~OOj{pDw diff --git a/apps/website/screens/components/text-input/TextInputPageLayout.tsx b/apps/website/screens/components/text-input/TextInputPageLayout.tsx index 3c9d6656a..2ded7832a 100644 --- a/apps/website/screens/components/text-input/TextInputPageLayout.tsx +++ b/apps/website/screens/components/text-input/TextInputPageLayout.tsx @@ -14,7 +14,7 @@ const TextInputPageHeading = ({ children }: { children: ReactNode }) => { - + Text inputs are input fields typically used in forms that allow the user to enter text data in a structured format. diff --git a/packages/lib/src/number-input/NumberInput.tsx b/packages/lib/src/number-input/NumberInput.tsx index efd093a35..da454cd5f 100644 --- a/packages/lib/src/number-input/NumberInput.tsx +++ b/packages/lib/src/number-input/NumberInput.tsx @@ -4,32 +4,48 @@ import DxcTextInput from "../text-input/TextInput"; import NumberInputPropsType, { RefType } from "./types"; import NumberInputContext from "./NumberInputContext"; +const NumberInputContainer = styled.div<{ size: NumberInputPropsType["size"] }>` + ${({ size }) => size === "fillParent" && "width: 100%;"} + + // Chrome, Safari, Edge, Opera + input::-webkit-outer-spin-button, + input::-webkit-inner-spin-button { + -webkit-appearance: none; + margin: 0; + } + + // Firefox + input[type="number"] { + -moz-appearance: textfield; + } +`; + const DxcNumberInput = forwardRef( ( { - label, - name, + ariaLabel = "Number input", + autocomplete, defaultValue, - value, - helperText, - placeholder, disabled, - optional, - readOnly, - prefix, - suffix, - min, - max, - step = 1, - onChange, - onBlur, error, - autocomplete, + helperText, + label, margin, + max, + min, + name, + onBlur, + onChange, + optional, + placeholder, + prefix, + readOnly, + showControls = true, size, + step = 1, + suffix, tabIndex, - ariaLabel = "Number input", - showControls = true, + value, }, ref ) => { @@ -88,19 +104,4 @@ const DxcNumberInput = forwardRef( } ); -const NumberInputContainer = styled.div<{ size: NumberInputPropsType["size"] }>` - ${(props) => props.size === "fillParent" && "width: 100%;"} - // Chrome, Safari, Edge, Opera - input::-webkit-outer-spin-button, - input::-webkit-inner-spin-button { - -webkit-appearance: none; - margin: 0; - } - - // Firefox - input[type="number"] { - -moz-appearance: textfield; - } -`; - export default DxcNumberInput; From 3db4d2f14fff8d02902e19d80e9cce43a1529ada Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Iv=C3=A1n=20G=C3=B3mez=20Pinta?= <44321109+GomezIvann@users.noreply.github.com> Date: Thu, 10 Apr 2025 09:06:01 +0200 Subject: [PATCH 05/10] Password input updates --- .../lib/src/password-input/PasswordInput.tsx | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/packages/lib/src/password-input/PasswordInput.tsx b/packages/lib/src/password-input/PasswordInput.tsx index 3c5bad0b9..f75e2f714 100644 --- a/packages/lib/src/password-input/PasswordInput.tsx +++ b/packages/lib/src/password-input/PasswordInput.tsx @@ -13,6 +13,13 @@ const setAriaAttributes = (ariaExpanded: "true" | "false", element: HTMLDivEleme buttonElement?.setAttribute("aria-expanded", ariaExpanded); }; +const PasswordInput = styled.div<{ size: PasswordInputPropsType["size"] }>` + ${(props) => props.size === "fillParent" && "width: 100%;"} + & ::-ms-reveal { + display: none; + } +`; + const DxcPasswordInput = forwardRef( ( { @@ -56,7 +63,7 @@ const DxcPasswordInput = forwardRef( }, [isPasswordVisible, passwordInput]); return ( - + ( } ); -const PasswordInput = styled.div<{ size: PasswordInputPropsType["size"] }>` - ${(props) => props.size === "fillParent" && "width: 100%;"} - & ::-ms-reveal { - display: none; - } -`; - export default DxcPasswordInput; From 2194e5f6aa47da551b34bf47c3b556fc45447855 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Iv=C3=A1n=20G=C3=B3mez=20Pinta?= <44321109+GomezIvann@users.noreply.github.com> Date: Tue, 15 Apr 2025 12:21:00 +0200 Subject: [PATCH 06/10] Text input documentation --- .../text-input/TextInputPageLayout.tsx | 2 +- .../overview/TextInputOverviewPage.tsx | 315 ++++++++++++++---- .../overview/examples/autosuggest.ts | 42 --- .../{helperText.ts => customAction.ts} | 15 +- .../overview/images/input_actions_clear.png | Bin 20263 -> 0 bytes .../overview/images/input_actions_custom.png | Bin 20813 -> 0 bytes .../overview/images/text_input_anatomy.png | Bin 0 -> 22807 bytes .../images/text_input_autosuggest.png | Bin 0 -> 34207 bytes .../images/text_input_clear_content.png | Bin 0 -> 19231 bytes 9 files changed, 265 insertions(+), 109 deletions(-) delete mode 100644 apps/website/screens/components/text-input/overview/examples/autosuggest.ts rename apps/website/screens/components/text-input/overview/examples/{helperText.ts => customAction.ts} (57%) delete mode 100644 apps/website/screens/components/text-input/overview/images/input_actions_clear.png delete mode 100644 apps/website/screens/components/text-input/overview/images/input_actions_custom.png create mode 100644 apps/website/screens/components/text-input/overview/images/text_input_anatomy.png create mode 100644 apps/website/screens/components/text-input/overview/images/text_input_autosuggest.png create mode 100644 apps/website/screens/components/text-input/overview/images/text_input_clear_content.png diff --git a/apps/website/screens/components/text-input/TextInputPageLayout.tsx b/apps/website/screens/components/text-input/TextInputPageLayout.tsx index 2ded7832a..f3c164f36 100644 --- a/apps/website/screens/components/text-input/TextInputPageLayout.tsx +++ b/apps/website/screens/components/text-input/TextInputPageLayout.tsx @@ -16,7 +16,7 @@ const TextInputPageHeading = ({ children }: { children: ReactNode }) => { - Text inputs are input fields typically used in forms that allow the user to enter text data in a structured + Text inputs are fields commonly used in forms to capture user-entered text in a structured and accessible format. diff --git a/apps/website/screens/components/text-input/overview/TextInputOverviewPage.tsx b/apps/website/screens/components/text-input/overview/TextInputOverviewPage.tsx index 2e5fc6000..4630d9802 100644 --- a/apps/website/screens/components/text-input/overview/TextInputOverviewPage.tsx +++ b/apps/website/screens/components/text-input/overview/TextInputOverviewPage.tsx @@ -1,29 +1,157 @@ -import { DxcParagraph, DxcBulletedList, DxcFlex, DxcLink } from "@dxc-technology/halstack-react"; +import { DxcParagraph, DxcBulletedList, DxcFlex } from "@dxc-technology/halstack-react"; import QuickNavContainer from "@/common/QuickNavContainer"; import QuickNavContainerLayout from "@/common/QuickNavContainerLayout"; import Figure from "@/common/Figure"; import DocFooter from "@/common/DocFooter"; import Image from "@/common/Image"; -import inputActionsClearImage from "./images/input_actions_clear.png"; -import inputActionsCustom from "./images/input_actions_custom.png"; import prefixSuffix from "./examples/prefixSuffix"; import Example from "@/common/example/Example"; -import helperText from "./examples/helperText"; -import Link from "next/link"; -import autosuggest from "./examples/autosuggest"; +import customAction from "./examples/customAction"; +import anatomy from "./images/text_input_anatomy.png"; +import textInputClearContent from "./images/text_input_clear_content.png"; +import textInputAutosuggest from "./images/text_input_autosuggest.png"; const sections = [ { title: "Introduction", content: ( - Use text inputs in forms to help people enter, select and search for text. Common text input types include: - usernames, descriptions, URLs, phone numbers, credit cards, emails, addresses or plain text searches. + Text inputs are essential UI elements that enable users to enter and interact with{" "} + text-based information. They are widely used in forms for collecting data, performing searches, + and completing various user interactions. Use text inputs to facilitate user input in structured formats such as + usernames, descriptions, URLs, phone numbers, credit card details, emails, and addresses. Ensuring clear labels, + proper validation, and intuitive formatting enhances usability and improves the overall user experience. ), }, { - title: "Content", + title: "Anatomy", + content: ( + <> + Text input's anatomy + + + Label: a descriptive text that helps users understand what information is expected in the + input field. It should be clear, concise, and placed near the input for better readability. + + + Optional indicator (Optional): a small indicator that signals the input field is + not mandatory. It helps users know they can leave the field empty without causing validation errors. + + + Input action (Optional): an interactive element, such as an icon or button, inside + the input field that triggers a specific action (e.g., revealing a password, opening a date picker, or + searching). + + + Close action (Optional): a small button, represented by an "X" icon, that allows + users to clear the entered text quickly without manually deleting it. + + + Helper text (Optional): additional text placed below the input field that provides + guidance, examples, or explanations to assist users in filling out the field correctly. + + + Container: the visual wrapper around the input field that provides structure, ensures + accessibility, and helps differentiate the input from other UI elements. + + + Prefix (Optional): a visual element placed before or after the user input, like + currency symbols or units, to help clarify the expected data. + + + Placeholder: a short hint displayed inside the input field before any text is entered, + offering a brief example or instruction on what type of data is expected. It disappears when the user starts + typing. + + + + ), + }, + { + title: "Form inputs", + content: ( + <> + + Form inputs are essential UI elements that allow users to interact with digital products by{" "} + entering or selecting data. Choosing the right input type and structure is key to designing + efficient, user-friendly forms that support task completion and data accuracy. + + + A form input (also known as a form field) is used to capture user data. Common input types include text + fields, date pickers, number fields, radio buttons, checkboxes, toggles, and dropdowns. Forms should always + include a submission method —such as a submit button, link, or keyboard trigger— to complete the interaction. + + + ), + subSections: [ + { + title: "Shared input characteristics", + content: ( + <> + + Although input fields vary in type and purpose, they often share a common set of features: + + + + Placeholder: a short hint displayed inside the input field that describes its expected + value or purpose. + + + Size and max length: inputs can have both a visual size (width of the field) and a + character limit that defines how much text can be entered. + + + Prefix or suffix: some inputs include a visual element before or after the user input + —like currency symbols or units— to help clarify the expected data. + + + Helper text: additional information displayed below the field to guide the user in + providing the correct input. + + + Optional label: inputs that are not mandatory can be marked with an "Optional" tag to + set clear expectations. + + + + ), + }, + { + title: "Common input states", + content: ( + <> + Most inputs can also present standard interactive or informative states: + + + Disabled: this state prevents users from interacting with the field. It's typically + used when a value is not applicable or editable under certain conditions or roles. + + + Error: when a user enters invalid or incomplete data, the input shows an error state, + often accompanied by a helpful message to guide corrections. + + + Read-only: the input is visible, focusable, and hoverable, but not editable. This is + ideal for fields with auto-calculated values. Unlike disabled fields, read-only inputs can still be + submitted with the form and are part of the form data. + + + + ), + }, + ], + }, + { + title: "Using text inputs", + content: ( + + Text inputs, in particular, are commonly found in forms, search bars, and interactive fields that require text + user input. Our text input component is highly configurable, allowing designers and developers to adapt it to + different use cases while maintaining usability and accessibility. In this section, we will cover some key + characteristics of our text input, so you can learn about its particularities and behavior. + + ), subSections: [ { title: "Actions", @@ -32,9 +160,13 @@ const sections = [ title: "Clearing content", content: ( <> - Clear actions allow user to remove the content of the text input. -
- Text input with a clear content action button + + Clearing content is one of the key actions of the text input. It allows users to{" "} + remove the content of the input without having to do it manually through a keyboard, + which is particularly useful when large data has been introduced. + +
+ States for the clear content button
), @@ -43,88 +175,145 @@ const sections = [ title: "Custom actions", content: ( <> - Text inputs can have an additional custom action. -
- Text input with an additional action -
+ + On top of the clear content action, our text input supports another custom action, such as copying the + data introduced or triggering a tooltip with helper text. This added flexibility allows teams to + tailor the input's behavior to their specific use case, enabling more{" "} + dynamic interactions directly from the input field. + + ), }, ], }, { - title: "Prefixes and suffixes", + title: "Prefix and suffix", content: ( <> - Prefixes and suffixes help the user to understand the purpose of the text input. + Halstack inputs also support the use of prefixes and suffixes—visual elements that help users quickly{" "} + understand the type of data expected in the field. These cues provide additional context + and improve clarity during data entry. ), }, - ], - }, - { - title: "Helper text", - content: ( - <> - - Helper text can be used as additional instructions to the user when filling in the form. It should be always - visible even in a focus state. - - - - ), - subSections: [ + { - title: "Usage", + title: "Autosuggest", content: ( <> - Do: - - Keep helper text as short and specific as possible. - - Only use helper text when truly necessary to avoid overloading the user. - - Should give an example or an explanation of the field. - - Don't: - - Helper text should not run longer than the input area. - + + The autosuggest feature in our text input provides users with{" "} + real-time suggestions as they type, based on a predefined list of options. As the user + enters characters, the input field dynamically filters and displays matching values in a dropdown, + allowing for quick and efficient selection. + + + This feature is particularly useful for reducing input errors, speeding up data entry, and guiding users + toward valid or commonly used values—especially in cases where the list of possibilities is large but + predictable, such as country names, email domains, or product codes. It enhances usability by minimizing + typing effort and improving overall form completion accuracy. + +
+ Autosuggest states of the text input +
), }, ], }, { - title: "Autosuggest", - content: ( - <> - - Suggests a list of options to fill a text input. A user can either select a suggestion or enter their own - answer. - - - - ), + title: "Best practices", subSections: [ { - title: "Usage", + title: "General", + content: ( + + + Always use clear labels: ensure every text input has a visible, descriptive label that + doesn't disappear as users begin typing. Avoid relying solely on placeholder text. + + + Use placeholders as hints only: placeholders should provide examples or expected formats + (e.g., "e.g., johndoe@email.com"), not serve as the primary field descriptor. + + + Clarify field requirements: use an "Optional" tag next to labels to indicate when a field + isn't mandatory, reducing user uncertainty. + + + Provide helper text when needed: include contextual guidance below the input to help + users provide the correct information, especially for complex or specific inputs. + + + Support various states consistently: reflect focus, disabled, error, and read-only states + with distinct, accessible visual cues. + + + ), + }, + { + title: "Actions", + content: ( + + + Provide a way to clear content: allow users to easily clear the input with a clear icon + or button, especially useful for fields like search or filters. + + + Use custom action icons appropriately: if adding custom icons inside the input (e.g., a + calendar icon for date inputs or a search icon), ensure they're meaningful, accessible, and do not + interfere with user input. + + + Avoid distracting behaviors: don't introduce actions that reset, redirect, or submit + forms unexpectedly from within a text field. + + + ), + }, + { + title: "Prefix/suffix", content: ( - Use the suggestions to help users select from a list of standard responses when needed. + Use prefixes and suffixes to add clarity: add visual cues like currency symbols (€), + units (kg), or domain suffixes (.com) to help users understand the context of their input. + + + Do not confuse with input content: ensure prefixes/suffixes are visually distinct and not + editable to avoid confusion with the actual value being typed. + + + Keep it minimal and functional: avoid decorative or unnecessary additions—prefixes and + suffixes should always serve a clear purpose. + + + ), + }, + { + title: "Autosuggest", + content: ( + + + Use autosuggest for known data sets: ideal when users need to search or select from a + large, predefined list (e.g., city names, users, tags). It enhances speed and reduces errors. + + + Ensure accessibility: suggestions should be fully navigable using a keyboard and readable + by screen readers. Users must be able to select options using arrow keys and Enter. + + + Prioritize relevance in suggestions: filter and order suggestions logically based on the + user's input to avoid overwhelming them with too many or unrelated options. - If the value for the textbox must be chosen from a predefined set of allowed values, use the{" "} - - select - {" "} - component instead. + Allow free input if appropriate: when the field accepts both suggested and custom + entries, clearly indicate this behavior and validate accordingly. - Keep suggestions simple and avoid scroll. ), }, diff --git a/apps/website/screens/components/text-input/overview/examples/autosuggest.ts b/apps/website/screens/components/text-input/overview/examples/autosuggest.ts deleted file mode 100644 index 8d5b063bc..000000000 --- a/apps/website/screens/components/text-input/overview/examples/autosuggest.ts +++ /dev/null @@ -1,42 +0,0 @@ -import { DxcTextInput, DxcInset, DxcFlex } from "@dxc-technology/halstack-react"; - -const code = `() => { - const countries = [ - "Afghanistan", - "Albania", - "Andorra", - "Antigua and Barbuda", - "Bahrain", - "Bangladesh", - "Barbados", - "Cameroon", - "Canada", - "Central African Republic", - "Chad", - "Democratic Republic of the Congo", - "Dominica", - "Denmark", - "Djibouti", - ]; - - return ( - - - - - - ); -}`; - -const scope = { - DxcTextInput, - DxcInset, - DxcFlex, -}; - -export default { code, scope }; diff --git a/apps/website/screens/components/text-input/overview/examples/helperText.ts b/apps/website/screens/components/text-input/overview/examples/customAction.ts similarity index 57% rename from apps/website/screens/components/text-input/overview/examples/helperText.ts rename to apps/website/screens/components/text-input/overview/examples/customAction.ts index 828c89153..c66111b57 100644 --- a/apps/website/screens/components/text-input/overview/examples/helperText.ts +++ b/apps/website/screens/components/text-input/overview/examples/customAction.ts @@ -1,14 +1,23 @@ import { DxcTextInput, DxcInset, DxcFlex } from "@dxc-technology/halstack-react"; const code = `() => { + const copyAction = { + onClick: () => { + console.log("Copied."); + }, + icon: "Content_Copy", + title: "Copy", + }; + return ( diff --git a/apps/website/screens/components/text-input/overview/images/input_actions_clear.png b/apps/website/screens/components/text-input/overview/images/input_actions_clear.png deleted file mode 100644 index d35b387462f0cb54d18bac2924017b33b8056919..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 20263 zcmeHvXH-+$_OHZP5EX@^h#=sRq7-RTLX8z8T@Z|+3M3*;5_(6Da!`u&UK9kCriql$ zRRkdAr zcI-HSxO(aOjvc#lcI@B~+`AjRBR|gD1%5$s7Z9djvnWz2K(HnyQ@xkARo`dkTt3iJKnd#vtAtmo$8U4>Q{_8uQ zgmmxu+$fkum3t^d;htF|6Iaf zrqn;H@Sj!q--+>0A^oS2{<9bUN5AvGZD-ylH%M8pwPGKm`k##s#k=STx?h4#=EYyz z(j1sgb1FH*VpO~NHl7kPUg^hCCy$Qc{zvm5_j{;-Yvogmz~wFndZPJR-6Uy##7mfW z%^KOws(jFIIyRx;5PQfkPJu3{x$MSsMtPqrz0i7dYM-Z7m51XRvwmCii&y`M5cBkO zafQ_y#k)??k;s~>4~EUW{*V^h^6c{C{Ic!sEoMDEsiMZgmx0Sh9n@O==9u{XB6ROt z6Os9uMqWc{KI?$_eFs!WpImI^*du5Zv@s%_%o=3Y%{ph?;uVoIgVZ)*5O@o0i~q;}*rU}hnq#QBY|1(DX8Oo+y_`%)1ZHTxyP{P>Yd(U0 z;8WzgW=)3stn(B0&{rVrZ%;>D!DI(|t&Iq8-&Fo;6ZTY}hs&B-)stAiy*VcpFh&jD z!XX_JZ?rxXa8>m{4qjzVt25`#gIr&8-&GdJ;yW)k`w`8ALh=eK3M(7`)z*T%p1_(KocU zLO;*#XSBB3tZh|NzqP*bwm`GEW^1|BTC0y}4q1QOVc^80gUN8ef(+hVCM{-fZ!FAU zwEcaFshkN^2ejvIc{jg~^w#+7jZr*Ri5bD&=$v&M<(|jM)=C+%)w?0Qctph{RlxnYbdE^+_GB1Co9dr^iP*YJIpLCB-htixPLrC zzA1?kKVt9O99gCy&gv}C>dGh#ntyC9Es-67U950EqbM&m9$p$a>y%y}IHs6=CN*j^ zxqjn$|E#OG)SOSVdh11@g(tMo*L+}UMZOGyE~N;qGSJ@WuNl5$sif_isaJ((w?7+T zRkSAxi_34(!1UAXaV79M5LmjMFzf3ARbv`SmGrLa$V@wbKB%*PbJi_cdvnr|RO&3j zktw{UuT0BB7z9u1THiIer?vWyTiHn&lb#Z?1+Kms7S%NX7Kr#{25%0?yG1%Kn`J=* z0ZF5d4)G^|b$gJ^(gJ5wsTdlEA|SW+NXS`1GJRG^)?3&I4}%xtvz>Vw1{8B}@>25B z5o3F_euR=2v=OgI3B=0s&6PeC0*j!B6I=D-(FaBMc+_QxoG;wfdY1 z`nZ#GsnmcmpA)|oi@|MfLBe?2!*1WaZI&ds4#w7FvA25Ka;|rSiP2`!^0g360gLHF z7T=>|Eo!JKvbs+lNTPp4K99>l_!3u>@;;lPT$GBH*A8(&Mx>s!=)y3hO3Cpk;%cIp zk{YT$C6TVC!1=8-c+*KSi?kAn(a7bu^ORjoX~bpiT>8!(TuIX@j|mt(MQ(hlXLc=a zjXh7^Z3S`Cnq5=y%jVLcOk z4eszL(D1J2Jl%+fqPJhJsW{HL1+)6FrTznjM0^Hso-@B-M)1}e8H0ali)M_rdc?sH z`#k3g3A>l1tmYprfO=QK|J!I_YAvq1Z=j@qF^eh9E;{K_z5J*1teS;`15B=T`{+ND zSWXIYyz!DPY$ZTAW30lfUJ125N*_42ujtF-I6^0r%pv+>e*wv&iLI&mh=Ca9X zPD-NB5+QqYMqKxvheS@Y49biVFs`n$J!&D}_d$5;$Cx5aoBYT9w)a|dHH&GNe3CLZ zmP>;zm4^Zr(JLO^1?7i90|`F?AhcRZv1A!xw+Fh$qg+E;PMbngGIKdc4GF3C=_boDP-+n`}( zJ&2lJb-!a0=MLhcOiL-=91W#1|pY4i1fLF&!yA_}}ap_XD?CLqjt- zqqgJVDq*o!DR>2xnm0onE#~C_d+H3!CKGQ{^wm+~{4=%8K{C(fpN!7G_w<9ec2@ON zwaErf>XJ@|3*t36HW}Xa)v2-Zs4N8&2`4V}L!0iY*5ie=g;Uv3y>2YSnK*k!!Z=f+ z%CO(Ol{9^(+MncS?dyiQa+|3)-Iir=UrmvZ{O=4s=5=7gLd5?^m~el;S(c}fIx6Yw zr(28Q{4P{YrnL6PcWx5MiE#8GiLf2*9$?NSWK|?m; z-A#G4cq^}Pi3!d&IJ#N;_w^Day{iwAA<$JGJSZ&=RI%M>kURPgIZL( z(yRYWRo8LcmG#myJ|*5P1t~So$qb#bdfuJY71FGfmR=f)4CF;oUzk&N-3MXkU&CT2<`((OpsJx!5>NS-0lpZO`1MMwq!q zrBynZ*(Qx$6;P;_M+v=%7mej_FP?fRscRz&0fQ*5ntBx%pVh1}CQrV&mq52IM4nPo z^ib%4q0lCCU;`$vhq7iXtO=clJXCf(Y6@88?Xl;KKn6ud!Rw(*a`Mvd(oPg_>%6%p zf6!F*NuNmw*YOtWPDFht2pW4ssuoj=9J0fYp#yr5I)2UvA3o#}k#h;vXwc%D$AwBc zeey2PkR2=Ol@0jLMOIr5yKN?9;nRAi;2d`}W6&?E4DZqF;^yBMSKW@)L232S7PcOr zt$Kk>vTKPG>u^oxW;1XNoq$y<7%LMQ8X!7sehcHa8mub{UtTKEu3g)dtuPZ>2TvB4ae6n%iF zdv#h&QcMyS554b~%%*Aav~%IB@BS8A$Bv%KRUX9%6hc}eTGY!vB3ff+iQUf-vfC0` z5FKP!F9LdC-D2rlK%25&KwL<-E$5+>l7^h{LkAz(CR_PAD!R6|y%+V3i)_IP^3OR4 zb|J%*D&AqN`IG6lgSxNI2JN-gO13u;KRi>%VvuDP8FJ|i<7F6RMB+y%cR&uza9YUv z^2wI(dY5`#t7lt3>j+!!{#ewQnSlc3QP@T3XeJjr^Z7aPL6;%Z-iz0>`PdV;{-+7-8SH5Iseudus4PY}!L%JNs8R@}3#(qkmq`WnY(InD{| zjbT1AYhkV^DlI;}?UnDuMd7OVJc7R8%!SsUga^@~651O`Cn<>w@v~ADe(3f%S{Dsp zbETDfW69a~-X+(k>twf}j{O%F>_-z)mk(x&l)aLAB^}Dor6?^UB4bY31^2b|x(HzM5g`<%DhTnC8#+z6SJDKg4_UgH)}HAv;2Cp${W$Ba9I@B`ErWx%4^Yms7lZ#rv?;>w33GU|6qa@rA%Y zcZBYe{Smy)45ou)FutRwgkc^i43AFuU`v$SZ$0_X=(W%$6kJ+hZlrV>x|`Diz&{57 z?i@ZpyBs#yySO}ET3=^z@7*qkumj2|-QxudPrYkKPS6{6a%Z&aj#Kpuv09hF zWjnm@Dm>;8q4@FuKyWgAmLA4PUwUG?cu{%pU3#PWw&>}*x;b5>l!06U+#hIRJ=56%;wz&3NE*M89 zEk;Mk*B*(<^h~?>V`zJ;LSy)F%xP_aNYH*)1F{-!f_^$?OOE@|c-V?h`}sYI)kB*M z@`Dc)W%=#{k{_m_O~yG*t3~A_7YyKrkq%9F%KYOO_|o8U&t!wwNTeg?7V=9({nGjO zcn4CxW|*I3zROiO^U+1{RZJ29UGxP2zTG6r%T{3dneqYA$v|V@j}lS9g^q)NCNqDy$M{=J@)h`f zd>AxW56V4>khNSSZZsbSA?0R!COWGyDM=eox9RR@mn#IgH zX}|~sx9${PZ5XR}!=?9~n*|xHi>#3SmO36`Oni~V zOQZ%ea8YjFMe2a@N~4O^J&z))i`Ppyj<9=xF(r4G^&!q|=Tdn6JhFa{WN-I0$nMGM z+V2P4P6N8AC(XTyjlN&3>&j?yeZs~9h^M0O zw$y%+bU>xQJwuAVQQXt*G~`VrS*E$`GWSokw360FwOBJIc>6KiY9Fmryc^x8Hr@=t@)TJx2gF0g0uYoUQ;Q!UNPOIa}m=SVdFUd$22w_ zb`5|mITuEaSb`UfB-&6C(|4`~l{K=MI$~taYko6aTr4UA#oB5Wao1&{S2r_Z*1c#U)_%f z;`8ww7kg7KdDbh_%M#Xd_GrGSSuS>SX}x;A&R?LD5wLPmc-@E=ut-jiIT5t_ooqt~ z`2=6whV2GCkZhXWlUcx22AY&^6cZeB5~=pD<4}Eye0k|7+SFxijk4`vN zN7!~z^F*Vm$P>~nsd(FdA<10ZQ@4-qr z2l1*&c)?m)S_}=ac=~&XVNdV2tYgzyU6;6S;qBFCQn9ON;n)RC_v~D!d%N3b$aGWM z#hk+_(j1zv9jYDwu8^d**rsTH%tQ+$sT+kHFKB3~ z_+65>Ud^)&mpTY?Cz;Lui0S&-FTgQ^DkXtt)trZp)q?(RLLX&*+u&YY9=U7G87V8- z66?J7ovha<3c-tUW~AP!2DNzKtlqP+uF@b+1Vq9-Ytb(KxdK+KiXi45SJ;(G?#ond zfuA)0V5qe=I_C9C_bf4Q?K>a~xBD$>^`9}>t9JoayfBi*ak&)gQ3Aop5k4M86&clo zq;%D7y+LpDqa>v^r9RKh^I|H$(LWK>b}MVV4x?8G{d_atFBATM#$98>25b+ua_J zP~d*#lzSCEo+sTb{YJB|QAsF#Q|9=y$39%4-Fro|90U`p+wcz3N!8HZf!5*zT+0Gs zqGu8iJBX-f{`J!&4)4Ugt@i2Z1VXqm;FpEtqkmq1!=h248Ac)Fi%c|Vyb%v zu6`q!*)7YFNyR)fkT6ceOV+8y!LY2Tp7p=5h|}~OEK6_ zA);53F_#K}w~g*)g+ zSh`w1#rK%kc&ZUhhpsIF3qQMMM6jAf37OKaavJvl&INZr^W@vZ};KnyBQ6QSqrMm+Eqmwtm8 zCXN*_E)`RayV(LiwM>?|G=TDksOj2_D(6z988vfW71fqFr8?{Mg}MkK-k8rhUWS73 z(N-_lvg2NWqVgz+B6bxj!XLZuzD#^IR2V(b>|DN{uz4s&D)hYWz5VM49RTxSqhKfg zM)HlgqTTw(mu+7&j|r^T1}}G+yA2yMnX07gqocV!04MLvrfH^TeyKempkq>>(K&jd zugl!Jc7yVy%|r0A1>kZi#YMzIdr8F{Hg}>zkd05FCW$5BopmI#m@JvJ!a8(4^e&fZ z7Ts*IKQ&fH_kqLy_BmEunX!Zb*MZ|<_MFce)A|Ni%E_}d{^SUU_-4En=bbl2D-{>k zT#kGq4jKk6#M8Zf(GTyP?Z@y(WspXP^)Zu?4CNJF_;_HZm?qXLL9A851cs`6%ztqd z5`-c7FpiY^eBAfP&r8lQAB2r(m?*H+Tw3w*1zCP~33;g7KBc%15zTTVM9~tvb{bDG z*kI?B=PRvegwVS^hJ6@=vl&uoVVb%4>6$U6(n(}@HiA_7&lWQ5(XPB|^NqaeQnWP=(rgC|F(sOVBl$3k)l<7N#9;W1OWwnxJ0Dnj z50nvG`!r2tPp@%MXZsLs9_1GDRIE@f;3-omokECX9ALT z?H0?~6Bv#?Ddk?Ycxk?^q-9rmko&71X2}pMUgVl|%WQ0B83QL}e>PDlf;!McA){_Q0&*0EshXGPvhsS=*q2KMxfz_Bm6u+mxpr=Gf+TiGgoP zs>blJaCpfQ@rCMoD+|%_g>~bW(T?ud9BsVd_xtW zU##{g#rM6(6&eLO$6o@aQZZhJba!+QOgozRJ~Q-kTpO?3i6LhKISqOjO?Du)H5A1r za$N4VA&ZDj-=}v!ox$LhauiRg6SCtEwIu!!^;p;*;G7T*RLGU{)a6l;FnSrBbaJvM z-wN?0VxR!f@Ak6>n+l3&IG>9KDCGQU0yLCuYTWV6KI@LHeuYG-=}hDRQflR(cjd+S zZ!N_{evQ$SzpWKrijrNbWcS8GOD9?{-s0iI=UaD|QIk;TBtVN$=N&e<%~rEgGvmvm z2}@VvN>ji0OL1hX!?D-n`mQMw@_Bne0Y~f|cYR#+G#lza>^wXIF7M{B?^Ln_2i_hr zRldE&Qi&KbfT+#;fTqa8mNPcu&DrU%efR0uN!|1IHSNeTIqwS&f^zOPa`MQu=Q0cZ5j85_r4CK^$|HxcZ!~%1u{t-z zH%7DjA1J%0I}Z&E^#su!ZW~)s*HFXgCXduhN{LVpq4l)IW(^UwaUv2gs`!L(;L!jt z^+^28*0(*{Un5y~2aWWWBgDS5q;~qvQ43XFS%-&}(51@Yi)GmjGn`l9)U4&20h1s> z+;THkJac{%oQUQ=OTZA`k+@sqbM#xD-^ntX>cju`F`msCiqY}62MBBIY)gMLd z?up#?eFHA;9#2z8T(Q@^eu`V~lis_wOL_}RJEN==a|qc*wkhEr4*AwRwKNQ<^A2O* z_piwh-N}tgQzFJ)GF%{9r~CQpX}nnDnCoHe$KzLS?!NJ+rE6(_1JEG$XW$=tmaJgD z#mXQy_g_`8`7~>SFnb<_xF%toUGDJYGc3r!b!^sL|0DXmO$u}=XU<6IZQ2})r!bRC z{iR>MYS%R5&!9O&=}%P;QfYB{_imrRZ4G)2gA@ft)d~Y~H2t=Pfd|NswSeJE!ydP< z@HE0;sn;M?))u;Jj=BbS@G(I9K$xHn(7G06MGoxsM6M`g(@XOr^&bs8(|xjUCOuAP z1JmSE&C@01_sPv?$1>sdoRH0br3eo%R@W;|F*PtbrPKHIi<`>6(&?&KbR~F5V*}=h z2V*xyMv_Ets&m`UnM&BD_tVl+KOkLyCnVyYYK}aMJmnX~=O?C%JD7$mWQb{CPs)tv z5npGv==r{|-tr&DqF<8iSqvfnB`I0EG>rz?c}4CB0|kxvu>80X3ihN##=Q%K-HShE z*myPXwu5TH8OOqh`QkIoo0UoC0F@!B{N7nWz$QP~qC~oIPQbSAf7J|?2ULSlZkT1^ z%eB}x8(X}LVqkn{)~Zp2)g1NWnS~GP^HUz^Q~4P|tjV*obNaUfhHtg=GE*DIu?##E9W|gUPzGj5yc_t^Hzi6;kC2SgtRCb>%!SHCVp~h_wf9P!S-+O3vdsjZ| zM4GgLKDuvilXxgGRr`Z8vK}S@k0{tIZ&^vMjQ^_U{xa8gWx&_4zVaxw@kPt+z_VA- zN3Ub1k4%556CL&^8>L;-tW9oE-MfFiPEYyhl*;Z&m94|1tsyHV`M;OrNV|4fY=Z}s z2cz)Rv7Pw&wZnLI%Huiy;QeZRvt@G;tkj|!QGdmQX_KqZtxv3fWLUYMcA)nY2{VY^ zxSvPbxmLGR-uG~${w2|XT4?!IMKH=i<1@>4-|UpqWslo+o6 zoYVC1A?ho(`!^JJ=n!>m$G}-mpry61_?Yc-Xxo<gqF@7K}T$giZ=bfJlh7(=Gp-UFRp|IZVKsP<*Oy8Dg3oYT6)>#1sUSjEE zf3~@DO5X{M+4g#lA7b()hr8UnxHcB0>;Be}m)h&`wlfhP$T443_eK-Y0_u=q+Kg%+ z7YAf{SFa#-YC5u6NHnK;M0F@HQFq%LfiydsSU=1!Y1Ep-;wA2^Pdt) zYP!0x?Uy~}*RE(db$!2%gmmp{Buq7W0q$QK#D@TNQDKvDcW@eo(Td{gU_r<4)O?d# zxG~pC&Mu)9SVrW_Yg(k~+n7OnkMs53nnS`~cwMm3+x6Eg`C0TYK5Kj+ulZx!njn_b zytK+1j+qSYafSr`bpp4{*d3vM5SJ(}mtybQQ!niyf4{F8&3=FQf@Ys`f;7j#!(7v+ z(RHgwjE*33=zkwhs(uU-vgfZ?%o@giNgbQrkmd}+i+~?(AL&bv`INYwgqF+6>!emE zhJPRp9p(^!bfCMkz1uHl{g_ltLjXv=F;eWYAwR%%PQFnQIo7eWlm=bj`&Q}f+pdio6L zg!4~)2(i)Qu0iwuWtmUe75bClX0zTjd<$k-zu@@eqcW1f*mdSHpDcqlUmlGE0i6`o z%|0nNw5wd(6#=7fT&BAV$V!#gx+g8v_VBxCsE;pPKd9=7fUPuLVqSF1;0zp&?pYRf zbh5bPR6FipZ>kOHI6TovaOtjkJ5&ALmtIo1>8ii?*^aCwQ>Y+QG#4K>@TY~P^SI6heZ!_|3^ zWa3dngWq1giq5~y=?M0EB8 z&+{%eA8Kt+gU=us8+XsH z;GDR~t@(B|Z<)>MrU>zq#pS#qE}F(ErOQXDVW;aF}*)aPYFtF%U`H1lM(;d1pUY zt;;zN8(!4KgiR^4XDMvDWl^j3%1DX#c+7IR*ypRC3c|?!wtZ zd|AMZov;+!_C>lTRs8lsCf0M!LDnA$WA@`nz$T()8Yq?%etRKb{S4DVZ$&#T~21LWLlkJnaz}ws_GRte}K1UZ!>)Hv~P+Ok% zWa}Vb*zDVmR^U79;~me7H;`o8W{`kU7XJtY@A)Zn6PIG>lIh2zpIACdBCEjQU=2n_ zSOC_j3K()`P-yvuP9iXa`ClWXiskTK-O~{n%O(1*X1b(0>BB+wB8}yjhL%q^3_O?DVe2 z-*o5w5a-(EZaPrdZG4AVgBAS+gpDf(B0xSFADd&h{k}l6KpJQ+cP;?wuR!$tWv2aFE*ia;_omFE-=^oJQA<)^W~$$Cj(p)z$(edK?5E(=={m<#PBK zu;i3`@Q?=(6IQ|LMFTwTE|Z6GCWf37MEC5)+Gs5NNuf=+AokNf(mngNDAD_1*5jh{ zfL=etpCdM(G5RB1Yw0O=W4<|=K-H=)ssP>$L@9Jh#?}4t0?-3$Qa5QdiuU#fI&hNR z?E?Vpzyk8pXNxF*VAQi%>2)fNlk!1468306Pj;3R2z?;Z9vIiLMp;TbqM2D9t#DQk zv)!@T#vZdi^Yp4<=n*!7vB+Tjf!orq@2W*#X5vAI)IZWlcz0#+d`@HF099#4Br@Wx1bY8TsDn>42= zL0~iOx>I*fy*7fXNx&SbFXE_YoD$q^m5X(dZu8E{F&Tj}_Uskr7%ah=xhBu+WQQOvZUVzOd zhPdj+q@?>@gHxke8FQWqJMW(ppVoFG(v!%MBa{UJ>#c=kQm*jkMEYB$((PHdU@7FN z79ma1-;X)q?KY?q4_#85E;7lQkHjRf&A=q)8gRfCjJ`Xt`Y>&&Kj0DkKb1GmV1Ch_%(4tc-8D9yvFO2SGh;i7<>^pBIeB0>qcuYP20VLY1YF)46M+vrh_{*7 zK=o-q!>b})$y)t)BV8Nu3ZH|oI$n&t&)JNcS~l(h#iT3Nn4-$2Ldv1d`u>0VC{u=x zyJWjTOxCn0_5nXjc($8s=6Yn+U=wC>`D&rL02Bbha;T0#^d0r-(;Neo5#^CvF@EqT zWmzgT`}hT56MT(OCtl>AkqupLuZJIip^wS8E9Ra8rxo@$YGr@wESY5)bv^ z{(Ef&z*fYb#Lum$=h!FbiUBYBNp9b(EnSnjFq#7@*hSL1kaESR}@$ zP%KTr>yfmj*o7Tqom&%KL`Vhu;ou30-`T4`3(*#B^0!6Jb_2mYT zV9MB{{~e*5KLviaKVQ&q;%OjnyJ5gEFNuc99?)pN*P*W>gG8x?$_7ujg;1jLZA}#Q zISaNw`yA)AbaSkj+S$6*VLaIL$f;!~c#l1RC#AN0Ol;w4gK@N4?nd^at58vuasyR* zbes}<%ck%3kqu4X$KKzvHUZ_7a_(IQ)U$hihL0+m6F%oTOam?fHd*HAtLnIpJEJKur z-#h1YzNqj~7SN$+9mO}~h^eA`L8bk^>m%WNaZP-KDQ|o3A%Szz?EQJlC^zyrs48~_ z&p1SfH2_1Iv1$s3=Dv>)P!FL??={NJuD(_0-*gQ5x%A->zo#cYdzI@zsxq5hn#!^YIo?G| zmF$2(Uvd70in1h$Y0XFFQeh1N07+%J>DX&b zpW@KWYPN*<>BUr|c_$>=yLlg!cca`yUq1nMt^#k5kAz9$+Hax9A%x{X!GG6fXQx`7 z&t49PQrtjUUYz|i5)%mE&tj!6fPU@(k^T*TPO{-ovI8mU2CWO+BGdZixh^Ydpu15A zHEl_UOC>Z2a(UFn)c0-n;^&WhO5)Z(K5jMBkv&sUGasw8-OuXHQvVB$O$$0c=Se|@ zQke5!$-y_2Z~Eycwq^v<$*ozK!NBuP1W6man=hbC$Ap&7(f-DY6Q|mL!qe$U=utde z2$C4SCq|7kb96CIOt%%>2m@M5?4B>mkVUu+Ya}Vbgko*#)$4=wB?p$uGOaLg`MM~? znuO%csysm)<=H~}a&jWCcZ~tWPe{=FhREwfyVT~L`^wJBu$+CYh|_nsPdF-4tNjue z2J8FFGdx<-xD>LYeshZC0>pVon5?a0{vIm=Ko{&gnSNuc*2<#ymeZ+g8@&P;bHk*7gZ`+I3*hqSTUrvD z;cyLsurLj3`e_bLDz{Pb6#t>lxEp6fSN8ptmb0^G?i$!^asBlQ*kfLt{IAdcZTr>Y+d2Yf&z{1r*9xS8SsH#`rL`HZNTp>AzpSnJ_($_^;0zAG}d*i&wtR&c5wi z;iVQOHS;jO@fmj)noXJf<#uNXG>L0t^U-x>7?zG#?^ki&vEyJ9`?&z?t#@*HRE(D=@#>mps4`D-f#OOduXc`S>S>Sot)2yf~`)O-i@b zkxxc4+zrqeixidp%lvGt_I;nA`^q(kA(NxYtkUYD47|x)!E0(yH@i}PdchY;Wb+$M z16Du9c^_pz6EWa4R)M%gV{oU+f2>Gy)c%N`G?G!9QISgA41QhN@7Hxbh&b)3vQ^DA zNe-86OW%9wPFVxd{H!D@$QMCeo%+)H`1&xiusXYy_t;B71ztCJa9Bhx98gk%!+lB| zkW)wQ_-hE9X*$Ly&Y{_~C%7;-`JADL)i#>c+FVY2>Rih>;4u5#ZvV4MXp`QzXNA|+ zKJQYoid1uWj{Sb)aqC4_LQ%l@o7uF@ewh6*EydG{EGBmzuF)a3_t4GL;9D-h;(E`A zG+cOui5_bMs~zL|wU=kh@8h!t?Pl4t_1ny6-R0*$g84=@)OK5$8Tc$MI}8ZOUM+J6 zM4C@$XDYaLVZJE3@H&VypwygK$g_ZeQiHg}U_4Em3c-zI^J;@Cj z0r|fqkp8n5{<9bUhhqQFW1jwbQrCa&T>n3`Ge5R>sO`wgyn45F1w8p~2ja59rIHIa G_x}&vPVlV& diff --git a/apps/website/screens/components/text-input/overview/images/input_actions_custom.png b/apps/website/screens/components/text-input/overview/images/input_actions_custom.png deleted file mode 100644 index b525de6850cbb47c8e0bf38cdc0702b5b82344e5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 20813 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 diff --git a/apps/website/screens/components/text-input/overview/images/text_input_anatomy.png b/apps/website/screens/components/text-input/overview/images/text_input_anatomy.png new file mode 100644 index 0000000000000000000000000000000000000000..254170acad64ac3c4b3ba5e4c335c4c75d2c213b GIT binary patch literal 22807 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 literal 0 HcmV?d00001 diff --git a/apps/website/screens/components/text-input/overview/images/text_input_clear_content.png b/apps/website/screens/components/text-input/overview/images/text_input_clear_content.png new file mode 100644 index 0000000000000000000000000000000000000000..ac02d508337c9e109f90496eaf875a636ad606b3 GIT binary patch literal 19231 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 Dj4pEB literal 0 HcmV?d00001 From 7087fb30164ae9f3c55c468dae963a2372440a71 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Iv=C3=A1n=20G=C3=B3mez=20Pinta?= <44321109+GomezIvann@users.noreply.github.com> Date: Wed, 23 Apr 2025 13:14:19 +0200 Subject: [PATCH 07/10] Password input doc --- .../PasswordInputPageLayout.tsx | 6 +- .../overview/PasswordInputOverviewPage.tsx | 224 ++++++++++++++++-- .../overview/examples/showHide.ts | 30 +++ .../overview/images/password_anatomy.png | Bin 0 -> 20110 bytes .../images/password_clear_content.png | Bin 0 -> 13401 bytes .../overview/TextInputOverviewPage.tsx | 7 +- packages/lib/src/text-input/TextInput.tsx | 2 +- 7 files changed, 247 insertions(+), 22 deletions(-) create mode 100644 apps/website/screens/components/password-input/overview/examples/showHide.ts create mode 100644 apps/website/screens/components/password-input/overview/images/password_anatomy.png create mode 100644 apps/website/screens/components/password-input/overview/images/password_clear_content.png diff --git a/apps/website/screens/components/password-input/PasswordInputPageLayout.tsx b/apps/website/screens/components/password-input/PasswordInputPageLayout.tsx index d54cea58c..6a8771e16 100644 --- a/apps/website/screens/components/password-input/PasswordInputPageLayout.tsx +++ b/apps/website/screens/components/password-input/PasswordInputPageLayout.tsx @@ -16,9 +16,9 @@ const PasswordInputPageHeading = ({ children }: { children: ReactNode }) => { - The password input component is very much like the text input, with the difference that their value is - obscured by default by replacing its characters with dot symbol ("•"), and the mask can be toggled on/off - using the show and hide component action. + Password inputs provide a way for users to securely enter a password. Its value is obscured by default by + replacing its characters with dot symbol ("•"), and the mask can be toggled on/off using the show and hide + component action. diff --git a/apps/website/screens/components/password-input/overview/PasswordInputOverviewPage.tsx b/apps/website/screens/components/password-input/overview/PasswordInputOverviewPage.tsx index 32665bf86..e01b8ae71 100644 --- a/apps/website/screens/components/password-input/overview/PasswordInputOverviewPage.tsx +++ b/apps/website/screens/components/password-input/overview/PasswordInputOverviewPage.tsx @@ -1,36 +1,230 @@ -import { DxcBulletedList, DxcFlex } from "@dxc-technology/halstack-react"; +import { DxcBulletedList, DxcFlex, DxcParagraph } from "@dxc-technology/halstack-react"; import QuickNavContainer from "@/common/QuickNavContainer"; import QuickNavContainerLayout from "@/common/QuickNavContainerLayout"; import DocFooter from "@/common/DocFooter"; +import Image from "@/common/Image"; +import anatomy from "./images/password_anatomy.png"; +import clearContent from "./images/password_clear_content.png"; +import Figure from "@/common/Figure"; +import Example from "@/common/example/Example"; +import showHide from "./examples/showHide"; const sections = [ { title: "Introduction", + content: ( + <> + + The password input component allows users to securely enter and manage sensitive data such as + credentials or authentication codes. It behaves similarly to a standard text input but masks the content to + protect the user's privacy. This component also includes functionality to toggle visibility, making it easier + for users to verify their input when needed. + + + Password inputs are essential in authentication forms, account settings, and any interaction where users need + to enter or confirm confidential information. Ensuring both usability and security is key to providing a + reliable password entry experience. + + + ), + }, + { + title: "Anatomy", + content: ( + <> + Password input anatomy + + + Label (Optional): a descriptive text that helps users understand what information + is expected in the input field. It should be clear, concise, and placed near the input for better + readability. + + + Optional indicator (Optional): a small indicator that signals the input field is + not mandatory. It helps users know they can leave the field empty without causing validation errors. + + + Input action (Optional): an interactive element, inside the input field that + triggers the action of revealing the password. + + + Close action (Optional): a small button, usually represented by an "X" icon, that + allows users to clear the entered password quickly without manually deleting it. + + + Helper text (Optional): additional text placed below the input field that provides + guidance, examples, or explanations to assist users in filling out the field correctly. + + + Container: the visual wrapper around the input field that provides structure, ensures + accessibility, and helps differentiate the input from other UI elements. + + + Value: displays the selected or manually entered date in the input field, following the + specified format. + + + + ), + }, + { + title: "Form inputs", + content: ( + <> + + Form inputs are essential UI elements that allow users to interact with digital products by{" "} + entering or selecting data. Choosing the right input type and structure is key to designing + efficient, user-friendly forms that support task completion and data accuracy. + + + A form input (also known as a form field) is used to capture user data. Common input types include text + fields, date pickers, number fields, radio buttons, checkboxes, toggles, and dropdowns. Forms should always + include a submission method —such as a submit button, link, or keyboard trigger— to complete the interaction. + + + ), subSections: [ { - title: "Do's", + title: "Shared input characteristics", content: ( - - - Use the component password input when the value expected is a password and need to be secured. - - Provide the requirements in the helper text. - + <> + + Although input fields vary in type and purpose, they often share a common set of features: + + + + Placeholder: a short hint displayed inside the input field that describes its expected + value or purpose. + + + Size and max length: inputs can have both a visual size (width of the field) and a + character limit that defines how much text can be entered. + + + Prefix or suffix: some inputs include a visual element before or after the user input + —like currency symbols or units— to help clarify the expected data. + + + Helper text: additional information displayed below the field to guide the user in + providing the correct input. + + + Optional label: inputs that are not mandatory can be marked with an "Optional" tag to + set clear expectations. + + + ), }, { - title: "Don'ts", + title: "Common input states", content: ( - - - Show the validation of the password input until the component loses the focus. - - Disable the copy/paste input functionality. - + <> + Most inputs can also present standard interactive or informative states: + + + Disabled: this state prevents users from interacting with the field. It's typically + used when a value is not applicable or editable under certain conditions or roles. + + + Error: when a user enters invalid or incomplete data, the input shows an error state, + often accompanied by a helpful message to guide corrections. + + + Read-only: the input is visible, focusable, and hoverable, but not editable. This is + ideal for fields with auto-calculated values. Unlike disabled fields, read-only inputs can still be + submitted with the form and are part of the form data. + + + ), }, ], }, + { + title: "Using password inputs", + content: ( + + Password inputs are designed to handle sensitive information securely by masking the characters typed by the + user. Unlike regular text inputs, they include specific features to enhance privacy and usability, such as the + ability to toggle visibility and optionally clear the field. These inputs are commonly used for login forms, + account creation, and any scenario requiring authentication data. + + ), + subSections: [ + { + title: "Actions", + subSections: [ + { + title: "Clearing content", + content: ( + <> + + Password inputs can include a clear action icon, typically displayed when the field contains text. + This allows users to quickly remove the entire content of the input with a single + click or tap, making it easier to retype the password if necessary. This action enhances user + experience, particularly when correcting mistakes or switching between input attempts. + +

+ States for the clear content button +
+ + ), + }, + { + title: "Show/hide action", + content: ( + <> + + To improve usability without compromising security, our password input include a show/hide action + icon. This control allows users to reveal the password temporarily, helping prevent + input errors—especially on small screens or when dealing with complex passwords. By default, passwords + are hidden and masked with dots, and toggling the visibility should be a clearly labeled and + accessible action. + + + + ), + }, + ], + }, + ], + }, + { + title: "Best practices", + content: ( + + + Use the password input only for sensitive information: limit its use to fields where the user + is required to enter secure data, such as passwords, passcodes, or access tokens. + + + Include a show/hide toggle icon: this gives users the option to view their input and helps + prevent typing errors without compromising usability. + + + Provide helper text or guidelines when necessary: if there are specific password requirements + (length, special characters, etc.), display them clearly below the input field. + + + Avoid auto-filling or pre-populating password fields: for security reasons, let users input + their credentials manually unless using a trusted browser-based password manager. + + + Use the clear icon sparingly: only include a clear action when it improves user experience, + such as on mobile or when the field is optional. + + + Ensure strong visual feedback for validation: use clear error messages and states to help + users correct mistakes quickly and securely. + + + Never use plain text inputs for passwords: always use the dedicated password input component + to ensure proper handling, masking, and interaction. + + + ), + }, ]; const PasswordInputOverviewPage = () => ( diff --git a/apps/website/screens/components/password-input/overview/examples/showHide.ts b/apps/website/screens/components/password-input/overview/examples/showHide.ts new file mode 100644 index 000000000..9539b1fe2 --- /dev/null +++ b/apps/website/screens/components/password-input/overview/examples/showHide.ts @@ -0,0 +1,30 @@ +import { DxcInset, DxcPasswordInput, DxcButton } from "@dxc-technology/halstack-react"; +import { useState, useRef } from "react"; + +const code = `() => { + const [value, setValue] = useState("J.Smith1961"); + const onChange = ({ value }) => { + setValue(value); + }; + + return ( + + + + ); +}`; + +const scope = { + useState, + useRef, + DxcPasswordInput, + DxcButton, + DxcInset, +}; + +export default { code, scope }; diff --git a/apps/website/screens/components/password-input/overview/images/password_anatomy.png b/apps/website/screens/components/password-input/overview/images/password_anatomy.png new file mode 100644 index 0000000000000000000000000000000000000000..cbc15ca132fb7ce1a1c85ae24334de90a43a67ce GIT binary patch literal 20110 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 literal 0 HcmV?d00001 diff --git a/apps/website/screens/components/password-input/overview/images/password_clear_content.png b/apps/website/screens/components/password-input/overview/images/password_clear_content.png new file mode 100644 index 0000000000000000000000000000000000000000..48a5641ddc6ec42c95545dcaaf02907e96268ba9 GIT binary patch literal 13401 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 XxhMCXe?39vTm8AyCa20yINkU!l`0<{ literal 0 HcmV?d00001 diff --git a/apps/website/screens/components/text-input/overview/TextInputOverviewPage.tsx b/apps/website/screens/components/text-input/overview/TextInputOverviewPage.tsx index 4630d9802..82a362469 100644 --- a/apps/website/screens/components/text-input/overview/TextInputOverviewPage.tsx +++ b/apps/website/screens/components/text-input/overview/TextInputOverviewPage.tsx @@ -60,9 +60,10 @@ const sections = [ currency symbols or units, to help clarify the expected data. - Placeholder: a short hint displayed inside the input field before any text is entered, - offering a brief example or instruction on what type of data is expected. It disappears when the user starts - typing. + Placeholder/Value: a short hint displayed inside the input field before any text is + entered, offering a brief example or instruction on what type of data is expected. It disappears when the + user starts typing. The value represents the actual content entered by the user. Unlike the placeholder, the + value persists during interaction and is what gets submitted with the form. diff --git a/packages/lib/src/text-input/TextInput.tsx b/packages/lib/src/text-input/TextInput.tsx index 5cdf8d88d..6fb6de21a 100644 --- a/packages/lib/src/text-input/TextInput.tsx +++ b/packages/lib/src/text-input/TextInput.tsx @@ -441,7 +441,7 @@ const DxcTextInput = forwardRef( {label} {optional && {translatedLabels.formFields.optionalLabel}} )} - {helperText && {helperText}} + {helperText && {helperText}} ( From 29368c95298582d729ed6b256e565f940f10cff1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Iv=C3=A1n=20G=C3=B3mez=20Pinta?= <44321109+GomezIvann@users.noreply.github.com> Date: Wed, 23 Apr 2025 14:19:53 +0200 Subject: [PATCH 08/10] Doc updates --- .../overview/PasswordInputOverviewPage.tsx | 105 ++++++++++++------ .../overview/TextInputOverviewPage.tsx | 21 ++-- 2 files changed, 79 insertions(+), 47 deletions(-) diff --git a/apps/website/screens/components/password-input/overview/PasswordInputOverviewPage.tsx b/apps/website/screens/components/password-input/overview/PasswordInputOverviewPage.tsx index e01b8ae71..54e17506a 100644 --- a/apps/website/screens/components/password-input/overview/PasswordInputOverviewPage.tsx +++ b/apps/website/screens/components/password-input/overview/PasswordInputOverviewPage.tsx @@ -79,7 +79,7 @@ const sections = [ A form input (also known as a form field) is used to capture user data. Common input types include text fields, date pickers, number fields, radio buttons, checkboxes, toggles, and dropdowns. Forms should always - include a submission method —such as a submit button, link, or keyboard trigger— to complete the interaction. + include a submission method, such as a submit button, link, or keyboard trigger, to complete the interaction. ), @@ -101,8 +101,8 @@ const sections = [ character limit that defines how much text can be entered. - Prefix or suffix: some inputs include a visual element before or after the user input - —like currency symbols or units— to help clarify the expected data. + Prefix or suffix: some inputs include a visual element before or after the user input, + like currency symbols or units, to help clarify the expected data. Helper text: additional information displayed below the field to guide the user in @@ -178,8 +178,8 @@ const sections = [ To improve usability without compromising security, our password input include a show/hide action icon. This control allows users to reveal the password temporarily, helping prevent - input errors—especially on small screens or when dealing with complex passwords. By default, passwords - are hidden and masked with dots, and toggling the visibility should be a clearly labeled and + input errors, especially on small screens or when dealing with complex passwords. By default, + passwords are hidden and masked with dots, and toggling the visibility should be a clearly labeled and accessible action. @@ -192,38 +192,69 @@ const sections = [ }, { title: "Best practices", - content: ( - - - Use the password input only for sensitive information: limit its use to fields where the user - is required to enter secure data, such as passwords, passcodes, or access tokens. - - - Include a show/hide toggle icon: this gives users the option to view their input and helps - prevent typing errors without compromising usability. - - - Provide helper text or guidelines when necessary: if there are specific password requirements - (length, special characters, etc.), display them clearly below the input field. - - - Avoid auto-filling or pre-populating password fields: for security reasons, let users input - their credentials manually unless using a trusted browser-based password manager. - - - Use the clear icon sparingly: only include a clear action when it improves user experience, - such as on mobile or when the field is optional. - - - Ensure strong visual feedback for validation: use clear error messages and states to help - users correct mistakes quickly and securely. - - - Never use plain text inputs for passwords: always use the dedicated password input component - to ensure proper handling, masking, and interaction. - - - ), + subSections: [ + { + title: "General", + content: ( + + + Use password inputs exclusively for sensitive or private data, such as account + credentials or security codes. + + + Always provide proper labeling and helper text if needed, especially when specifying + password requirements (e.g., minimum length, special characters). + + + ), + }, + { + title: "Show/hide action", + content: ( + + + Use clear, accessible labels for the action action (e.g., "Show password" / "Hide password") and ensure + they update dynamically based on the current state. + + + Avoid auto-enabling password visibility — keep the initial state masked for privacy. + + + ), + }, + { + title: "Close action", + content: ( + + + Use a clear (close) icon to help users quickly delete the entered password if needed. + + + Display the clear icon only when the field is not empty to avoid unnecessary + distractions. + + + ), + }, + { + title: "Security considerations", + content: ( + + + Never store passwords in local storage or pre-fill them without explicit user action. + + + Do not rely solely on masking or toggle visibility for security — always combine with backend encryption + and secure handling. + + + Prevent clipboard access via double-click or right-click when appropriate, depending on the app's security + level. + + + ), + }, + ], }, ]; diff --git a/apps/website/screens/components/text-input/overview/TextInputOverviewPage.tsx b/apps/website/screens/components/text-input/overview/TextInputOverviewPage.tsx index 82a362469..80a46cae3 100644 --- a/apps/website/screens/components/text-input/overview/TextInputOverviewPage.tsx +++ b/apps/website/screens/components/text-input/overview/TextInputOverviewPage.tsx @@ -31,8 +31,9 @@ const sections = [ Text input's anatomy - Label: a descriptive text that helps users understand what information is expected in the - input field. It should be clear, concise, and placed near the input for better readability. + Label (Optional): a descriptive text that helps users understand what information + is expected in the input field. It should be clear, concise, and placed near the input for better + readability. Optional indicator (Optional): a small indicator that signals the input field is @@ -81,7 +82,7 @@ const sections = [ A form input (also known as a form field) is used to capture user data. Common input types include text fields, date pickers, number fields, radio buttons, checkboxes, toggles, and dropdowns. Forms should always - include a submission method —such as a submit button, link, or keyboard trigger— to complete the interaction. + include a submission method, such as a submit button, link, or keyboard trigger, to complete the interaction. ), @@ -103,8 +104,8 @@ const sections = [ character limit that defines how much text can be entered. - Prefix or suffix: some inputs include a visual element before or after the user input - —like currency symbols or units— to help clarify the expected data. + Prefix or suffix: some inputs include a visual element before or after the user input, + like currency symbols or units, to help clarify the expected data. Helper text: additional information displayed below the field to guide the user in @@ -193,9 +194,9 @@ const sections = [ content: ( <> - Halstack inputs also support the use of prefixes and suffixes—visual elements that help users quickly{" "} - understand the type of data expected in the field. These cues provide additional context - and improve clarity during data entry. + Halstack inputs also support the use of prefixes and suffixes, which are visual elements that help users + quickly understand the type of data expected in the field. These cues provide additional + context and improve clarity during data entry. @@ -214,7 +215,7 @@ const sections = [ This feature is particularly useful for reducing input errors, speeding up data entry, and guiding users - toward valid or commonly used values—especially in cases where the list of possibilities is large but + toward valid or commonly used values, especially in cases where the list of possibilities is large but predictable, such as country names, email domains, or product codes. It enhances usability by minimizing typing effort and improving overall form completion accuracy. @@ -289,7 +290,7 @@ const sections = [ editable to avoid confusion with the actual value being typed. - Keep it minimal and functional: avoid decorative or unnecessary additions—prefixes and + Keep it minimal and functional: avoid decorative or unnecessary additions. Prefixes and suffixes should always serve a clear purpose. From 8beddd9e1f01ec6ed2c51a61dee9955802fffcae Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Iv=C3=A1n=20G=C3=B3mez=20Pinta?= <44321109+GomezIvann@users.noreply.github.com> Date: Wed, 23 Apr 2025 14:46:38 +0200 Subject: [PATCH 09/10] Number input docs --- .../number-input/NumberInputPageLayout.tsx | 4 +- .../number-input/code/NumberInputCodePage.tsx | 7 +- .../overview/NumberInputOverviewPage.tsx | 266 +++++++++++++++++- .../overview/examples/prefixSuffix.ts | 20 ++ .../overview/images/number_anatomy.png | Bin 0 -> 35741 bytes .../overview/images/number_spin_buttons.png | Bin 0 -> 28808 bytes .../overview/TextInputOverviewPage.tsx | 2 +- 7 files changed, 286 insertions(+), 13 deletions(-) create mode 100644 apps/website/screens/components/number-input/overview/examples/prefixSuffix.ts create mode 100644 apps/website/screens/components/number-input/overview/images/number_anatomy.png create mode 100644 apps/website/screens/components/number-input/overview/images/number_spin_buttons.png diff --git a/apps/website/screens/components/number-input/NumberInputPageLayout.tsx b/apps/website/screens/components/number-input/NumberInputPageLayout.tsx index 983c5a5f6..4fcf8bc14 100644 --- a/apps/website/screens/components/number-input/NumberInputPageLayout.tsx +++ b/apps/website/screens/components/number-input/NumberInputPageLayout.tsx @@ -16,8 +16,8 @@ const NumberInputPageHeading = ({ children }: { children: ReactNode }) => { - The number input is a text input component that only allows numerical values and it has controls for - incrementing or decrementing them. + Number inputs are fields specifically used to capture numeric user input in a structured and accessible + format. diff --git a/apps/website/screens/components/number-input/code/NumberInputCodePage.tsx b/apps/website/screens/components/number-input/code/NumberInputCodePage.tsx index 1de41f38f..e70c4a433 100644 --- a/apps/website/screens/components/number-input/code/NumberInputCodePage.tsx +++ b/apps/website/screens/components/number-input/code/NumberInputCodePage.tsx @@ -230,10 +230,7 @@ const sections = [ boolean - - Decides whether the number input has actions to increase or decrease the value, following the defined - step. - + Decides whether the number input displays or not the spin buttons to adjust the value. true @@ -253,7 +250,7 @@ const sections = [ number - The step interval to use when using the up and down arrows to adjust the value. + The step interval to use when using the spin buttons to adjust the value. 1 diff --git a/apps/website/screens/components/number-input/overview/NumberInputOverviewPage.tsx b/apps/website/screens/components/number-input/overview/NumberInputOverviewPage.tsx index 84fc99e95..4d7846d65 100644 --- a/apps/website/screens/components/number-input/overview/NumberInputOverviewPage.tsx +++ b/apps/website/screens/components/number-input/overview/NumberInputOverviewPage.tsx @@ -2,23 +2,279 @@ import { DxcFlex, DxcParagraph, DxcBulletedList } from "@dxc-technology/halstack import QuickNavContainer from "@/common/QuickNavContainer"; import QuickNavContainerLayout from "@/common/QuickNavContainerLayout"; import DocFooter from "@/common/DocFooter"; +import Image from "@/common/Image"; +import anatomy from "./images/number_anatomy.png"; +import spinButtons from "./images/number_spin_buttons.png"; +import Example from "@/common/example/Example"; +import Figure from "@/common/Figure"; +import prefixSuffix from "./examples/prefixSuffix"; +import Code from "@/common/Code"; const sections = [ { title: "Introduction", content: ( <> - Considerations for the use of the number input component: - + + Number inputs are essential UI elements for collecting quantitative data from users. They are + designed to handle numerical values such as quantities, prices, percentages, or any input that requires + mathematical validation or calculations. Common use cases include forms involving payment amounts, product + quantities, ages, measurements, or ratings. + + + Unlike text inputs, number inputs offer built-in constraints like minimum and maximum values, step intervals, + and automatic validation of non-numeric entries. These features help reduce errors, guide users toward valid + entries, and ensure consistent data formatting. + + + Proper labeling, error messaging, and the use of increment/decrement controls can further enhance usability + and accessibility, leading to a more efficient and user-friendly experience. + + + ), + }, + { + title: "Anatomy", + content: ( + <> + Number input anatomy + + + Label (Optional): a descriptive text that helps users understand what information + is expected in the input field. It should be clear, concise, and placed near the input for better + readability. + + + Optional indicator (Optional): a small indicator that signals the input field is + not mandatory. It helps users know they can leave the field empty without causing validation errors. + + + Spin buttons increase/decrease (Optional): small interactive controls, displayed + as plus (+) and minus (—) icons, that allow users to increment or decrement the numeric value using mouse + clicks or keyboard input. These buttons improve usability by offering an alternative to manual typing, help + prevent entry errors, and support accessibility for users who may prefer step-based adjustments. + + + Helper text (Optional): additional text placed below the input label that provides + guidance, examples, or explanations to assist users in filling out the field correctly. + + + Container: the visual wrapper around the input field that provides structure, ensures + accessibility, and helps differentiate the input from other UI elements. + + + Placeholder/Value: a short hint displayed inside the input field before any text is + entered, offering a brief example or instruction on what type of data is expected. It disappears when the + user starts typing. The value represents the actual content entered by the user. Unlike the placeholder, the + value persists during interaction and is what gets submitted with the form. + - Don't use the number input component for amounts. Use a text input instead. + Prefix (Optional): a visual element placed before or after the user input, like + currency symbols or units, to help clarify the expected data. - Always enable typing in the input field. - Avoid using the component when large values are expected. ), }, + { + title: "Form inputs", + content: ( + <> + + Form inputs are essential UI elements that allow users to interact with digital products by{" "} + entering or selecting data. Choosing the right input type and structure is key to designing + efficient, user-friendly forms that support task completion and data accuracy. + + + A form input (also known as a form field) is used to capture user data. Common input types include text + fields, date pickers, number fields, radio buttons, checkboxes, toggles, and dropdowns. Forms should always + include a submission method, such as a submit button, link, or keyboard trigger, to complete the interaction. + + + ), + subSections: [ + { + title: "Shared input characteristics", + content: ( + <> + + Although input fields vary in type and purpose, they often share a common set of features: + + + + Placeholder: a short hint displayed inside the input field that describes its expected + value or purpose. + + + Size and max length: inputs can have both a visual size (width of the field) and a + character limit that defines how much text can be entered. + + + Prefix or suffix: some inputs include a visual element before or after the user input, + like currency symbols or units, to help clarify the expected data. + + + Helper text: additional information displayed below the field to guide the user in + providing the correct input. + + + Optional label: inputs that are not mandatory can be marked with an "Optional" tag to + set clear expectations. + + + + ), + }, + { + title: "Common input states", + content: ( + <> + Most inputs can also present standard interactive or informative states: + + + Disabled: this state prevents users from interacting with the field. It's typically + used when a value is not applicable or editable under certain conditions or roles. + + + Error: when a user enters invalid or incomplete data, the input shows an error state, + often accompanied by a helpful message to guide corrections. + + + Read-only: the input is visible, focusable, and hoverable, but not editable. This is + ideal for fields with auto-calculated values. Unlike disabled fields, read-only inputs can still be + submitted with the form and are part of the form data. + + + + ), + }, + ], + }, + { + title: "Using number inputs", + content: ( + + Number inputs are commonly used in forms and interfaces where users are required to provide numeric values such + as quantities, prices, percentages, or other measurable data. Our number input component is highly configurable, + allowing designers and developers to tailor it to a wide range of use cases while ensuring consistency, + usability, and accessibility. In this section, we will highlight the key characteristics and behaviors of our + number input, helping you understand how and when to use it effectively. + + ), + subSections: [ + { + title: "Actions", + subSections: [ + { + title: "Using spin buttons", + content: ( + <> + + Spin buttons are one of the key interaction features of the number input. They allow users to{" "} + increment or decrement the value using simple clicks, rather than typing manually. + This is especially useful when working with step-based inputs, such as quantities or percentages, as + it ensures more accurate entries and improves overall efficiency for both keyboard and mouse users. + +
+ States for the spin buttons +
+ + ), + }, + ], + }, + { + title: "Prefix and suffix", + content: ( + <> + + Halstack number inputs also support the use of prefixes and suffixes, which are visual elements that help + users quickly understand the format or context of the numeric value being entered. These + elements clarify what type of number is expected, such as currency, units, or percentages, and ensure + greater consistency in data entry. + + + This added context is especially helpful in forms with multiple numeric fields, allowing users to scan and + comprehend each field's purpose at a glance, ultimately improving the overall experience and reducing + entry errors. + + + + ), + }, + ], + }, + { + title: "Best practices", + subSections: [ + { + title: "General", + content: ( + + + Always use clear labels: provide a clear and concise label to describe the expected + numeric input. Avoid relying solely on the placeholder to communicate the field's purpose. + + + Use helper text for additional guidance: if the expected input range, format, or units + might be unclear, add helper text to avoid confusion and input errors. + + + Indicate when the field is optional: use an “Optional” label when applicable to reduce + user hesitation or over-input. + + + Ensure consistent visual states: clearly differentiate between focus, error, disabled, + and read-only states using accessible visual cues and messages. + + + Set valid constraints: always define min, max, or{" "} + step values when the input must fall within a numeric range to improve accuracy and prevent + invalid entries. + + + ), + }, + { + title: "Actions", + content: ( + + + Enable keyboard and button control: users should be able to input values manually or use + the spin buttons to increment/decrement the value. + + + Avoid aggressive auto-corrections: do not override user input instantly or without + warning; let users control their interaction unless invalid input requires immediate correction. + + + Validate on interaction: validate values when the user finishes interacting with the + field, not while they're typing, to prevent frustration. + + + Allow incremental control: use appropriate step values to help users input + valid values more efficiently when using spin buttons. + + + ), + }, + { + title: "Prefix/suffix", + content: ( + + + Use prefixes and suffixes for context: clearly indicate units (e.g., kg, cm), currency + (e.g., USD, EUR), or domain-specific values to help users understand what's expected. + + + Avoid clutter: only use prefixes or suffixes when they add value and improve clarity. + Don't overload the field with unnecessary UI elements. + + + ), + }, + ], + }, ]; const NumberInputOverviewPage = () => ( diff --git a/apps/website/screens/components/number-input/overview/examples/prefixSuffix.ts b/apps/website/screens/components/number-input/overview/examples/prefixSuffix.ts new file mode 100644 index 000000000..001a79333 --- /dev/null +++ b/apps/website/screens/components/number-input/overview/examples/prefixSuffix.ts @@ -0,0 +1,20 @@ +import { DxcNumberInput, DxcInset, DxcFlex } from "@dxc-technology/halstack-react"; + +const code = `() => { + return ( + + + + + + + ); + }`; + +const scope = { + DxcNumberInput, + DxcInset, + DxcFlex, +}; + +export default { code, scope }; diff --git a/apps/website/screens/components/number-input/overview/images/number_anatomy.png b/apps/website/screens/components/number-input/overview/images/number_anatomy.png new file mode 100644 index 0000000000000000000000000000000000000000..de0b8a3769d91d07c8e41cc6359da5b823e1abfe GIT binary patch literal 35741 zcmeFaXHb(})GiDN3Zfz+prU{cRGLbY9z{f?sVKcl?PO9SF+vyw92Q;+w_XqBB#$0GbC`&T=&02F zyN`*84tWw0ku;K%fG1n_xH9k;G4!$I9io(mvy$6=c`F1?~5>edC)efypIQ79CAkx5I;eSD(g4HeVa8zN#7Qu5=>5YK;pz^DzL+njso z@n7G8Uk|?ZB_70| zO+NJUB+5Ub2tVLB_t5@pf0i^m~XtuR9sZ))i|_cUUJ)gObJ zV=XRlo3HIzE$khdl2b{a2&0q>y323}*{SaanSLef*Bxqk&P=fKIN>yDnHJ^Il!Vxfn;Yt2t0;Zk#YFVBzf|Sw{ zl@j;OiH82Vy}-_gM5|{hITmTTRkE$6t5cHFGCNSTkUGhsCD)lM`X-wxKz!Xu#*CcI zRrB@2=a3V-@a?)Vkiw7?oxz>mmNA$7k4&s^aA8^{4*BHFy9s1f3B6$HDr2}!OCmk}Li zyHlP}hY2`n zJsI;P4ay0f_K?~TO^>>o-RtLdT3F#2aPE0>Z-cCc+QTzW>>-df%!c7TVS)6Ci7{8i zM4+rY`kzJr(*wrT*@R5)9B>?VQFzmD#=%s1A|Ph1wa%#+jCWkRKbO$SmBZvwl8XtU z+`GeHfWn+)5Zo`${;*!9893+n=C+M+WX#he_key}Z@71UcYjrhLx@BekxkcjHU;Dy zSvtkykfB!CK#*TGi%|f2o%1Hnh+?hqeLMQ5+HM*_yPu4-5xqq&Lx@)=9uHzgxE#9D zJ?g7;X?SY3iY{V!wtx(wxpu znyo40n#*5)$TK6c)JZnKReyONu3WglQI&vNk+Cm|z2QIOJbT91AHszQ-gp&=tWBfr zU+(@~fkm+)f~lS7;t1IaTMlN=xiC3#!e~XwmP!U4$YbxT7G(Y@9tu?oNU*{ku#jqf+eTy zY8sRh$0rWkZaUSx8C!zNb8b~8sTU)qrG}mp7EqU1((3(UMHbIa|JNHxM7Frr6y(%5 zs1POj_Yp3J-MC>tmwCNn=LtER<;jvQ@cbG~RTmd=`I6T9Quk9+MR?qz;)!CK5Img>jfQKxmTQ)cEy<=KFzp>n)s$b91y{-f(?0#46@Yd zxMZ#r&Bf_T)L62@XTR8HC~naylqUEWVIR0s+ z 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 z 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 literal 0 HcmV?d00001 diff --git a/apps/website/screens/components/number-input/overview/images/number_spin_buttons.png b/apps/website/screens/components/number-input/overview/images/number_spin_buttons.png new file mode 100644 index 0000000000000000000000000000000000000000..8eff3a50bd12a59a85d8e791f4a9469e265da2a1 GIT binary patch literal 28808 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

- Text input's anatomy + Text input anatomy Label (Optional): a descriptive text that helps users understand what information From 1e78e409b51e02b6254895398a545744de71c19b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Iv=C3=A1n=20G=C3=B3mez=20Pinta?= <44321109+GomezIvann@users.noreply.github.com> Date: Wed, 23 Apr 2025 17:26:50 +0200 Subject: [PATCH 10/10] Updates based on feedback --- .../number-input/overview/NumberInputOverviewPage.tsx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/apps/website/screens/components/number-input/overview/NumberInputOverviewPage.tsx b/apps/website/screens/components/number-input/overview/NumberInputOverviewPage.tsx index 4d7846d65..92edc892d 100644 --- a/apps/website/screens/components/number-input/overview/NumberInputOverviewPage.tsx +++ b/apps/website/screens/components/number-input/overview/NumberInputOverviewPage.tsx @@ -50,7 +50,7 @@ const sections = [ Spin buttons increase/decrease (Optional): small interactive controls, displayed - as plus (+) and minus (—) icons, that allow users to increment or decrement the numeric value using mouse + as plus (+) and minus (-) icons, that allow users to increment or decrement the numeric value using mouse clicks or keyboard input. These buttons improve usability by offering an alternative to manual typing, help prevent entry errors, and support accessibility for users who may prefer step-based adjustments. @@ -220,7 +220,7 @@ const sections = [ might be unclear, add helper text to avoid confusion and input errors. - Indicate when the field is optional: use an “Optional” label when applicable to reduce + Indicate when the field is optional: use an "Optional" label when applicable to reduce user hesitation or over-input.