From 8065fbc52cdc8d1c7cce3fec250bc92a4974b37c Mon Sep 17 00:00:00 2001 From: Raquel Arrojo Lopez Date: Mon, 10 Feb 2025 17:01:01 +0100 Subject: [PATCH 01/11] Refactor Accordion component --- .../screens/common/themes/advanced-theme.json | 38 +- .../common/themes/opinionated-theme.json | 5 +- .../accordion/AccordionPageLayout.tsx | 6 +- .../accordion/code/AccordionCodePage.tsx | 274 ++++----- .../accordion/code/examples/accordions.ts | 61 ++ .../code/examples/badgeStatusLight.ts | 30 + .../accordion/code/examples/basicUsage.ts | 23 + .../accordion/code/examples/controlled.ts | 32 + .../code/examples/controlledAccordion.ts | 31 - .../code/examples/controlledAccordionGroup.ts | 39 -- .../code/examples/disabledAccordions.ts | 65 +++ .../accordion/code/examples/icons.ts | 32 +- ...controlledAccordion.ts => uncontrolled.ts} | 10 +- .../examples/uncontrolledAccordionGroup.ts | 31 - .../accordion/specs/AccordionSpecsPage.tsx | 419 ++++++------- .../specs/images/accordion_anatomy.png | Bin 33338 -> 16943 bytes .../specs/images/accordion_specs.png | Bin 48320 -> 17331 bytes .../specs/images/accordion_states.png | Bin 40396 -> 39208 bytes .../accordion/usage/AccordionUsagePage.tsx | 528 +++++++++++------ .../usage/examples/accordionGroup.ts | 62 -- .../accordion/usage/examples/assistiveText.ts | 33 -- .../usage/examples/behaviorAndInteraction.ts | 56 -- .../usage/images/accordion_alignment.png | Bin 54708 -> 0 bytes .../usage/images/accordion_content.png | Bin 27309 -> 16168 bytes .../usage/images/accordion_elements.png | Bin 0 -> 9338 bytes .../usage/images/accordion_examples.png | Bin 0 -> 47814 bytes .../usage/images/accordion_main_parts.png | Bin 0 -> 15578 bytes .../usage/images/accordion_multi_expand.png | Bin 27018 -> 0 bytes .../usage/images/accordion_placement.png | Bin 19758 -> 10501 bytes .../usage/images/accordion_triggers.png | Bin 21184 -> 0 bytes .../screens/principles/themes/ThemesPage.tsx | 7 + .../themes/examples/opinionatedTheme.ts | 20 +- .../components/previews/Accordion.tsx | 119 +++- .../themes/schemas/advanced.schema.json | 34 +- .../themes/schemas/opinionated.schema.json | 1 + .../examples/advancedTheme.ts | 20 +- .../examples/opinionatedTheme.ts | 20 +- packages/lib/src/HalstackContext.tsx | 16 +- .../AccordionGroup.accessibility.test.tsx | 52 -- .../AccordionGroup.stories.tsx | 258 -------- .../accordion-group/AccordionGroup.test.tsx | 95 --- .../src/accordion-group/AccordionGroup.tsx | 99 ---- .../AccordionGroupAccordion.tsx | 25 - .../accordion-group/AccordionGroupContext.tsx | 4 - packages/lib/src/accordion-group/types.ts | 65 --- .../Accordion.accessibility.test.tsx | 63 +- .../lib/src/accordion/Accordion.stories.tsx | 549 +++++++++++++----- packages/lib/src/accordion/Accordion.test.tsx | 115 +++- packages/lib/src/accordion/Accordion.tsx | 308 +++++----- .../lib/src/accordion/AccordionContext.tsx | 4 + packages/lib/src/accordion/AccordionItem.tsx | 230 ++++++++ packages/lib/src/accordion/types.ts | 52 -- packages/lib/src/accordion/types.tsx | 152 +++++ packages/lib/src/common/variables.ts | 41 +- packages/lib/src/index.ts | 1 - 55 files changed, 2134 insertions(+), 1991 deletions(-) create mode 100644 apps/website/screens/components/accordion/code/examples/accordions.ts create mode 100644 apps/website/screens/components/accordion/code/examples/badgeStatusLight.ts create mode 100644 apps/website/screens/components/accordion/code/examples/basicUsage.ts create mode 100644 apps/website/screens/components/accordion/code/examples/controlled.ts delete mode 100644 apps/website/screens/components/accordion/code/examples/controlledAccordion.ts delete mode 100644 apps/website/screens/components/accordion/code/examples/controlledAccordionGroup.ts create mode 100644 apps/website/screens/components/accordion/code/examples/disabledAccordions.ts rename apps/website/screens/components/accordion/code/examples/{uncontrolledAccordion.ts => uncontrolled.ts} (51%) delete mode 100644 apps/website/screens/components/accordion/code/examples/uncontrolledAccordionGroup.ts delete mode 100644 apps/website/screens/components/accordion/usage/examples/accordionGroup.ts delete mode 100644 apps/website/screens/components/accordion/usage/examples/assistiveText.ts delete mode 100644 apps/website/screens/components/accordion/usage/examples/behaviorAndInteraction.ts delete mode 100644 apps/website/screens/components/accordion/usage/images/accordion_alignment.png create mode 100644 apps/website/screens/components/accordion/usage/images/accordion_elements.png create mode 100644 apps/website/screens/components/accordion/usage/images/accordion_examples.png create mode 100644 apps/website/screens/components/accordion/usage/images/accordion_main_parts.png delete mode 100644 apps/website/screens/components/accordion/usage/images/accordion_multi_expand.png delete mode 100644 apps/website/screens/components/accordion/usage/images/accordion_triggers.png delete mode 100644 packages/lib/src/accordion-group/AccordionGroup.accessibility.test.tsx delete mode 100644 packages/lib/src/accordion-group/AccordionGroup.stories.tsx delete mode 100644 packages/lib/src/accordion-group/AccordionGroup.test.tsx delete mode 100644 packages/lib/src/accordion-group/AccordionGroup.tsx delete mode 100644 packages/lib/src/accordion-group/AccordionGroupAccordion.tsx delete mode 100644 packages/lib/src/accordion-group/AccordionGroupContext.tsx delete mode 100644 packages/lib/src/accordion-group/types.ts create mode 100644 packages/lib/src/accordion/AccordionContext.tsx create mode 100644 packages/lib/src/accordion/AccordionItem.tsx delete mode 100644 packages/lib/src/accordion/types.ts create mode 100644 packages/lib/src/accordion/types.tsx diff --git a/apps/website/screens/common/themes/advanced-theme.json b/apps/website/screens/common/themes/advanced-theme.json index 2ec0b6c056..e489c9afaf 100644 --- a/apps/website/screens/common/themes/advanced-theme.json +++ b/apps/website/screens/common/themes/advanced-theme.json @@ -2,45 +2,43 @@ "accordion": { "backgroundColor": "#ffffff", "hoverBackgroundColor": "#f2eafa", + "focusBackgroundColor": "transparent", + "activeBackgroundColor": "#f2eafa", "arrowColor": "#5f249f", "disabledArrowColor": "#999999", + "subLabelFontFamily": "Open Sans, sans-serif", + "subLabelFontSize": "0.75rem", + "subLabelFontWeight": "400", + "subLabelFontStyle": "normal", + "subLabelFontColor": "#666666", + "disabledSubLabelFontColor": "#999999", "assistiveTextFontFamily": "Open Sans, sans-serif", - "assistiveTextFontSize": "1rem", - "assistiveTextFontWeight": "300", - "assistiveTextFontStyle": "italic", - "assistiveTextLetterSpacing": "0.025em", + "assistiveTextFontSize": "0.75rem", + "assistiveTextFontWeight": "400", + "assistiveTextFontStyle": "normal", "assistiveTextFontColor": "#666666", "disabledAssistiveTextFontColor": "#999999", - "assistiveTextMinWidth": "100px", - "assistiveTextPaddingRight": "1.5rem", - "assistiveTextPaddingLeft": "0rem", "titleLabelFontFamily": "Open Sans, sans-serif", "titleLabelFontSize": "1rem", "titleLabelFontWeight": "400", "titleLabelFontStyle": "normal", - "titleLabelFontColor": "#000000", + "titleLabelFontColor": "#333333", "disabledTitleLabelFontColor": "#999999", - "titleLabelPaddingTop": "0rem", - "titleLabelPaddingBottom": "0rem", - "titleLabelPaddingLeft": "0rem", - "titleLabelPaddingRight": "1rem", "focusBorderColor": "#0095ff", "focusBorderStyle": "solid", "focusBorderThickness": "2px", "borderRadius": "4px", "boxShadowOffsetX": "0px", - "boxShadowOffsetY": "6px", - "boxShadowBlur": "10px", + "boxShadowOffsetY": "12px", + "boxShadowBlur": "12px", + "boxShadowSpread": "0px", "boxShadowColor": "#0000001a", "iconColor": "#5f249f", "disabledIconColor": "#999999", "iconSize": "24px", - "iconMarginLeft": "0rem", - "iconMarginRight": "0.75rem", - "accordionGroupSeparatorBorderColor": "#0000001a", - "accordionGroupSeparatorBorderThickness": "1px", - "accordionGroupSeparatorBorderRadius": "0px", - "accordionGroupSeparatorBorderStyle": "solid" + "accordionSeparatorBorderColor": "#e6e6e6", + "accordionSeparatorBorderThickness": "1px", + "accordionSeparatorBorderStyle": "solid" }, "alert": { "overlayColor": "#000000b3", diff --git a/apps/website/screens/common/themes/opinionated-theme.json b/apps/website/screens/common/themes/opinionated-theme.json index 050215d6ad..afce9c3dd6 100644 --- a/apps/website/screens/common/themes/opinionated-theme.json +++ b/apps/website/screens/common/themes/opinionated-theme.json @@ -1,8 +1,9 @@ { "accordion": { "accentColor": "#5f249f", - "titleFontColor": "#000000", - "assistiveTextFontColor": "#666666" + "titleFontColor": "#333333", + "subLabelFontColor": "#666666", + "assistiveTextFontColor": "#999999" }, "button": { "baseColor": "#5f249f", diff --git a/apps/website/screens/components/accordion/AccordionPageLayout.tsx b/apps/website/screens/components/accordion/AccordionPageLayout.tsx index 1bfd1ce897..f2645e7ef7 100644 --- a/apps/website/screens/components/accordion/AccordionPageLayout.tsx +++ b/apps/website/screens/components/accordion/AccordionPageLayout.tsx @@ -17,9 +17,9 @@ const AccordionPageHeading = ({ children }: { children: ReactNode }) => { - Accordions are used to group similar content and hide or show it depending on user needs or preferences. - Accordions give users more granular control over the interface and help digest content in stages, rather - than all at once. + Accordion are used to group related content into collapsible sections, allowing users to expand or hide + content based on their needs or preferences. It enhances the user experience by organizing information into + smaller, digestible chunks, helping reduce cognitive load and save screen space. diff --git a/apps/website/screens/components/accordion/code/AccordionCodePage.tsx b/apps/website/screens/components/accordion/code/AccordionCodePage.tsx index 38a210a296..aee5fa6ee8 100644 --- a/apps/website/screens/components/accordion/code/AccordionCodePage.tsx +++ b/apps/website/screens/components/accordion/code/AccordionCodePage.tsx @@ -3,11 +3,13 @@ import QuickNavContainer from "@/common/QuickNavContainer"; import QuickNavContainerLayout from "@/common/QuickNavContainerLayout"; import DocFooter from "@/common/DocFooter"; import Example from "@/common/example/Example"; -import controlledAccordion from "./examples/controlledAccordion"; -import uncontrolledAccordion from "./examples/uncontrolledAccordion"; +import basicUsage from "./examples/basicUsage"; +import badgeStatusLight from "./examples/badgeStatusLight"; +import controlled from "./examples/controlled"; +import uncontrolled from "./examples/uncontrolled"; import icons from "./examples/icons"; -import controlledAccordionGroup from "./examples/controlledAccordionGroup"; -import uncontrolledAccordionGroup from "./examples/uncontrolledAccordionGroup"; +import accordions from "./examples/accordions"; +import disabledAccordions from "./examples/disabledAccordions"; import TableCode from "@/common/TableCode"; import StatusBadge from "@/common/StatusBadge"; import Code from "@/common/Code"; @@ -27,94 +29,50 @@ const sections = [ + independent - - - label - - - - string + boolean - The panel label. - - - - - defaultIsExpanded - boolean + When true, limits the user to single-open section at a time. When false, multiple sections can be opened + simultaneously. - Initial state of the panel, only when it is uncontrolled. false - isExpanded + defaultIndexActive - boolean + number | number[] - Represents the state of the panel. When true, the component will be expanded. If undefined, the component - will be uncontrolled and its value will be managed internally by the component. + Initially active accordion, only when it is uncontrolled. If the accordion is not independent, several + accordions can be actived by default. - - icon + indexActive - string | {"(React.ReactNode & React.SVGProps )"} + number | number[] - - Material Symbol - {" "} - name or SVG element as the icon that will be placed next to the panel label. When using Material Symbols, - replace spaces with underscores. By default they are outlined if you want it to be filled prefix the - symbol name with "filled_". + The index of the active accordion. If undefined, the component will be uncontrolled and the active + accordion will be managed internally by the component. If null, the component will be controlled and all + accordions will be closed. If the accordion is not independent, several accordions can be actived. - - assistiveText + onActiveChange - string + {`(indexActive: number | number[]) => void`} - Assistive text to be placed on the right side of the panel. - - - - - disabled - - boolean - - If true, the component will be disabled. - false + This function will be called when the user clicks on an accordion. The index of the clicked accordion will + be passed as a parameter. - - - onChange - - {"(isExpanded: boolean) => void"} - - - This function will be called when the user clicks the accordion to expand or collapse the panel. The new - state of the panel will be passed as a parameter. - - - - - - - - - children - - - - React.ReactNode - - The expanded panel of the accordion. This area can be used to render custom content. - @@ -129,114 +87,25 @@ const sections = [ - - tabIndex - - number - - Value of the tabindex attribute. + + + children + - 0 + {`ReactElement[] | ReactElement`} + Contains one or more accordion items. + - ), - }, - { - title: "Accordion Group", - content: Groups two or more accordions to distribute large volumes of information., subSections: [ { - title: "Props", - content: ( - - - - Name - Type - Description - Default - - - - - defaultIndexActive - - number - - Initially active accordion, only when it is uncontrolled. - - - - - indexActive - - number - - - The index of the active accordion. If undefined, the component will be uncontrolled and the active - accordion will be managed internally by the component. If null, the component will be controlled and - all accordions will be closed. - - - - - - disabled - - boolean - - If true, the component will be disabled. - - false - - - - onActiveChange - - {"(indexActive: number) => void"} - - - This function will be called when the user clicks on an accordion. The index of the clicked accordion - will be passed as a parameter. - - - - - - - - - children - - - - - {"React.ReactElement [] | React.ReactElement "} - - - Contains one or more accordions. - - - - - margin - - - '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. - - - - - - - ), - }, - { - title: "DxcAccordionGroup.Accordion", - content: Single accordion, part of an accordion group., + title: "DxcAccordion.AccordionItem", + content: Accordion item, that composes the accordion component., subSections: [ { title: "Props", @@ -264,10 +133,49 @@ const sections = [ The panel label. - + + + + + subLabel + + + + string + + Additional info label positioned under the label. + - + + + + + + badge + + + + {"{ position: 'before' | 'after'; element: ReactNode }"} + + Badge component to add extra value to the accordion. + - + + + + + + statusLight + + + + ReactNode + + Status light component to add extra value to the accordion. + - + icon - string | {"React.ReactNode & React.SVGProps "} + string | {"(React.ReactNode & React.SVGProps )"} @@ -305,11 +213,23 @@ const sections = [ - React.ReactNode + ReactNode The expanded panel of the accordion. This area can be used to render custom content. - + + tabIndex + + number + + + Value of the tabindex attribute. + + + 0 + + ), @@ -322,25 +242,33 @@ const sections = [ title: "Examples", subSections: [ { - title: "Controlled Accordion", - content: , + title: "Basic usage", + content: , }, { - title: "Uncontrolled Accordion", - content: , + title: "Controlled Accordion", + content: , }, { - title: "Controlled Accordion Group", - content: , + title: "Uncontrolled Accordion", + content: , }, { - title: "Uncontrolled Accordion Group", - content: , + title: "Badge and status light", + content: , }, { title: "Icons", content: , }, + { + title: "Group of accordions", + content: , + }, + { + title: "Disabled accordions", + content: , + }, ], }, ]; diff --git a/apps/website/screens/components/accordion/code/examples/accordions.ts b/apps/website/screens/components/accordion/code/examples/accordions.ts new file mode 100644 index 0000000000..ff4ef7f867 --- /dev/null +++ b/apps/website/screens/components/accordion/code/examples/accordions.ts @@ -0,0 +1,61 @@ +import { DxcAccordion, DxcInset, DxcBadge, DxcStatusLight } from "@dxc-technology/halstack-react"; +import { useState } from "react"; + +const code = `() => { + + return ( + + + }} + statusLight={} + > + + Person information + + + }} + defaultIsExpanded + > + + Person creation information + + + }} + statusLight={} + defaultIsExpanded + > + + Interactions information + + + }} + > + + Deletion information + + + + + ); +}`; + +const scope = { + DxcAccordion, + DxcInset, + DxcBadge, + DxcStatusLight, + useState, +}; + +export default { code, scope }; diff --git a/apps/website/screens/components/accordion/code/examples/badgeStatusLight.ts b/apps/website/screens/components/accordion/code/examples/badgeStatusLight.ts new file mode 100644 index 0000000000..cb2dd6367a --- /dev/null +++ b/apps/website/screens/components/accordion/code/examples/badgeStatusLight.ts @@ -0,0 +1,30 @@ +import { DxcInset, DxcAccordion, DxcBadge, DxcStatusLight } from "@dxc-technology/halstack-react"; + +const code = `() => { + return ( + + + }} + statusLight={} + > + + To edit your profile you need to go to Settings and click on Profile. + + + + + ); +}`; + +const scope = { + DxcInset, + DxcAccordion, + DxcBadge, + DxcStatusLight, +}; + +export default { code, scope }; diff --git a/apps/website/screens/components/accordion/code/examples/basicUsage.ts b/apps/website/screens/components/accordion/code/examples/basicUsage.ts new file mode 100644 index 0000000000..d0d34468aa --- /dev/null +++ b/apps/website/screens/components/accordion/code/examples/basicUsage.ts @@ -0,0 +1,23 @@ +import { DxcAccordion, DxcInset } from "@dxc-technology/halstack-react"; + +const code = `() => { + return ( + + + + + To edit your profile you need to go to Settings and click on Profile. + + + + + ); +}`; + +const scope = { + DxcAccordion, + DxcInset, +}; + +export default { code, scope }; diff --git a/apps/website/screens/components/accordion/code/examples/controlled.ts b/apps/website/screens/components/accordion/code/examples/controlled.ts new file mode 100644 index 0000000000..b0c37db497 --- /dev/null +++ b/apps/website/screens/components/accordion/code/examples/controlled.ts @@ -0,0 +1,32 @@ +import { DxcAccordion, DxcInset } from "@dxc-technology/halstack-react"; +import { useState } from "react"; + +const code = `() => { + const [indexAccordion, setIndexAccordion] = useState(0); + const onActiveChange = (index) => { + setIndexAccordion((currentIndex) => (currentIndex === index ? -1 : index)); + }; + + return ( + + + + + To edit your profile you need to go to Settings and click on Profile. + + + + + ); +}`; + +const scope = { + DxcAccordion, + DxcInset, + useState, +}; + +export default { code, scope }; diff --git a/apps/website/screens/components/accordion/code/examples/controlledAccordion.ts b/apps/website/screens/components/accordion/code/examples/controlledAccordion.ts deleted file mode 100644 index e1db10e061..0000000000 --- a/apps/website/screens/components/accordion/code/examples/controlledAccordion.ts +++ /dev/null @@ -1,31 +0,0 @@ -import { DxcAccordion, DxcInset } from "@dxc-technology/halstack-react"; -import { useState } from "react"; - -const code = `() => { - const [isExpanded, changeIsExpanded] = useState(true); - const onChange = (newValue) => { - changeIsExpanded(newValue); - }; - - return ( - - - - To edit your profile you need to go to Settings and click on Profile. - - - - ); -}`; - -const scope = { - DxcAccordion, - DxcInset, - useState, -}; - -export default { code, scope }; diff --git a/apps/website/screens/components/accordion/code/examples/controlledAccordionGroup.ts b/apps/website/screens/components/accordion/code/examples/controlledAccordionGroup.ts deleted file mode 100644 index e90adc2482..0000000000 --- a/apps/website/screens/components/accordion/code/examples/controlledAccordionGroup.ts +++ /dev/null @@ -1,39 +0,0 @@ -import { DxcAccordionGroup, DxcInset } from "@dxc-technology/halstack-react"; -import { useState } from "react"; - -const code = `() => { - const [indexAccordion, setIndexAccordion] = useState(0); - const onActiveChange = (index) => { - setIndexAccordion((currentIndex) => (currentIndex === index ? -1 : index)); - }; - - return ( - - - - - To edit your profile you need to go to Settings and click on - Profile. - - - - - To edit your profile you need to go to Settings and click on Log - out. - - - - - ); -}`; - -const scope = { - DxcAccordionGroup, - DxcInset, - useState, -}; - -export default { code, scope }; diff --git a/apps/website/screens/components/accordion/code/examples/disabledAccordions.ts b/apps/website/screens/components/accordion/code/examples/disabledAccordions.ts new file mode 100644 index 0000000000..75d2aca8a1 --- /dev/null +++ b/apps/website/screens/components/accordion/code/examples/disabledAccordions.ts @@ -0,0 +1,65 @@ +import { DxcAccordion, DxcInset, DxcBadge, DxcStatusLight } from "@dxc-technology/halstack-react"; +import { useState } from "react"; + +const code = `() => { + + return ( + + + }} + statusLight={} + > + + Person information + + + }} + defaultIsExpanded + > + + Person creation information + + + }} + statusLight={} + defaultIsExpanded + > + + Interactions information + + + }} + > + + Deletion information + + + + + ); +}`; + +const scope = { + DxcAccordion, + DxcInset, + DxcBadge, + DxcStatusLight, + useState, +}; + +export default { code, scope }; diff --git a/apps/website/screens/components/accordion/code/examples/icons.ts b/apps/website/screens/components/accordion/code/examples/icons.ts index f32135fb97..2d11e20aa7 100644 --- a/apps/website/screens/components/accordion/code/examples/icons.ts +++ b/apps/website/screens/components/accordion/code/examples/icons.ts @@ -1,38 +1,19 @@ -import { DxcAccordion, DxcAccordionGroup, DxcFlex, DxcInset } from "@dxc-technology/halstack-react"; +import { DxcAccordion, DxcFlex, DxcInset } from "@dxc-technology/halstack-react"; import { useState } from "react"; const code = `() => { return ( - - - - To edit your profile you need to go to Settings and click on - Profile. - - - - + + To edit your profile you need to go to Settings and click on Profile. - - - - To edit your profile you need to go to Settings and click on Log - out. - - - - + + ); }`; @@ -40,7 +21,6 @@ const code = `() => { const scope = { DxcAccordion, DxcInset, - DxcAccordionGroup, DxcFlex, useState, }; diff --git a/apps/website/screens/components/accordion/code/examples/uncontrolledAccordion.ts b/apps/website/screens/components/accordion/code/examples/uncontrolled.ts similarity index 51% rename from apps/website/screens/components/accordion/code/examples/uncontrolledAccordion.ts rename to apps/website/screens/components/accordion/code/examples/uncontrolled.ts index 77ccd09269..29f31f137d 100644 --- a/apps/website/screens/components/accordion/code/examples/uncontrolledAccordion.ts +++ b/apps/website/screens/components/accordion/code/examples/uncontrolled.ts @@ -4,10 +4,12 @@ import { useState } from "react"; const code = `() => { return ( - - - To edit your profile you need to go to Settings and click on Profile. - + + + + To edit your profile you need to go to Settings and click on Profile. + + ); diff --git a/apps/website/screens/components/accordion/code/examples/uncontrolledAccordionGroup.ts b/apps/website/screens/components/accordion/code/examples/uncontrolledAccordionGroup.ts deleted file mode 100644 index 9381beca8b..0000000000 --- a/apps/website/screens/components/accordion/code/examples/uncontrolledAccordionGroup.ts +++ /dev/null @@ -1,31 +0,0 @@ -import { DxcAccordionGroup, DxcInset } from "@dxc-technology/halstack-react"; -import { useState } from "react"; - -const code = `() => { - return ( - - - - - To edit your profile you need to go to Settings and click on - Profile. - - - - - To edit your profile you need to go to Settings and click on Log - out. - - - - - ); -}`; - -const scope = { - DxcAccordionGroup, - DxcInset, - useState, -}; - -export default { code, scope }; diff --git a/apps/website/screens/components/accordion/specs/AccordionSpecsPage.tsx b/apps/website/screens/components/accordion/specs/AccordionSpecsPage.tsx index f22d589a28..db2abf1a07 100644 --- a/apps/website/screens/components/accordion/specs/AccordionSpecsPage.tsx +++ b/apps/website/screens/components/accordion/specs/AccordionSpecsPage.tsx @@ -40,16 +40,16 @@ const sections = [ Header - Custom icon (Optional) + Left secondary element (Optional) Title - Helper text (Optional) + Right secondary element (Optional) Caret icon (Expand/collapse) - Expanded panel + Content area ), @@ -72,23 +72,41 @@ const sections = [ - titleLabelFontColor + accordionSeparatorBorderColor - Title + Separator - color-black + color-grey-200 - #000000 + #e6e6e6 - disabledTitleLabelFontColor + accordionSeparatorBorderThickness - Title:disabled + Separator + - + 1px + + - color-grey-500 + accordionSeparatorBorderStyle - #999999 + Separator + + border-style-solid + + solid + + + + activeBackgroundColor + + Header background:active + + color-purple-100 + + #f2eafa @@ -100,11 +118,31 @@ const sections = [ #5f249f + + + assistiveTextFontColor + + Assistive text + + color-grey-700 + + #666666 + + + + backgroundColor + + Container background + + color-white + + #ffffff + disabledArrowColor - Title:disabled + Caret icon:disabled color-grey-500 @@ -112,13 +150,13 @@ const sections = [ - iconColor + disabledAssistiveTextFontColor - Custom icon + Assistive text:disabled - color-purple-700 + color-grey-500 - #5f249f + #999999 @@ -132,19 +170,19 @@ const sections = [ - assistiveTextFontColor + disabledSubLabelFontColor - Helper text + Sublabel:disabled color-grey-700 - #666666 + #999999 - disabledAssistiveTextFontColor + disabledTitleLabelFontColor - Helper text:disabled + Title:disabled color-grey-500 @@ -152,13 +190,13 @@ const sections = [ - hoverBackgroundColor + focusBackgroundColor - Header background:hover + Header background:focus - color-purple-100 + color-transparent - #f2eafa + transparent @@ -172,28 +210,53 @@ const sections = [ - backgroundColor + hoverBackgroundColor - Container background + Header background:hover - color-white + color-purple-100 - #ffffff + #f2eafa - boxShadowColor + iconColor - Container shadow - - - #0000001a + Custom icon + + color-purple-700 + + #5f249f - accordionGroupSeparatorBorderColor + subLabelFontColor + + Sublabel + + color-grey-500 + + #999999 + + + + titleLabelFontColor + + Title + + color-grey-900 + + #333333 + + + + + boxShadowColor + + Container shadow + + color-grey-200-a - Separator - - #0000001a @@ -215,93 +278,123 @@ const sections = [ - titleLabelFontFamily + assistiveTextFontFamily - Title + Assistive text font-family-sans - 'Open Sans', sans-serif + 'Open Sans', sans-serif; - titleLabelFontSize + assistiveTextFontSize - Title + Assistive text - font-scale-03 + font-scale-01 - 16px + 0.75rem / 12px - titleLabelFontWeight + assistiveTextFontStyle - Title + Assistive text + + font-style-normal + + normal + + + + assistiveTextFontWeight + + Assistive text - font-regular + font-weight-light 400 - titleLabelFontStyle + subLabelFontFamily - Title + Sublabel + + font-family-sans + + 'Open Sans', sans-serif + + + + subLabelFontSize + + Sublabel + + font-scale-01 + + 0.75rem / 12px + + + + subLabelFontStyle + + Sublabel - font-normal + font-style-normal normal - assistiveTextFontFamily + subLabelFontWeight - Helper text + Sublabel - font-sans + font-weight-normal - 'Open Sans', sans-serif; + 400 - assistiveTextFontSize + titleLabelFontFamily - Helper text + Title - font-scale-03 + font-family-sans - 16px + 'Open Sans', sans-serif - assistiveTextFontWeight + titleLabelFontSize - Helper text + Title - font-light + font-scale-03 - 300 + 1rem / 16px - assistiveTextFontStyle + titleLabelFontStyle - Helper text + Title - font-regular + font-style-normal - italic + normal - assistiveTextLetterSpacing + titleLabelFontWeight - Helper text + Title - font-tracking-wide-01 + font-weight-regular - 0.025em + 400 @@ -345,6 +438,16 @@ const sections = [ + + + borderRadius + + Accordion container + + border-radius-medium + + 0.25rem / 4px + focusBorderStyle @@ -365,174 +468,10 @@ const sections = [ 2px - - - borderRadius - - Accordion container - - border-radius-medium - - 0.25rem / 4px - - - - ), - }, - { - title: "Size", - content: ( - - - - Property - Element - Core token - Value - - - - - - height - - Header - - - 48px - - - - min-width - - Accordion container - - - 280px - ), }, - { - title: "Spacing", - content: ( - <> - - - - Component token - Element - Core token - Value - - - - - - titleLabelPaddingRight - - Title - - spacing-16 - - 1rem / 16px - - - - titleLabelPaddingLeft - - Title - - spacing-0 - - 0rem / 0px - - - - titleLabelPaddingTop - - Title - - spacing-0 - - 0rem / 0px - - - - titleLabelPaddingBottom - - Title - - spacing-0 - - 0rem / 0px - - - - - - - Property - Element - Core token - Value - - - - - - padding-left - - Header - - spacing-16 - - 16px - - - - padding-right - - Header - - spacing-16 - - 16px - - - - padding-right - - Helper text - - spacing-24 - - 24px - - - - padding - - Caret icon - - spacing-12 - - 12px - - - - margin-right - - Custom icon - - spacing-12 - - 12px - - - - - ), - }, { title: "Margin", content: ( @@ -553,43 +492,43 @@ const sections = [ xxsmall - 6px + 4px xsmall - 16px + 8px small - 24px + 12px medium - 36px + 16px large - 48px + 24px xlarge - 64px + 32px xxlarge - 100px + 48px diff --git a/apps/website/screens/components/accordion/specs/images/accordion_anatomy.png b/apps/website/screens/components/accordion/specs/images/accordion_anatomy.png index a5ad739b0305e5dfac89fb86108dfa9488995895..5a5b021f6e8dcbbde335f4697e2a278df67165fd 100644 GIT binary patch literal 16943 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 N%NCakFFOAHe*vN8T4MkJ literal 33338 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 diff --git a/apps/website/screens/components/accordion/specs/images/accordion_specs.png b/apps/website/screens/components/accordion/specs/images/accordion_specs.png index 3ae74d805e90843b211b772e61303c472c60f7f7..ca2d0df21497cad78075272815326602a93e6bde 100644 GIT binary patch literal 17331 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 AjQ{`u diff --git a/apps/website/screens/components/accordion/usage/AccordionUsagePage.tsx b/apps/website/screens/components/accordion/usage/AccordionUsagePage.tsx index 8b656ddb81..a92acd5942 100644 --- a/apps/website/screens/components/accordion/usage/AccordionUsagePage.tsx +++ b/apps/website/screens/components/accordion/usage/AccordionUsagePage.tsx @@ -4,237 +4,381 @@ import QuickNavContainerLayout from "@/common/QuickNavContainerLayout"; import DocFooter from "@/common/DocFooter"; import Figure from "@/common/Figure"; import Image from "@/common/Image"; -import Example from "@/common/example/Example"; -import accordionPlacement from "./images/accordion_placement.png"; -import accordionAlignment from "./images/accordion_alignment.png"; -import accordionTriggers from "./images/accordion_triggers.png"; +import accordionMainParts from "./images/accordion_main_parts.png"; +import accordionElements from "./images/accordion_elements.png"; +import accordionExamples from "./images/accordion_examples.png"; import accordionContent from "./images/accordion_content.png"; -import accordionMultiExpand from "./images/accordion_multi_expand.png"; -import accordionGroup from "./examples/accordionGroup"; -import assistiveText from "./examples/assistiveText"; -import behaviorAndInteraction from "./examples/behaviorAndInteraction"; +import accordionPlacement from "./images/accordion_placement.png"; const sections = [ { title: "Usage", content: ( - The accordion component delivers large amounts of content in a small space through progressive disclosure. + The accordion component is designed to present large amounts of content in a small space by leveraging + progressive disclosure. It helps improve the user experience by breaking down information into manageable + sections, allowing users to focus only on what they need. ), subSections: [ { - title: "Do's", - content: ( - - Displaying and grouping additional information. - - To shorten pages and reduce scrolling when content is not crucial to read in full. - - Adding granular control over the information on a given page. - - ), - }, - { - title: "Don'ts", - content: ( - - - When most of the content on the page is needed to answer user questions. - - - To display a list of clickable options, dropdown should be used instead. - - - Displaying critical system information or a primary action to be taken on the page. (for example: alerts, - confirmation or cancellation buttons). - - - ), - }, - ], - }, - { - title: "Placement and alignment", - subSections: [ - { - title: "Placement", + title: "Main parts", content: ( <> - - Accordions can be placed with main page content or placed inside of a container such as a side panel or - tile. - -
- Accordion placement + Each accordion section consists of two main parts: +
+ Main parts
+ + + Header: Serves as the trigger for expanding or collapsing the section. It acts as a + summary of the content, allowing users to decide if they want to interact with it.{" "} + + + Content area: The expanded section where detailed information or functionality resides.{" "} + + ), + subSections: [ + { + title: "Header layout, primary and secondary elements", + content: ( + <> + + The accordion header is divided into two sections: left and right, each of which can contain different + UI elements. These elements are categorised as primary or secondary, based on their importance and + role within the accordion's functionality. + + Accordion elements + + ), + subSections: [ + { + title: "Primary Elements", + content: ( + <> + + The primary elements are mandatory and provide the basic functionality of the + accordion. These ensure the component is functional and intuitive for users: + + + + Title: A concise and descriptive label that summarises the content of the + accordion section. It helps users understand what type of information they can expect to find + inside. + + + Chevron Icon: A visual indicator of the accordion’s current state (expanded or + collapsed). It provides an affordance for interaction and ensures users can toggle the accordion + intuitively. + + + + Without these elements, the accordion cannot effectively communicate its purpose or provide a + clear interaction model. + + + ), + }, + { + title: "Secondary Elements", + content: ( + <> + + The secondary elements are optional and provide additional context or enhance the + user experience. While not essential for the accordion's functionality, they add useful details or + visual hierarchy. + + + + Left secondary elements: + + + Icon: Adds visual context or aids recognition by representing the content + type or purpose of the section. + + + Badge: Displays supplemental information, such as a notification count or + status, to give users a quick overview of the section. + + + + + Right secondary elements: + + + Helper text: Provides additional context, such as brief instructions or a + summary of the content within the section. + + + Status light: Displays a visual indicator of the section’s status (e.g., + completed, in progress, or error). + + + Badge: Similar to the left-side badge, but placed on the right for better + alignment in specific layouts. + + + + +
+ Accordion examples +
+ + ), + }, + ], + }, + { + title: "Content area", + content: ( + <> + + The content area can contain other components, images, tables, and every custom feature that can be + supported inside the element container. + + Accordion content + + Left. Nesting is allowed. + + + Right. Icons can be used as a complement to the header label. + + + ), + }, + ], }, { - title: "Alignment", + title: "Placement and alignment", + subSections: [ + { + title: "Placement", + content: ( + <> + + Accordions can be placed with main page content or placed inside of a container such as a side panel + or tile. + +
+ Accordion placement +
+ + ), + }, + { + title: "Alignment", + content: ( + + By default the chevron icon is placed on the end side of the header. This allows for the title on the + start side to align with other type elements in the layout. + + ), + }, + ], + }, + { + title: "Behavior and interaction", content: ( <> - By default the chevron icon is placed on the end side of the header. This allows for the title on the - start side to align with other type elements in the layout. + The accordion component has two main states: collapsed and expanded. The chevron icon at the end of the + accordion indicates which state the accordion is in. Accordions begin by default in the collapsed state + with all content panels closed. Starting in a collapsed state gives the user a high level overview of the + available information. -
- - Left. Place chevron icon at the end of the accordion header. - - - Right. Don’t place caret icon on the left. - - - } - > - Accordion alignment -
- - ), - }, - ], - }, - { - title: "Behavior and interaction", - content: ( - <> - - - The accordion component has two main states: collapsed and expanded. The chevron icon at the end of the - accordion indicates which state the accordion is in. Accordions begin by default in the collapsed state with - all content panels closed. Starting in a collapsed state gives the user a high level overview of the available - information. - - - - Trigger collapsed and expanded states when clicking on either the header or icon. - - - Use icons and animation to easily reflect collapsed and expanded states. - - - Use a chevron icon to indicate the expand/collapse behavior. - + - When the panel expands, the chevron icon rotates 180 degrees counterclockwise. + Trigger collapsed and expanded states when clicking on either the header or icon. - When the panel collapses, the chevron icon rotates 180 degrees clockwise. + Use icons and animation to easily reflect collapsed and expanded states. + + + Use a chevron icon to indicate the expand/collapse behavior. + + + + When the panel expands, the chevron icon rotates 180 degrees counterclockwise. + + + When the panel collapses, the chevron icon rotates 180 degrees clockwise. + + + - - -
- - Left. Trigger collapsed and expanded states when clicking on either the header or icon. - + + ), + subSections: [ + { + title: "Allowing multiple sections open vs single-open behavior", + content: ( - Right. Leave the header without caret or use a button to trigger the expand/collapse - action. + The accordion component can be configured to allow either multiple sections to be open + simultaneously or limit the user to a single-open section at a time. Each approach has + specific use cases, but it’s important to prioritise user needs and content hierarchy when deciding + which behavior to implement. - - } - > - Accordion trigger usage -
- - ), - subSections: [ + ), + subSections: [ + { + title: "Allow Multiple Sections Open", + content: ( + <> + + This approach gives users full control over the visibility of content, allowing them to open or + collapse multiple sections at the same time. It’s particularly useful when: + + + + Users need to compare or reference information across different sections simultaneously. + + + The content in each section is independent and doesn’t require strict linear navigation. + + + There is enough vertical space to accommodate multiple expanded sections without overwhelming + the layout. + + + + ), + }, + { + title: "Single-Open Behavior", + content: ( + <> + + Some implementations restrict the accordion to allow only one section to be open + at a time. When a user expands a new section, the previously expanded section collapses + automatically. This pattern is suitable when: + + + + The content is closely related or mutually exclusive, making it logical to view only one section + at a time. + + + Vertical space is limited, and having multiple sections open could cause usability or layout + issues. + + + A simplified and more guided user experience is desired, such as in wizards or step-by-step + processes. + + + + ), + }, + ], + }, + ], + }, { - title: "Mobile", + title: "Best practices", content: ( <> - - In small devices, extremely long pages are detrimental to the user experience. Collapsing information - minimizes excessive scrolling and gives an overview of the structure and content available on the page. - - In mobile use 100% of the available screen width. + + One element per side: Each side of the header (left and{" "} + right) should only include one secondary element to maintain a clean + and organised visual hierarchy. + + + No duplicates: Avoid including multiple instances of the same type of element in the + header (e.g., two badges or two status lights), as this can create visual clutter and confuse users. + + + Semantic colors: If both a badge and a status light{" "} + are included, avoid using semantic colors (e.g., red, green) for the badge to prevent it from competing + visually with the status light. + + + Growth priority: Mandatory and descriptive elements, such as the title, are prioritised + over optional elements to ensure that essential information is always visible and accessible. + ), + subSections: [ + { + title: "Mobile", + content: ( + <> + + In small devices, extremely long pages are detrimental to the user experience. Collapsing information + minimises excessive scrolling and gives an overview of the structure and content available on the + page. + + + In mobile use 100% of the available screen width. + + + ), + }, + { + title: "Do's", + content: ( + <> + Use an accordion when: + + + Displaying and grouping additional information that is related or supplemental to + the primary content. + + + Shortening pages and reducing scrolling, especially for optional or non-critical + content. + + + Providing users with granular control over the visibility of information, helping + them interact with the page in a way that meets their specific needs. + + + Organising FAQs or similar repeated structures, where content can be logically + divided into expandable sections. + + + Enhancing content hierarchy by nesting detailed or secondary content under a more + general overview. + + + + ), + }, + { + title: "Don'ts", + content: ( + <> + Don’t use an accordion if: + + + The majority of the content on the page is crucial for the user to see upfront, as + hiding it may increase friction or confusion. + + + You need to display a list of selectable options (e.g., navigation menus or + filters)—a dropdown or other list pattern is more appropriate. + + + Critical system information or actions (like alerts, confirmations, or primary + buttons) need to be visible—these should remain prominent and accessible without requiring user + interaction. + + + The interaction of expanding and collapsing creates{" "} + unnecessary complexity or extra clicks for the user. + + + + ), + }, + ], }, ], }, - { - title: "Accordion group", - content: ( - <> - - Accordion headers are stacked vertically and different hierarchy levels are allowed. - - - - - The expandable section of an accordion group can contain different types of plain information or clickable - components. - - - -
- Accordion group placement -
-
- - When one accordion panel is expanded, the rest of the group should be collapsed. - - - ), - }, - { - title: "Content", - content: ( - <> - - The accordion component can contain other components, images, tables, and every custom feature that can be - supported inside the element container. - -
- - Left. Nesting is allowed. Use in parent accordion Open Sans Semibold. - - - Right. Icons can be used as a complement to the header label. - - - } - > - Nesting and icon usage examples -
- - ), - }, - { - title: "Assistive text", - content: ( - <> - Assistive text can be shown at the end of the accordion header when needed. - - Icons and images can not be used. - - Only add a assistive text when there is plenty space in the accordion header, in mobile devices is not - displayed. - - - Try always to use a descriptive header so is no necessity to add extra information. - - - Assistive text content will be truncated 48px before reaching the accordion title. Title display has - priority when space is limited. - - - - - ), - }, ]; const AccordionUsagePage = () => { diff --git a/apps/website/screens/components/accordion/usage/examples/accordionGroup.ts b/apps/website/screens/components/accordion/usage/examples/accordionGroup.ts deleted file mode 100644 index c30dfb35b5..0000000000 --- a/apps/website/screens/components/accordion/usage/examples/accordionGroup.ts +++ /dev/null @@ -1,62 +0,0 @@ -import { DxcAccordionGroup, DxcInset, DxcFlex, DxcHeading } from "@dxc-technology/halstack-react"; -import { useState } from "react"; - -const code = `() => { - const [indexAccordion, setIndexAccordion] = useState(0); - const onActiveChange = (index) => { - setIndexAccordion((currentIndex) => (currentIndex === index ? -1 : index)); - }; - - return ( - - - - - - - - Lorem ipsum dolor sit amet, consectetur adipiscing elit. - Suspendisse malesuada lacus ex, sit amet blandit leo lobortis - eget. - - - - - - - Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse - malesuada lacus ex, sit amet blandit leo lobortis eget. - - - - - Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse - malesuada lacus ex, sit amet blandit leo lobortis eget. - - - - - ); -}`; - -const scope = { - DxcAccordionGroup, - DxcInset, - DxcFlex, - DxcHeading, - useState, -}; - -export default { code, scope }; diff --git a/apps/website/screens/components/accordion/usage/examples/assistiveText.ts b/apps/website/screens/components/accordion/usage/examples/assistiveText.ts deleted file mode 100644 index 66a2506c1b..0000000000 --- a/apps/website/screens/components/accordion/usage/examples/assistiveText.ts +++ /dev/null @@ -1,33 +0,0 @@ -import { DxcAccordion, DxcInset } from "@dxc-technology/halstack-react"; -import { useState } from "react"; - -const code = `() => { - const [isExpanded, changeIsExpanded] = useState(false); - const onChange = (newValue) => { - changeIsExpanded(newValue); - }; - - return ( - - - - Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse - malesuada lacus ex, sit amet blandit leo lobortis eget. - - - - ); -}`; - -const scope = { - DxcAccordion, - DxcInset, - useState, -}; - -export default { code, scope }; diff --git a/apps/website/screens/components/accordion/usage/examples/behaviorAndInteraction.ts b/apps/website/screens/components/accordion/usage/examples/behaviorAndInteraction.ts deleted file mode 100644 index c83d703c04..0000000000 --- a/apps/website/screens/components/accordion/usage/examples/behaviorAndInteraction.ts +++ /dev/null @@ -1,56 +0,0 @@ -import { DxcAccordion, DxcInset, DxcFlex, DxcHeading } from "@dxc-technology/halstack-react"; -import { useState } from "react"; - -const code = `() => { - const [isExpandedCollapsed, changeIsExpandedCollapsed] = useState(false); - const onChangeCollapsed = (newValue) => { - changeIsExpandedCollapsed(newValue); - }; - const [isExpanded, changeIsExpanded] = useState(true); - const onChangeExpanded = (newValue) => { - changeIsExpanded(newValue); - }; - - return ( - - - - - Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse - malesuada lacus ex, sit amet blandit leo lobortis eget. - - - - - - - - Lorem ipsum dolor sit amet, consectetur adipiscing elit. - Suspendisse malesuada lacus ex, sit amet blandit leo lobortis - eget. - - - - - - - ); -}`; - -const scope = { - DxcAccordion, - DxcInset, - DxcFlex, - DxcHeading, - useState, -}; - -export default { code, scope }; diff --git a/apps/website/screens/components/accordion/usage/images/accordion_alignment.png b/apps/website/screens/components/accordion/usage/images/accordion_alignment.png deleted file mode 100644 index 27c0faee5b91e7ef7c73e3f919acad34551f03a1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 54708 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 diff --git a/apps/website/screens/components/accordion/usage/images/accordion_content.png b/apps/website/screens/components/accordion/usage/images/accordion_content.png index f4c7a14619e6429c3893041f8010b609a2a6e297..36737f1cc09745b9ff061ab326eb27ec91387963 100644 GIT binary patch literal 16168 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 I>=2ajZ{5&S1^@s6 diff --git a/apps/website/screens/components/accordion/usage/images/accordion_elements.png b/apps/website/screens/components/accordion/usage/images/accordion_elements.png new file mode 100644 index 0000000000000000000000000000000000000000..6b9aed2c0c5be2507c88f9f4e36beea3c736c5fe GIT binary patch literal 9338 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 literal 0 HcmV?d00001 diff --git a/apps/website/screens/components/accordion/usage/images/accordion_examples.png b/apps/website/screens/components/accordion/usage/images/accordion_examples.png new file mode 100644 index 0000000000000000000000000000000000000000..d4c3afd9e250c3eda8a67ae1de4eb663f51145e5 GIT binary patch literal 47814 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 literal 0 HcmV?d00001 diff --git a/apps/website/screens/components/accordion/usage/images/accordion_multi_expand.png b/apps/website/screens/components/accordion/usage/images/accordion_multi_expand.png deleted file mode 100644 index 58d3ce9468d2cae5277e71a353bc294e4f8e3372..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 27018 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 diff --git a/apps/website/screens/components/accordion/usage/images/accordion_placement.png b/apps/website/screens/components/accordion/usage/images/accordion_placement.png index a117e80c478987ca216d433e95cf885c10c20274..d55759d6ecadf8f44d2966881737144b573ff4c5 100644 GIT binary patch literal 10501 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 literal 19758 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�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 + + Sublabel font color + +
+ subLabelFontColor + + Assistive text font color diff --git a/apps/website/screens/principles/themes/examples/opinionatedTheme.ts b/apps/website/screens/principles/themes/examples/opinionatedTheme.ts index 3684627ead..42b0147307 100644 --- a/apps/website/screens/principles/themes/examples/opinionatedTheme.ts +++ b/apps/website/screens/principles/themes/examples/opinionatedTheme.ts @@ -2,10 +2,12 @@ import { HalstackProvider, DxcTextInput, DxcInset, DxcAccordion } from "@dxc-tec const code = `() => { const customTheme = { - accordion: { - accentColor: "#1b75bb", - fontColor: "#666666", - }, + "accordion": { + "accentColor": "#fabada", + "titleFontColor": "#333333", + "subLabelFontColor": "#666666", + "assistiveTextFontColor": "#999999" + }, textInput: { fontColor: "#f80808", }, @@ -14,10 +16,12 @@ const code = `() => { return ( - - - - + + + + + + diff --git a/apps/website/screens/theme-generator/components/previews/Accordion.tsx b/apps/website/screens/theme-generator/components/previews/Accordion.tsx index d66d254050..77d1dc2665 100644 --- a/apps/website/screens/theme-generator/components/previews/Accordion.tsx +++ b/apps/website/screens/theme-generator/components/previews/Accordion.tsx @@ -1,7 +1,6 @@ import { useState } from "react"; -import { DxcAccordion, DxcAccordionGroup, DxcInset } from "@dxc-technology/halstack-react"; +import { DxcAccordion, DxcBadge, DxcInset, DxcStatusLight } from "@dxc-technology/halstack-react"; import Mode from "../Mode"; -import facebookIcon from "../../images/FacebookIcon"; import PreviewContainer from "./PreviewContainer"; const Accordion = () => { @@ -14,44 +13,110 @@ const Accordion = () => { return ( - - - Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse malesuada lacus ex, sit amet blandit - leo lobortis eget. - + + + To edit your profile you need to go to Settings and click on Profile. + - - - Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse malesuada lacus ex, sit amet blandit - leo lobortis eget. - + + + To edit your profile you need to go to Settings and click on Profile. + - - - - Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse malesuada lacus ex, sit amet blandit - leo lobortis eget. - + + + }} + statusLight={} + > + To edit your profile you need to go to Settings and click on Profile. + - - - - + + + + + + Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse malesuada lacus ex, sit amet + blandit leo lobortis eget. + + + + }} + statusLight={} + > + Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse malesuada lacus ex, sit amet blandit leo lobortis eget. - - - + + + + + + }} + statusLight={} + > + + Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse malesuada lacus ex, sit amet blandit + leo lobortis eget. + + + }} + > + + Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse malesuada lacus ex, sit amet blandit + leo lobortis eget. + + + }} + statusLight={} + > + + Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse malesuada lacus ex, sit amet blandit + leo lobortis eget. + + + }} + > + Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse malesuada lacus ex, sit amet blandit leo lobortis eget. - - + + ); diff --git a/apps/website/screens/theme-generator/themes/schemas/advanced.schema.json b/apps/website/screens/theme-generator/themes/schemas/advanced.schema.json index 58b7ee07bb..41ea7ffcae 100644 --- a/apps/website/screens/theme-generator/themes/schemas/advanced.schema.json +++ b/apps/website/screens/theme-generator/themes/schemas/advanced.schema.json @@ -1,46 +1,44 @@ { "accordion": { "backgroundColor": "color", + "hoverBackgroundColor": "color", + "focusBackgroundColor": "color", + "activeBackgroundColor": "color", "arrowColor": "color", "disabledArrowColor": "color", - "hoverBackgroundColor": "color", + "subLabelFontFamily": "fFamily", + "subLabelFontSize": "length", + "subLabelFontWeight": "fWeight", + "subLabelFontStyle": "fStyle", + "subLabelFontColor": "color", + "disabledSubLabelFontColor": "color", "assistiveTextFontFamily": "fFamily", "assistiveTextFontSize": "length", "assistiveTextFontWeight": "fWeight", "assistiveTextFontStyle": "fStyle", "assistiveTextFontColor": "color", - "assistiveTextLetterSpacing": "length", - "assistiveTextMinWidth": "length", - "assistiveTextPaddingLeft": "length", - "assistiveTextPaddingRight": "length", "disabledAssistiveTextFontColor": "color", "titleLabelFontFamily": "fFamily", "titleLabelFontSize": "length", "titleLabelFontWeight": "fWeight", "titleLabelFontStyle": "fStyle", "titleLabelFontColor": "color", - "titleLabelPaddingLeft": "length", - "titleLabelPaddingRight": "length", - "titleLabelPaddingTop": "length", - "titleLabelPaddingBottom": "length", "disabledTitleLabelFontColor": "color", + "focusBorderColor": "color", "focusBorderStyle": "bStyle", "focusBorderThickness": "bWidth", - "focusBorderColor": "color", "borderRadius": "length", "boxShadowOffsetX": "length", "boxShadowOffsetY": "length", "boxShadowBlur": "length", + "boxShadowSpread": "length", "boxShadowColor": "color", "iconColor": "color", - "iconSize": "length", - "iconMarginLeft": "length", - "iconMarginRight": "length", "disabledIconColor": "color", - "accordionGroupSeparatorBorderColor": "color", - "accordionGroupSeparatorBorderThickness": "bWidth", - "accordionGroupSeparatorBorderRadius": "length", - "accordionGroupSeparatorBorderStyle": "fStyle" + "iconSize": "length", + "accordionSeparatorBorderColor": "color", + "accordionSeparatorBorderThickness": "bWidth", + "accordionSeparatorBorderStyle": "bStyle" }, "alert": { "overlayColor": "color", @@ -74,7 +72,7 @@ "titleFontSize": "length", "modalTitleFontSize": "length", "titleFontStyle": "fStyle", - "titleFontWeight": "bold", + "titleFontWeight": "fWeight", "titlePaddingRight": "length", "messageFontFamily": "fFamily", "messageFontColor": "color", diff --git a/apps/website/screens/theme-generator/themes/schemas/opinionated.schema.json b/apps/website/screens/theme-generator/themes/schemas/opinionated.schema.json index f61d8dd52f..cb7bcd9f89 100644 --- a/apps/website/screens/theme-generator/themes/schemas/opinionated.schema.json +++ b/apps/website/screens/theme-generator/themes/schemas/opinionated.schema.json @@ -2,6 +2,7 @@ "accordion": { "accentColor": "color", "titleFontColor": "color", + "subLabelFontColor": "color", "assistiveTextFontColor": "color" }, "button": { diff --git a/apps/website/screens/utilities/halstack-provider/examples/advancedTheme.ts b/apps/website/screens/utilities/halstack-provider/examples/advancedTheme.ts index 26a92886d5..49a7702ba3 100644 --- a/apps/website/screens/utilities/halstack-provider/examples/advancedTheme.ts +++ b/apps/website/screens/utilities/halstack-provider/examples/advancedTheme.ts @@ -3,24 +3,24 @@ import { HalstackProvider, DxcTextInput, DxcInset, DxcAccordion } from "@dxc-tec const code = `() => { const advancedTheme = { accordion: { - backgroundColor: "#4a90e2", - hoverBackgroundColor: "#b8e986", + backgroundColor: "#e8dee3", + hoverBackgroundColor: "#e4c7d6", arrowColor: "#ffffff", disabledArrowColor: "#999999", - assistiveTextFontSize: "1.5rem", - assistiveTextFontWeight: "400", - assistiveTextLetterSpacing: "-0.0125em", - assistiveTextFontColor: "#f6fa06", + assistiveTextFontSize: "1rem", + assistiveTextFontColor: "#40182d", }, }; return ( - - - - + + + + + + diff --git a/apps/website/screens/utilities/halstack-provider/examples/opinionatedTheme.ts b/apps/website/screens/utilities/halstack-provider/examples/opinionatedTheme.ts index ada18e1fb4..b7ecfba184 100644 --- a/apps/website/screens/utilities/halstack-provider/examples/opinionatedTheme.ts +++ b/apps/website/screens/utilities/halstack-provider/examples/opinionatedTheme.ts @@ -2,22 +2,26 @@ import { HalstackProvider, DxcTextInput, DxcInset, DxcAccordion } from "@dxc-tec const code = `() => { const customTheme = { - accordion: { - accentColor: "#1b75bb", - fontColor: "#666666", + "accordion": { + "accentColor": "#8e1e1e", + "titleFontColor": "#8e1e1e", + "subLabelFontColor": "#cd848d", + "assistiveTextFontColor": "#cd848d" }, textInput: { - fontColor: "#f80808", + fontColor: "#8e1e1e", }, }; return ( - - - - + + + + + + diff --git a/packages/lib/src/HalstackContext.tsx b/packages/lib/src/HalstackContext.tsx index 500f2e7a86..a0995fc35f 100644 --- a/packages/lib/src/HalstackContext.tsx +++ b/packages/lib/src/HalstackContext.tsx @@ -53,6 +53,7 @@ const parseTheme = (theme: DeepPartial): AdvancedTheme => { const accordionTokens = componentTokensCopy.accordion; accordionTokens.assistiveTextFontColor = theme.accordion?.assistiveTextFontColor ?? accordionTokens.assistiveTextFontColor; + accordionTokens.subLabelFontColor = theme.accordion?.subLabelFontColor ?? accordionTokens.subLabelFontColor; accordionTokens.titleLabelFontColor = theme.accordion?.titleFontColor ?? accordionTokens.titleLabelFontColor; accordionTokens.arrowColor = theme.accordion?.accentColor ?? accordionTokens.arrowColor; accordionTokens.iconColor = theme.accordion?.accentColor ?? accordionTokens.iconColor; @@ -142,8 +143,7 @@ const parseTheme = (theme: DeepPartial): AdvancedTheme => { dateTokens.pickerCurrentYearFontColor = theme.dateInput?.baseColor ?? dateTokens.pickerCurrentYearFontColor; dateTokens.pickerHeaderActiveBackgroundColor = subLightness(8, theme.dateInput?.baseColor) ?? dateTokens.pickerHeaderActiveBackgroundColor; - dateTokens.pickerHeaderActiveFontColor = - theme.dateInput?.selectedFontColor ?? dateTokens.pickerHeaderActiveFontColor; + dateTokens.pickerHeaderActiveFontColor = theme.dateInput?.selectedFontColor ?? dateTokens.pickerHeaderActiveFontColor; dateTokens.pickerHoverBackgroundColor = addLightness(52, theme.dateInput?.baseColor) ?? dateTokens.pickerHoverBackgroundColor; dateTokens.pickerCurrentDateBorderColor = @@ -192,8 +192,7 @@ const parseTheme = (theme: DeepPartial): AdvancedTheme => { headerTokens.menuBackgroundColor = theme.header?.menuBaseColor ?? headerTokens.menuBackgroundColor; headerTokens.hamburgerFontColor = theme.header?.fontColor ?? headerTokens.hamburgerFontColor; headerTokens.hamburgerIconColor = theme.header?.hamburgerColor ?? headerTokens.hamburgerIconColor; - headerTokens.hamburgerHoverColor = - addLightness(90, theme.header?.hamburgerColor) ?? headerTokens.hamburgerHoverColor; + headerTokens.hamburgerHoverColor = addLightness(90, theme.header?.hamburgerColor) ?? headerTokens.hamburgerHoverColor; headerTokens.logo = theme.header?.logo ?? headerTokens.logo; headerTokens.logoResponsive = theme.header?.logoResponsive ?? headerTokens.logoResponsive; headerTokens.contentColor = theme.header?.contentColor ?? headerTokens.contentColor; @@ -209,8 +208,7 @@ const parseTheme = (theme: DeepPartial): AdvancedTheme => { navTabsTokens.selectedIconColor = theme.navTabs?.baseColor ?? navTabsTokens.selectedIconColor; navTabsTokens.unselectedIconColor = theme.navTabs?.baseColor ?? navTabsTokens.selectedIconColor; navTabsTokens.selectedUnderlineColor = theme.navTabs?.accentColor ?? navTabsTokens.selectedUnderlineColor; - navTabsTokens.hoverBackgroundColor = - addLightness(55, theme.navTabs?.baseColor) ?? navTabsTokens.hoverBackgroundColor; + navTabsTokens.hoverBackgroundColor = addLightness(55, theme.navTabs?.baseColor) ?? navTabsTokens.hoverBackgroundColor; navTabsTokens.pressedBackgroundColor = addLightness(50, theme.navTabs?.baseColor) ?? navTabsTokens.pressedBackgroundColor; @@ -253,8 +251,7 @@ const parseTheme = (theme: DeepPartial): AdvancedTheme => { selectTokens.collapseIndicatorColor = theme.select?.fontColor ?? selectTokens.collapseIndicatorColor; selectTokens.hoverInputBorderColor = theme.select?.hoverBorderColor ?? selectTokens.hoverInputBorderColor; selectTokens.selectedHoverListOptionBackgroundColor = - subLightness(5, theme.select?.selectedOptionBackgroundColor) ?? - selectTokens.selectedHoverListOptionBackgroundColor; + subLightness(5, theme.select?.selectedOptionBackgroundColor) ?? selectTokens.selectedHoverListOptionBackgroundColor; selectTokens.selectedActiveListOptionBackgroundColor = subLightness(15, theme.select?.selectedOptionBackgroundColor) ?? selectTokens.selectedActiveListOptionBackgroundColor; @@ -287,8 +284,7 @@ const parseTheme = (theme: DeepPartial): AdvancedTheme => { theme.spinner?.overlayFontColor ?? spinnerTokens.overlayProgressValueFontColor; const switchTokens = componentTokensCopy.switch; - switchTokens.checkedTrackBackgroundColor = - theme.switch?.checkedBaseColor ?? switchTokens.checkedTrackBackgroundColor; + switchTokens.checkedTrackBackgroundColor = theme.switch?.checkedBaseColor ?? switchTokens.checkedTrackBackgroundColor; switchTokens.labelFontColor = theme.switch?.fontColor ?? switchTokens.labelFontColor; switchTokens.disabledCheckedTrackBackgroundColor = addLightness(57, theme.switch?.checkedBaseColor) ?? switchTokens.disabledCheckedTrackBackgroundColor; diff --git a/packages/lib/src/accordion-group/AccordionGroup.accessibility.test.tsx b/packages/lib/src/accordion-group/AccordionGroup.accessibility.test.tsx deleted file mode 100644 index bcdac48db7..0000000000 --- a/packages/lib/src/accordion-group/AccordionGroup.accessibility.test.tsx +++ /dev/null @@ -1,52 +0,0 @@ -import { render } from "@testing-library/react"; -import DxcAccordionGroup from "./AccordionGroup"; -import { axe } from "../../test/accessibility/axe-helper"; - -const folderIcon = ( - - - - - - - - -); - -describe("Accordion component accessibility tests", () => { - it("Should not have basic accessibility issues", async () => { - const { container } = render( - - -
First accordion
-
- -
Second accordion
-
-
- ); - const results = await axe(container); - expect(results).toHaveNoViolations(); - }); - it("Should not have basic accessibility issues for disabled mode", async () => { - const { container } = render( - - -
First accordion
-
- -
Second accordion
-
-
- ); - const results = await axe(container); - expect(results).toHaveNoViolations(); - }); -}); diff --git a/packages/lib/src/accordion-group/AccordionGroup.stories.tsx b/packages/lib/src/accordion-group/AccordionGroup.stories.tsx deleted file mode 100644 index e6206b0d58..0000000000 --- a/packages/lib/src/accordion-group/AccordionGroup.stories.tsx +++ /dev/null @@ -1,258 +0,0 @@ -import DxcAccordionGroup from "./AccordionGroup"; -import DxcInset from "../inset/Inset"; -import Title from "../../.storybook/components/Title"; -import ExampleContainer from "../../.storybook/components/ExampleContainer"; -import { Meta, StoryObj } from "@storybook/react"; - -export default { - title: "Accordion Group", - component: DxcAccordionGroup, -} as Meta; - -const AccordionGroup = () => ( - <> - - <ExampleContainer> - <Title title="Default" theme="light" level={4} /> - <DxcAccordionGroup> - <DxcAccordionGroup.Accordion label="Accordion1" assistiveText="Assistive text"> - <DxcInset space="2rem"> - Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse malesuada lacus ex, sit amet blandit - leo lobortis eget. - </DxcInset> - </DxcAccordionGroup.Accordion> - <DxcAccordionGroup.Accordion label="Accordion2" assistiveText="Assistive text"> - <DxcInset space="2rem"> - Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse malesuada lacus ex, sit amet blandit - leo lobortis eget. - </DxcInset> - </DxcAccordionGroup.Accordion> - <DxcAccordionGroup.Accordion label="Accordion3" assistiveText="Assistive text"> - <DxcInset space="2rem"> - Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse malesuada lacus ex, sit amet blandit - leo lobortis eget. - </DxcInset> - </DxcAccordionGroup.Accordion> - </DxcAccordionGroup> - </ExampleContainer> - <ExampleContainer> - <Title title="Expanded" theme="light" level={4} /> - <DxcAccordionGroup defaultIndexActive={1}> - <DxcAccordionGroup.Accordion label="Accordion4"> - <DxcInset space="2rem"> - Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et - dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex - ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat - nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit - anim id est laborum. - </DxcInset> - </DxcAccordionGroup.Accordion> - <DxcAccordionGroup.Accordion label="Accordion5"> - <DxcInset space="2rem"> - Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse malesuada lacus ex, sit amet blandit - leo lobortis eget. - </DxcInset> - </DxcAccordionGroup.Accordion> - <DxcAccordionGroup.Accordion label="Accordion6"> - <DxcInset space="2rem"> - Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse malesuada lacus ex, sit amet blandit - leo lobortis eget. - </DxcInset> - </DxcAccordionGroup.Accordion> - </DxcAccordionGroup> - </ExampleContainer> - <ExampleContainer> - <Title title="Disabled" theme="light" level={4} /> - <DxcAccordionGroup disabled> - <DxcAccordionGroup.Accordion label="Accordion7"> - <DxcInset space="2rem"> - Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et - dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex - ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat - nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit - anim id est laborum. - </DxcInset> - </DxcAccordionGroup.Accordion> - <DxcAccordionGroup.Accordion label="Accordion8"> - <DxcInset space="2rem"> - Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse malesuada lacus ex, sit amet blandit - leo lobortis eget. - </DxcInset> - </DxcAccordionGroup.Accordion> - </DxcAccordionGroup> - </ExampleContainer> - <ExampleContainer pseudoState="pseudo-focus"> - <Title title="Focused" theme="light" level={4} /> - <DxcAccordionGroup defaultIndexActive={2}> - <DxcAccordionGroup.Accordion label="Accordion9"> - <DxcInset space="2rem"> - Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et - dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex - ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat - nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit - anim id est laborum. - </DxcInset> - </DxcAccordionGroup.Accordion> - <DxcAccordionGroup.Accordion label="Accordion10"> - <DxcInset space="2rem"> - Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse malesuada lacus ex, sit amet blandit - leo lobortis eget. - </DxcInset> - </DxcAccordionGroup.Accordion> - <DxcAccordionGroup.Accordion label="Accordion11"> - <DxcInset space="2rem"> - Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse malesuada lacus ex, sit amet blandit - leo lobortis eget. - </DxcInset> - </DxcAccordionGroup.Accordion> - </DxcAccordionGroup> - </ExampleContainer> - <Title title="Margins" theme="light" level={2} /> - <ExampleContainer> - <Title title="Xxsmall" theme="light" level={4} /> - <DxcAccordionGroup margin="xxsmall"> - <DxcAccordionGroup.Accordion label="Accordion12"> - <DxcInset space="2rem"> - Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et - dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex - ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat - nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit - anim id est laborum. - </DxcInset> - </DxcAccordionGroup.Accordion> - <DxcAccordionGroup.Accordion label="Accordion13"> - <DxcInset space="2rem"> - Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse malesuada lacus ex, sit amet blandit - leo lobortis eget. - </DxcInset> - </DxcAccordionGroup.Accordion> - </DxcAccordionGroup> - </ExampleContainer> - <ExampleContainer> - <Title title="Xsmall" theme="light" level={4} /> - <DxcAccordionGroup margin="xsmall"> - <DxcAccordionGroup.Accordion label="Accordion14"> - <DxcInset space="2rem"> - Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et - dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex - ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat - nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit - anim id est laborum. - </DxcInset> - </DxcAccordionGroup.Accordion> - <DxcAccordionGroup.Accordion label="Accordion15"> - <DxcInset space="2rem"> - Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse malesuada lacus ex, sit amet blandit - leo lobortis eget. - </DxcInset> - </DxcAccordionGroup.Accordion> - </DxcAccordionGroup> - </ExampleContainer> - <ExampleContainer> - <Title title="Small" theme="light" level={4} /> - <DxcAccordionGroup margin="small"> - <DxcAccordionGroup.Accordion label="Accordion16"> - <DxcInset space="2rem"> - Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et - dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex - ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat - nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit - anim id est laborum. - </DxcInset> - </DxcAccordionGroup.Accordion> - <DxcAccordionGroup.Accordion label="Accordion17"> - <DxcInset space="2rem"> - Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse malesuada lacus ex, sit amet blandit - leo lobortis eget. - </DxcInset> - </DxcAccordionGroup.Accordion> - </DxcAccordionGroup> - </ExampleContainer> - <ExampleContainer> - <Title title="Medium" theme="light" level={4} /> - <DxcAccordionGroup margin="medium"> - <DxcAccordionGroup.Accordion label="Accordion18"> - <DxcInset space="2rem"> - Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et - dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex - ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat - nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit - anim id est laborum. - </DxcInset> - </DxcAccordionGroup.Accordion> - <DxcAccordionGroup.Accordion label="Accordion19"> - <DxcInset space="2rem"> - Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse malesuada lacus ex, sit amet blandit - leo lobortis eget. - </DxcInset> - </DxcAccordionGroup.Accordion> - </DxcAccordionGroup> - </ExampleContainer> - <ExampleContainer> - <Title title="Large" theme="light" level={4} /> - <DxcAccordionGroup margin="large"> - <DxcAccordionGroup.Accordion label="Accordion20"> - <DxcInset space="2rem"> - Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et - dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex - ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat - nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit - anim id est laborum. - </DxcInset> - </DxcAccordionGroup.Accordion> - <DxcAccordionGroup.Accordion label="Accordion21"> - <DxcInset space="2rem"> - Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse malesuada lacus ex, sit amet blandit - leo lobortis eget. - </DxcInset> - </DxcAccordionGroup.Accordion> - </DxcAccordionGroup> - </ExampleContainer> - <ExampleContainer> - <Title title="Xlarge" theme="light" level={4} /> - <DxcAccordionGroup margin="xlarge"> - <DxcAccordionGroup.Accordion label="Accordion22"> - <DxcInset space="2rem"> - Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et - dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex - ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat - nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit - anim id est laborum. - </DxcInset> - </DxcAccordionGroup.Accordion> - <DxcAccordionGroup.Accordion label="Accordion23"> - <DxcInset space="2rem"> - Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse malesuada lacus ex, sit amet blandit - leo lobortis eget. - </DxcInset> - </DxcAccordionGroup.Accordion> - </DxcAccordionGroup> - </ExampleContainer> - <ExampleContainer> - <Title title="Xxlarge" theme="light" level={4} /> - <DxcAccordionGroup margin="xxlarge"> - <DxcAccordionGroup.Accordion label="Accordion24"> - <DxcInset space="2rem"> - Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et - dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex - ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat - nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit - anim id est laborum. - </DxcInset> - </DxcAccordionGroup.Accordion> - <DxcAccordionGroup.Accordion label="Accordion25"> - <DxcInset space="2rem"> - Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse malesuada lacus ex, sit amet blandit - leo lobortis eget. - </DxcInset> - </DxcAccordionGroup.Accordion> - </DxcAccordionGroup> - </ExampleContainer> - </> -); - -type Story = StoryObj<typeof DxcAccordionGroup>; - -export const Chromatic: Story = { - render: AccordionGroup, -}; diff --git a/packages/lib/src/accordion-group/AccordionGroup.test.tsx b/packages/lib/src/accordion-group/AccordionGroup.test.tsx deleted file mode 100644 index 6d4b87ecf3..0000000000 --- a/packages/lib/src/accordion-group/AccordionGroup.test.tsx +++ /dev/null @@ -1,95 +0,0 @@ -import { render, fireEvent } from "@testing-library/react"; -import DxcAccordionGroup from "./AccordionGroup"; - -describe("Accordion component tests", () => { - test("Uncontrolled accordion group calls correct function on click", () => { - const onActiveChange = jest.fn(); - const { getByText, getAllByRole } = render( - <DxcAccordionGroup margin="large" onActiveChange={onActiveChange}> - <DxcAccordionGroup.Accordion label="Accordion1"> - <div> - Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse malesuada lacus ex, sit amet blandit - leo lobortis eget. - </div> - </DxcAccordionGroup.Accordion> - <DxcAccordionGroup.Accordion label="Accordion2"> - <div> - Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse malesuada lacus ex, sit amet blandit - leo lobortis eget. - </div> - </DxcAccordionGroup.Accordion> - </DxcAccordionGroup> - ); - expect(getAllByRole("button")[0]?.getAttribute("aria-expanded")).toBe("false"); - expect(getAllByRole("button")[1]?.getAttribute("aria-expanded")).toBe("false"); - fireEvent.click(getByText("Accordion1")); - expect(onActiveChange).toHaveBeenCalled(); - expect(getAllByRole("button")[0]?.getAttribute("aria-expanded")).toBe("true"); - expect(getAllByRole("button")[1]?.getAttribute("aria-expanded")).toBe("false"); - }); - test("Uncontrolled accordion group renders initially with an accordion expanded using defaultIndexActive", () => { - const { queryByText, getByText, getAllByRole } = render( - <DxcAccordionGroup defaultIndexActive={1}> - <DxcAccordionGroup.Accordion label="Accordion1"> - <div>First accordion</div> - </DxcAccordionGroup.Accordion> - <DxcAccordionGroup.Accordion label="Accordion2"> - <div>Second accordion</div> - </DxcAccordionGroup.Accordion> - </DxcAccordionGroup> - ); - expect(getAllByRole("button")[0]?.getAttribute("aria-expanded")).toBe("false"); - expect(getAllByRole("button")[1]?.getAttribute("aria-expanded")).toBe("true"); - expect(getByText("Second accordion")).toBeTruthy(); - expect(queryByText("First accordion")).toBeFalsy(); - }); - test("Controlled accordion with indexActive change", () => { - const onActiveChange = jest.fn(); - const { queryByText, getByText, getAllByRole, rerender } = render( - <DxcAccordionGroup margin="large" indexActive={1} onActiveChange={onActiveChange}> - <DxcAccordionGroup.Accordion label="Accordion1"> - <div>Text1</div> - </DxcAccordionGroup.Accordion> - <DxcAccordionGroup.Accordion label="Accordion2"> - <div>Text2</div> - </DxcAccordionGroup.Accordion> - </DxcAccordionGroup> - ); - expect(queryByText("Text1")).toBeFalsy(); - expect(getByText("Text2")).toBeTruthy(); - fireEvent.click(getByText("Accordion1")); - fireEvent.click(getByText("Accordion2")); - expect(onActiveChange.mock.calls[0][0]).toBe(0); - expect(onActiveChange.mock.calls[1][0]).toBe(1); - expect(getAllByRole("button")[0]?.getAttribute("aria-expanded")).toBe("false"); - expect(getAllByRole("button")[1]?.getAttribute("aria-expanded")).toBe("true"); - rerender( - <DxcAccordionGroup margin="large" indexActive={0} onActiveChange={onActiveChange}> - <DxcAccordionGroup.Accordion label="Accordion1"> - <div>Text1</div> - </DxcAccordionGroup.Accordion> - <DxcAccordionGroup.Accordion label="Accordion2"> - <div>Text2</div> - </DxcAccordionGroup.Accordion> - </DxcAccordionGroup> - ); - expect(getAllByRole("button")[0]?.getAttribute("aria-expanded")).toBe("true"); - expect(getAllByRole("button")[1]?.getAttribute("aria-expanded")).toBe("false"); - }); - test("Disabled uncontrolled accordion group", () => { - const onActiveChange = jest.fn(); - const { getByText } = render( - <DxcAccordionGroup margin="large" onActiveChange={onActiveChange} disabled> - <DxcAccordionGroup.Accordion label="Accordion1"> - <div>Text1</div> - </DxcAccordionGroup.Accordion> - <DxcAccordionGroup.Accordion label="Accordion2"> - <div>Text2</div> - </DxcAccordionGroup.Accordion> - </DxcAccordionGroup> - ); - fireEvent.click(getByText("Accordion1")); - fireEvent.click(getByText("Accordion2")); - expect(onActiveChange).toHaveBeenCalledTimes(0); - }); -}); diff --git a/packages/lib/src/accordion-group/AccordionGroup.tsx b/packages/lib/src/accordion-group/AccordionGroup.tsx deleted file mode 100644 index 89c7def565..0000000000 --- a/packages/lib/src/accordion-group/AccordionGroup.tsx +++ /dev/null @@ -1,99 +0,0 @@ -import { Children, useCallback, useContext, useMemo, useState } from "react"; -import styled, { ThemeProvider } from "styled-components"; -import { getMargin } from "../common/utils"; -import { spaces } from "../common/variables"; -import AccordionGroupAccordion from "./AccordionGroupAccordion"; -import AccordionGroupPropsType from "./types"; -import AccordionGroupAccordionContext from "./AccordionGroupContext"; -import HalstackContext from "../HalstackContext"; - -const DxcAccordionGroup = ({ - defaultIndexActive, - indexActive, - disabled = false, - onActiveChange, - margin, - children, -}: AccordionGroupPropsType): JSX.Element => { - const [innerIndexActive, setInnerIndexActive] = useState(defaultIndexActive ?? -1); - const colorsTheme = useContext(HalstackContext); - - const handlerActiveChange = useCallback( - (index: number) => { - indexActive ?? setInnerIndexActive((prev) => (index === prev ? -1 : index)); - !disabled && onActiveChange?.(index); - }, - [disabled, indexActive, onActiveChange] - ); - const contextValue = useMemo( - () => ({ activeIndex: indexActive ?? innerIndexActive, handlerActiveChange, disabled }), - [indexActive, innerIndexActive, handlerActiveChange, disabled] - ); - - return ( - <ThemeProvider theme={colorsTheme.accordion}> - <AccordionGroupContainer margin={margin} disabled={disabled}> - {Children.map(children, (accordion, index) => ( - <AccordionGroupAccordionContext.Provider key={`accordion-${index}`} value={{ index, ...contextValue }}> - {accordion} - </AccordionGroupAccordionContext.Provider> - ))} - </AccordionGroupContainer> - </ThemeProvider> - ); -}; - -DxcAccordionGroup.Accordion = AccordionGroupAccordion; - -const calculateWidth = (margin: AccordionGroupPropsType["margin"]) => - `calc(100% - ${getMargin(margin, "left")} - ${getMargin(margin, "right")})`; - -const AccordionGroupContainer = styled.div<{ - margin: AccordionGroupPropsType["margin"]; - disabled: AccordionGroupPropsType["disabled"]; -}>` - width: ${(props) => calculateWidth(props.margin)}; - margin: ${({ margin }) => (margin && typeof margin !== "object" ? spaces[margin] : "0px")}; - margin-top: ${({ margin }) => (margin && typeof margin === "object" && margin.top ? spaces[margin.top] : "")}; - margin-right: ${({ margin }) => (margin && typeof margin === "object" && margin.right ? spaces[margin.right] : "")}; - margin-bottom: ${({ margin }) => - margin && typeof margin === "object" && margin.bottom ? spaces[margin.bottom] : ""}; - margin-left: ${({ margin }) => (margin && typeof margin === "object" && margin.left ? spaces[margin.left] : "")}; - cursor: ${(props) => (props.disabled ? "not-allowed" : "pointer")}; - - > div:not(:last-of-type):not(:only-of-type) { - border-bottom: ${(props) => - `${props.theme.accordionGroupSeparatorBorderThickness} ${props.theme.accordionGroupSeparatorBorderStyle}`}; - border-color: ${(props) => props.theme.accordionGroupSeparatorBorderColor}; - } - > div:not(:first-of-type):not(:last-of-type):not(:only-of-type) { - border-radius: 0; - & > h3 > button { - border-radius: 0; - } - } - > div:first-of-type:not(:only-of-type) { - border-bottom-left-radius: 0; - border-bottom-right-radius: 0; - border-top-left-radius: ${(props) => props.theme.borderRadius}; - border-top-right-radius: ${(props) => props.theme.borderRadius}; - - & > h3 > button { - border-bottom-left-radius: 0; - border-bottom-right-radius: 0; - } - } - > div:last-of-type:not(:only-of-type) { - border-top-left-radius: 0; - border-top-right-radius: 0; - border-bottom-left-radius: ${(props) => props.theme.borderRadius}; - border-bottom-right-radius: ${(props) => props.theme.borderRadius}; - - & > h3 > button { - border-top-left-radius: 0; - border-top-right-radius: 0; - } - } -`; - -export default DxcAccordionGroup; diff --git a/packages/lib/src/accordion-group/AccordionGroupAccordion.tsx b/packages/lib/src/accordion-group/AccordionGroupAccordion.tsx deleted file mode 100644 index 8417f78be5..0000000000 --- a/packages/lib/src/accordion-group/AccordionGroupAccordion.tsx +++ /dev/null @@ -1,25 +0,0 @@ -import { useContext } from "react"; -import DxcAccordion from "../accordion/Accordion"; -import { AccordionPropsType } from "./types"; -import AccordionGroupAccordionContext from "./AccordionGroupContext"; - -const AccordionGroupAccordion = ({ ...childProps }: AccordionPropsType): JSX.Element => { - const { activeIndex, handlerActiveChange, disabled, index } = useContext(AccordionGroupAccordionContext) ?? {}; - - return ( - <DxcAccordion - isExpanded={activeIndex === index} - onChange={() => { - if (index != null) { - handlerActiveChange?.(index); - } - }} - disabled={disabled} - {...childProps} - > - {childProps.children} - </DxcAccordion> - ); -}; - -export default AccordionGroupAccordion; diff --git a/packages/lib/src/accordion-group/AccordionGroupContext.tsx b/packages/lib/src/accordion-group/AccordionGroupContext.tsx deleted file mode 100644 index 55c46ee9b8..0000000000 --- a/packages/lib/src/accordion-group/AccordionGroupContext.tsx +++ /dev/null @@ -1,4 +0,0 @@ -import { createContext } from "react"; -import type { AccordionGroupAccordionContextProps } from "./types"; - -export default createContext<AccordionGroupAccordionContextProps | null>(null); diff --git a/packages/lib/src/accordion-group/types.ts b/packages/lib/src/accordion-group/types.ts deleted file mode 100644 index 9b392a3ad0..0000000000 --- a/packages/lib/src/accordion-group/types.ts +++ /dev/null @@ -1,65 +0,0 @@ -import { ReactElement, ReactNode, SVGProps } from "react"; - -import { Space, Margin, SVG } from "../common/utils"; - -export type AccordionPropsType = { - /** - * The panel label. - */ - label: string; - /** - * Material Symbol name or SVG element used as the icon that will be placed next to panel label. - */ - icon?: string | SVG; - /** - * Assistive text to be placed on the right side of the panel. - */ - assistiveText?: string; - /** - * If true, the component will be disabled. - */ - disabled?: boolean; - /** - * The expanded panel of the accordion. This area can be used to render - * custom content. - */ - children: ReactNode; -}; - -type Props = { - /** - * Initially active accordion, only when it is uncontrolled. - */ - defaultIndexActive?: number; - /** - * The index of the active accordion. If undefined, the component will be uncontrolled and the active accordion will be managed internally by the component. - * If null, the component will be controlled and all accordions will be closed. - */ - indexActive?: number; - /** - * If true, the component will be disabled. - */ - disabled?: boolean; - /** - * This function will be called when the user clicks on an accordion. The index of the clicked accordion will be passed as a parameter. - */ - onActiveChange?: (indexActive: number) => void; - /** - * Size of the margin to be applied to the component ('xxsmall' | 'xsmall' | 'small' | 'medium' | 'large' | 'xlarge' | 'xxlarge'). - * You can pass an object with 'top', 'bottom', 'left' and 'right' properties in order to specify different margin sizes. - */ - margin?: Space | Margin; - /** - * Customized accordion(s) that are allowed inside an Accordion Group. - */ - children: ReactElement<AccordionPropsType>[] | ReactElement<AccordionPropsType>; -}; - -export type AccordionGroupAccordionContextProps = { - activeIndex: number; - handlerActiveChange: (index: number) => void; - disabled: boolean; - index: number; -}; - -export default Props; diff --git a/packages/lib/src/accordion/Accordion.accessibility.test.tsx b/packages/lib/src/accordion/Accordion.accessibility.test.tsx index 610eb1b183..1205297691 100644 --- a/packages/lib/src/accordion/Accordion.accessibility.test.tsx +++ b/packages/lib/src/accordion/Accordion.accessibility.test.tsx @@ -1,6 +1,8 @@ import { render } from "@testing-library/react"; import DxcAccordion from "./Accordion"; import { axe } from "../../test/accessibility/axe-helper"; +import DxcBadge from "../badge/Badge"; +import DxcStatusLight from "../status-light/StatusLight"; const folderIcon = ( <svg @@ -23,17 +25,70 @@ const folderIcon = ( describe("Accordion component accessibility tests", () => { it("Should not have basic accessibility issues", async () => { const { container } = render( - <DxcAccordion label="Accordion" assistiveText="Assistive Text" icon={folderIcon} margin="small" defaultIsExpanded> - <div>test-expanded</div> + <DxcAccordion defaultIndexActive={0}> + <DxcAccordion.AccordionItem + label="Assure Claims" + subLabel="Jan, 09 2025" + assistiveText="Ref - 1236532" + icon={folderIcon} + > + <div>test-expanded</div> + </DxcAccordion.AccordionItem> </DxcAccordion> ); const results = await axe(container); expect(results).toHaveNoViolations(); }); + + it("Should not have basic accessibility issues", async () => { + const { container } = render( + <DxcAccordion defaultIndexActive={0}> + <DxcAccordion.AccordionItem + label="Assure Claims" + subLabel="Jan, 09 2025" + assistiveText="Ref - 1236532" + badge={{ position: "before", element: <DxcBadge label="Enterprise" icon={folderIcon} /> }} + statusLight={<DxcStatusLight label="Active" />} + > + <div>test-expanded</div> + </DxcAccordion.AccordionItem> + </DxcAccordion> + ); + const results = await axe(container); + expect(results).toHaveNoViolations(); + }); + + it("Should not have basic accessibility issues for disabled mode", async () => { + const { container } = render( + <DxcAccordion defaultIndexActive={0}> + <DxcAccordion.AccordionItem + label="Assure Claims" + subLabel="Jan, 09 2025" + assistiveText="Ref - 1236532" + icon={folderIcon} + disabled + > + <div>test-expanded</div> + </DxcAccordion.AccordionItem> + </DxcAccordion> + ); + const results = await axe(container); + expect(results).toHaveNoViolations(); + }); + it("Should not have basic accessibility issues for disabled mode", async () => { const { container } = render( - <DxcAccordion label="Accordion" assistiveText="Assistive Text" icon={folderIcon} margin="small" disabled> - <div>test-expanded</div> + <DxcAccordion defaultIndexActive={0}> + <DxcAccordion.AccordionItem + label="Assure Claims" + subLabel="Jan, 09 2025" + assistiveText="Ref - 1236532" + badge={{ position: "before", element: <DxcBadge label="Enterprise" icon={folderIcon} /> }} + statusLight={<DxcStatusLight label="Active" />} + disabled + > + <div>test-expanded</div> + </DxcAccordion.AccordionItem> </DxcAccordion> ); const results = await axe(container); diff --git a/packages/lib/src/accordion/Accordion.stories.tsx b/packages/lib/src/accordion/Accordion.stories.tsx index 4927992ade..8490cd25c5 100644 --- a/packages/lib/src/accordion/Accordion.stories.tsx +++ b/packages/lib/src/accordion/Accordion.stories.tsx @@ -1,8 +1,10 @@ import DxcAccordion from "./Accordion"; import Title from "../../.storybook/components/Title"; import ExampleContainer from "../../.storybook/components/ExampleContainer"; -import { HalstackProvider } from "../HalstackContext"; import { Meta, StoryObj } from "@storybook/react"; +import DxcBadge from "../badge/Badge"; +import DxcStatusLight from "../status-light/StatusLight"; +import DxcInset from "../inset/Inset"; export default { title: "Accordion", @@ -38,204 +40,479 @@ const facebookIcon = ( </svg> ); -const opinionatedTheme = { - accordion: { - accentColor: "#5f249f", - titleFontColor: "#000000", - assistiveTextFontColor: "#666666", - }, -}; - const Accordion = () => ( <> - <Title title="Component anatomy" theme="light" level={2} /> + <Title title="Accordion anatomy" theme="light" level={2} /> <ExampleContainer> - <Title title="With label" theme="light" level={4} /> - <DxcAccordion label="Accordion 1"> - <div> - Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse malesuada lacus ex, sit amet blandit leo - lobortis eget. - </div> + <Title title="Label" theme="light" level={4} /> + <DxcAccordion> + <DxcAccordion.AccordionItem label="Assure Claims"> + <DxcInset space="1.5rem"> + Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse malesuada lacus ex, sit amet blandit + leo lobortis eget. + </DxcInset> + </DxcAccordion.AccordionItem> </DxcAccordion> </ExampleContainer> <ExampleContainer> - <Title title="With assistive text" theme="light" level={4} /> - <DxcAccordion label="Accordion 2" assistiveText="Assistive text"> - <div> - Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse malesuada lacus ex, sit amet blandit leo - lobortis eget. - </div> + <Title title="Label and sublabel" theme="light" level={4} /> + <DxcAccordion> + <DxcAccordion.AccordionItem label="Assure Claims" subLabel="Jan, 09 2025"> + <DxcInset space="1.5rem"> + Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse malesuada lacus ex, sit amet blandit + leo lobortis eget. + </DxcInset> + </DxcAccordion.AccordionItem> </DxcAccordion> </ExampleContainer> <ExampleContainer> - <Title title="With icon" theme="light" level={4} /> - <DxcAccordion label="Accordion 3" assistiveText="Assistive text" icon="folder"> - <div> - Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse malesuada lacus ex, sit amet blandit leo - lobortis eget. - </div> + <Title title="Label and assistive text" theme="light" level={4} /> + <DxcAccordion> + <DxcAccordion.AccordionItem label="Assure Claims" assistiveText="Ref - 1236554546"> + <div> + Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse malesuada lacus ex, sit amet blandit + leo lobortis eget. + </div> + </DxcAccordion.AccordionItem> </DxcAccordion> </ExampleContainer> <ExampleContainer> - <Title title="With smaller icon" theme="light" level={4} /> - <DxcAccordion label="Accordion 4" assistiveText="Assistive text" icon={smallIcon}> - <div> - Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse malesuada lacus ex, sit amet blandit leo - lobortis eget. - </div> + <Title title="Label, subLabel and assistive text" theme="light" level={4} /> + <DxcAccordion> + <DxcAccordion.AccordionItem label="Assure Claims" subLabel="Jan, 09 2025" assistiveText="Ref - 1236554546"> + <DxcInset space="1.5rem"> + Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse malesuada lacus ex, sit amet blandit + leo lobortis eget. + </DxcInset> + </DxcAccordion.AccordionItem> </DxcAccordion> </ExampleContainer> <ExampleContainer> - <Title title="With bigger icon (SVG)" theme="light" level={4} /> - <DxcAccordion label="Accordion Test" assistiveText="Assistive text" icon={facebookIcon}> - <div> - Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse malesuada lacus ex, sit amet blandit leo - lobortis eget. - </div> + <Title title="Icon and label" theme="light" level={4} /> + <DxcAccordion> + <DxcAccordion.AccordionItem label="Assure Claims" icon="heart_plus"> + <DxcInset space="1.5rem"> + Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse malesuada lacus ex, sit amet blandit + leo lobortis eget. + </DxcInset> + </DxcAccordion.AccordionItem> </DxcAccordion> </ExampleContainer> - <Title title="States" theme="light" level={2} /> - <ExampleContainer pseudoState="pseudo-focus"> - <Title title="Focused" theme="light" level={4} /> - <DxcAccordion label="Focused"> - <div> - Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse malesuada lacus ex, sit amet blandit leo - lobortis eget. - </div> + <ExampleContainer> + <Title title="Icon, label and sublabel" theme="light" level={4} /> + <DxcAccordion> + <DxcAccordion.AccordionItem label="Assure Claims" subLabel="Jan, 09 2025" icon="heart_plus"> + <DxcInset space="1.5rem"> + Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse malesuada lacus ex, sit amet blandit + leo lobortis eget. + </DxcInset> + </DxcAccordion.AccordionItem> </DxcAccordion> </ExampleContainer> - <ExampleContainer pseudoState="pseudo-hover"> - <Title title="Hovered" theme="light" level={4} /> - <DxcAccordion label="Hovered"> - <div> - Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse malesuada lacus ex, sit amet blandit leo - lobortis eget. - </div> + <ExampleContainer> + <Title title="Icon, label, sublabel and assistive text" theme="light" level={4} /> + <DxcAccordion> + <DxcAccordion.AccordionItem + label="Assure Claims" + subLabel="Jan, 09 2025" + assistiveText="Ref - 1236554546" + icon="heart_plus" + > + <DxcInset space="1.5rem"> + Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse malesuada lacus ex, sit amet blandit + leo lobortis eget. + </DxcInset> + </DxcAccordion.AccordionItem> </DxcAccordion> </ExampleContainer> - <ExampleContainer pseudoState="pseudo-active"> - <Title title="Active" theme="light" level={4} /> - <DxcAccordion label="Active"> - <div> - Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse malesuada lacus ex, sit amet blandit leo - lobortis eget. - </div> + <ExampleContainer> + <Title title="Label, sublabel, assistive text and badge (before)" theme="light" level={4} /> + <DxcAccordion> + <DxcAccordion.AccordionItem + label="Assure Claims" + subLabel="Jan, 09 2025" + assistiveText="Ref - 1236554546" + badge={{ position: "before", element: <DxcBadge label="Enterprise" icon="home" /> }} + > + <DxcInset space="1.5rem"> + Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse malesuada lacus ex, sit amet blandit + leo lobortis eget. + </DxcInset> + </DxcAccordion.AccordionItem> </DxcAccordion> </ExampleContainer> <ExampleContainer> - <Title title="Disabled" theme="light" level={4} /> - <DxcAccordion label="Disabled" assistiveText="Assistive text" icon="folder" disabled> - <div> - Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse malesuada lacus ex, sit amet blandit leo - lobortis eget. - </div> + <Title title="Label, sublabel and badge (after)" theme="light" level={4} /> + <DxcAccordion> + <DxcAccordion.AccordionItem + label="Assure Claims" + subLabel="Jan, 09 2025" + badge={{ position: "after", element: <DxcBadge label="Enterprise" /> }} + > + <DxcInset space="1.5rem"> + Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse malesuada lacus ex, sit amet blandit + leo lobortis eget. + </DxcInset> + </DxcAccordion.AccordionItem> </DxcAccordion> </ExampleContainer> - <Title title="Margins" theme="light" level={2} /> <ExampleContainer> - <Title title="Xxsmall margin" theme="light" level={4} /> - <DxcAccordion label="Xxsmall margin" margin="xxsmall"> - <div> - Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse malesuada lacus ex, sit amet blandit leo - lobortis eget. - </div> + <Title title="Icon, label, sublabel and status light" theme="light" level={4} /> + <DxcAccordion> + <DxcAccordion.AccordionItem + label="Assure Claims" + subLabel="Jan, 09 2025" + icon="heart_plus" + statusLight={<DxcStatusLight label="Active" />} + > + <DxcInset space="1.5rem"> + Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse malesuada lacus ex, sit amet blandit + leo lobortis eget. + </DxcInset> + </DxcAccordion.AccordionItem> </DxcAccordion> </ExampleContainer> <ExampleContainer> - <Title title="Xsmall margin" theme="light" level={4} /> - <DxcAccordion label="Xsmall margin" margin="xsmall"> - <div> - Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse malesuada lacus ex, sit amet blandit leo - lobortis eget. - </div> + <Title title="Label, sublabel, badge (before) and status light" theme="light" level={4} /> + <DxcAccordion> + <DxcAccordion.AccordionItem + label="Assure Claims" + subLabel="Jan, 09 2025" + badge={{ position: "before", element: <DxcBadge label="Enterprise" /> }} + statusLight={<DxcStatusLight label="Active" />} + > + <DxcInset space="1.5rem"> + Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse malesuada lacus ex, sit amet blandit + leo lobortis eget. + </DxcInset> + </DxcAccordion.AccordionItem> </DxcAccordion> </ExampleContainer> <ExampleContainer> - <Title title="Small margin" theme="light" level={4} /> - <DxcAccordion label="Small margin" margin="small"> - <div> - Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse malesuada lacus ex, sit amet blandit leo - lobortis eget. - </div> + <Title title="Smaller icon" theme="light" level={4} /> + <DxcAccordion> + <DxcAccordion.AccordionItem label="Assure Claims" assistiveText="Ref - 1236554546" icon={smallIcon}> + <DxcInset space="1.5rem"> + Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse malesuada lacus ex, sit amet blandit + leo lobortis eget. + </DxcInset> + </DxcAccordion.AccordionItem> </DxcAccordion> </ExampleContainer> <ExampleContainer> - <Title title="Medium margin" theme="light" level={4} /> - <DxcAccordion label="Medium margin" margin="medium"> - <div> - Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse malesuada lacus ex, sit amet blandit leo - lobortis eget. - </div> + <Title title="Bigger icon (SVG)" theme="light" level={4} /> + <DxcAccordion> + <DxcAccordion.AccordionItem label="Assure Claims" assistiveText="Ref - 1236554546" icon={facebookIcon}> + <DxcInset space="1.5rem"> + Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse malesuada lacus ex, sit amet blandit + leo lobortis eget. + </DxcInset> + </DxcAccordion.AccordionItem> </DxcAccordion> </ExampleContainer> <ExampleContainer> - <Title title="Large margin" theme="light" level={4} /> - <DxcAccordion label="Large margin" margin="large"> - <div> - Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse malesuada lacus ex, sit amet blandit leo - lobortis eget. - </div> + <Title title="Group of accordions (independent false)" theme="light" level={4} /> + <DxcAccordion defaultIndexActive={[0, 2]}> + <DxcAccordion.AccordionItem label="Accordion1" assistiveText="Assistive text"> + <DxcInset space="2rem"> + Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse malesuada lacus ex, sit amet blandit + leo lobortis eget. + </DxcInset> + </DxcAccordion.AccordionItem> + <DxcAccordion.AccordionItem label="Accordion2" assistiveText="Assistive text"> + <DxcInset space="2rem"> + Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse malesuada lacus ex, sit amet blandit + leo lobortis eget. + </DxcInset> + </DxcAccordion.AccordionItem> + <DxcAccordion.AccordionItem label="Accordion3" assistiveText="Assistive text"> + <DxcInset space="2rem"> + Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse malesuada lacus ex, sit amet blandit + leo lobortis eget. + </DxcInset> + </DxcAccordion.AccordionItem> </DxcAccordion> </ExampleContainer> <ExampleContainer> - <Title title="Xlarge margin" theme="light" level={4} /> - <DxcAccordion label="Xlarge margin" margin="xlarge"> - <div> - Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse malesuada lacus ex, sit amet blandit leo - lobortis eget. - </div> + <Title title="Group of accordions (independent true)" theme="light" level={4} /> + <DxcAccordion independent defaultIndexActive={0}> + <DxcAccordion.AccordionItem + label="Find a person" + badge={{ position: "before", element: <DxcBadge label="GET" color="green" /> }} + statusLight={<DxcStatusLight label="Active" mode="success" />} + > + <DxcInset space="1.5rem"> + Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse malesuada lacus ex, sit amet blandit + leo lobortis eget. + </DxcInset> + </DxcAccordion.AccordionItem> + <DxcAccordion.AccordionItem + label="Create a person" + assistiveText="Provide all required info" + badge={{ position: "before", element: <DxcBadge label="POST" color="blue" /> }} + > + <DxcInset space="1.5rem"> + Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse malesuada lacus ex, sit amet blandit + leo lobortis eget. + </DxcInset> + </DxcAccordion.AccordionItem> + <DxcAccordion.AccordionItem + label="Find interactions" + badge={{ position: "before", element: <DxcBadge label="OPTIONS" color="yellow" /> }} + statusLight={<DxcStatusLight label="Active" mode="warning" />} + > + <DxcInset space="1.5rem"> + Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse malesuada lacus ex, sit amet blandit + leo lobortis eget. + </DxcInset> + </DxcAccordion.AccordionItem> + <DxcAccordion.AccordionItem + label="Delete a person" + assistiveText="Deletion will be permanent" + icon="delete" + badge={{ position: "before", element: <DxcBadge label="DELETE" /> }} + > + <DxcInset space="1.5rem"> + Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse malesuada lacus ex, sit amet blandit + leo lobortis eget. + </DxcInset> + </DxcAccordion.AccordionItem> </DxcAccordion> </ExampleContainer> <ExampleContainer> - <Title title="Xxlarge margin" theme="light" level={4} /> - <DxcAccordion label="Xxlarge margin" margin="xxlarge"> - <div> - Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse malesuada lacus ex, sit amet blandit leo - lobortis eget. - </div> + <Title title="Large label, large sublabel and large assistive text" theme="light" level={4} /> + <DxcAccordion> + <DxcAccordion.AccordionItem + label="Assure Claims Assure Claims Assure Claims Assure Claims Assure Claims Assure Claims Assure Claims Assure Claims Assure Claims Assure Claims Assure Claims Assure Claims Assure Claims Assure ClaimsAssure Claims" + subLabel="Jan, 09 2025 ahwdñuaehf ñaiugfiuweg fñuigwfñiugeq fñuigwfñiugeq fñuian, 09 2025 gwfñiugeq ug auñhwd qfuwuefiuegfue giugfuan, 09 2025 gfñeuiwg qiuwgfifgew iwqgfulyqf iugqwydyg wdhdhd uwgdhgd yd ydyd yd yddy afdkawlywdg lyugwaluyd " + assistiveText="Assistive text Assistive text Assistive text Assistive text Assistive text Assistive text Assistive text Assistive text Assistive text Assistive text Assistive text Assistive text Assistive text " + icon="heart_plus" + > + <DxcInset space="1.5rem"> + Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse malesuada lacus ex, sit amet blandit + leo lobortis eget. + </DxcInset> + </DxcAccordion.AccordionItem> </DxcAccordion> </ExampleContainer> - <Title title="Opinionated theme" theme="light" level={2} /> <ExampleContainer> - <Title title="With assistive text and icon" theme="light" level={4} /> - <HalstackProvider theme={opinionatedTheme}> - <DxcAccordion label="Accordion" assistiveText="Assistive text" icon="folder"> - Content - </DxcAccordion> - </HalstackProvider> + <Title title="Large label, large sublabel and large assistive text" theme="light" level={4} /> + <DxcAccordion> + <DxcAccordion.AccordionItem + label="Assure Claims Assure Claims Assure Assure Claims Assure Claims " + subLabel="Jan, 09 2025" + assistiveText="Assistive text Assistive text Assistive text " + icon="heart_plus" + > + <DxcInset space="1.5rem"> + Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse malesuada lacus ex, sit amet blandit + leo lobortis eget. + </DxcInset> + </DxcAccordion.AccordionItem> + </DxcAccordion> + </ExampleContainer> + <Title title="States" theme="light" level={2} /> + <ExampleContainer pseudoState="pseudo-focus"> + <Title title="Focused" theme="light" level={4} /> + <DxcAccordion> + <DxcAccordion.AccordionItem label="Assure Claims" subLabel="Jan, 09 2025" assistiveText="Ref - 1236554546"> + <DxcInset space="1.5rem"> + Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse malesuada lacus ex, sit amet blandit + leo lobortis eget. + </DxcInset> + </DxcAccordion.AccordionItem> + </DxcAccordion> </ExampleContainer> <ExampleContainer pseudoState="pseudo-hover"> <Title title="Hovered" theme="light" level={4} /> - <HalstackProvider theme={opinionatedTheme}> - <DxcAccordion label="Hovered"> - <div> + <DxcAccordion> + <DxcAccordion.AccordionItem label="Assure Claims" subLabel="Jan, 09 2025" assistiveText="Ref - 1236554546"> + <DxcInset space="1.5rem"> Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse malesuada lacus ex, sit amet blandit leo lobortis eget. - </div> - </DxcAccordion> - </HalstackProvider> + </DxcInset> + </DxcAccordion.AccordionItem> + </DxcAccordion> </ExampleContainer> <ExampleContainer pseudoState="pseudo-active"> <Title title="Active" theme="light" level={4} /> - <HalstackProvider theme={opinionatedTheme}> - <DxcAccordion label="Active"> - <div> + <DxcAccordion> + <DxcAccordion.AccordionItem label="Assure Claims" subLabel="Jan, 09 2025" assistiveText="Ref - 1236554546"> + <DxcInset space="1.5rem"> Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse malesuada lacus ex, sit amet blandit leo lobortis eget. - </div> - </DxcAccordion> - </HalstackProvider> + </DxcInset> + </DxcAccordion.AccordionItem> + </DxcAccordion> </ExampleContainer> <ExampleContainer> <Title title="Disabled" theme="light" level={4} /> - <HalstackProvider theme={opinionatedTheme}> - <DxcAccordion label="Disabled" assistiveText="Assistive text" icon="folder" disabled> - <div> + <DxcAccordion> + <DxcAccordion.AccordionItem + label="Assure Claims" + subLabel="Jan, 09 2025" + assistiveText="Ref - 1236554546" + icon="heart_plus" + disabled + > + <DxcInset space="1.5rem"> Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse malesuada lacus ex, sit amet blandit leo lobortis eget. - </div> - </DxcAccordion> - </HalstackProvider> + </DxcInset> + </DxcAccordion.AccordionItem> + </DxcAccordion> + <DxcAccordion> + <DxcAccordion.AccordionItem + label="Assure Claims" + subLabel="Jan, 09 2025" + disabled + badge={{ position: "before", element: <DxcBadge label="Enterprise" color="green" /> }} + statusLight={<DxcStatusLight label="Active" mode="success" />} + > + <DxcInset space="1.5rem"> + Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse malesuada lacus ex, sit amet blandit + leo lobortis eget. + </DxcInset> + </DxcAccordion.AccordionItem> + </DxcAccordion> + <DxcAccordion> + <DxcAccordion.AccordionItem + label="Assure Claims" + subLabel="Jan, 09 2025" + icon="heart_plus" + disabled + badge={{ position: "after", element: <DxcBadge label="Enterprise" color="green" /> }} + > + <DxcInset space="1.5rem"> + Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse malesuada lacus ex, sit amet blandit + leo lobortis eget. + </DxcInset> + </DxcAccordion.AccordionItem> + </DxcAccordion> + </ExampleContainer> + <ExampleContainer> + <Title title="Group of accordions" theme="light" level={4} /> + <DxcAccordion> + <DxcAccordion.AccordionItem + label="Find a person" + badge={{ position: "before", element: <DxcBadge label="GET" color="green" /> }} + statusLight={<DxcStatusLight label="Active" mode="success" />} + > + <DxcInset space="1.5rem"> + Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse malesuada lacus ex, sit amet blandit + leo lobortis eget. + </DxcInset> + </DxcAccordion.AccordionItem> + <DxcAccordion.AccordionItem + label="Create a person" + assistiveText="Provide all required info" + badge={{ position: "before", element: <DxcBadge label="POST" color="blue" /> }} + > + <DxcInset space="1.5rem"> + Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse malesuada lacus ex, sit amet blandit + leo lobortis eget. + </DxcInset> + </DxcAccordion.AccordionItem> + <DxcAccordion.AccordionItem + label="Find interactions" + badge={{ position: "before", element: <DxcBadge label="OPTIONS" color="yellow" /> }} + statusLight={<DxcStatusLight label="Active" mode="warning" />} + > + <DxcInset space="1.5rem"> + Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse malesuada lacus ex, sit amet blandit + leo lobortis eget. + </DxcInset> + </DxcAccordion.AccordionItem> + <DxcAccordion.AccordionItem + label="Delete a person" + assistiveText="Deletion will be permanent" + icon="delete" + badge={{ position: "before", element: <DxcBadge label="DELETE" /> }} + > + <DxcInset space="1.5rem"> + Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse malesuada lacus ex, sit amet blandit + leo lobortis eget. + </DxcInset> + </DxcAccordion.AccordionItem> + </DxcAccordion> + </ExampleContainer> + <Title title="Margins" theme="light" level={2} /> + <ExampleContainer> + <Title title="Xxsmall margin" theme="light" level={4} /> + <DxcAccordion margin="xxsmall"> + <DxcAccordion.AccordionItem label="Assure Claims"> + <DxcInset space="1.5rem"> + Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse malesuada lacus ex, sit amet blandit + leo lobortis eget. + </DxcInset> + </DxcAccordion.AccordionItem> + </DxcAccordion> + </ExampleContainer> + <ExampleContainer> + <Title title="Xsmall margin" theme="light" level={4} /> + <DxcAccordion margin="xsmall"> + <DxcAccordion.AccordionItem label="Assure Claims"> + <DxcInset space="1.5rem"> + Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse malesuada lacus ex, sit amet blandit + leo lobortis eget. + </DxcInset> + </DxcAccordion.AccordionItem> + </DxcAccordion> + </ExampleContainer> + <ExampleContainer> + <Title title="Small margin" theme="light" level={4} /> + <DxcAccordion margin="small"> + <DxcAccordion.AccordionItem label="Assure Claims"> + <DxcInset space="1.5rem"> + Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse malesuada lacus ex, sit amet blandit + leo lobortis eget. + </DxcInset> + </DxcAccordion.AccordionItem> + </DxcAccordion> + </ExampleContainer> + <ExampleContainer> + <Title title="Medium margin" theme="light" level={4} /> + <DxcAccordion margin="medium"> + <DxcAccordion.AccordionItem label="Assure Claims"> + <DxcInset space="1.5rem"> + Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse malesuada lacus ex, sit amet blandit + leo lobortis eget. + </DxcInset> + </DxcAccordion.AccordionItem> + </DxcAccordion> + </ExampleContainer> + <ExampleContainer> + <Title title="Large margin" theme="light" level={4} /> + <DxcAccordion margin="large"> + <DxcAccordion.AccordionItem label="Assure Claims"> + <DxcInset space="1.5rem"> + Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse malesuada lacus ex, sit amet blandit + leo lobortis eget. + </DxcInset> + </DxcAccordion.AccordionItem> + </DxcAccordion> + </ExampleContainer> + <ExampleContainer> + <Title title="Xlarge margin" theme="light" level={4} /> + <DxcAccordion margin="xlarge"> + <DxcAccordion.AccordionItem label="Assure Claims"> + <DxcInset space="1.5rem"> + Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse malesuada lacus ex, sit amet blandit + leo lobortis eget. + </DxcInset> + </DxcAccordion.AccordionItem> + </DxcAccordion> + </ExampleContainer> + <ExampleContainer> + <Title title="Xxlarge margin" theme="light" level={4} /> + <DxcAccordion margin="xxlarge"> + <DxcAccordion.AccordionItem label="Assure Claims"> + <DxcInset space="1.5rem"> + Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse malesuada lacus ex, sit amet blandit + leo lobortis eget. + </DxcInset> + </DxcAccordion.AccordionItem> + </DxcAccordion> </ExampleContainer> </> ); diff --git a/packages/lib/src/accordion/Accordion.test.tsx b/packages/lib/src/accordion/Accordion.test.tsx index b2b0b5b263..a48adc631b 100644 --- a/packages/lib/src/accordion/Accordion.test.tsx +++ b/packages/lib/src/accordion/Accordion.test.tsx @@ -4,8 +4,10 @@ import DxcAccordion from "./Accordion"; describe("Accordion component tests", () => { test("Renders with correct aria accessibility attributes", () => { const { getByRole } = render( - <DxcAccordion label="Accordion" defaultIsExpanded> - <div>test-expanded</div> + <DxcAccordion defaultIndexActive={0}> + <DxcAccordion.AccordionItem label="Accordion"> + <div>test-expanded</div> + </DxcAccordion.AccordionItem> </DxcAccordion> ); const accordion = getByRole("button"); @@ -14,19 +16,33 @@ describe("Accordion component tests", () => { expect(panel.getAttribute("aria-labelledby")).toBe(accordion.id); }); test("Renders expanded by default when it is uncontrolled", () => { - const { getByRole } = render( - <DxcAccordion label="Accordion" defaultIsExpanded> - <div>test-expanded</div> + const { getAllByRole } = render( + <DxcAccordion defaultIndexActive={[0, 2]}> + <DxcAccordion.AccordionItem label="Accordion 1"> + <div>test-expanded-1</div> + </DxcAccordion.AccordionItem> + <DxcAccordion.AccordionItem label="Accordion 2"> + <div>test-expanded-2</div> + </DxcAccordion.AccordionItem> + <DxcAccordion.AccordionItem label="Accordion 3"> + <div>test-expanded-3</div> + </DxcAccordion.AccordionItem> </DxcAccordion> ); - const accordion = getByRole("button"); - expect(accordion.getAttribute("aria-expanded")).toBe("true"); + const accordion1 = getAllByRole("button")[0]; + expect(accordion1?.getAttribute("aria-expanded")).toBe("true"); + const accordion2 = getAllByRole("button")[1]; + expect(accordion2?.getAttribute("aria-expanded")).toBe("false"); + const accordion3 = getAllByRole("button")[2]; + expect(accordion3?.getAttribute("aria-expanded")).toBe("true"); }); test("Calls correct function on click", () => { const onChange = jest.fn(); const { getByText } = render( - <DxcAccordion label="Accordion" onChange={onChange}> - <div>test-expanded</div> + <DxcAccordion onActiveChange={onChange}> + <DxcAccordion.AccordionItem label="Accordion"> + <div>test-expanded</div> + </DxcAccordion.AccordionItem> </DxcAccordion> ); fireEvent.click(getByText("Accordion")); @@ -34,18 +50,85 @@ describe("Accordion component tests", () => { }); test("Controlled accordion", () => { const onChange = jest.fn(); - const { getByText, getByRole } = render( - <DxcAccordion label="Accordion" onChange={onChange} isExpanded> - <div>test-expanded</div> + const { getByText, getByRole, rerender } = render( + <DxcAccordion onActiveChange={onChange} indexActive={0}> + <DxcAccordion.AccordionItem label="Accordion"> + <div>test-expanded</div> + </DxcAccordion.AccordionItem> </DxcAccordion> ); expect(getByRole("button").getAttribute("aria-expanded")).toBe("true"); fireEvent.click(getByText("Accordion")); + rerender( + <DxcAccordion onActiveChange={onChange} indexActive={-1}> + <DxcAccordion.AccordionItem label="Accordion"> + <div>test-expanded</div> + </DxcAccordion.AccordionItem> + </DxcAccordion> + ); + expect(getByRole("button").getAttribute("aria-expanded")).toBe("false"); + fireEvent.click(getByText("Accordion")); + rerender( + <DxcAccordion onActiveChange={onChange} indexActive={0}> + <DxcAccordion.AccordionItem label="Accordion"> + <div>test-expanded</div> + </DxcAccordion.AccordionItem> + </DxcAccordion> + ); + expect(getByRole("button").getAttribute("aria-expanded")).toBe("true"); + expect(onChange).toHaveBeenCalledTimes(2); + }); + test("Independent accordion items behave independently", () => { + const { getAllByRole, getByText } = render( + <DxcAccordion independent={true} defaultIndexActive={0}> + <DxcAccordion.AccordionItem label="Accordion 1"> + <div>test-expanded-1</div> + </DxcAccordion.AccordionItem> + <DxcAccordion.AccordionItem label="Accordion 2"> + <div>test-expanded-2</div> + </DxcAccordion.AccordionItem> + <DxcAccordion.AccordionItem label="Accordion 3"> + <div>test-expanded-3</div> + </DxcAccordion.AccordionItem> + </DxcAccordion> + ); + + const accordion1 = getAllByRole("button")[0]; + const accordion2 = getAllByRole("button")[1]; + const accordion3 = getAllByRole("button")[2]; + + expect(accordion1?.getAttribute("aria-expanded")).toBe("true"); + expect(accordion2?.getAttribute("aria-expanded")).toBe("false"); + expect(accordion3?.getAttribute("aria-expanded")).toBe("false"); + + fireEvent.click(getByText("Accordion 2")); + expect(accordion1?.getAttribute("aria-expanded")).toBe("false"); + expect(accordion2?.getAttribute("aria-expanded")).toBe("true"); + expect(accordion3?.getAttribute("aria-expanded")).toBe("false"); + }); + test("Accordion item is disabled", () => { + const { getByText, getByRole } = render( + <DxcAccordion defaultIndexActive={0}> + <DxcAccordion.AccordionItem label="Accordion" disabled> + <div>test-expanded</div> + </DxcAccordion.AccordionItem> + </DxcAccordion> + ); + const accordion = getByRole("button"); + expect(accordion.getAttribute("aria-expanded")).toBe("true"); fireEvent.click(getByText("Accordion")); + expect(accordion.getAttribute("aria-expanded")).toBe("true"); + }); + test("Does not call onActiveChange when disabled", () => { + const onChange = jest.fn(); + const { getByText } = render( + <DxcAccordion onActiveChange={onChange}> + <DxcAccordion.AccordionItem label="Accordion" disabled> + <div>test-expanded</div> + </DxcAccordion.AccordionItem> + </DxcAccordion> + ); fireEvent.click(getByText("Accordion")); - expect(onChange).toHaveBeenCalledTimes(3); - expect(onChange.mock.calls[0][0]).toBe(false); - expect(onChange.mock.calls[1][0]).toBe(false); - expect(onChange.mock.calls[2][0]).toBe(false); + expect(onChange).not.toHaveBeenCalled(); }); }); diff --git a/packages/lib/src/accordion/Accordion.tsx b/packages/lib/src/accordion/Accordion.tsx index cbdea4f20b..7f71e740a8 100644 --- a/packages/lib/src/accordion/Accordion.tsx +++ b/packages/lib/src/accordion/Accordion.tsx @@ -1,194 +1,162 @@ -import { useContext, useId, useState } from "react"; +import { Children, useCallback, useContext, useMemo, useState } from "react"; import styled, { ThemeProvider } from "styled-components"; import { getMargin } from "../common/utils"; import { spaces } from "../common/variables"; -import HalstackContext from "../HalstackContext"; import AccordionPropsType from "./types"; -import DxcIcon from "../icon/Icon"; +import AccordionContext from "./AccordionContext"; +import HalstackContext from "../HalstackContext"; +import AccordionItem from "./AccordionItem"; + +const DxcAccordion = ({ + independent = false, + defaultIndexActive, + indexActive, + onActiveChange, + margin, + children, +}: AccordionPropsType): JSX.Element => { + const colorsTheme = useContext(HalstackContext); + + const [innerIndexActive, setInnerIndexActive] = useState( + independent + ? (defaultIndexActive ?? -1) + : Array.isArray(defaultIndexActive) + ? defaultIndexActive.filter((i) => i !== undefined) + : defaultIndexActive !== undefined + ? [defaultIndexActive] + : [] + ); + + const handlerActiveChange = useCallback( + (index: number | number[]) => { + if (indexActive == null) { + setInnerIndexActive((prev) => { + if (independent) { + return typeof index === "number" ? (index === prev ? -1 : index) : prev; + } else { + const prevArray = Array.isArray(prev) ? prev : []; + if (Array.isArray(index)) { + return index; + } else { + return prevArray.includes(index) ? prevArray.filter((i) => i !== index) : [...prevArray, index]; + } + } + }); + } + onActiveChange?.(index); + }, + [indexActive, onActiveChange, independent, innerIndexActive] + ); + + const contextValue = useMemo( + () => ({ + activeIndex: + indexActive != null + ? independent + ? indexActive + : Array.isArray(indexActive) + ? indexActive + : [indexActive] + : innerIndexActive, + handlerActiveChange, + independent, + }), + [indexActive, innerIndexActive, handlerActiveChange, independent] + ); + + return ( + <ThemeProvider theme={colorsTheme.accordion}> + <AccordionContainer margin={margin}> + {Children.map(children, (accordion, index) => ( + <AccordionContext.Provider key={`accordion-${index}`} value={{ index, ...contextValue }}> + {accordion} + </AccordionContext.Provider> + ))} + </AccordionContainer> + </ThemeProvider> + ); +}; + +DxcAccordion.AccordionItem = AccordionItem; const calculateWidth = (margin: AccordionPropsType["margin"]) => `calc(100% - ${getMargin(margin, "left")} - ${getMargin(margin, "right")})`; const AccordionContainer = styled.div<{ - isExpanded: AccordionPropsType["isExpanded"]; margin: AccordionPropsType["margin"]; }>` - display: flex; - flex-direction: column; - background-color: ${(props) => props.theme.backgroundColor}; - border-radius: ${(props) => props.theme.borderRadius}; - ${(props) => props.isExpanded && `border-bottom-left-radius: 0; border-bottom-right-radius: 0;`} - box-shadow: ${(props) => - `${props.theme.boxShadowOffsetX} ${props.theme.boxShadowOffsetY} ${props.theme.boxShadowBlur} ${props.theme.boxShadowColor}`}; - min-width: 280px; - margin: ${(props) => (props.margin && typeof props.margin !== "object" ? spaces[props.margin] : "0px")}; - margin-top: ${(props) => - props.margin && typeof props.margin === "object" && props.margin.top ? spaces[props.margin.top] : ""}; - margin-right: ${(props) => - props.margin && typeof props.margin === "object" && props.margin.right ? spaces[props.margin.right] : ""}; - margin-bottom: ${(props) => - props.margin && typeof props.margin === "object" && props.margin.bottom ? spaces[props.margin.bottom] : ""}; - margin-left: ${(props) => - props.margin && typeof props.margin === "object" && props.margin.left ? spaces[props.margin.left] : ""}; width: ${(props) => calculateWidth(props.margin)}; -`; - -const AccordionHeader = styled.h3` - display: flex; - flex-direction: column; - min-height: 48px; - margin: 0; -`; - -const AccordionTrigger = styled.button<{ - isExpanded: AccordionPropsType["isExpanded"]; -}>` - display: flex; - justify-content: space-between; - align-items: center; - gap: 24px; - width: 100%; - background-color: transparent; - border: none; - border-radius: ${(props) => props.theme.borderRadius}; - ${(props) => props.isExpanded && `border-bottom-left-radius: 0; border-bottom-right-radius: 0;`} - padding: 12px 16px; - cursor: ${(props) => (props.disabled ? "not-allowed" : "pointer")}; - - :focus { - outline: ${(props) => - `${props.theme.focusBorderColor} ${props.theme.focusBorderStyle} ${props.theme.focusBorderThickness}`}; - } - :hover:enabled { - background-color: ${(props) => `${props.theme.hoverBackgroundColor}`}; - } - :active:enabled { - background-color: ${(props) => `${props.theme.hoverBackgroundColor}`}; + margin: ${({ margin }) => (margin && typeof margin !== "object" ? spaces[margin] : "0px")}; + margin-top: ${({ margin }) => (margin && typeof margin === "object" && margin.top ? spaces[margin.top] : "")}; + margin-right: ${({ margin }) => (margin && typeof margin === "object" && margin.right ? spaces[margin.right] : "")}; + margin-bottom: ${({ margin }) => + margin && typeof margin === "object" && margin.bottom ? spaces[margin.bottom] : ""}; + margin-left: ${({ margin }) => (margin && typeof margin === "object" && margin.left ? spaces[margin.left] : "")}; + cursor: "pointer"; + + // first and middle accordions (separator) + > div:not(:last-of-type):not(:only-of-type) { + border-bottom: ${(props) => + `${props.theme.accordionSeparatorBorderThickness} ${props.theme.accordionSeparatorBorderStyle}`}; + border-color: ${(props) => props.theme.accordionSeparatorBorderColor}; } -`; -const AccordionInfo = styled.span` - display: inline-flex; - justify-content: space-between; - width: 100%; -`; + // first accordion + > div:first-of-type:not(:only-of-type) { + border-bottom-left-radius: 0; + border-bottom-right-radius: 0; + border-top-left-radius: ${(props) => props.theme.borderRadius}; + border-top-right-radius: ${(props) => props.theme.borderRadius}; + } -const AccordionLabel = styled.span<{ disabled: AccordionPropsType["disabled"] }>` - display: flex; - padding-top: ${(props) => props.theme.titleLabelPaddingTop}; - padding-bottom: ${(props) => props.theme.titleLabelPaddingBottom}; - padding-right: ${(props) => props.theme.titleLabelPaddingRight}; - padding-left: ${(props) => props.theme.titleLabelPaddingLeft}; - color: ${(props) => (props.disabled ? props.theme.disabledTitleLabelFontColor : props.theme.titleLabelFontColor)}; - font-family: ${(props) => props.theme.titleLabelFontFamily}; - font-size: ${(props) => props.theme.titleLabelFontSize}; - font-style: ${(props) => props.theme.titleLabelFontStyle}; - font-weight: ${(props) => props.theme.titleLabelFontWeight}; - line-height: 1.5em; -`; + // first accordion: hover, focus and active + > div:first-of-type:not(:only-of-type) button:hover, + div:first-of-type:not(:only-of-type) button:focus, + div:first-of-type:not(:only-of-type) button:active { + border-bottom-left-radius: 0; + border-bottom-right-radius: 0; + } -const IconContainer = styled.span<{ disabled: AccordionPropsType["disabled"] }>` - display: flex; - margin-left: ${(props) => props.theme.iconMarginLeft}; - margin-right: ${(props) => props.theme.iconMarginRight}; - color: ${(props) => (props.disabled ? props.theme.disabledIconColor : props.theme.iconColor)}; - font-size: ${(props) => props.theme.iconSize}; + // middle accordions + > div:not(:first-of-type):not(:last-of-type):not(:only-of-type) { + border-radius: 0; + } - svg { - height: ${(props) => props.theme.iconSize}; - width: ${(props) => props.theme.iconSize}; + // middle accordions: hover, focus and active + > div:not(:first-of-type):not(:last-of-type):not(:only-of-type) button:hover, + div:not(:first-of-type):not(:last-of-type):not(:only-of-type) button:focus, + div:not(:first-of-type):not(:last-of-type):not(:only-of-type) button:active { + border-radius: 0; } -`; -const AccordionAssistiveText = styled.span<{ disabled: AccordionPropsType["disabled"] }>` - min-width: ${(props) => props.theme.assistiveTextMinWidth}; - padding-left: ${(props) => props.theme.assistiveTextPaddingLeft}; - padding-right: ${(props) => props.theme.assistiveTextPaddingRight}; - color: ${(props) => - props.disabled ? props.theme.disabledAssistiveTextFontColor : props.theme.assistiveTextFontColor}; - font-family: ${(props) => props.theme.assistiveTextFontFamily}; - font-size: ${(props) => props.theme.assistiveTextFontSize}; - font-style: ${(props) => props.theme.assistiveTextFontStyle}; - font-weight: ${(props) => props.theme.assistiveTextFontWeight}; - letter-spacing: ${(props) => props.theme.assistiveTextLetterSpacing}; - line-height: 1.5em; -`; + // last accordion + > div:last-of-type:not(:only-of-type) { + border-top-left-radius: 0; + border-top-right-radius: 0; + border-bottom-left-radius: ${(props) => props.theme.borderRadius}; + border-bottom-right-radius: ${(props) => props.theme.borderRadius}; + } -const CollapseIndicator = styled.span<{ - disabled: AccordionPropsType["disabled"]; -}>` - display: flex; - flex-wrap: wrap; - align-content: center; - font-size: 24px; - color: ${(props) => (props.disabled ? props.theme.disabledArrowColor : props.theme.arrowColor)}; -`; + // last accordion: hover, focus and active + > div:last-of-type:not(:only-of-type) button:hover, + div:last-of-type:not(:only-of-type) button:focus, + div:last-of-type:not(:only-of-type) button:active { + border-top-left-radius: 0; + border-top-right-radius: 0; + border-bottom-left-radius: ${(props) => props.theme.borderRadius}; + border-bottom-right-radius: ${(props) => props.theme.borderRadius}; + } -const AccordionPanel = styled.div` - border-bottom-left-radius: ${(props) => props.theme.borderRadius}; - border-bottom-right-radius: ${(props) => props.theme.borderRadius}; + // last expanded accordion + > div:last-of-type:not(:only-of-type) > button[aria-expanded="true"] { + border-radius: 0; + } + // last expanded accordion: hover, focus and active + > div:last-of-type:not(:only-of-type) > button[aria-expanded="true"]:hover, + div:last-of-type:not(:only-of-type) > button[aria-expanded="true"]:focus, + div:last-of-type:not(:only-of-type) > button[aria-expanded="true"]:active { + border-radius: 0; + } `; -const DxcAccordion = ({ - label = "", - defaultIsExpanded = false, - isExpanded, - icon, - assistiveText = "", - disabled = false, - onChange, - children, - margin, - tabIndex = 0, -}: AccordionPropsType): JSX.Element => { - const id = useId(); - const [innerIsExpanded, setInnerIsExpanded] = useState(defaultIsExpanded); - const colorsTheme = useContext(HalstackContext); - - const handleAccordionState = () => { - if (isExpanded == null) { - setInnerIsExpanded((innerIsCurrentlyExpanded) => !innerIsCurrentlyExpanded); - } - onChange?.(isExpanded != null ? !isExpanded : !innerIsExpanded); - }; - - return ( - <ThemeProvider theme={colorsTheme.accordion}> - <AccordionContainer isExpanded={isExpanded ?? innerIsExpanded} margin={margin}> - <AccordionHeader> - <AccordionTrigger - id={`accordion-${id}`} - onClick={disabled ? undefined : handleAccordionState} - disabled={disabled} - tabIndex={disabled ? -1 : tabIndex} - aria-expanded={isExpanded ?? innerIsExpanded} - aria-controls={`accordion-panel-${id}`} - isExpanded={isExpanded ?? innerIsExpanded} - > - <AccordionInfo> - <AccordionLabel disabled={disabled}> - {icon && ( - <IconContainer disabled={disabled}> - {typeof icon === "string" ? <DxcIcon icon={icon} /> : icon} - </IconContainer> - )} - {label} - </AccordionLabel> - {assistiveText && <AccordionAssistiveText disabled={disabled}>{assistiveText}</AccordionAssistiveText>} - </AccordionInfo> - <CollapseIndicator disabled={disabled}> - <DxcIcon icon={(isExpanded ?? innerIsExpanded) ? "expand_less" : "expand_more"} /> - </CollapseIndicator> - </AccordionTrigger> - </AccordionHeader> - {(isExpanded ?? innerIsExpanded) && ( - <AccordionPanel id={`accordion-panel-${id}`} role="region" aria-labelledby={`accordion-${id}`}> - {children} - </AccordionPanel> - )} - </AccordionContainer> - </ThemeProvider> - ); -}; - export default DxcAccordion; diff --git a/packages/lib/src/accordion/AccordionContext.tsx b/packages/lib/src/accordion/AccordionContext.tsx new file mode 100644 index 0000000000..972b8a8ce0 --- /dev/null +++ b/packages/lib/src/accordion/AccordionContext.tsx @@ -0,0 +1,4 @@ +import { createContext } from "react"; +import type { AccordionContextProps } from "./types"; + +export default createContext<AccordionContextProps | null>(null); diff --git a/packages/lib/src/accordion/AccordionItem.tsx b/packages/lib/src/accordion/AccordionItem.tsx new file mode 100644 index 0000000000..c5c4ef33a5 --- /dev/null +++ b/packages/lib/src/accordion/AccordionItem.tsx @@ -0,0 +1,230 @@ +import { ReactElement, useContext, useId } from "react"; +import styled, { ThemeProvider } from "styled-components"; +import HalstackContext from "../HalstackContext"; +import { AccordionItemProps } from "./types"; +import DxcIcon from "../icon/Icon"; +import DxcFlex from "../flex/Flex"; +import DxcContainer from "../container/Container"; +import React from "react"; +import AccordionContext from "./AccordionContext"; + +const AccordionItem = ({ + label = "", + subLabel = "", + badge, + statusLight, + icon, + assistiveText = "", + disabled = false, + children, + tabIndex = 0, +}: AccordionItemProps): JSX.Element => { + const id = useId(); + const colorsTheme = useContext(HalstackContext); + const { activeIndex, handlerActiveChange, index, independent } = useContext(AccordionContext) ?? {}; + const isItemExpanded = independent + ? activeIndex === index + : Array.isArray(activeIndex) && index !== undefined && activeIndex.includes(index); + + const handleAccordionState = () => { + if (index !== undefined) handlerActiveChange?.(index); + }; + + return ( + <ThemeProvider theme={colorsTheme.accordion}> + <AccordionContainer> + <AccordionTrigger + id={`accordion-${id}`} + onClick={disabled ? undefined : handleAccordionState} + disabled={disabled} + tabIndex={disabled ? -1 : tabIndex} + aria-expanded={isItemExpanded} + aria-controls={`accordion-panel-${id}`} + > + <DxcContainer width="100%" height="100%"> + <DxcFlex gap="1.5rem"> + <LeftSideContainer> + <DxcFlex gap="0.75rem"> + {icon && ( + <IconContainer disabled={disabled}> + {typeof icon === "string" ? <DxcIcon icon={icon} /> : icon} + </IconContainer> + )} + {badge?.position === "before" && !icon && ( + <StatusContainer subLabel={subLabel}> + {disabled ? React.cloneElement(badge.element as ReactElement, { color: "grey" }) : badge.element} + </StatusContainer> + )} + <LabelsContainer> + <AccordionLabel disabled={disabled}>{label}</AccordionLabel> + {subLabel && <SubLabel disabled={disabled}>{subLabel}</SubLabel>} + </LabelsContainer> + </DxcFlex> + </LeftSideContainer> + <RightSideContainer> + {assistiveText && ( + <AssistiveText disabled={disabled} subLabel={subLabel}> + {assistiveText} + </AssistiveText> + )} + {badge && badge?.position === "after" && !assistiveText && ( + <StatusContainer subLabel={subLabel}> + {disabled ? React.cloneElement(badge.element as ReactElement, { color: "grey" }) : badge.element} + </StatusContainer> + )} + {badge?.position !== "after" && statusLight && !assistiveText && ( + <StatusContainer subLabel={subLabel}> + {disabled ? React.cloneElement(statusLight as ReactElement, { mode: "default" }) : statusLight} + </StatusContainer> + )} + <CollapseIndicator disabled={disabled}> + <DxcIcon icon={isItemExpanded ? "expand_less" : "expand_more"} /> + </CollapseIndicator> + </RightSideContainer> + </DxcFlex> + </DxcContainer> + </AccordionTrigger> + {isItemExpanded && ( + <AccordionPanel id={`accordion-panel-${id}`} role="region" aria-labelledby={`accordion-${id}`}> + {children} + </AccordionPanel> + )} + </AccordionContainer> + </ThemeProvider> + ); +}; + +const AccordionContainer = styled.div` + display: flex; + flex-direction: column; + background-color: ${(props) => props.theme.backgroundColor}; + border-radius: ${(props) => props.theme.borderRadius}; + box-shadow: ${(props) => + `${props.theme.boxShadowOffsetX} ${props.theme.boxShadowOffsetY} ${props.theme.boxShadowBlur} ${props.theme.boxShadowSpread} ${props.theme.boxShadowColor}`}; + min-width: 280px; + width: 100%; +`; + +const AccordionTrigger = styled.button` + display: flex; + justify-content: space-between; + gap: 1.5rem; + width: 100%; + background-color: transparent; + border: none; + border-radius: ${(props) => props.theme.borderRadius}; + padding: 8px 16px; + cursor: ${(props) => (props.disabled ? "not-allowed" : "pointer")}; + :focus { + background-color: ${(props) => `${props.theme.focusBackgroundColor}`}; + outline: ${(props) => + `${props.theme.focusBorderColor} ${props.theme.focusBorderStyle} ${props.theme.focusBorderThickness}`}; + } + :hover:enabled { + background-color: ${(props) => `${props.theme.hoverBackgroundColor}`}; + } + :active:enabled { + background-color: ${(props) => `${props.theme.activeBackgroundColor}`}; + outline: ${(props) => + `${props.theme.focusBorderColor} ${props.theme.focusBorderStyle} ${props.theme.focusBorderThickness}`}; + } +`; + +const LeftSideContainer = styled.div` + flex: 1; + overflow: hidden; +`; + +const RightSideContainer = styled.div` + display: flex; + flex: 1; + overflow: hidden; + justify-content: flex-end; + gap: 0.5rem; +`; + +const LabelsContainer = styled.div` + display: flex; + flex-direction: column; + overflow: hidden; +`; + +const StatusContainer = styled.div<{ subLabel: AccordionItemProps["subLabel"] }>` + display: flex; + align-items: ${(props) => (props.subLabel ? "flex-start" : "center")}; + margin-top: ${(props) => props.subLabel && "4px"}; +`; + +const IconContainer = styled.span<{ disabled: AccordionItemProps["disabled"] }>` + display: flex; + color: ${(props) => (props.disabled ? props.theme.disabledIconColor : props.theme.iconColor)}; + font-size: ${(props) => props.theme.iconSize}; + svg { + height: ${(props) => props.theme.iconSize}; + width: ${(props) => props.theme.iconSize}; + } +`; + +const AccordionLabel = styled.span<{ disabled: AccordionItemProps["disabled"] }>` + color: ${(props) => (props.disabled ? props.theme.disabledTitleLabelFontColor : props.theme.titleLabelFontColor)}; + font-family: ${(props) => props.theme.titleLabelFontFamily}; + font-size: ${(props) => props.theme.titleLabelFontSize}; + font-style: ${(props) => props.theme.titleLabelFontStyle}; + font-weight: ${(props) => props.theme.titleLabelFontWeight}; + line-height: 1.5em; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; +`; + +const SubLabel = styled.span<{ disabled: AccordionItemProps["disabled"] }>` + height: 20px; + color: ${(props) => (props.disabled ? props.theme.disabledSubLabelFontColor : props.theme.subLabelFontColor)}; + font-family: ${(props) => props.theme.subLabelFontFamily}; + font-size: ${(props) => props.theme.subLabelFontSize}; + font-style: ${(props) => props.theme.subLabelFontStyle}; + font-weight: ${(props) => props.theme.subLabelFontWeight}; + line-height: 1.5em; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; + text-align: left; +`; + +const AssistiveText = styled.span<{ + disabled: AccordionItemProps["disabled"]; + subLabel: AccordionItemProps["subLabel"]; +}>` + color: ${(props) => + props.disabled ? props.theme.disabledAssistiveTextFontColor : props.theme.assistiveTextFontColor}; + font-family: ${(props) => props.theme.assistiveTextFontFamily}; + font-size: ${(props) => props.theme.assistiveTextFontSize}; + font-style: ${(props) => props.theme.assistiveTextFontStyle}; + font-weight: ${(props) => props.theme.assistiveTextFontWeight}; + line-height: 1.5em; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; + align-content: ${(props) => !props.subLabel && "center"}; + margin-top: ${(props) => props.subLabel && "4px"}; +`; + +const CollapseIndicator = styled.span<{ + disabled: AccordionItemProps["disabled"]; +}>` + display: flex; + flex-wrap: wrap; + font-size: 24px; + color: ${(props) => (props.disabled ? props.theme.disabledArrowColor : props.theme.arrowColor)}; + svg { + height: ${(props) => props.theme.iconSize}; + width: ${(props) => props.theme.iconSize}; + } +`; + +const AccordionPanel = styled.div` + border-bottom-left-radius: ${(props) => props.theme.borderRadius}; + border-bottom-right-radius: ${(props) => props.theme.borderRadius}; +`; + +export default AccordionItem; diff --git a/packages/lib/src/accordion/types.ts b/packages/lib/src/accordion/types.ts deleted file mode 100644 index cfa1c191dd..0000000000 --- a/packages/lib/src/accordion/types.ts +++ /dev/null @@ -1,52 +0,0 @@ -import { ReactNode } from "react"; -import { Margin, SVG, Space } from "../common/utils"; - -type Props = { - /** - * The panel label. - */ - label: string; - /** - * Initial state of the panel, only when it is uncontrolled. - */ - defaultIsExpanded?: boolean; - /** - * Represents the state of the panel. When true, the component will be - * expanded. If undefined, the component will be uncontrolled and its - * value will be managed internally by the component. - */ - isExpanded?: boolean; - /** - * Material Symbol name or SVG element used as the icon that will be placed next to panel label. - */ - icon?: string | SVG; - /** - * Assistive text to be placed on the right side of the panel. - */ - assistiveText?: string; - /** - * If true, the component will be disabled. - */ - disabled?: boolean; - /** - * This function will be called when the user clicks the accordion to expand or collapse - * the panel. The new state of the panel will be passed as a parameter. - */ - onChange?: (isExpanded: boolean) => void; - /** - * The expanded panel of the accordion. This area can be used to render - * custom content. - */ - children: ReactNode; - /** - * Size of the margin to be applied to the component ('xxsmall' | 'xsmall' | 'small' | 'medium' | 'large' | 'xlarge' | 'xxlarge'). - * You can pass an object with 'top', 'bottom', 'left' and 'right' properties in order to specify different margin sizes. - */ - margin?: Space | Margin; - /** - * Value of the tabindex attribute. - */ - tabIndex?: number; -}; - -export default Props; diff --git a/packages/lib/src/accordion/types.tsx b/packages/lib/src/accordion/types.tsx new file mode 100644 index 0000000000..647d24f182 --- /dev/null +++ b/packages/lib/src/accordion/types.tsx @@ -0,0 +1,152 @@ +import { ReactNode, ReactElement } from "react"; +import { Margin, SVG, Space } from "../common/utils"; + +type AssistiveTextProps = { + assistiveText: string; + statusLight?: never; + badge?: { + position: "before"; + element: ReactNode; + }; +}; + +type IconProps = { + icon: string | SVG; + badge?: never; + assistiveText?: never; + statusLight?: ReactNode; +}; + +type BadgeBeforeProps = { + badge: { position: "before"; element: ReactNode }; + assistiveText?: string; + statusLight?: ReactNode; + icon?: never; +}; + +type BadgeAfterProps = { + badge: { position: "after"; element: ReactNode }; + assistiveText?: never; + statusLight?: never; + icon?: never; +}; + +type NoBadgeProps = { + badge?: never; + assistiveText?: never; + statusLight?: ReactNode; + icon?: string | SVG; +}; + +type ValidCombinations = BadgeBeforeProps | BadgeAfterProps | NoBadgeProps | AssistiveTextProps | IconProps; + +export type AccordionItemProps = { + /** + * The panel label. + */ + label: string; + /** + * Additional info label positioned under the label. + */ + subLabel?: string; + /** + * Badge component to add extra value to the accordion. + */ + badge?: { + position: "before" | "after"; + element: ReactNode; + }; + /** + * Status light component to add extra value to the accordion. + */ + statusLight?: ReactNode; + /** + * Material Symbol name or SVG element used as the icon that will be + * placed next to panel label. When using Material Symbols, replace spaces with underscores. + * By default they are outlined if you want it to be filled + * prefix the symbol name with "filled_". + */ + icon?: string | SVG; + /** + * Assistive text to be placed on the right side of the panel. + */ + assistiveText?: string; + /** + * If true, the component will be disabled. + */ + disabled?: boolean; + /** + * The expanded panel of the accordion. This area can be used to render + * custom content. + */ + children: ReactNode; + /** + * Value of the tabindex attribute. + */ + tabIndex?: number; +} & ValidCombinations; + +type CommonProps = { + /** + * This function will be called when the user clicks on an accordion. The index of the clicked accordion will be passed as a parameter. + */ + onActiveChange?: (index: number | number[]) => void; + /** + * Size of the margin to be applied to the component ('xxsmall' | 'xsmall' | 'small' | 'medium' | 'large' | 'xlarge' | 'xxlarge'). + * You can pass an object with 'top', 'bottom', 'left' and 'right' properties in order to specify different margin sizes. + */ + margin?: Space | Margin; + /** + * Contains one or more accordion items. + */ + children: ReactElement<AccordionItemProps>[] | ReactElement<AccordionItemProps>; +}; + +type IndependentProps = CommonProps & { + /** + * When true, limits the user to single-open section at a time. When false, multiple sections can be opened simultaneously. + */ + independent?: true; + /** + * Initially active accordion, only when it is uncontrolled. + * If the accordion is not independent, several accordions can be actived + * by default. + */ + defaultIndexActive?: number; + /** + * The index of the active accordion. If undefined, the component will be uncontrolled and + * the active accordion will be managed internally by the component. If null, the component will be controlled and all accordions will be closed. + * If the accordion is not independent, several accordions can be actived. + */ + indexActive?: number; +}; + +type NonIndependentProps = CommonProps & { + /** + * When true, limits the user to single-open section at a time. When false, multiple sections can be opened simultaneously. + */ + independent?: false; + /** + * Initially active accordion, only when it is uncontrolled. + * If the accordion is not independent, several accordions can be actived + * by default. + */ + defaultIndexActive?: number[]; + /** + * The index of the active accordion. If undefined, the component will be uncontrolled and + * the active accordion will be managed internally by the component. If null, the component will be controlled and all accordions will be closed. + * If the accordion is not independent, several accordions can be actived. + */ + indexActive?: number[]; +}; + +type Props = IndependentProps | NonIndependentProps; + +export type AccordionContextProps = { + index: number; + activeIndex?: number | number[]; + handlerActiveChange?: (index: number | number[]) => void; + independent?: boolean; +}; + +export default Props; diff --git a/packages/lib/src/common/variables.ts b/packages/lib/src/common/variables.ts index a7349d1833..feb9a657c5 100644 --- a/packages/lib/src/common/variables.ts +++ b/packages/lib/src/common/variables.ts @@ -4,45 +4,43 @@ export const componentTokens = { accordion: { backgroundColor: CoreTokens.color_white, hoverBackgroundColor: CoreTokens.color_purple_100, + focusBackgroundColor: CoreTokens.color_transparent, + activeBackgroundColor: CoreTokens.color_purple_100, arrowColor: CoreTokens.color_purple_700, disabledArrowColor: CoreTokens.color_grey_500, + subLabelFontFamily: CoreTokens.type_sans, + subLabelFontSize: CoreTokens.type_scale_01, + subLabelFontWeight: CoreTokens.type_regular, + subLabelFontStyle: CoreTokens.type_normal, + subLabelFontColor: CoreTokens.color_grey_700, + disabledSubLabelFontColor: CoreTokens.color_grey_500, assistiveTextFontFamily: CoreTokens.type_sans, - assistiveTextFontSize: CoreTokens.type_scale_03, - assistiveTextFontWeight: CoreTokens.type_light, - assistiveTextFontStyle: CoreTokens.type_italic, - assistiveTextLetterSpacing: CoreTokens.type_spacing_wide_01, + assistiveTextFontSize: CoreTokens.type_scale_01, + assistiveTextFontWeight: CoreTokens.type_regular, + assistiveTextFontStyle: CoreTokens.type_normal, assistiveTextFontColor: CoreTokens.color_grey_700, disabledAssistiveTextFontColor: CoreTokens.color_grey_500, - assistiveTextMinWidth: "100px", - assistiveTextPaddingRight: CoreTokens.spacing_24, - assistiveTextPaddingLeft: CoreTokens.spacing_0, titleLabelFontFamily: CoreTokens.type_sans, titleLabelFontSize: CoreTokens.type_scale_03, titleLabelFontWeight: CoreTokens.type_regular, titleLabelFontStyle: CoreTokens.type_normal, - titleLabelFontColor: CoreTokens.color_black, + titleLabelFontColor: CoreTokens.color_grey_900, disabledTitleLabelFontColor: CoreTokens.color_grey_500, - titleLabelPaddingTop: CoreTokens.spacing_0, - titleLabelPaddingBottom: CoreTokens.spacing_0, - titleLabelPaddingLeft: CoreTokens.spacing_0, - titleLabelPaddingRight: CoreTokens.spacing_16, focusBorderColor: CoreTokens.color_blue_600, focusBorderStyle: CoreTokens.border_solid, focusBorderThickness: "2px", borderRadius: "4px", boxShadowOffsetX: "0px", - boxShadowOffsetY: "6px", - boxShadowBlur: "10px", + boxShadowOffsetY: "12px", + boxShadowBlur: "12px", + boxShadowSpread: "0px", boxShadowColor: CoreTokens.color_grey_200_a, iconColor: CoreTokens.color_purple_700, disabledIconColor: CoreTokens.color_grey_500, iconSize: "24px", - iconMarginLeft: CoreTokens.spacing_0, - iconMarginRight: CoreTokens.spacing_12, - accordionGroupSeparatorBorderColor: CoreTokens.color_grey_200_a, - accordionGroupSeparatorBorderThickness: "1px", - accordionGroupSeparatorBorderRadius: "0px", - accordionGroupSeparatorBorderStyle: CoreTokens.border_solid, + accordionSeparatorBorderColor: CoreTokens.color_grey_200, + accordionSeparatorBorderThickness: "1px", + accordionSeparatorBorderStyle: CoreTokens.border_solid, }, alert: { errorBackgroundColor: CoreTokens.color_red_100, @@ -63,7 +61,7 @@ export const componentTokens = { successIconColor: CoreTokens.color_green_700, warningBackgroundColor: CoreTokens.color_yellow_100, warningIconColor: CoreTokens.color_yellow_700, - }, + }, bulletedList: { fontColor: CoreTokens.color_black, bulletIconHeight: "1.5rem", @@ -1285,6 +1283,7 @@ export type OpinionatedTheme = { accordion: { accentColor: string; titleFontColor: string; + subLabelFontColor: string; assistiveTextFontColor: string; }; alert: { diff --git a/packages/lib/src/index.ts b/packages/lib/src/index.ts index fd0fc86ca5..b973d43510 100644 --- a/packages/lib/src/index.ts +++ b/packages/lib/src/index.ts @@ -2,7 +2,6 @@ import "./styles/fonts.css"; // import "./styles/variables.css"; export { default as DxcAccordion } from "./accordion/Accordion"; -export { default as DxcAccordionGroup } from "./accordion-group/AccordionGroup"; export { default as DxcAlert } from "./alert/Alert"; export { default as DxcApplicationLayout } from "./layout/ApplicationLayout"; export { default as DxcBadge } from "./badge/Badge"; From c892bc11b192e805e5eaa74513a1575be61f4845 Mon Sep 17 00:00:00 2001 From: Raquel Arrojo Lopez <rarrojolopez@dxc.com> Date: Thu, 13 Feb 2025 16:47:50 +0100 Subject: [PATCH 02/11] Change in border --- packages/lib/src/accordion/AccordionItem.tsx | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/packages/lib/src/accordion/AccordionItem.tsx b/packages/lib/src/accordion/AccordionItem.tsx index c5c4ef33a5..53f81a2213 100644 --- a/packages/lib/src/accordion/AccordionItem.tsx +++ b/packages/lib/src/accordion/AccordionItem.tsx @@ -117,16 +117,19 @@ const AccordionTrigger = styled.button` cursor: ${(props) => (props.disabled ? "not-allowed" : "pointer")}; :focus { background-color: ${(props) => `${props.theme.focusBackgroundColor}`}; - outline: ${(props) => - `${props.theme.focusBorderColor} ${props.theme.focusBorderStyle} ${props.theme.focusBorderThickness}`}; + box-shadow: inset 0 0 0 ${(props) => props.theme.focusBorderThickness} ${(props) => props.theme.focusBorderColor}; } - :hover:enabled { - background-color: ${(props) => `${props.theme.hoverBackgroundColor}`}; + :focus-visible { + background-color: ${(props) => `${props.theme.focusBackgroundColor}`}; + box-shadow: inset 0 0 0 ${(props) => props.theme.focusBorderThickness} ${(props) => props.theme.focusBorderColor}; + outline: none; } :active:enabled { background-color: ${(props) => `${props.theme.activeBackgroundColor}`}; - outline: ${(props) => - `${props.theme.focusBorderColor} ${props.theme.focusBorderStyle} ${props.theme.focusBorderThickness}`}; + box-shadow: inset 0 0 0 ${(props) => props.theme.focusBorderThickness} ${(props) => props.theme.focusBorderColor}; + } + :hover:enabled { + background-color: ${(props) => `${props.theme.hoverBackgroundColor}`}; } `; From ab83038ea800a446174fde9007df5c5d3a55f692 Mon Sep 17 00:00:00 2001 From: Raquel Arrojo Lopez <rarrojolopez@dxc.com> Date: Thu, 20 Feb 2025 12:19:25 +0100 Subject: [PATCH 03/11] Some accordion changes after review --- .../accordion/AccordionPageLayout.tsx | 7 +- .../accordion/code/AccordionCodePage.tsx | 260 +++++++++--------- .../code/examples/badgeStatusLight.ts | 1 - .../code/examples/disabledAccordions.ts | 2 - .../Accordion.accessibility.test.tsx | 8 +- packages/lib/src/accordion/Accordion.test.tsx | 10 +- packages/lib/src/accordion/AccordionItem.tsx | 12 +- .../lib/src/accordion/{types.tsx => types.ts} | 43 +-- .../lib/src/badge/{types.tsx => types.ts} | 0 9 files changed, 151 insertions(+), 192 deletions(-) rename packages/lib/src/accordion/{types.tsx => types.ts} (81%) rename packages/lib/src/badge/{types.tsx => types.ts} (100%) diff --git a/apps/website/screens/components/accordion/AccordionPageLayout.tsx b/apps/website/screens/components/accordion/AccordionPageLayout.tsx index f2645e7ef7..33e4d86743 100644 --- a/apps/website/screens/components/accordion/AccordionPageLayout.tsx +++ b/apps/website/screens/components/accordion/AccordionPageLayout.tsx @@ -17,9 +17,10 @@ const AccordionPageHeading = ({ children }: { children: ReactNode }) => { <DxcFlex direction="column" gap="2rem"> <ComponentHeading name="Accordion" /> <DxcParagraph> - Accordion are used to group related content into collapsible sections, allowing users to expand or hide - content based on their needs or preferences. It enhances the user experience by organizing information into - smaller, digestible chunks, helping reduce cognitive load and save screen space. + The accordion component is a vertical stack of interactive headers used to group related content into + collapsible sections, allowing users to expand or hide content based on their needs or preferences. It + enhances the user experience by organizing information into smaller, digestible chunks, helping reduce + cognitive load and save screen space. </DxcParagraph> <TabsPageHeading tabs={tabs}></TabsPageHeading> </DxcFlex> diff --git a/apps/website/screens/components/accordion/code/AccordionCodePage.tsx b/apps/website/screens/components/accordion/code/AccordionCodePage.tsx index aee5fa6ee8..2613b45fea 100644 --- a/apps/website/screens/components/accordion/code/AccordionCodePage.tsx +++ b/apps/website/screens/components/accordion/code/AccordionCodePage.tsx @@ -102,139 +102,137 @@ const sections = [ </tbody> </DxcTable> ), + }, + { + title: "DxcAccordion.AccordionItem", + content: <DxcParagraph>Accordion item, that composes the accordion component.</DxcParagraph>, subSections: [ { - title: "DxcAccordion.AccordionItem", - content: <DxcParagraph>Accordion item, that composes the accordion component.</DxcParagraph>, - subSections: [ - { - title: "Props", - content: ( - <DxcTable> - <thead> - <tr> - <th>Name</th> - <th>Type</th> - <th>Description</th> - <th>Default</th> - </tr> - </thead> - <tbody> - <tr> - <td> - <DxcFlex direction="column" gap="0.25rem" alignItems="baseline"> - <StatusBadge status="required" /> - label - </DxcFlex> - </td> - <td> - <TableCode>string</TableCode> - </td> - <td>The panel label.</td> - <td>-</td> - </tr> - <tr> - <td> - <DxcFlex direction="column" gap="0.25rem" alignItems="baseline"> - <StatusBadge status="new" /> - subLabel - </DxcFlex> - </td> - <td> - <TableCode>string</TableCode> - </td> - <td>Additional info label positioned under the label.</td> - <td>-</td> - </tr> - <tr> - <td> - <DxcFlex direction="column" gap="0.25rem" alignItems="baseline"> - <StatusBadge status="new" /> - badge - </DxcFlex> - </td> - <td> - <TableCode>{"{ position: 'before' | 'after'; element: ReactNode }"}</TableCode> - </td> - <td>Badge component to add extra value to the accordion.</td> - <td>-</td> - </tr> - <tr> - <td> - <DxcFlex direction="column" gap="0.25rem" alignItems="baseline"> - <StatusBadge status="new" /> - statusLight - </DxcFlex> - </td> - <td> - <TableCode>ReactNode</TableCode> - </td> - <td>Status light component to add extra value to the accordion.</td> - <td>-</td> - </tr> - <tr> - <td>icon</td> - <td> - <TableCode>string | {"(React.ReactNode & React.SVGProps <SVGSVGElement>)"}</TableCode> - </td> - <td> - <DxcLink newWindow href="https://fonts.google.com/icons"> - Material Symbol - </DxcLink>{" "} - name or SVG element as the icon that will be placed next to the panel label. When using Material - Symbols, replace spaces with underscores. By default they are outlined if you want it to be filled - prefix the symbol name with <TableCode>"filled_"</TableCode>. - </td> - <td>-</td> - </tr> - <tr> - <td>assistiveText</td> - <td> - <TableCode>string</TableCode> - </td> - <td>Assistive text to be placed on the right side of the panel.</td> - <td>-</td> - </tr> - <tr> - <td>disabled</td> - <td> - <TableCode>boolean</TableCode> - </td> - <td>If true, the component will be disabled.</td> - <td> - <TableCode>false</TableCode> - </td> - </tr> - <tr> - <td> - <DxcFlex direction="column" gap="0.25rem" alignItems="baseline"> - <StatusBadge status="required" /> - children - </DxcFlex> - </td> - <td> - <TableCode>ReactNode</TableCode> - </td> - <td>The expanded panel of the accordion. This area can be used to render custom content.</td> - <td>-</td> - </tr> - <tr> - <td>tabIndex</td> - <td> - <TableCode>number</TableCode> - </td> - <td> - Value of the <Code>tabindex</Code> attribute. - </td> - <td> - <TableCode>0</TableCode> - </td> - </tr> - </tbody> - </DxcTable> - ), - }, - ], + title: "Props", + content: ( + <DxcTable> + <thead> + <tr> + <th>Name</th> + <th>Type</th> + <th>Description</th> + <th>Default</th> + </tr> + </thead> + <tbody> + <tr> + <td> + <DxcFlex direction="column" gap="0.25rem" alignItems="baseline"> + <StatusBadge status="required" /> + label + </DxcFlex> + </td> + <td> + <TableCode>string</TableCode> + </td> + <td>The panel label.</td> + <td>-</td> + </tr> + <tr> + <td> + <DxcFlex direction="column" gap="0.25rem" alignItems="baseline"> + <StatusBadge status="new" /> + subLabel + </DxcFlex> + </td> + <td> + <TableCode>string</TableCode> + </td> + <td>Additional info label positioned under the label.</td> + <td>-</td> + </tr> + <tr> + <td> + <DxcFlex direction="column" gap="0.25rem" alignItems="baseline"> + <StatusBadge status="new" /> + badge + </DxcFlex> + </td> + <td> + <TableCode>{"{ position: 'before' | 'after'; element: ReactNode }"}</TableCode> + </td> + <td>Badge component to add extra value to the accordion.</td> + <td>-</td> + </tr> + <tr> + <td> + <DxcFlex direction="column" gap="0.25rem" alignItems="baseline"> + <StatusBadge status="new" /> + statusLight + </DxcFlex> + </td> + <td> + <TableCode>React.ReactNode</TableCode> + </td> + <td>Status light component to add extra value to the accordion.</td> + <td>-</td> + </tr> + <tr> + <td>icon</td> + <td> + <TableCode>string | {"(React.ReactNode & React.SVGProps <SVGSVGElement>)"}</TableCode> + </td> + <td> + <DxcLink newWindow href="https://fonts.google.com/icons"> + Material Symbol + </DxcLink>{" "} + name or SVG element as the icon that will be placed next to the panel label. When using Material + Symbols, replace spaces with underscores. By default they are outlined if you want it to be filled + prefix the symbol name with <TableCode>"filled_"</TableCode>. + </td> + <td>-</td> + </tr> + <tr> + <td>assistiveText</td> + <td> + <TableCode>string</TableCode> + </td> + <td>Assistive text to be placed on the right side of the panel.</td> + <td>-</td> + </tr> + <tr> + <td>disabled</td> + <td> + <TableCode>boolean</TableCode> + </td> + <td>If true, the component will be disabled.</td> + <td> + <TableCode>false</TableCode> + </td> + </tr> + <tr> + <td> + <DxcFlex direction="column" gap="0.25rem" alignItems="baseline"> + <StatusBadge status="required" /> + children + </DxcFlex> + </td> + <td> + <TableCode>React.ReactNode</TableCode> + </td> + <td>The expanded panel of the accordion. This area can be used to render custom content.</td> + <td>-</td> + </tr> + <tr> + <td>tabIndex</td> + <td> + <TableCode>number</TableCode> + </td> + <td> + Value of the <Code>tabindex</Code> attribute. + </td> + <td> + <TableCode>0</TableCode> + </td> + </tr> + </tbody> + </DxcTable> + ), }, ], }, diff --git a/apps/website/screens/components/accordion/code/examples/badgeStatusLight.ts b/apps/website/screens/components/accordion/code/examples/badgeStatusLight.ts index cb2dd6367a..7e0668bd36 100644 --- a/apps/website/screens/components/accordion/code/examples/badgeStatusLight.ts +++ b/apps/website/screens/components/accordion/code/examples/badgeStatusLight.ts @@ -7,7 +7,6 @@ const code = `() => { <DxcAccordion.AccordionItem label="GET request" subLabel="Jan, 20 2025" - assistiveText="Ref - 123645" badge={{ position: "before", element: <DxcBadge label="GET" color="green"/> }} statusLight={<DxcStatusLight label="Active" mode="success" />} > diff --git a/apps/website/screens/components/accordion/code/examples/disabledAccordions.ts b/apps/website/screens/components/accordion/code/examples/disabledAccordions.ts index 75d2aca8a1..8627adbf3f 100644 --- a/apps/website/screens/components/accordion/code/examples/disabledAccordions.ts +++ b/apps/website/screens/components/accordion/code/examples/disabledAccordions.ts @@ -19,7 +19,6 @@ const code = `() => { <DxcAccordion.AccordionItem label="Create a person" assistiveText="Provide all required info" - disabled badge={{ position: "before", element: <DxcBadge label="POST" color="blue" /> }} defaultIsExpanded > @@ -41,7 +40,6 @@ const code = `() => { <DxcAccordion.AccordionItem label="Delete a person" assistiveText="Deletion will be permanent" - disabled icon="delete" badge={{ position: "before", element: <DxcBadge label="DELETE" /> }} > diff --git a/packages/lib/src/accordion/Accordion.accessibility.test.tsx b/packages/lib/src/accordion/Accordion.accessibility.test.tsx index 1205297691..16f1a61cf2 100644 --- a/packages/lib/src/accordion/Accordion.accessibility.test.tsx +++ b/packages/lib/src/accordion/Accordion.accessibility.test.tsx @@ -25,7 +25,7 @@ const folderIcon = ( describe("Accordion component accessibility tests", () => { it("Should not have basic accessibility issues", async () => { const { container } = render( - <DxcAccordion defaultIndexActive={0}> + <DxcAccordion defaultIndexActive={0} independent={true}> <DxcAccordion.AccordionItem label="Assure Claims" subLabel="Jan, 09 2025" @@ -42,7 +42,7 @@ describe("Accordion component accessibility tests", () => { it("Should not have basic accessibility issues", async () => { const { container } = render( - <DxcAccordion defaultIndexActive={0}> + <DxcAccordion defaultIndexActive={0} independent={true}> <DxcAccordion.AccordionItem label="Assure Claims" subLabel="Jan, 09 2025" @@ -60,7 +60,7 @@ describe("Accordion component accessibility tests", () => { it("Should not have basic accessibility issues for disabled mode", async () => { const { container } = render( - <DxcAccordion defaultIndexActive={0}> + <DxcAccordion defaultIndexActive={0} independent={true}> <DxcAccordion.AccordionItem label="Assure Claims" subLabel="Jan, 09 2025" @@ -78,7 +78,7 @@ describe("Accordion component accessibility tests", () => { it("Should not have basic accessibility issues for disabled mode", async () => { const { container } = render( - <DxcAccordion defaultIndexActive={0}> + <DxcAccordion defaultIndexActive={0} independent={true}> <DxcAccordion.AccordionItem label="Assure Claims" subLabel="Jan, 09 2025" diff --git a/packages/lib/src/accordion/Accordion.test.tsx b/packages/lib/src/accordion/Accordion.test.tsx index a48adc631b..b6fba7be74 100644 --- a/packages/lib/src/accordion/Accordion.test.tsx +++ b/packages/lib/src/accordion/Accordion.test.tsx @@ -4,7 +4,7 @@ import DxcAccordion from "./Accordion"; describe("Accordion component tests", () => { test("Renders with correct aria accessibility attributes", () => { const { getByRole } = render( - <DxcAccordion defaultIndexActive={0}> + <DxcAccordion defaultIndexActive={0} independent={true}> <DxcAccordion.AccordionItem label="Accordion"> <div>test-expanded</div> </DxcAccordion.AccordionItem> @@ -51,7 +51,7 @@ describe("Accordion component tests", () => { test("Controlled accordion", () => { const onChange = jest.fn(); const { getByText, getByRole, rerender } = render( - <DxcAccordion onActiveChange={onChange} indexActive={0}> + <DxcAccordion onActiveChange={onChange} indexActive={0} independent={true}> <DxcAccordion.AccordionItem label="Accordion"> <div>test-expanded</div> </DxcAccordion.AccordionItem> @@ -60,7 +60,7 @@ describe("Accordion component tests", () => { expect(getByRole("button").getAttribute("aria-expanded")).toBe("true"); fireEvent.click(getByText("Accordion")); rerender( - <DxcAccordion onActiveChange={onChange} indexActive={-1}> + <DxcAccordion onActiveChange={onChange} indexActive={-1} independent={true}> <DxcAccordion.AccordionItem label="Accordion"> <div>test-expanded</div> </DxcAccordion.AccordionItem> @@ -69,7 +69,7 @@ describe("Accordion component tests", () => { expect(getByRole("button").getAttribute("aria-expanded")).toBe("false"); fireEvent.click(getByText("Accordion")); rerender( - <DxcAccordion onActiveChange={onChange} indexActive={0}> + <DxcAccordion onActiveChange={onChange} indexActive={0} independent={true}> <DxcAccordion.AccordionItem label="Accordion"> <div>test-expanded</div> </DxcAccordion.AccordionItem> @@ -108,7 +108,7 @@ describe("Accordion component tests", () => { }); test("Accordion item is disabled", () => { const { getByText, getByRole } = render( - <DxcAccordion defaultIndexActive={0}> + <DxcAccordion defaultIndexActive={0} independent={true}> <DxcAccordion.AccordionItem label="Accordion" disabled> <div>test-expanded</div> </DxcAccordion.AccordionItem> diff --git a/packages/lib/src/accordion/AccordionItem.tsx b/packages/lib/src/accordion/AccordionItem.tsx index 53f81a2213..38cfe2a31e 100644 --- a/packages/lib/src/accordion/AccordionItem.tsx +++ b/packages/lib/src/accordion/AccordionItem.tsx @@ -1,4 +1,4 @@ -import { ReactElement, useContext, useId } from "react"; +import { ReactElement, useContext, useId, cloneElement, useMemo } from "react"; import styled, { ThemeProvider } from "styled-components"; import HalstackContext from "../HalstackContext"; import { AccordionItemProps } from "./types"; @@ -22,9 +22,11 @@ const AccordionItem = ({ const id = useId(); const colorsTheme = useContext(HalstackContext); const { activeIndex, handlerActiveChange, index, independent } = useContext(AccordionContext) ?? {}; - const isItemExpanded = independent - ? activeIndex === index - : Array.isArray(activeIndex) && index !== undefined && activeIndex.includes(index); + const isItemExpanded = useMemo(() => { + return independent + ? activeIndex === index + : Array.isArray(activeIndex) && index !== undefined && activeIndex.includes(index); + }, [independent, activeIndex, index]); const handleAccordionState = () => { if (index !== undefined) handlerActiveChange?.(index); @@ -52,7 +54,7 @@ const AccordionItem = ({ )} {badge?.position === "before" && !icon && ( <StatusContainer subLabel={subLabel}> - {disabled ? React.cloneElement(badge.element as ReactElement, { color: "grey" }) : badge.element} + {disabled ? cloneElement(badge.element as ReactElement, { color: "grey" }) : badge.element} </StatusContainer> )} <LabelsContainer> diff --git a/packages/lib/src/accordion/types.tsx b/packages/lib/src/accordion/types.ts similarity index 81% rename from packages/lib/src/accordion/types.tsx rename to packages/lib/src/accordion/types.ts index 647d24f182..64c38f470a 100644 --- a/packages/lib/src/accordion/types.tsx +++ b/packages/lib/src/accordion/types.ts @@ -1,45 +1,6 @@ import { ReactNode, ReactElement } from "react"; import { Margin, SVG, Space } from "../common/utils"; -type AssistiveTextProps = { - assistiveText: string; - statusLight?: never; - badge?: { - position: "before"; - element: ReactNode; - }; -}; - -type IconProps = { - icon: string | SVG; - badge?: never; - assistiveText?: never; - statusLight?: ReactNode; -}; - -type BadgeBeforeProps = { - badge: { position: "before"; element: ReactNode }; - assistiveText?: string; - statusLight?: ReactNode; - icon?: never; -}; - -type BadgeAfterProps = { - badge: { position: "after"; element: ReactNode }; - assistiveText?: never; - statusLight?: never; - icon?: never; -}; - -type NoBadgeProps = { - badge?: never; - assistiveText?: never; - statusLight?: ReactNode; - icon?: string | SVG; -}; - -type ValidCombinations = BadgeBeforeProps | BadgeAfterProps | NoBadgeProps | AssistiveTextProps | IconProps; - export type AccordionItemProps = { /** * The panel label. @@ -84,7 +45,7 @@ export type AccordionItemProps = { * Value of the tabindex attribute. */ tabIndex?: number; -} & ValidCombinations; +}; type CommonProps = { /** @@ -106,7 +67,7 @@ type IndependentProps = CommonProps & { /** * When true, limits the user to single-open section at a time. When false, multiple sections can be opened simultaneously. */ - independent?: true; + independent: true; /** * Initially active accordion, only when it is uncontrolled. * If the accordion is not independent, several accordions can be actived diff --git a/packages/lib/src/badge/types.tsx b/packages/lib/src/badge/types.ts similarity index 100% rename from packages/lib/src/badge/types.tsx rename to packages/lib/src/badge/types.ts From abfb8a0dd6622268e95096a6189b1d16012b971e Mon Sep 17 00:00:00 2001 From: Raquel Arrojo Lopez <rarrojolopez@dxc.com> Date: Thu, 20 Feb 2025 14:42:47 +0100 Subject: [PATCH 04/11] Several Accordion changes after review --- .../components/accordion/code/AccordionCodePage.tsx | 5 +++-- packages/lib/src/accordion/Accordion.test.tsx | 2 +- packages/lib/src/accordion/Accordion.tsx | 7 ++++++- packages/lib/src/accordion/types.ts | 12 ++++++++---- 4 files changed, 18 insertions(+), 8 deletions(-) diff --git a/apps/website/screens/components/accordion/code/AccordionCodePage.tsx b/apps/website/screens/components/accordion/code/AccordionCodePage.tsx index 2613b45fea..000245f0ae 100644 --- a/apps/website/screens/components/accordion/code/AccordionCodePage.tsx +++ b/apps/website/screens/components/accordion/code/AccordionCodePage.tsx @@ -48,7 +48,7 @@ const sections = [ </td> <td> Initially active accordion, only when it is uncontrolled. If the accordion is not independent, several - accordions can be actived by default. + accordions can be activated by default. </td> <td>-</td> </tr> @@ -60,7 +60,8 @@ const sections = [ <td> The index of the active accordion. If undefined, the component will be uncontrolled and the active accordion will be managed internally by the component. If null, the component will be controlled and all - accordions will be closed. If the accordion is not independent, several accordions can be actived. + accordions will be closed. If the accordion is not independent, several accordions can be activated by + default. </td> <td>-</td> </tr> diff --git a/packages/lib/src/accordion/Accordion.test.tsx b/packages/lib/src/accordion/Accordion.test.tsx index b6fba7be74..762f1ffa64 100644 --- a/packages/lib/src/accordion/Accordion.test.tsx +++ b/packages/lib/src/accordion/Accordion.test.tsx @@ -39,7 +39,7 @@ describe("Accordion component tests", () => { test("Calls correct function on click", () => { const onChange = jest.fn(); const { getByText } = render( - <DxcAccordion onActiveChange={onChange}> + <DxcAccordion onActiveChange={onChange} independent={true}> <DxcAccordion.AccordionItem label="Accordion"> <div>test-expanded</div> </DxcAccordion.AccordionItem> diff --git a/packages/lib/src/accordion/Accordion.tsx b/packages/lib/src/accordion/Accordion.tsx index 7f71e740a8..3c3614d0a2 100644 --- a/packages/lib/src/accordion/Accordion.tsx +++ b/packages/lib/src/accordion/Accordion.tsx @@ -43,7 +43,12 @@ const DxcAccordion = ({ } }); } - onActiveChange?.(index); + + if (independent && typeof index === "number") { + (onActiveChange as (index: number) => void)?.(index); + } else if (!independent && Array.isArray(index)) { + (onActiveChange as (index: number[]) => void)?.(index); + } }, [indexActive, onActiveChange, independent, innerIndexActive] ); diff --git a/packages/lib/src/accordion/types.ts b/packages/lib/src/accordion/types.ts index 64c38f470a..e9e71b998d 100644 --- a/packages/lib/src/accordion/types.ts +++ b/packages/lib/src/accordion/types.ts @@ -48,10 +48,6 @@ export type AccordionItemProps = { }; type CommonProps = { - /** - * This function will be called when the user clicks on an accordion. The index of the clicked accordion will be passed as a parameter. - */ - onActiveChange?: (index: number | number[]) => void; /** * Size of the margin to be applied to the component ('xxsmall' | 'xsmall' | 'small' | 'medium' | 'large' | 'xlarge' | 'xxlarge'). * You can pass an object with 'top', 'bottom', 'left' and 'right' properties in order to specify different margin sizes. @@ -80,6 +76,10 @@ type IndependentProps = CommonProps & { * If the accordion is not independent, several accordions can be actived. */ indexActive?: number; + /** + * This function will be called when the user clicks on an accordion. The index of the clicked accordion will be passed as a parameter. + */ + onActiveChange?: (index: number) => void; }; type NonIndependentProps = CommonProps & { @@ -99,6 +99,10 @@ type NonIndependentProps = CommonProps & { * If the accordion is not independent, several accordions can be actived. */ indexActive?: number[]; + /** + * This function will be called when the user clicks on an accordion. The index of the clicked accordion will be passed as a parameter. + */ + onActiveChange?: (index: number[]) => void; }; type Props = IndependentProps | NonIndependentProps; From b35352f1c7e824eaaabefde334bcf57651c7197c Mon Sep 17 00:00:00 2001 From: Raquel Arrojo Lopez <rarrojolopez@dxc.com> Date: Thu, 20 Feb 2025 16:26:37 +0100 Subject: [PATCH 05/11] Accordion change after review --- .../accordion/code/examples/controlled.ts | 2 +- .../accordion/code/examples/uncontrolled.ts | 2 +- packages/lib/src/accordion/Accordion.tsx | 61 ++++++------------- 3 files changed, 22 insertions(+), 43 deletions(-) diff --git a/apps/website/screens/components/accordion/code/examples/controlled.ts b/apps/website/screens/components/accordion/code/examples/controlled.ts index b0c37db497..67fffb686b 100644 --- a/apps/website/screens/components/accordion/code/examples/controlled.ts +++ b/apps/website/screens/components/accordion/code/examples/controlled.ts @@ -10,7 +10,7 @@ const code = `() => { return ( <DxcInset space="2rem"> <DxcAccordion indexActive={indexAccordion} - onActiveChange={onActiveChange}> + onActiveChange={onActiveChange} independent={true}> <DxcAccordion.AccordionItem label="How to edit your profile?" > diff --git a/apps/website/screens/components/accordion/code/examples/uncontrolled.ts b/apps/website/screens/components/accordion/code/examples/uncontrolled.ts index 29f31f137d..c9b9fc4928 100644 --- a/apps/website/screens/components/accordion/code/examples/uncontrolled.ts +++ b/apps/website/screens/components/accordion/code/examples/uncontrolled.ts @@ -4,7 +4,7 @@ import { useState } from "react"; const code = `() => { return ( <DxcInset space="2rem"> - <DxcAccordion defaultIndexActive={0}> + <DxcAccordion defaultIndexActive={0} independent={true}> <DxcAccordion.AccordionItem label="How to edit your profile?"> <DxcInset space="1.5rem"> To edit your profile you need to go to Settings and click on Profile. diff --git a/packages/lib/src/accordion/Accordion.tsx b/packages/lib/src/accordion/Accordion.tsx index 3c3614d0a2..180777ce19 100644 --- a/packages/lib/src/accordion/Accordion.tsx +++ b/packages/lib/src/accordion/Accordion.tsx @@ -7,66 +7,45 @@ import AccordionContext from "./AccordionContext"; import HalstackContext from "../HalstackContext"; import AccordionItem from "./AccordionItem"; -const DxcAccordion = ({ - independent = false, - defaultIndexActive, - indexActive, - onActiveChange, - margin, - children, -}: AccordionPropsType): JSX.Element => { +const DxcAccordion = (props: AccordionPropsType): JSX.Element => { + const { children, margin, onActiveChange } = props; const colorsTheme = useContext(HalstackContext); const [innerIndexActive, setInnerIndexActive] = useState( - independent - ? (defaultIndexActive ?? -1) - : Array.isArray(defaultIndexActive) - ? defaultIndexActive.filter((i) => i !== undefined) - : defaultIndexActive !== undefined - ? [defaultIndexActive] - : [] + props.independent + ? (props.defaultIndexActive ?? -1) + : Array.isArray(props.defaultIndexActive) + ? props.defaultIndexActive.filter((i) => i !== undefined) + : [] ); const handlerActiveChange = useCallback( (index: number | number[]) => { - if (indexActive == null) { + if (props.indexActive == null) { setInnerIndexActive((prev) => { - if (independent) { - return typeof index === "number" ? (index === prev ? -1 : index) : prev; - } else { + if (props.independent) return typeof index === "number" ? (index === prev ? -1 : index) : prev; + else { const prevArray = Array.isArray(prev) ? prev : []; - if (Array.isArray(index)) { - return index; - } else { - return prevArray.includes(index) ? prevArray.filter((i) => i !== index) : [...prevArray, index]; - } + return Array.isArray(index) + ? index + : prevArray.includes(index) + ? prevArray.filter((i) => i !== index) + : [...prevArray, index]; } }); } - - if (independent && typeof index === "number") { - (onActiveChange as (index: number) => void)?.(index); - } else if (!independent && Array.isArray(index)) { - (onActiveChange as (index: number[]) => void)?.(index); - } + onActiveChange?.(index as number & number[]); }, - [indexActive, onActiveChange, independent, innerIndexActive] + [props.indexActive, props.independent, onActiveChange, innerIndexActive] ); const contextValue = useMemo( () => ({ - activeIndex: - indexActive != null - ? independent - ? indexActive - : Array.isArray(indexActive) - ? indexActive - : [indexActive] - : innerIndexActive, + activeIndex: props.indexActive ?? innerIndexActive, handlerActiveChange, - independent, + independent: props.independent, }), - [indexActive, innerIndexActive, handlerActiveChange, independent] + [props.indexActive, innerIndexActive, handlerActiveChange, props.independent] ); return ( From e2086fdf3ac9ee7e8c2fb84c5d5e6bacfe0f32f9 Mon Sep 17 00:00:00 2001 From: Raquel Arrojo Lopez <rarrojolopez@dxc.com> Date: Mon, 24 Feb 2025 08:22:30 +0100 Subject: [PATCH 06/11] Change based on Accordion review --- .../lib/src/accordion/Accordion.stories.tsx | 46 +++++++++++++++++-- packages/lib/src/accordion/AccordionItem.tsx | 31 ++++++++----- 2 files changed, 60 insertions(+), 17 deletions(-) diff --git a/packages/lib/src/accordion/Accordion.stories.tsx b/packages/lib/src/accordion/Accordion.stories.tsx index 8490cd25c5..cb16d8150d 100644 --- a/packages/lib/src/accordion/Accordion.stories.tsx +++ b/packages/lib/src/accordion/Accordion.stories.tsx @@ -280,12 +280,48 @@ const Accordion = () => ( </DxcAccordion> </ExampleContainer> <ExampleContainer> - <Title title="Large label, large sublabel and large assistive text" theme="light" level={4} /> + <Title title="Long badge, long label, long sublabel and long assistive text" theme="light" level={4} /> <DxcAccordion> <DxcAccordion.AccordionItem label="Assure Claims Assure Claims Assure Claims Assure Claims Assure Claims Assure Claims Assure Claims Assure Claims Assure Claims Assure Claims Assure Claims Assure Claims Assure Claims Assure ClaimsAssure Claims" - subLabel="Jan, 09 2025 ahwdñuaehf ñaiugfiuweg fñuigwfñiugeq fñuigwfñiugeq fñuian, 09 2025 gwfñiugeq ug auñhwd qfuwuefiuegfue giugfuan, 09 2025 gfñeuiwg qiuwgfifgew iwqgfulyqf iugqwydyg wdhdhd uwgdhgd yd ydyd yd yddy afdkawlywdg lyugwaluyd " + subLabel="Jan, 09 2025 Jan, 09 2025 Jan, 09 2025 Jan, 09 2025 Jan, 09 2025 Jan, 09 2025 Jan, 09 2025 Jan, 09 2025 Jan, 09 2025 Jan, 09 2025 Jan, 09 2025 Jan, 09 2025 Jan, 09 2025 Jan, 09 2025 Jan, 09 2025 Jan, 09 2025 Jan, 09 2025" assistiveText="Assistive text Assistive text Assistive text Assistive text Assistive text Assistive text Assistive text Assistive text Assistive text Assistive text Assistive text Assistive text Assistive text " + badge={{ + position: "before", + element: ( + <DxcBadge label="Long long long long long long long long long longlong long long long long long long longlong long long long long long long long text" /> + ), + }} + > + <DxcInset space="1.5rem"> + Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse malesuada lacus ex, sit amet blandit + leo lobortis eget. + </DxcInset> + </DxcAccordion.AccordionItem> + </DxcAccordion> + </ExampleContainer> + <ExampleContainer> + <Title title="Long label, long sublabel" theme="light" level={4} /> + <DxcAccordion> + <DxcAccordion.AccordionItem + label="Assure Claims Assure Claims Assure Assure Claims Assure Claims Assure Claims Assure Claims Assure Claims Assure Claims Assure Claims Assure Claims Assure Claims Assure Claims Assure Claims " + subLabel="Jan, 09 2025 Jan, 09 2025 Jan, 09 2025 Jan, 09 2025 Jan, 09 2025 Jan, 09 2025 Jan, 09 2025 Jan, 09 2025 Jan, 09 2025 Jan, 09 2025 Jan, 09 2025 Jan, 09 2025 Jan, 09 2025 Jan, 09 2025 Jan, 09 2025 Jan, 09 2025 Jan, 09 2025 Jan, 09 2025 Jan, 09 2025 Jan, 09 2025 Jan, 09 2025" + icon="heart_plus" + > + <DxcInset space="1.5rem"> + Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse malesuada lacus ex, sit amet blandit + leo lobortis eget. + </DxcInset> + </DxcAccordion.AccordionItem> + </DxcAccordion> + </ExampleContainer> + <ExampleContainer> + <Title title="Long label, long sublabel and short assistive text" theme="light" level={4} /> + <DxcAccordion> + <DxcAccordion.AccordionItem + label="Assure Claims Assure Claims Assure Assure Claims Assure Claims Assure Claims Assure Claims Assure Claims Assure Claims Assure Claims Assure Claims Assure Claims Assure Claims Assure Claims " + subLabel="Jan, 09 2025 Jan, 09 2025 Jan, 09 2025 Jan, 09 2025 Jan, 09 2025 Jan, 09 2025 Jan, 09 2025 Jan, 09 2025 Jan, 09 2025 Jan, 09 2025 Jan, 09 2025 Jan, 09 2025 Jan, 09 2025 Jan, 09 2025 Jan, 09 2025 Jan, 09 2025 Jan, 09 2025 Jan, 09 2025 Jan, 09 2025 Jan, 09 2025 Jan, 09 2025" + assistiveText="Assistive text Assistive text" icon="heart_plus" > <DxcInset space="1.5rem"> @@ -296,12 +332,12 @@ const Accordion = () => ( </DxcAccordion> </ExampleContainer> <ExampleContainer> - <Title title="Large label, large sublabel and large assistive text" theme="light" level={4} /> + <Title title="Short label, long sublabel and long assistive text" theme="light" level={4} /> <DxcAccordion> <DxcAccordion.AccordionItem - label="Assure Claims Assure Claims Assure Assure Claims Assure Claims " + label="Assure Claim" subLabel="Jan, 09 2025" - assistiveText="Assistive text Assistive text Assistive text " + assistiveText="Assistive text Assistive text Assistive text Assistive text Assistive text Assistive text Assistive text Assistive text Assistive text Assistive text Assistive text Assistive text Assistive text Assistive text" icon="heart_plus" > <DxcInset space="1.5rem"> diff --git a/packages/lib/src/accordion/AccordionItem.tsx b/packages/lib/src/accordion/AccordionItem.tsx index 38cfe2a31e..8b5b8b2dcd 100644 --- a/packages/lib/src/accordion/AccordionItem.tsx +++ b/packages/lib/src/accordion/AccordionItem.tsx @@ -47,16 +47,18 @@ const AccordionItem = ({ <DxcFlex gap="1.5rem"> <LeftSideContainer> <DxcFlex gap="0.75rem"> - {icon && ( - <IconContainer disabled={disabled}> - {typeof icon === "string" ? <DxcIcon icon={icon} /> : icon} - </IconContainer> - )} - {badge?.position === "before" && !icon && ( - <StatusContainer subLabel={subLabel}> - {disabled ? cloneElement(badge.element as ReactElement, { color: "grey" }) : badge.element} - </StatusContainer> - )} + <OptionalElement> + {icon && ( + <IconContainer disabled={disabled}> + {typeof icon === "string" ? <DxcIcon icon={icon} /> : icon} + </IconContainer> + )} + {badge?.position === "before" && !icon && ( + <StatusContainer subLabel={subLabel}> + {disabled ? cloneElement(badge.element as ReactElement, { color: "grey" }) : badge.element} + </StatusContainer> + )} + </OptionalElement> <LabelsContainer> <AccordionLabel disabled={disabled}>{label}</AccordionLabel> {subLabel && <SubLabel disabled={disabled}>{subLabel}</SubLabel>} @@ -134,7 +136,6 @@ const AccordionTrigger = styled.button` background-color: ${(props) => `${props.theme.hoverBackgroundColor}`}; } `; - const LeftSideContainer = styled.div` flex: 1; overflow: hidden; @@ -142,10 +143,16 @@ const LeftSideContainer = styled.div` const RightSideContainer = styled.div` display: flex; - flex: 1; overflow: hidden; justify-content: flex-end; gap: 0.5rem; + max-width: 30%; + flex-shrink: 0; +`; + +const OptionalElement = styled.div` + max-width: 30%; + overflow: hidden; `; const LabelsContainer = styled.div` From ae3f13732cf2190bb0b25db6db69f1d45f57526f Mon Sep 17 00:00:00 2001 From: Raquel Arrojo Lopez <rarrojolopez@dxc.com> Date: Mon, 24 Feb 2025 09:56:52 +0100 Subject: [PATCH 07/11] Change accordion image --- .../usage/images/accordion_elements.png | Bin 9338 -> 9357 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/apps/website/screens/components/accordion/usage/images/accordion_elements.png b/apps/website/screens/components/accordion/usage/images/accordion_elements.png index 6b9aed2c0c5be2507c88f9f4e36beea3c736c5fe..b508c9908bee9caefce6381bf7be3495a40de479 100644 GIT binary patch delta 6469 zcmbt&c{o&k*uR-5iidbwEQK(XqU<|G#*p10*|JUyk}YHoJ(iTQ3@ZDYeV>esES1Q< z&Dgi>#?IIozsd9b-s}DUJ%5}(&UIhsKKFfpmiv4UG|;f<AYd1!cHihFXeC9t$lk=O zNzsi}p+DlC#Gos0oXP`(K(2HUuYdvT%@`pAJvDHg&|8flgJ4L!u-bVRh#t#L4W2iT zVl?OzHDWLt`+REWg2Z;Z^<IXuD~pG^&0*`YgNLIYtG>H+%DbZzF_n+~SKNwgch|Uf z9<Oz#NDt`f>I!pDzowz(p#jmW(12M2X=rhL&nr?GFa7UFJnPXkbP`=4>~q>E5O$Q7 z@84VODD4SQ#uk)T?|!q5bFRxpzBIYg+0o@r-qc`tapK}&utq-=u3PEcsqIZPsnH?q z#cHCMKcSzZYp~vS3{ip}+MGRts$?%AoO+?f&yD6^3wak47_HzC-IX10J`L&62X==} z-)G5)wOu`Bj{2}fSMuiJ+ec#&O=X5-lmb<BiV;Ax5;p=GS&jV7tf09osFDTozxh<9 zW_I<4uU_PDRL!C=3Mixo>;9h;{qH>Gyk&6>m3@7EpY8z*yn4DN+7j8--Ydg7`uhSh zva<R4*`*fEkf^X^tem)3GQ%jO{$~Qdb1H-0(tkyAC_zVkx(8vQTIqaCa6=6jFZhge zR*hA-c5`@G`5GcX+(i3hMvuY^DP-1%4E@T)%ubBLy`u6#{ob};@Oby(yacFXtx84H zkZ01((G_4IJ&#hiTOMGY6_fr{2A?_;lfl@VSFGb-(8uPIFfsMW!f`{7wxi@y@5}7= z?;JHbn3P52)=|_{!CgTbzq}ig@QGHAFX$YS{jT%X+BIzg!a7TTt}TF~t?Giki)R_c zG?XIqRnG>otXCI#K%3J<{z{MjM#TvaO^_<@IxyKYYhrqm^*v+xwU^~((D{Y78$k3{ zj^|F;xq(tE<zFskh*M<A_<>O&i_9tz3ggTIFUXn?RClKKBGVZrP{I6JdW(N!5a5!G zEnf2dwUD1ycd75Xa2B=Rw<zdk(tEC+P3m8aLUmP$9!l5c{I1fNsssXHKTuIte2xt+ zX0-?Wbovj1dCDMQ3i6H5XyWRk?^?*3N}BX<$(dc|g>AcxP|F_y_RN2xB2xn`9Z^}; zmzaU9>4k4J)}b_MDqS=-gS4LM3x1xRUs3%kXHOZy^L&B!$g)qwK&4rRTwG4^5KsXH zl)N;-jLyFUD8X8XF&zWxCNHdp&YqG+VdtZz6aLY6qPV0)*U#J3G9IhZ|9^s+3W9(K zGqo){+*KtWh09K*v_k2-Z#~d0B<3k41j!xSbPX%`Z!>OyQTh9-2+QYC&uO2LTXbaC zqevbz<w)lba)zVBGOq)$59w6^DrrrXLA8V<=~rLj0C?rf#DR3zUp_o4pxQHEr|Gw& zrng^}&&zmsiSYjEpY<&5<`8x#|B87XbM2-Jwswqu-Fex2+K0A>a^L)%rV}DXRBJcj zr1Kw>)jEoa#QUbqFdAB8)ya({L1|Zui2!+@Rpl@KX?*rR(ZcP|w}7UWV$OGI_i6_= zBjsgf-F-ql2YV^>>kMRyX^BK^=S6M-DPz1Aj_y=npqeUf(rcrkR=&{I*Dh|_fnYyp zqvl%#=2?8jA(zC4^?w@l*9VnxXVe7IWc;`5+xRqTP~CU;@nDnqiDu2tMEDB2<20^8 zpS2rS*s&&ADHR+fb|91%LYFkhwm?@FX`Co7AlTNEY5hNV@GH$X_O9l#)#kJlomUG4 zA0#)F2)Zbmi`bj^tko5rh}g&0pT7#YLcy;>Y@vbBi>cy2YZQO9yf|zYJ)W;W84xOR zoY)%YrYxMZqEH{L<fhhmZM9f#4T-**`!pgNa8TW~qx$l{G1stA$3{A+dM-52Zs}c9 z6g>Fj1{E`=yGt*O3sw1{5z9wqb;nMWHK_7lzYk@|FTU;ILRUQncwbdr2tMc>llN(L zY&TFkOx;Ca?i=ZP!}>1}%a}k{T5qPfAlcr`ePqy6;ocgXa9S%#wNS~$=qT30-!@<O z-x*swUa3-c-mp5}PE$T6^ram&=CU3x*G%M|^d661p{z=eZ-|^<pgAS+^JH4o=G2&= z>oEx}H~|pcPAF}q<24=!&RwI+VV#q(?N`SKKPGsKOA1Ni**9i1=&4y-&`O6=77~X- zJ&s-Z*<GpS?~Yb?Df3Sz_CM&Nrrca7P#a4VM+Hh~%JNoPwbxRMPu;P!GC63%dFDWg zJYcmq%nXnN_P6hQi6Y3Jr?{MCVaW4C0TkN_)KrUf!15M1!U+NI>H>~Nb}f~T2e-IK zwV1{}v=O?)_S(&768E)&ufPs@=3o3Q+F_g+9enXabPUyFwchO`%e6@`>{8gC%Y~~- zvl~4H$f8P{)Sm2O*L+XpCpJU^jE~V*>V^>u5B?ZlgA@JH$u6*Y)Lidz0?hU;{~}_K zHkNG&y+hnrWuI)XVbTUGStr>RD#wQcR@;={9NNhah|d<g`HpZOe+xTVOtLzjRz6xc zbVKD#{P<A6`6)@-?GGAimB?Gol;6TuN8RUu4{QG9qV+$hl|g_H5RbX<E~z30x+z?8 zL@ac7bHhVu(LT5SKJZcGEG>k7J^fL`(*-Z^eujD2yAqG$jNFVRQ9ep%&BRG>loc6p z3s@Q<XKb&Gh-yRcoj+w(m<A8L!g(RginO=)!%vP<i_~1Jobe^U=frQ=s-*Ka2zE2E z;O~IaZi^&33yhIOvP(;qmg+@;*>_&JR~uP!<$uNis94j{nhPI#EX<=$=vEN*M30AY z(iUDes@8EdbY!8+$$Ye%9@P<T2P|e*#64^jMF4PrKC?6VXN4#;0Ox0HGmw3ax_q<t zSKhB`x>pn*vrGze9sd4uaC_ThL2I<Aj{lfCi!}j}!2EybKE?3G71idZSXpXSa}U7N z#dqS5>Nqb=2CGn!c8;z|CWs;t<7kd&E(Nxlq%HS`5fxEKEor1(uNi5#1(V^~2}gF~ zbnvMkd9l1SRRt(#oOWxj#kW=3l<c4cZ;Z6kuV0FcAM5rQ?fl6lT;)1$5MKlg9ZpcD zt<q3i;vMyq$DLL6TJ<7k^}xGn58#B|4SoW?FtH%hT%+UkM~j^WC%eM0_xF6*rTbYa zZuy&1l9KvY{S)_)Lt8C*w)KR}{*$+F%`BpnDSK#6X<XNT@`<apJbB+bR^vnFT#`CQ z;YXBF`a=-fk**Lboxj`#M@=YHyD$B&C*!8Q<|+Tw>|O!5Zp!OG_dplF_)gFCqv^T^ zYyEeP=ohO777YYej6+M#3`=U&z68Gl2W+$_xTgk^=CnUy|A7Kp<X4t|pL*Y^$UB1n z?w03Mcul*1e^eb0E%U<BpQ6MWk}ho)kPr9o7;$iuXPXqgxEire&${=7YdA0BGqenF z`!7&fu;GI1tn}U}4hjlzMVNf}nAT?Eqcz0x$M$Un^{iZoO5P&NKqM6vT)a)(7uU-( z(+ILwFK?VGpmjX$QEpM;C`Zz;{2!n9$rgT;m-)EfSCun%WAfWS;>&u#8cGz{rZ5_^ zfkE^|QGuwA@0k<8=Q1VmGNPWA)U5hS=d%^gxuZ$2+qo7yUn!b$n@eP#?!(v9Dxdq( z9(ixgcfaBY@ZJ4=*C8iRDdNyGys&8YMWv`a>=Dyxxh#Vhg8pvx`?euVwv4_GV?DpX zSKZ?{k@Htv@=eN(FubEKl>gMSRVHs;{3YKh36SAt9M08vswtPQ)>g|2ZzW*(=18|A z;!h2ShIZ#+U{u)7!_BLkR2lqXG5##-Sa)V~IWETf)UyK{h&<`iiB?WVT_)3^T<y1n z(wXOsEmj|RG$PoO#Xk6pe!O<7<U0>l+$1b~o2x&1*OcD;h1H}Etnh0wa5xdyc}2jh z=49FK6w)Aib5>A%n{Q3^$GYs0yDPjG(*u>VYrJkcca&!i>FQVl)&*Mz#y_+Foqf<4 z1A#foeqeRArKQXUe586yxUTweVmR_7xs`H7P5r-*{EL>l_+MJl4IvCihiUqq%Y$BQ z73_w(CjmaAGg)aZ+?1c+u9nsvkd6;`eI9Aa{MRE^hJ}aknL~}_=CApLYuS)g|ENmX zi(C<x6gfT5y1lR$LzZC?X%up<^5IZd>dUF{CF%+|JoWMFf9{nWIPSc=I_5tcZ$c)j z4Rp9#sEc+%8+-l~g@01#`Gd34Gjio0b>*5Rn%;ZaTF(>{jX8$ok|b``bS}l}v#wv- zssau`3M}-Xv`M*qua<s+>2Lp>!y2>w1p+Sj2ntd>j4C(hU$C0dBdLB{8_r0vx{-cH z<6MI1NWhYQ*dn9B?gs+}(y#mshLaqX5SibIm$7BAif0B;Ur#f`_zv?VyyR1CYOs-Z z@;wrwQXp^4Nf39B1C3`zs*3qKg*rW%4EAFl(jWw1gaqIqt*^B!NTuGF``xe~0Q-9# zgd{xnK>Ia{<dBjC7BDO_V~{GoMS-;Bz>0SlKIhyLZ~LszCba~!CN{EXMH)YOJzVT< z!<p5SC;Ux{KQ`AP4@al-Ym3`lYwcyU>v<yw)$zF!Nf^c)##Lf0U5L{j;4GI(`W~pF z8VJUN9{41y+)4MkE=k1N%(#yL+;Xyer2FrmO)cARkZpWf7kYA%qQiTX0JM{ON<EIX zCMhpR`0q`LPHIw2V_sIpirc!eHd9=&$!j-Frt&&mc*XB<R*Y*zL8;ErxSOH6Onkhg z6z)tP`X0&Wx^CP<h?+VrkzHOk*S^PuublX7WGP0mpv62%T{sh8NeehMC1wmK<y>bf z(izISno<_&haWaG{E;N!D~iT?7ZxKs;81)2&pLv-ME+5m)DxQUi{|Qth6p4<1F1~n zymOKV@o?eT7V~?okWlWBx090(J+p27s}vS6i=A&;Gku1kJp*Q<ZqsM!$1Z}Eei7z0 z74N8iuu+J!_6i^m0(wcj?Au0fE6x|BFoqYT1~=;=FA<E0#!|&!MJmp=_Umm*jNw`5 zBbvvCr7n2fs+6ow*|ht7K5^zf{1ej3OT;%Zc*8XLbBtuDT|d8zn+&|8C|W-u#fc3= z*Ep^37>(tC$KEWc>za!W_f?E*C;lR6V^Eh%zg0v)Jd|tVfS8uZUiJeic2>9|LsU#M zu`d@cl?vEi6k-SWUiB_uY8iii))^@u<z`HVP2J4=9Mhk5teM;)HvdT2G38#qjnSu+ zmbna}!WhZH1paWescN}+Vmm{Gy1HFOR?%xGLDkFx!Qb~VSU;x+vpw)O`yu>H+@sK8 zD68iDTPFWtfU3mwf14|UuBlf`6quCa#g;t>uFI!<gJN8wTG<lf<;rHl>qBL_E1K4# z>5JS4G#NbiCE_x8bz}57&3x-=7WuTSF#||%sYD@hQnY7^`B<W6r{|JhrV}PHLj*qM z$*CP{o&_^?aqQOf8a7@EvCrGcUXpYp4ZCT_>RAA2hkQ$Q;!7jc#ACs5CC$Sm{kEBQ zaN-ez?ss~HnP9Jw9scey)Qt-Sh*T?OV@uCvNsRTQMWgKxRLH{A{uMTN`kjVw=xe9k zCn-3hj^jHOF^eSp&XX*hNSFR*qXsLxe(U7^+C7eEZ$b=SYDS;b(4{kme0jp;m=)4M z3px)hFvu`6(R!ZUzlv$wLCDj#KR(~ZV7j7I!tR2vt@GnI9$?Fdo0y2ZDcqwH8ES27 zSjfU;KYmL~O1=-Re`Yq~w)(Wuz({y{%Vhg?bW<mzKzIbA;OQrjRB_lSBzx{zDA)D- zOyy$5VZE(uDe647o}cHC%StdYeqW}RzllKfnECl~K^VvViDE4EG$Oy}nLFERh%elU zNQ{3t94V+C%Rff%WbNi3<D{s6iJU)G&g%}gm%(umOQs5n*zJ}!5fa|`Vpt}UQJAUh znc@s?uGG6@Zv7?4<FpQNC5Kp-zV@|ZS<af)WWoK|ub~>Tu8imUja646uxr;UodKNF z?v%sl#hn9EjHyMbW^v8t7sO8V5#B(>q!uYc|A=LBU{IU7R(_ygh-(35gS?1yGJPQa zCm+I)GM2cX@U@Jwk;GS0NmpcrlUR_6uCagwT=j*K$4#A;@1mG?rCNf+fVMQukFQHr z`Ev^vA<$X6Ei>YYEKL~GxHOmw4C;%He{L4vbKV?!o_g|3?RCqRs2Y|TerZtY&AgSB z&(6U6uVz)%)1+ZO@Vy-FtLjn7)E{o{{WE3ALpk99bJA6V>>AkblE~}q?#4gLHy<Gi zPy`(eM0Y#tY-=^TsXWQ}OF*c$^T!>x#42@k$y36R+CH53(=kJSXz1rqfMamP(k`=r zXKDBLY9xe<sWjhC7l9dK6S#Zf<GP*DyNF!rgWy_7YB-%%Y|lg4*im&%-jgjOfDN-M z#qrL0F1T$_NfkXjJ}%+baTgz|@5uIZ%PQ#CWr<3g@jYjsBze|jvc<23%w(7=AB<4! zTTsuCKZfiN<z^URe=)}agfIo^Q(ZjE^m!!9I>RSpTPK&n$YE59ni$EKKL}4*tml4# zQBO<G%94aFU(Mo$2_>vJG;z4zUxQ(8eT??iC?+SmK1gWqT`=`|lZ@pBB?%1W)p%fL z$lb`f+s_E=-ePgc)K8t)(P*LE<0L!nxSGUHWrB9QyrO@v!!gitmhYp~*Jad(WroMj zyX9@K_o&Z)HdGa)o-;8I_1(^5UQ`Sy(3Y?0WhWHK7e8_c_oY0vy^MO3aHk6pFkU$u z7y9US7hs$H<V-nlH(Pq(YQkg!Z~B>Ej?rF3*Bg>EKZMjDka#OQ5LwS4236<d%*PN4 zMk8|kBky2F+VOx;8v(5ZL#oN*D-#V5W?}}FO(cdOFXX;<8rVX8?!{;e>(};{W{AiX zb`Y)?C(1pv(0wqKj9%%3NU3M#%i3xoIiAMnAr!Jp#7$<^*c}5dHFuu3m*}$>Liyts zr4qB>>eHD;;5(w};E*7D%U78N5Peptb-?Dxn~F#X9Ef<6qBlhu(wgf@=5VQaxR%Uu zjTqq&8#_PI_^9hHS^&k~;o{QhMPMgDZmDBTj-|5D5W~hiuz*Pwdj(Ggo@Rs?YsyIF zNqS&v;E!&Zpyd1e?R<{0V7r04Y4%D<tfqARyRY}I5kI#^vy5Ce8etbRiOqNqh1=FQ z!lP$^mV|(xhPgTq*u#roa}W^<abxfwxNQva(r`Y`vZpP<UcwM+d*9{SCu6qi)&!j? zeF3Cq<_xkQQZL?CnwO|hxXJOgZ|0f$wVIpZnF`tcCMhPVkFEi%{XGN!a34p}bt2IU z_X)z1w{po+1r0F2`$v&ZX1b(g+?_m}_^)Z8u%%l;p@-J%62I>Yr*E*mCdM-@FYWk^ zcMwKd8-Fvg2$uKx`I64B7(FRnm~9tJR<1zY&MVF$IAxBG-oDLl*LYL)N*6HsMqQxP zH59q$J;?njbgBybOhDt!N~43i<N9qKQ%ASuU}zL5=rI-O*f%Ul{_bSG-r1{fW32rF zseQge*m4nX#ccbKw46~&K<G?q#h{oIMQQZ4rLDb7thkOp2hdk3qr<*QFnO?(`Z*~A z624_rPFqPEu9Vo+=gAkF!CRT-ycCu!=(0(89_8@M(CB_B#?g~dVHe9A6&GG%Eg?14 zPP}?qCS$n3hf+}G7+Y`BWT<M_mPQ03|AObnN?i9T6vss*)-zY7512k4nThC2ZJO}B z6KNQ#u#K``gVnSkFfzKAv>LYDc(RPn)ITW1(QV3nCD}{Mt_;n%_4W^P+>q~Uxq7WY zC%5>zy*EbAwqs~-@qzVgs=v~5g?4JBr|QW*@qkEWtsa;c+U&0oZjkZ@Bw~O@a4sh0 zh*<J_)A7cLlb0_D?P4E_QBWs~Ihpy0C(gF?H8$D0WB41f131`H@C%5P_qK%2eCa#b zbzvfP)!yX)nlOb<A2_Lsd8k0D!nUNlVgo%3$93kTlv@+Uv%EEJbuaC5gwG-!+>zV} zVAF9&>7P)Hou{W%INjqi;L5ZslJi(>CO@e5PLz!o8dBt!i>c_ek^jAD#%0eo>#DtK zpRIk}nbkE2%Ga4E2$xpfBvf;J+ESZ#btqD2dSq1EMc{DyzJy6+B=sK|_s`&ppKTHv zvbPC~esGepdua@hq2uM|ouHPX+)5et+Zt8e@eLfDPD%EIqPb{eJ3VP!#H}|gEY#&2 zMm^Zm()%UyMn!R01fiJ|)DX|xum#w=(p{*g1uL9<ph>yer8)V#-mHZ#s8BVK`AkV? zt+l`v-N5;isRZ$9;-6@*RXX7WY#mR|nb>-s<jeImbBeYHB0~5#G}H_BP)DtVI+gzi Djv%5C delta 6440 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 From 086a4a2bb053b28b22fcb30b4a897af867e001b4 Mon Sep 17 00:00:00 2001 From: Raquel Arrojo Lopez <rarrojolopez@dxc.com> Date: Tue, 25 Feb 2025 15:33:44 +0100 Subject: [PATCH 08/11] Several changes in Accordion after review --- .../accordion/code/AccordionCodePage.tsx | 12 +--- .../accordion/code/examples/accordions.ts | 1 - .../code/examples/disabledAccordions.ts | 63 ------------------- .../accordion/code/examples/icons.ts | 1 - .../accordion/usage/AccordionUsagePage.tsx | 4 +- packages/lib/src/accordion/types.ts | 22 +++---- 6 files changed, 15 insertions(+), 88 deletions(-) delete mode 100644 apps/website/screens/components/accordion/code/examples/disabledAccordions.ts diff --git a/apps/website/screens/components/accordion/code/AccordionCodePage.tsx b/apps/website/screens/components/accordion/code/AccordionCodePage.tsx index 000245f0ae..c70438f61b 100644 --- a/apps/website/screens/components/accordion/code/AccordionCodePage.tsx +++ b/apps/website/screens/components/accordion/code/AccordionCodePage.tsx @@ -9,7 +9,6 @@ import controlled from "./examples/controlled"; import uncontrolled from "./examples/uncontrolled"; import icons from "./examples/icons"; import accordions from "./examples/accordions"; -import disabledAccordions from "./examples/disabledAccordions"; import TableCode from "@/common/TableCode"; import StatusBadge from "@/common/StatusBadge"; import Code from "@/common/Code"; @@ -60,15 +59,14 @@ const sections = [ <td> The index of the active accordion. If undefined, the component will be uncontrolled and the active accordion will be managed internally by the component. If null, the component will be controlled and all - accordions will be closed. If the accordion is not independent, several accordions can be activated by - default. + accordions will be closed. If the accordion is not independent, several accordions can be activated. </td> <td>-</td> </tr> <tr> <td>onActiveChange</td> <td> - <TableCode>{`(indexActive: number | number[]) => void`}</TableCode> + <TableCode>{`(index: number | number[]) => void`}</TableCode> </td> <td> This function will be called when the user clicks on an accordion. The index of the clicked accordion will @@ -184,7 +182,7 @@ const sections = [ </DxcLink>{" "} name or SVG element as the icon that will be placed next to the panel label. When using Material Symbols, replace spaces with underscores. By default they are outlined if you want it to be filled - prefix the symbol name with <TableCode>"filled_"</TableCode>. + prefix the symbol name with <Code>"filled_"</Code>. </td> <td>-</td> </tr> @@ -264,10 +262,6 @@ const sections = [ title: "Group of accordions", content: <Example example={accordions} defaultIsVisible />, }, - { - title: "Disabled accordions", - content: <Example example={disabledAccordions} defaultIsVisible />, - }, ], }, ]; diff --git a/apps/website/screens/components/accordion/code/examples/accordions.ts b/apps/website/screens/components/accordion/code/examples/accordions.ts index ff4ef7f867..1e63a60206 100644 --- a/apps/website/screens/components/accordion/code/examples/accordions.ts +++ b/apps/website/screens/components/accordion/code/examples/accordions.ts @@ -2,7 +2,6 @@ import { DxcAccordion, DxcInset, DxcBadge, DxcStatusLight } from "@dxc-technolog import { useState } from "react"; const code = `() => { - return ( <DxcInset space="2rem"> <DxcAccordion independent={false} defaultIndexActive={[0, 2]}> diff --git a/apps/website/screens/components/accordion/code/examples/disabledAccordions.ts b/apps/website/screens/components/accordion/code/examples/disabledAccordions.ts deleted file mode 100644 index 8627adbf3f..0000000000 --- a/apps/website/screens/components/accordion/code/examples/disabledAccordions.ts +++ /dev/null @@ -1,63 +0,0 @@ -import { DxcAccordion, DxcInset, DxcBadge, DxcStatusLight } from "@dxc-technology/halstack-react"; -import { useState } from "react"; - -const code = `() => { - - return ( - <DxcInset space="2rem"> - <DxcAccordion> - <DxcAccordion.AccordionItem - label="Find a person" - disabled - badge={{ position: "before", element: <DxcBadge label="GET" color="green" /> }} - statusLight={<DxcStatusLight label="Active" mode="success" />} - > - <DxcInset space="1.5rem"> - Person information - </DxcInset> - </DxcAccordion.AccordionItem> - <DxcAccordion.AccordionItem - label="Create a person" - assistiveText="Provide all required info" - badge={{ position: "before", element: <DxcBadge label="POST" color="blue" /> }} - defaultIsExpanded - > - <DxcInset space="1.5rem"> - Person creation information - </DxcInset> - </DxcAccordion.AccordionItem> - <DxcAccordion.AccordionItem - label="Find interactions" - disabled - badge={{ position: "before", element: <DxcBadge label="OPTIONS" color="yellow" /> }} - statusLight={<DxcStatusLight label="Active" mode="warning" />} - defaultIsExpanded - > - <DxcInset space="1.5rem"> - Interactions information - </DxcInset> - </DxcAccordion.AccordionItem> - <DxcAccordion.AccordionItem - label="Delete a person" - assistiveText="Deletion will be permanent" - icon="delete" - badge={{ position: "before", element: <DxcBadge label="DELETE" /> }} - > - <DxcInset space="1.5rem"> - Deletion information - </DxcInset> - </DxcAccordion.AccordionItem> - </DxcAccordion> - </DxcInset> - ); -}`; - -const scope = { - DxcAccordion, - DxcInset, - DxcBadge, - DxcStatusLight, - useState, -}; - -export default { code, scope }; diff --git a/apps/website/screens/components/accordion/code/examples/icons.ts b/apps/website/screens/components/accordion/code/examples/icons.ts index 2d11e20aa7..75a85109df 100644 --- a/apps/website/screens/components/accordion/code/examples/icons.ts +++ b/apps/website/screens/components/accordion/code/examples/icons.ts @@ -2,7 +2,6 @@ import { DxcAccordion, DxcFlex, DxcInset } from "@dxc-technology/halstack-react" import { useState } from "react"; const code = `() => { - return ( <DxcInset space="2rem"> <DxcAccordion> diff --git a/apps/website/screens/components/accordion/usage/AccordionUsagePage.tsx b/apps/website/screens/components/accordion/usage/AccordionUsagePage.tsx index a92acd5942..c7cb572fe6 100644 --- a/apps/website/screens/components/accordion/usage/AccordionUsagePage.tsx +++ b/apps/website/screens/components/accordion/usage/AccordionUsagePage.tsx @@ -224,7 +224,7 @@ const sections = [ ), subSections: [ { - title: "Allow Multiple Sections Open", + title: "Allow multiple sections open", content: ( <> <DxcParagraph> @@ -247,7 +247,7 @@ const sections = [ ), }, { - title: "Single-Open Behavior", + title: "Single-open behavior", content: ( <> <DxcParagraph> diff --git a/packages/lib/src/accordion/types.ts b/packages/lib/src/accordion/types.ts index e9e71b998d..8f44b489ad 100644 --- a/packages/lib/src/accordion/types.ts +++ b/packages/lib/src/accordion/types.ts @@ -65,15 +65,14 @@ type IndependentProps = CommonProps & { */ independent: true; /** - * Initially active accordion, only when it is uncontrolled. - * If the accordion is not independent, several accordions can be actived - * by default. + * Initially active accordion, only when it is uncontrolled.If the accordion is not independent, + * several accordions can be activated by default. */ defaultIndexActive?: number; /** - * The index of the active accordion. If undefined, the component will be uncontrolled and - * the active accordion will be managed internally by the component. If null, the component will be controlled and all accordions will be closed. - * If the accordion is not independent, several accordions can be actived. + * The index of the active accordion. If undefined, the component will be uncontrolled and the active + * accordion will be managed internally by the component. If null, the component will be controlled and all + * accordions will be closed. If the accordion is not independent, several accordions can be activated. */ indexActive?: number; /** @@ -88,15 +87,14 @@ type NonIndependentProps = CommonProps & { */ independent?: false; /** - * Initially active accordion, only when it is uncontrolled. - * If the accordion is not independent, several accordions can be actived - * by default. + * Initially active accordion, only when it is uncontrolled. If the accordion is not independent, + * several accordions can be activated by default. */ defaultIndexActive?: number[]; /** - * The index of the active accordion. If undefined, the component will be uncontrolled and - * the active accordion will be managed internally by the component. If null, the component will be controlled and all accordions will be closed. - * If the accordion is not independent, several accordions can be actived. + * The index of the active accordion. If undefined, the component will be uncontrolled and the active + * accordion will be managed internally by the component. If null, the component will be controlled and all + * accordions will be closed. If the accordion is not independent, several accordions can be activated. */ indexActive?: number[]; /** From b5a4956f3dad18a681bfd0d98aa10c6d23f376dd Mon Sep 17 00:00:00 2001 From: Raquel Arrojo Lopez <rarrojolopez@dxc.com> Date: Tue, 25 Feb 2025 15:53:06 +0100 Subject: [PATCH 09/11] Changes in Accordion after review --- .../common/themes/opinionated-theme.json | 2 +- packages/lib/src/accordion/AccordionItem.tsx | 27 ++++++++++--------- 2 files changed, 16 insertions(+), 13 deletions(-) diff --git a/apps/website/screens/common/themes/opinionated-theme.json b/apps/website/screens/common/themes/opinionated-theme.json index afce9c3dd6..70f544101f 100644 --- a/apps/website/screens/common/themes/opinionated-theme.json +++ b/apps/website/screens/common/themes/opinionated-theme.json @@ -3,7 +3,7 @@ "accentColor": "#5f249f", "titleFontColor": "#333333", "subLabelFontColor": "#666666", - "assistiveTextFontColor": "#999999" + "assistiveTextFontColor": "#666666" }, "button": { "baseColor": "#5f249f", diff --git a/packages/lib/src/accordion/AccordionItem.tsx b/packages/lib/src/accordion/AccordionItem.tsx index 8b5b8b2dcd..5fb9ed64dd 100644 --- a/packages/lib/src/accordion/AccordionItem.tsx +++ b/packages/lib/src/accordion/AccordionItem.tsx @@ -47,18 +47,21 @@ const AccordionItem = ({ <DxcFlex gap="1.5rem"> <LeftSideContainer> <DxcFlex gap="0.75rem"> - <OptionalElement> - {icon && ( - <IconContainer disabled={disabled}> - {typeof icon === "string" ? <DxcIcon icon={icon} /> : icon} - </IconContainer> - )} - {badge?.position === "before" && !icon && ( - <StatusContainer subLabel={subLabel}> - {disabled ? cloneElement(badge.element as ReactElement, { color: "grey" }) : badge.element} - </StatusContainer> - )} - </OptionalElement> + {icon || + (badge && ( + <OptionalElement> + {icon && ( + <IconContainer disabled={disabled}> + {typeof icon === "string" ? <DxcIcon icon={icon} /> : icon} + </IconContainer> + )} + {badge && badge?.position === "before" && !icon && ( + <StatusContainer subLabel={subLabel}> + {disabled ? cloneElement(badge.element as ReactElement, { color: "grey" }) : badge.element} + </StatusContainer> + )} + </OptionalElement> + ))} <LabelsContainer> <AccordionLabel disabled={disabled}>{label}</AccordionLabel> {subLabel && <SubLabel disabled={disabled}>{subLabel}</SubLabel>} From ac134631a021fda573e30b097cf2c2026d3d6ba1 Mon Sep 17 00:00:00 2001 From: Raquel Arrojo Lopez <rarrojolopez@dxc.com> Date: Wed, 26 Feb 2025 13:15:08 +0100 Subject: [PATCH 10/11] Change based on Accordion review --- packages/lib/src/accordion/AccordionItem.tsx | 28 +++++++++----------- 1 file changed, 13 insertions(+), 15 deletions(-) diff --git a/packages/lib/src/accordion/AccordionItem.tsx b/packages/lib/src/accordion/AccordionItem.tsx index 5fb9ed64dd..c2ce6a448b 100644 --- a/packages/lib/src/accordion/AccordionItem.tsx +++ b/packages/lib/src/accordion/AccordionItem.tsx @@ -47,21 +47,19 @@ const AccordionItem = ({ <DxcFlex gap="1.5rem"> <LeftSideContainer> <DxcFlex gap="0.75rem"> - {icon || - (badge && ( - <OptionalElement> - {icon && ( - <IconContainer disabled={disabled}> - {typeof icon === "string" ? <DxcIcon icon={icon} /> : icon} - </IconContainer> - )} - {badge && badge?.position === "before" && !icon && ( - <StatusContainer subLabel={subLabel}> - {disabled ? cloneElement(badge.element as ReactElement, { color: "grey" }) : badge.element} - </StatusContainer> - )} - </OptionalElement> - ))} + {(icon || badge?.position === "before") && ( + <OptionalElement> + {icon ? ( + <IconContainer disabled={disabled}> + {typeof icon === "string" ? <DxcIcon icon={icon} /> : icon} + </IconContainer> + ) : ( + <StatusContainer subLabel={subLabel}> + {disabled ? cloneElement(badge?.element as ReactElement, { color: "grey" }) : badge?.element} + </StatusContainer> + )} + </OptionalElement> + )} <LabelsContainer> <AccordionLabel disabled={disabled}>{label}</AccordionLabel> {subLabel && <SubLabel disabled={disabled}>{subLabel}</SubLabel>} From 512886f7db2dc8d84125adf922a7acefcbf09d21 Mon Sep 17 00:00:00 2001 From: Raquel Arrojo Lopez <rarrojolopez@dxc.com> Date: Wed, 26 Feb 2025 16:26:13 +0100 Subject: [PATCH 11/11] Change documentation images in the Accordion after review --- .../accordion/specs/AccordionSpecsPage.tsx | 1 + .../specs/images/accordion_anatomy.png | Bin 16943 -> 17308 bytes .../accordion/usage/AccordionUsagePage.tsx | 5 +---- .../usage/images/accordion_content.png | Bin 16168 -> 14480 bytes 4 files changed, 2 insertions(+), 4 deletions(-) diff --git a/apps/website/screens/components/accordion/specs/AccordionSpecsPage.tsx b/apps/website/screens/components/accordion/specs/AccordionSpecsPage.tsx index db2abf1a07..3430294597 100644 --- a/apps/website/screens/components/accordion/specs/AccordionSpecsPage.tsx +++ b/apps/website/screens/components/accordion/specs/AccordionSpecsPage.tsx @@ -43,6 +43,7 @@ const sections = [ Left secondary element <em>(Optional)</em> </DxcBulletedList.Item> <DxcBulletedList.Item>Title</DxcBulletedList.Item> + <DxcBulletedList.Item>Sublabel</DxcBulletedList.Item> <DxcBulletedList.Item> Right secondary element <em>(Optional)</em> </DxcBulletedList.Item> diff --git a/apps/website/screens/components/accordion/specs/images/accordion_anatomy.png b/apps/website/screens/components/accordion/specs/images/accordion_anatomy.png index 5a5b021f6e8dcbbde335f4697e2a278df67165fd..62369e4b95d6de2a50564dd4c2e314eb681d11ef 100644 GIT binary patch literal 17308 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 R{*y5@|Ixiubj$X|{{W;GwG03N literal 16943 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 N%NCakFFOAHe*vN8T4MkJ diff --git a/apps/website/screens/components/accordion/usage/AccordionUsagePage.tsx b/apps/website/screens/components/accordion/usage/AccordionUsagePage.tsx index c7cb572fe6..79b4410f13 100644 --- a/apps/website/screens/components/accordion/usage/AccordionUsagePage.tsx +++ b/apps/website/screens/components/accordion/usage/AccordionUsagePage.tsx @@ -140,10 +140,7 @@ const sections = [ </DxcParagraph> <Image src={accordionContent} alt="Accordion content" /> <DxcParagraph> - <strong>Left</strong>. Nesting is allowed. - </DxcParagraph> - <DxcParagraph> - <strong>Right</strong>. Icons can be used as a complement to the header label. + Nesting is allowed and icons can be used as a complement to the header label. </DxcParagraph> </> ), diff --git a/apps/website/screens/components/accordion/usage/images/accordion_content.png b/apps/website/screens/components/accordion/usage/images/accordion_content.png index 36737f1cc09745b9ff061ab326eb27ec91387963..bf02e664bd88bb1657668dfce38e1dbfc89bbd62 100644 GIT binary patch literal 14480 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 literal 16168 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 Lr&+9F_4NM%lfEx7