From 6361f70157f4439784c0be0bdd5541156b4cdc32 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Iv=C3=A1n=20G=C3=B3mez=20Pinta?= <44321109+GomezIvann@users.noreply.github.com> Date: Mon, 31 Mar 2025 16:35:12 +0200 Subject: [PATCH 1/8] Inset redesign --- .../lib/src/accordion/Accordion.stories.tsx | 80 +++---- .../src/action-icon/ActionIcon.stories.tsx | 2 +- packages/lib/src/badge/Badge.stories.tsx | 2 +- packages/lib/src/button/Button.stories.tsx | 2 +- packages/lib/src/contextual-menu/Section.tsx | 2 +- packages/lib/src/dialog/Dialog.stories.tsx | 30 +-- packages/lib/src/grid/Grid.stories.tsx | 2 +- packages/lib/src/image/Image.stories.tsx | 2 +- packages/lib/src/inset/Inset.stories.tsx | 202 +++--------------- packages/lib/src/inset/Inset.tsx | 39 ++-- packages/lib/src/inset/types.ts | 31 ++- packages/lib/src/quick-nav/QuickNav.tsx | 6 +- packages/lib/src/sidenav/Sidenav.stories.tsx | 2 +- packages/lib/src/tooltip/Tooltip.stories.tsx | 6 +- 14 files changed, 127 insertions(+), 281 deletions(-) diff --git a/packages/lib/src/accordion/Accordion.stories.tsx b/packages/lib/src/accordion/Accordion.stories.tsx index cb16d8150d..f05781c8f1 100644 --- a/packages/lib/src/accordion/Accordion.stories.tsx +++ b/packages/lib/src/accordion/Accordion.stories.tsx @@ -47,7 +47,7 @@ const Accordion = () => ( <DxcAccordion> <DxcAccordion.AccordionItem label="Assure Claims"> - <DxcInset space="1.5rem"> + <DxcInset space="var(--spacing-padding-l)"> Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse malesuada lacus ex, sit amet blandit leo lobortis eget. </DxcInset> @@ -58,7 +58,7 @@ const Accordion = () => ( <Title title="Label and sublabel" theme="light" level={4} /> <DxcAccordion> <DxcAccordion.AccordionItem label="Assure Claims" subLabel="Jan, 09 2025"> - <DxcInset space="1.5rem"> + <DxcInset space="var(--spacing-padding-l)"> Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse malesuada lacus ex, sit amet blandit leo lobortis eget. </DxcInset> @@ -80,7 +80,7 @@ const Accordion = () => ( <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"> + <DxcInset space="var(--spacing-padding-l)"> Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse malesuada lacus ex, sit amet blandit leo lobortis eget. </DxcInset> @@ -91,7 +91,7 @@ const Accordion = () => ( <Title title="Icon and label" theme="light" level={4} /> <DxcAccordion> <DxcAccordion.AccordionItem label="Assure Claims" icon="heart_plus"> - <DxcInset space="1.5rem"> + <DxcInset space="var(--spacing-padding-l)"> Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse malesuada lacus ex, sit amet blandit leo lobortis eget. </DxcInset> @@ -102,7 +102,7 @@ const Accordion = () => ( <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"> + <DxcInset space="var(--spacing-padding-l)"> Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse malesuada lacus ex, sit amet blandit leo lobortis eget. </DxcInset> @@ -118,7 +118,7 @@ const Accordion = () => ( assistiveText="Ref - 1236554546" icon="heart_plus" > - <DxcInset space="1.5rem"> + <DxcInset space="var(--spacing-padding-l)"> Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse malesuada lacus ex, sit amet blandit leo lobortis eget. </DxcInset> @@ -134,7 +134,7 @@ const Accordion = () => ( assistiveText="Ref - 1236554546" badge={{ position: "before", element: <DxcBadge label="Enterprise" icon="home" /> }} > - <DxcInset space="1.5rem"> + <DxcInset space="var(--spacing-padding-l)"> Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse malesuada lacus ex, sit amet blandit leo lobortis eget. </DxcInset> @@ -149,7 +149,7 @@ const Accordion = () => ( subLabel="Jan, 09 2025" badge={{ position: "after", element: <DxcBadge label="Enterprise" /> }} > - <DxcInset space="1.5rem"> + <DxcInset space="var(--spacing-padding-l)"> Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse malesuada lacus ex, sit amet blandit leo lobortis eget. </DxcInset> @@ -165,7 +165,7 @@ const Accordion = () => ( icon="heart_plus" statusLight={<DxcStatusLight label="Active" />} > - <DxcInset space="1.5rem"> + <DxcInset space="var(--spacing-padding-l)"> Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse malesuada lacus ex, sit amet blandit leo lobortis eget. </DxcInset> @@ -181,7 +181,7 @@ const Accordion = () => ( badge={{ position: "before", element: <DxcBadge label="Enterprise" /> }} statusLight={<DxcStatusLight label="Active" />} > - <DxcInset space="1.5rem"> + <DxcInset space="var(--spacing-padding-l)"> Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse malesuada lacus ex, sit amet blandit leo lobortis eget. </DxcInset> @@ -192,7 +192,7 @@ const Accordion = () => ( <Title title="Smaller icon" theme="light" level={4} /> <DxcAccordion> <DxcAccordion.AccordionItem label="Assure Claims" assistiveText="Ref - 1236554546" icon={smallIcon}> - <DxcInset space="1.5rem"> + <DxcInset space="var(--spacing-padding-l)"> Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse malesuada lacus ex, sit amet blandit leo lobortis eget. </DxcInset> @@ -203,7 +203,7 @@ const Accordion = () => ( <Title title="Bigger icon (SVG)" theme="light" level={4} /> <DxcAccordion> <DxcAccordion.AccordionItem label="Assure Claims" assistiveText="Ref - 1236554546" icon={facebookIcon}> - <DxcInset space="1.5rem"> + <DxcInset space="var(--spacing-padding-l)"> Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse malesuada lacus ex, sit amet blandit leo lobortis eget. </DxcInset> @@ -214,19 +214,19 @@ const Accordion = () => ( <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"> + <DxcInset space="var(--spacing-padding-xl)"> 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"> + <DxcInset space="var(--spacing-padding-xl)"> 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"> + <DxcInset space="var(--spacing-padding-xl)"> Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse malesuada lacus ex, sit amet blandit leo lobortis eget. </DxcInset> @@ -241,7 +241,7 @@ const Accordion = () => ( badge={{ position: "before", element: <DxcBadge label="GET" color="green" /> }} statusLight={<DxcStatusLight label="Active" mode="success" />} > - <DxcInset space="1.5rem"> + <DxcInset space="var(--spacing-padding-l)"> Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse malesuada lacus ex, sit amet blandit leo lobortis eget. </DxcInset> @@ -251,7 +251,7 @@ const Accordion = () => ( assistiveText="Provide all required info" badge={{ position: "before", element: <DxcBadge label="POST" color="blue" /> }} > - <DxcInset space="1.5rem"> + <DxcInset space="var(--spacing-padding-l)"> Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse malesuada lacus ex, sit amet blandit leo lobortis eget. </DxcInset> @@ -261,7 +261,7 @@ const Accordion = () => ( badge={{ position: "before", element: <DxcBadge label="OPTIONS" color="yellow" /> }} statusLight={<DxcStatusLight label="Active" mode="warning" />} > - <DxcInset space="1.5rem"> + <DxcInset space="var(--spacing-padding-l)"> Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse malesuada lacus ex, sit amet blandit leo lobortis eget. </DxcInset> @@ -272,7 +272,7 @@ const Accordion = () => ( icon="delete" badge={{ position: "before", element: <DxcBadge label="DELETE" /> }} > - <DxcInset space="1.5rem"> + <DxcInset space="var(--spacing-padding-l)"> Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse malesuada lacus ex, sit amet blandit leo lobortis eget. </DxcInset> @@ -293,7 +293,7 @@ const Accordion = () => ( ), }} > - <DxcInset space="1.5rem"> + <DxcInset space="var(--spacing-padding-l)"> Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse malesuada lacus ex, sit amet blandit leo lobortis eget. </DxcInset> @@ -308,7 +308,7 @@ const Accordion = () => ( 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"> + <DxcInset space="var(--spacing-padding-l)"> Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse malesuada lacus ex, sit amet blandit leo lobortis eget. </DxcInset> @@ -324,7 +324,7 @@ const Accordion = () => ( assistiveText="Assistive text Assistive text" icon="heart_plus" > - <DxcInset space="1.5rem"> + <DxcInset space="var(--spacing-padding-l)"> Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse malesuada lacus ex, sit amet blandit leo lobortis eget. </DxcInset> @@ -340,7 +340,7 @@ const Accordion = () => ( 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"> + <DxcInset space="var(--spacing-padding-l)"> Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse malesuada lacus ex, sit amet blandit leo lobortis eget. </DxcInset> @@ -352,7 +352,7 @@ const Accordion = () => ( <Title title="Focused" theme="light" level={4} /> <DxcAccordion> <DxcAccordion.AccordionItem label="Assure Claims" subLabel="Jan, 09 2025" assistiveText="Ref - 1236554546"> - <DxcInset space="1.5rem"> + <DxcInset space="var(--spacing-padding-l)"> Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse malesuada lacus ex, sit amet blandit leo lobortis eget. </DxcInset> @@ -363,7 +363,7 @@ const Accordion = () => ( <Title title="Hovered" theme="light" level={4} /> <DxcAccordion> <DxcAccordion.AccordionItem label="Assure Claims" subLabel="Jan, 09 2025" assistiveText="Ref - 1236554546"> - <DxcInset space="1.5rem"> + <DxcInset space="var(--spacing-padding-l)"> Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse malesuada lacus ex, sit amet blandit leo lobortis eget. </DxcInset> @@ -374,7 +374,7 @@ const Accordion = () => ( <Title title="Active" theme="light" level={4} /> <DxcAccordion> <DxcAccordion.AccordionItem label="Assure Claims" subLabel="Jan, 09 2025" assistiveText="Ref - 1236554546"> - <DxcInset space="1.5rem"> + <DxcInset space="var(--spacing-padding-l)"> Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse malesuada lacus ex, sit amet blandit leo lobortis eget. </DxcInset> @@ -391,7 +391,7 @@ const Accordion = () => ( icon="heart_plus" disabled > - <DxcInset space="1.5rem"> + <DxcInset space="var(--spacing-padding-l)"> Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse malesuada lacus ex, sit amet blandit leo lobortis eget. </DxcInset> @@ -405,7 +405,7 @@ const Accordion = () => ( badge={{ position: "before", element: <DxcBadge label="Enterprise" color="green" /> }} statusLight={<DxcStatusLight label="Active" mode="success" />} > - <DxcInset space="1.5rem"> + <DxcInset space="var(--spacing-padding-l)"> Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse malesuada lacus ex, sit amet blandit leo lobortis eget. </DxcInset> @@ -419,7 +419,7 @@ const Accordion = () => ( disabled badge={{ position: "after", element: <DxcBadge label="Enterprise" color="green" /> }} > - <DxcInset space="1.5rem"> + <DxcInset space="var(--spacing-padding-l)"> Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse malesuada lacus ex, sit amet blandit leo lobortis eget. </DxcInset> @@ -434,7 +434,7 @@ const Accordion = () => ( badge={{ position: "before", element: <DxcBadge label="GET" color="green" /> }} statusLight={<DxcStatusLight label="Active" mode="success" />} > - <DxcInset space="1.5rem"> + <DxcInset space="var(--spacing-padding-l)"> Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse malesuada lacus ex, sit amet blandit leo lobortis eget. </DxcInset> @@ -444,7 +444,7 @@ const Accordion = () => ( assistiveText="Provide all required info" badge={{ position: "before", element: <DxcBadge label="POST" color="blue" /> }} > - <DxcInset space="1.5rem"> + <DxcInset space="var(--spacing-padding-l)"> Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse malesuada lacus ex, sit amet blandit leo lobortis eget. </DxcInset> @@ -454,7 +454,7 @@ const Accordion = () => ( badge={{ position: "before", element: <DxcBadge label="OPTIONS" color="yellow" /> }} statusLight={<DxcStatusLight label="Active" mode="warning" />} > - <DxcInset space="1.5rem"> + <DxcInset space="var(--spacing-padding-l)"> Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse malesuada lacus ex, sit amet blandit leo lobortis eget. </DxcInset> @@ -465,7 +465,7 @@ const Accordion = () => ( icon="delete" badge={{ position: "before", element: <DxcBadge label="DELETE" /> }} > - <DxcInset space="1.5rem"> + <DxcInset space="var(--spacing-padding-l)"> Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse malesuada lacus ex, sit amet blandit leo lobortis eget. </DxcInset> @@ -477,7 +477,7 @@ const Accordion = () => ( <Title title="Xxsmall margin" theme="light" level={4} /> <DxcAccordion margin="xxsmall"> <DxcAccordion.AccordionItem label="Assure Claims"> - <DxcInset space="1.5rem"> + <DxcInset space="var(--spacing-padding-l)"> Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse malesuada lacus ex, sit amet blandit leo lobortis eget. </DxcInset> @@ -488,7 +488,7 @@ const Accordion = () => ( <Title title="Xsmall margin" theme="light" level={4} /> <DxcAccordion margin="xsmall"> <DxcAccordion.AccordionItem label="Assure Claims"> - <DxcInset space="1.5rem"> + <DxcInset space="var(--spacing-padding-l)"> Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse malesuada lacus ex, sit amet blandit leo lobortis eget. </DxcInset> @@ -499,7 +499,7 @@ const Accordion = () => ( <Title title="Small margin" theme="light" level={4} /> <DxcAccordion margin="small"> <DxcAccordion.AccordionItem label="Assure Claims"> - <DxcInset space="1.5rem"> + <DxcInset space="var(--spacing-padding-l)"> Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse malesuada lacus ex, sit amet blandit leo lobortis eget. </DxcInset> @@ -510,7 +510,7 @@ const Accordion = () => ( <Title title="Medium margin" theme="light" level={4} /> <DxcAccordion margin="medium"> <DxcAccordion.AccordionItem label="Assure Claims"> - <DxcInset space="1.5rem"> + <DxcInset space="var(--spacing-padding-l)"> Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse malesuada lacus ex, sit amet blandit leo lobortis eget. </DxcInset> @@ -521,7 +521,7 @@ const Accordion = () => ( <Title title="Large margin" theme="light" level={4} /> <DxcAccordion margin="large"> <DxcAccordion.AccordionItem label="Assure Claims"> - <DxcInset space="1.5rem"> + <DxcInset space="var(--spacing-padding-l)"> Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse malesuada lacus ex, sit amet blandit leo lobortis eget. </DxcInset> @@ -532,7 +532,7 @@ const Accordion = () => ( <Title title="Xlarge margin" theme="light" level={4} /> <DxcAccordion margin="xlarge"> <DxcAccordion.AccordionItem label="Assure Claims"> - <DxcInset space="1.5rem"> + <DxcInset space="var(--spacing-padding-l)"> Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse malesuada lacus ex, sit amet blandit leo lobortis eget. </DxcInset> @@ -543,7 +543,7 @@ const Accordion = () => ( <Title title="Xxlarge margin" theme="light" level={4} /> <DxcAccordion margin="xxlarge"> <DxcAccordion.AccordionItem label="Assure Claims"> - <DxcInset space="1.5rem"> + <DxcInset space="var(--spacing-padding-l)"> Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse malesuada lacus ex, sit amet blandit leo lobortis eget. </DxcInset> diff --git a/packages/lib/src/action-icon/ActionIcon.stories.tsx b/packages/lib/src/action-icon/ActionIcon.stories.tsx index bd1a035d2a..be36839843 100644 --- a/packages/lib/src/action-icon/ActionIcon.stories.tsx +++ b/packages/lib/src/action-icon/ActionIcon.stories.tsx @@ -56,7 +56,7 @@ const NestedTooltip = () => ( <> <Title title="Nested tooltip" theme="light" level={2} /> <ExampleContainer> - <DxcInset top="3rem"> + <DxcInset top="var(--spacing-padding-xxl)"> <DxcTooltip label="Favourite" position="top"> <DxcActionIcon icon="favorite" title="Favourite" /> </DxcTooltip> diff --git a/packages/lib/src/badge/Badge.stories.tsx b/packages/lib/src/badge/Badge.stories.tsx index 001e77dfaa..5dc227fcab 100644 --- a/packages/lib/src/badge/Badge.stories.tsx +++ b/packages/lib/src/badge/Badge.stories.tsx @@ -225,7 +225,7 @@ const NestedTooltip = () => ( <> <Title title="Nested tooltip" theme="light" level={2} /> <ExampleContainer> - <DxcInset top="3rem"> + <DxcInset top="var(--spacing-padding-xxl)"> <DxcTooltip label="Tooltip label" position="top"> <DxcBadge label="Tooltip label" title="Label" /> </DxcTooltip> diff --git a/packages/lib/src/button/Button.stories.tsx b/packages/lib/src/button/Button.stories.tsx index 5f6f25692c..6eedc5f888 100644 --- a/packages/lib/src/button/Button.stories.tsx +++ b/packages/lib/src/button/Button.stories.tsx @@ -4934,7 +4934,7 @@ const NestedTooltip = () => ( <> <Title title="Nested tooltip" theme="light" level={2} /> <ExampleContainer> - <DxcInset top="3rem"> + <DxcInset top="var(--spacing-padding-xl)"> <DxcTooltip label="Button" position="top"> <DxcButton label="Button" title="Button" /> </DxcTooltip> diff --git a/packages/lib/src/contextual-menu/Section.tsx b/packages/lib/src/contextual-menu/Section.tsx index a8a09e47d3..e33d1b3d37 100644 --- a/packages/lib/src/contextual-menu/Section.tsx +++ b/packages/lib/src/contextual-menu/Section.tsx @@ -32,7 +32,7 @@ export default function Section({ index, length, section }: SectionProps) { ))} </SubMenu> {index !== length - 1 && ( - <DxcInset top="0.25rem" bottom="0.25rem"> + <DxcInset top="var(--spacing-padding-xxs)" bottom="var(--spacing-padding-xxs)"> <DxcDivider color="lightGrey" /> </DxcInset> )} diff --git a/packages/lib/src/dialog/Dialog.stories.tsx b/packages/lib/src/dialog/Dialog.stories.tsx index 7c86b7b279..20061cceda 100644 --- a/packages/lib/src/dialog/Dialog.stories.tsx +++ b/packages/lib/src/dialog/Dialog.stories.tsx @@ -36,8 +36,8 @@ const Dialog = () => ( <ExampleContainer expanded={true}> <Title title="Default dialog" theme="light" level={4} /> <DxcDialog> - <DxcInset space="1.5rem"> - <DxcFlex direction="column" gap="1rem"> + <DxcInset space="var(--spacing-padding-l)"> + <DxcFlex direction="column" gap="var(--spacing-padding-m)"> <DxcHeading level={4} text="Example title" /> <DxcParagraph> Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi egestas luctus porttitor. Donec massa magna, @@ -60,10 +60,10 @@ const DialogInput = () => ( <ExampleContainer expanded={true}> <Title title="Dialog with inputs" theme="light" level={4} /> <DxcDialog> - <DxcInset space="1.5rem"> - <DxcFlex gap="2rem" direction="column"> + <DxcInset space="var(--spacing-padding-l)"> + <DxcFlex gap="var(--spacing-padding-xl)" direction="column"> <DxcHeading level={4} text="Example form" /> - <DxcFlex gap="1rem" direction="column"> + <DxcFlex gap="var(--spacing-padding-m)" direction="column"> <DxcTextInput size="fillParent" label="Name" /> <DxcTextInput size="fillParent" label="Surname" /> </DxcFlex> @@ -74,7 +74,7 @@ const DialogInput = () => ( text: "User: arn:aws:xxx::xxxxxxxxxxxx:assumed-role/assure-sandbox-xxxx-xxxxxxxxxxxxxxxxxxxxxxxxxx/sandbox-xxxx-xxxxxxxxxxxxxxxxxx is not authorized to perform: lambda:xxxxxxxxxxxxxx on resource: arn:aws:lambda:us-east-1:xxxxxxxxxxxx:function:sandbox-xxxx-xx-xxxxxxx-xxxxxxx-lambda because no identity-based policy allows the lambda:xxxxxxxxxxxxxx action", }} /> - <DxcFlex justifyContent="flex-end" gap="0.5rem"> + <DxcFlex justifyContent="flex-end" gap="var(--spacing-padding-xs)"> <DxcButton label="Cancel" mode="tertiary" /> <DxcButton label="Save" /> </DxcFlex> @@ -88,8 +88,8 @@ const DialogNoOverlay = () => ( <ExampleContainer expanded={true}> <Title title="Dialog Without Overlay" theme="light" level={4} /> <DxcDialog overlay={false}> - <DxcInset space="1.5rem"> - <DxcFlex direction="column" gap="1rem"> + <DxcInset space="var(--spacing-padding-l)"> + <DxcFlex direction="column" gap="var(--spacing-padding-m)"> <DxcHeading level={4} text="Example title" /> <DxcParagraph> Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi egestas luctus porttitor. Donec massa magna, @@ -112,7 +112,7 @@ const DialogCloseNoVisible = () => ( <ExampleContainer expanded={true}> <Title title="Dialog Close Visible" theme="dark" level={4} /> <DxcDialog closable={false}> - <DxcInset space="1.5rem"> + <DxcInset space="var(--spacing-padding-l)"> <DxcParagraph> Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi egestas luctus porttitor. Donec massa magna, placerat sit amet felis eget, venenatis fringilla ipsum. Lorem ipsum dolor sit amet, consectetur adipiscing @@ -133,14 +133,14 @@ const RespDialog = () => ( <ExampleContainer expanded={true}> <Title title="Responsive dialog" theme="light" level={4} /> <DxcDialog> - <DxcInset space="1.5rem"> - <DxcFlex gap="2rem" direction="column"> + <DxcInset space="var(--spacing-padding-l)"> + <DxcFlex gap="var(--spacing-padding-xl)" direction="column"> <DxcHeading level={4} text="Example form" /> - <DxcFlex gap="1rem" direction="column"> + <DxcFlex gap="var(--spacing-padding-m)" direction="column"> <DxcTextInput size="fillParent" label="Name" /> <DxcTextInput size="fillParent" label="Surname" /> </DxcFlex> - <DxcFlex justifyContent="flex-end" gap="0.5rem"> + <DxcFlex justifyContent="flex-end" gap="var(--spacing-padding-xs)"> <DxcButton label="Cancel" mode="tertiary" /> <DxcButton label="Save" /> </DxcFlex> @@ -289,8 +289,8 @@ const ScrollingDialog = () => ( </DxcParagraph> </> <DxcDialog> - <DxcInset space="1.5rem"> - <DxcFlex direction="column" gap="1rem"> + <DxcInset space="var(--spacing-padding-l)"> + <DxcFlex direction="column" gap="var(--spacing-padding-m)"> <DxcHeading level={4} text="Example title" /> <DxcParagraph> Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi egestas luctus porttitor. Donec massa magna, diff --git a/packages/lib/src/grid/Grid.stories.tsx b/packages/lib/src/grid/Grid.stories.tsx index 392dc9e335..279f82a555 100644 --- a/packages/lib/src/grid/Grid.stories.tsx +++ b/packages/lib/src/grid/Grid.stories.tsx @@ -153,7 +153,7 @@ const Grid = () => ( </DxcGrid> </ExampleContainer> <Title title="Overlapping" level={4} /> - <DxcInset bottom="2rem"> + <DxcInset bottom="var(--spacing-padding-xl)"> <ExampleContainer> <DxcGrid templateRows={["50px", "50px"]}> <ColoredContainer color="yellow" height="100px"> diff --git a/packages/lib/src/image/Image.stories.tsx b/packages/lib/src/image/Image.stories.tsx index 8fcc668c4e..407bb2b710 100644 --- a/packages/lib/src/image/Image.stories.tsx +++ b/packages/lib/src/image/Image.stories.tsx @@ -34,7 +34,7 @@ const Image = () => ( metus proin arcu faucibus proin nibh sit. Vel integer sed enim in sed vel nec ut vitae. Commodo sagittis volutpat id lorem. </DxcParagraph> - <DxcInset top="2rem" bottom="2rem"> + <DxcInset top="var(--spacing-padding-xl)" bottom="var(--spacing-padding-xl)"> <DxcImage alt="Ratatouille is a great movie" caption="Ratatouille with a smile on his face." diff --git a/packages/lib/src/inset/Inset.stories.tsx b/packages/lib/src/inset/Inset.stories.tsx index 881073928f..41315daf20 100644 --- a/packages/lib/src/inset/Inset.stories.tsx +++ b/packages/lib/src/inset/Inset.stories.tsx @@ -24,206 +24,54 @@ const Placeholder = styled.div` const Inset = () => ( <> - <Title title="Default" level={4} /> + <Title title="No space (default)" level={4} /> <Container> <DxcInset> - <Placeholder></Placeholder> + <Placeholder /> </DxcInset> </Container> - <Title title="space = none" level={4} /> + <Title title="space = xxLarge" level={4} /> <Container> - <DxcInset space="0rem"> - <Placeholder></Placeholder> - </DxcInset> - </Container> - <Title title="space = xxxsmall" level={4} /> - <Container> - <DxcInset space="0.125rem"> - <Placeholder></Placeholder> - </DxcInset> - </Container> - <Title title="space = xxsmall" level={4} /> - <Container> - <DxcInset space="0.25rem"> - <Placeholder></Placeholder> - </DxcInset> - </Container> - <Title title="space = xsmall" level={4} /> - <Container> - <DxcInset space="0.5rem"> - <Placeholder></Placeholder> - </DxcInset> - </Container> - <Title title="space = small" level={4} /> - <Container> - <DxcInset space="1rem"> - <Placeholder></Placeholder> - </DxcInset> - </Container> - <Title title="space = medium" level={4} /> - <Container> - <DxcInset space="1.5rem"> - <Placeholder></Placeholder> - </DxcInset> - </Container> - <Title title="space = large" level={4} /> - <Container> - <DxcInset space="2rem"> - <Placeholder></Placeholder> - </DxcInset> - </Container> - <Title title="space = xlarge" level={4} /> - <Container> - <DxcInset space="3rem"> - <Placeholder></Placeholder> - </DxcInset> - </Container> - <Title title="space = xxlarge" level={4} /> - <Container> - <DxcInset space="4rem"> - <Placeholder></Placeholder> - </DxcInset> - </Container> - <Title title="space = xxxlarge" level={4} /> - <Container> - <DxcInset space="5rem"> - <Placeholder></Placeholder> - </DxcInset> - </Container> - <Title title="horizontal = none" level={4} /> - <Container> - <DxcInset horizontal="0rem"> - <Placeholder></Placeholder> - </DxcInset> - </Container> - <Title title="horizontal = xxxsmall" level={4} /> - <Container> - <DxcInset horizontal="0.125rem"> - <Placeholder></Placeholder> - </DxcInset> - </Container> - <Title title="horizontal = xxsmall" level={4} /> - <Container> - <DxcInset horizontal="0.25rem"> - <Placeholder></Placeholder> - </DxcInset> - </Container> - <Title title="horizontal = xsmall" level={4} /> - <Container> - <DxcInset horizontal="0.5rem"> - <Placeholder></Placeholder> + <DxcInset space="var(--spacing-padding-xxl)"> + <Placeholder /> </DxcInset> </Container> <Title title="horizontal = small" level={4} /> <Container> - <DxcInset horizontal="1rem"> - <Placeholder></Placeholder> - </DxcInset> - </Container> - <Title title="horizontal = medium" level={4} /> - <Container> - <DxcInset horizontal="1.5rem"> - <Placeholder></Placeholder> - </DxcInset> - </Container> - <Title title="horizontal = large" level={4} /> - <Container> - <DxcInset horizontal="2rem"> - <Placeholder></Placeholder> - </DxcInset> - </Container> - <Title title="horizontal = xlarge" level={4} /> - <Container> - <DxcInset horizontal="3rem"> - <Placeholder></Placeholder> - </DxcInset> - </Container> - <Title title="horizontal = xxlarge" level={4} /> - <Container> - <DxcInset horizontal="4rem"> - <Placeholder></Placeholder> - </DxcInset> - </Container> - <Title title="horizontal = xxxlarge" level={4} /> - <Container> - <DxcInset horizontal="5rem"> - <Placeholder></Placeholder> - </DxcInset> - </Container> - <Title title="vertical = none" level={4} /> - <Container> - <DxcInset vertical="0rem"> - <Placeholder></Placeholder> - </DxcInset> - </Container> - <Title title="vertical = xxxsmall" level={4} /> - <Container> - <DxcInset vertical="0.125rem"> - <Placeholder></Placeholder> - </DxcInset> - </Container> - <Title title="vertical = xxsmall" level={4} /> - <Container> - <DxcInset vertical="0.25rem"> - <Placeholder></Placeholder> - </DxcInset> - </Container> - <Title title="vertical = xsmall" level={4} /> - <Container> - <DxcInset vertical="0.5rem"> - <Placeholder></Placeholder> - </DxcInset> - </Container> - <Title title="vertical = small" level={4} /> - <Container> - <DxcInset vertical="1rem"> - <Placeholder></Placeholder> - </DxcInset> - </Container> - <Title title="vertical = medium" level={4} /> - <Container> - <DxcInset vertical="1.5rem"> - <Placeholder></Placeholder> + <DxcInset horizontal="var(--spacing-padding-s)"> + <Placeholder /> </DxcInset> </Container> <Title title="vertical = large" level={4} /> <Container> - <DxcInset vertical="2rem"> - <Placeholder></Placeholder> - </DxcInset> - </Container> - <Title title="vertical = xlarge" level={4} /> - <Container> - <DxcInset vertical="3rem"> - <Placeholder></Placeholder> - </DxcInset> - </Container> - <Title title="vertical = xxlarge" level={4} /> - <Container> - <DxcInset vertical="4rem"> - <Placeholder></Placeholder> - </DxcInset> - </Container> - <Title title="vertical = xxxlarge" level={4} /> - <Container> - <DxcInset vertical="5rem"> - <Placeholder></Placeholder> + <DxcInset vertical="var(--spacing-padding-l)"> + <Placeholder /> </DxcInset> </Container> <Title title="top = xxsmall, right= medium, bottom = large and left = xxlarge" level={4} /> <Container> - <DxcInset top="0.25rem" right="1.5rem" bottom="2rem" left="4rem"> - <Placeholder></Placeholder> + <DxcInset + top="var(--spacing-padding-xxs)" + right="var(--spacing-padding-m)" + bottom="var(--spacing-padding-l)" + left="var(--spacing-padding-xl)" + > + <Placeholder /> </DxcInset> </Container> <Title title="Inside a flex column" level={4} /> <Container> <DxcFlex direction="column" gap="1rem"> - <Placeholder></Placeholder> - <DxcInset top="0.25rem" right="1.5rem" bottom="2rem" left="4rem"> - <Placeholder></Placeholder> + <Placeholder /> + <DxcInset + top="var(--spacing-padding-xxs)" + right="var(--spacing-padding-l)" + bottom="var(--spacing-padding-xl)" + left="var(--spacing-padding-xxl)" + > + <Placeholder /> </DxcInset> - <Placeholder></Placeholder> + <Placeholder /> </DxcFlex> </Container> </> diff --git a/packages/lib/src/inset/Inset.tsx b/packages/lib/src/inset/Inset.tsx index f1ffbded1c..4967184e39 100644 --- a/packages/lib/src/inset/Inset.tsx +++ b/packages/lib/src/inset/Inset.tsx @@ -1,28 +1,27 @@ import styled from "styled-components"; import InsetPropsType from "./types"; -import { CoreSpacingTokensType } from "../common/coreTokens"; -const getSpacingValue = (spacingName?: CoreSpacingTokensType) => spacingName ?? "0rem"; +const retrieveSpacingValue = (spacingName?: string) => spacingName ?? "0rem"; -const StyledInset = styled.div<InsetPropsType>` +const Inset = styled.div<InsetPropsType>` ${({ space, horizontal, vertical, top, right, bottom, left }) => ` - padding: ${getSpacingValue(top || vertical || space)} ${getSpacingValue(right || horizontal || space)} - ${getSpacingValue(bottom || vertical || space)} ${getSpacingValue(left || horizontal || space)}; + padding: ${retrieveSpacingValue(top || vertical || space)} ${retrieveSpacingValue(right || horizontal || space)} + ${retrieveSpacingValue(bottom || vertical || space)} ${retrieveSpacingValue(left || horizontal || space)}; `} `; -const Inset = ({ space, horizontal, vertical, top, right, bottom, left, children }: InsetPropsType) => ( - <StyledInset - space={space} - horizontal={horizontal} - vertical={vertical} - top={top} - right={right} - bottom={bottom} - left={left} - > - {children} - </StyledInset> -); - -export default Inset; +export default function DxcInset({ space, horizontal, vertical, top, right, bottom, left, children }: InsetPropsType) { + return ( + <Inset + space={space} + horizontal={horizontal} + vertical={vertical} + top={top} + right={right} + bottom={bottom} + left={left} + > + {children} + </Inset> + ); +} diff --git a/packages/lib/src/inset/types.ts b/packages/lib/src/inset/types.ts index cb6567e7c2..bff6c2abd5 100644 --- a/packages/lib/src/inset/types.ts +++ b/packages/lib/src/inset/types.ts @@ -1,39 +1,38 @@ import { ReactNode } from "react"; -import { CoreSpacingTokensType } from "../common/coreTokens"; type Props = { /** - * Applies the spacing scale to all sides. + * Custom content inside the inset. */ - space?: CoreSpacingTokensType; + children: ReactNode; /** - * Applies the spacing scale to the left and right sides. + * Applies the spacing scale to the bottom side. */ - horizontal?: CoreSpacingTokensType; + bottom?: string; /** - * Applies the spacing scale to the top and bottom sides. + * Applies the spacing scale to the left and right sides. */ - vertical?: CoreSpacingTokensType; + horizontal?: string; /** - * Applies the spacing scale to the top side. + * Applies the spacing scale to the left side. */ - top?: CoreSpacingTokensType; + left?: string; /** * Applies the spacing scale to the right side. */ - right?: CoreSpacingTokensType; + right?: string; /** - * Applies the spacing scale to the bottom side. + * Applies the spacing scale to all sides. */ - bottom?: CoreSpacingTokensType; + space?: string; /** - * Applies the spacing scale to the left side. + * Applies the spacing scale to the top side. */ - left?: CoreSpacingTokensType; + top?: string; /** - * Custom content inside the inset. + * Applies the spacing scale to the top and bottom sides. */ - children: ReactNode; + vertical?: string; }; export default Props; diff --git a/packages/lib/src/quick-nav/QuickNav.tsx b/packages/lib/src/quick-nav/QuickNav.tsx index 333d0e4c28..51d3d82951 100644 --- a/packages/lib/src/quick-nav/QuickNav.tsx +++ b/packages/lib/src/quick-nav/QuickNav.tsx @@ -15,18 +15,18 @@ const DxcQuickNav = ({ title, links }: QuickNavTypes): JSX.Element => { return ( <ThemeProvider theme={colorsTheme.quickNav}> <QuickNavContainer> - <DxcFlex direction="column" gap="0.5rem"> + <DxcFlex direction="column" gap="var(--spacing-padding-xs)"> <DxcHeading level={4} text={title || translatedLabels.quickNav.contentTitle} /> <ListColumn> {links.map((link) => ( <li key={link.label}> - <DxcInset space="0.25rem"> + <DxcInset space="var(--spacing-padding-xxs)"> <DxcTypography> <Link href={`#${slugify(link.label, { lower: true })}`}>{link.label}</Link> <ListSecondColumn> {link.links?.map((sublink) => ( <li key={sublink.label}> - <DxcInset horizontal="0.5rem"> + <DxcInset horizontal="var(--spacing-padding-xs)"> <DxcTypography> <Link href={`#${slugify(link?.label, { lower: true })}-${slugify(sublink?.label, { diff --git a/packages/lib/src/sidenav/Sidenav.stories.tsx b/packages/lib/src/sidenav/Sidenav.stories.tsx index a0398bbac5..d4eb078d78 100644 --- a/packages/lib/src/sidenav/Sidenav.stories.tsx +++ b/packages/lib/src/sidenav/Sidenav.stories.tsx @@ -217,7 +217,7 @@ const ActiveGroupSidenav = () => ( <Title title="Active state for groups (selected and not)" theme="light" level={4} /> <DxcSidenav title={<DxcSidenav.Title>Dxc technology</DxcSidenav.Title>}> <DxcSidenav.Section> - <DxcInset space="1rem"> + <DxcInset space="var(--spacing-padding-m)"> <DxcSelect defaultValue="1" options={[ diff --git a/packages/lib/src/tooltip/Tooltip.stories.tsx b/packages/lib/src/tooltip/Tooltip.stories.tsx index 98fc64922e..d11dbde965 100644 --- a/packages/lib/src/tooltip/Tooltip.stories.tsx +++ b/packages/lib/src/tooltip/Tooltip.stories.tsx @@ -16,7 +16,7 @@ const Tooltip = () => ( <> <Title title="Default tooltip" theme="light" level={4} /> <ExampleContainer> - <DxcInset bottom="3rem"> + <DxcInset bottom="var(--spacing-padding-xxl)"> <DxcTooltip label="Tooltip Test"> <DxcButton label="Hoverable button" /> </DxcTooltip> @@ -29,7 +29,7 @@ const LargeTextWithinTooltip = () => ( <> <Title title="Multiple line tooltip" theme="light" level={4} /> <ExampleContainer> - <DxcInset bottom="5rem" left="1rem"> + <DxcInset bottom="var(--spacing-padding-xxl)" left="var(--spacing-padding-m)"> <DxcTooltip label="Tooltip Test with a large text to display in the container while hovering the component"> <DxcButton label="Hoverable button" /> </DxcTooltip> @@ -42,7 +42,7 @@ const TopTooltip = () => ( <> <Title title="Top tooltip" theme="light" level={4} /> <ExampleContainer> - <DxcInset top="3rem"> + <DxcInset top="var(--spacing-padding-xxl)"> <DxcTooltip label="Tooltip Test" position="top"> <DxcButton label="Hoverable button" /> </DxcTooltip> From 22bcc95eb3e97bc540c101a32de54b69bda7b8f9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Iv=C3=A1n=20G=C3=B3mez=20Pinta?= <44321109+GomezIvann@users.noreply.github.com> Date: Mon, 31 Mar 2025 17:44:15 +0200 Subject: [PATCH 2/8] Container updates, Inset documentation update & general doc updates --- apps/website/pages/components/inset/code.tsx | 17 + apps/website/pages/components/inset/index.tsx | 24 +- .../pages/components/inset/specifications.tsx | 21 - apps/website/pages/components/inset/usage.tsx | 21 - .../container/code/ContainerCodePage.tsx | 682 +++++++++--------- .../container/code/examples/basicUsage.ts | 10 +- .../container/code/examples/listbox.ts | 30 +- .../overview/examples/alternateBoxModel.ts | 25 - .../overview/examples/defaultBoxModel.ts | 24 - .../components/inset/InsetPageLayout.tsx | 7 +- .../components/inset/code/InsetCodePage.tsx | 175 +++-- .../inset/code/examples/basicUsage.ts | 12 +- .../inset/code/examples/customSides.ts | 17 +- .../InsetOverviewPage.tsx} | 8 +- .../components/inset/specs/InsetSpecsPage.tsx | 36 - .../inset/specs/images/inset_specs.png | Bin 24114 -> 0 bytes packages/lib/src/container/Container.tsx | 20 +- packages/lib/src/container/types.ts | 34 +- packages/lib/src/inset/Inset.stories.tsx | 32 +- packages/lib/src/inset/Inset.tsx | 32 +- 20 files changed, 563 insertions(+), 664 deletions(-) create mode 100644 apps/website/pages/components/inset/code.tsx delete mode 100644 apps/website/pages/components/inset/specifications.tsx delete mode 100644 apps/website/pages/components/inset/usage.tsx delete mode 100644 apps/website/screens/components/container/overview/examples/alternateBoxModel.ts delete mode 100644 apps/website/screens/components/container/overview/examples/defaultBoxModel.ts rename apps/website/screens/components/inset/{usage/InsetUsagePage.tsx => overview/InsetOverviewPage.tsx} (91%) delete mode 100644 apps/website/screens/components/inset/specs/InsetSpecsPage.tsx delete mode 100644 apps/website/screens/components/inset/specs/images/inset_specs.png diff --git a/apps/website/pages/components/inset/code.tsx b/apps/website/pages/components/inset/code.tsx new file mode 100644 index 0000000000..7a44f328af --- /dev/null +++ b/apps/website/pages/components/inset/code.tsx @@ -0,0 +1,17 @@ +import Head from "next/head"; +import type { ReactElement } from "react"; +import InsetCodePage from "screens/components/inset/code/InsetCodePage"; +import InsetPageLayout from "screens/components/inset/InsetPageLayout"; + +const Code = () => ( + <> + <Head> + <title>Inset code — Halstack Design System + + + +); + +Code.getLayout = (page: ReactElement) => {page}; + +export default Code; diff --git a/apps/website/pages/components/inset/index.tsx b/apps/website/pages/components/inset/index.tsx index 6f63356a15..50ecc9992f 100644 --- a/apps/website/pages/components/inset/index.tsx +++ b/apps/website/pages/components/inset/index.tsx @@ -1,21 +1,17 @@ import Head from "next/head"; import type { ReactElement } from "react"; import InsetPageLayout from "screens/components/inset/InsetPageLayout"; -import InsetCodePage from "screens/components/inset/code/InsetCodePage"; +import InsetOverviewPage from "screens/components/inset/overview/InsetOverviewPage"; -const Index = () => { - return ( - <> - - Inset — Halstack Design System - - - - ); -}; +const Index = () => ( + <> + + Inset — Halstack Design System + + + +); -Index.getLayout = function getLayout(page: ReactElement) { - return {page}; -}; +Index.getLayout = (page: ReactElement) => {page}; export default Index; diff --git a/apps/website/pages/components/inset/specifications.tsx b/apps/website/pages/components/inset/specifications.tsx deleted file mode 100644 index 4a19621e36..0000000000 --- a/apps/website/pages/components/inset/specifications.tsx +++ /dev/null @@ -1,21 +0,0 @@ -import Head from "next/head"; -import type { ReactElement } from "react"; -import InsetPageLayout from "screens/components/inset/InsetPageLayout"; -import InsetSpecsPage from "screens/components/inset/specs/InsetSpecsPage"; - -const Specifications = () => { - return ( - <> - - Inset Specs — Halstack Design System - - - - ); -}; - -Specifications.getLayout = function getLayout(page: ReactElement) { - return {page}; -}; - -export default Specifications; diff --git a/apps/website/pages/components/inset/usage.tsx b/apps/website/pages/components/inset/usage.tsx deleted file mode 100644 index 6c6bfcc69d..0000000000 --- a/apps/website/pages/components/inset/usage.tsx +++ /dev/null @@ -1,21 +0,0 @@ -import Head from "next/head"; -import type { ReactElement } from "react"; -import InsetPageLayout from "screens/components/inset/InsetPageLayout"; -import InsetUsagePage from "screens/components/inset/usage/InsetUsagePage"; - -const Usage = () => { - return ( - <> - - Inset Usage — Halstack Design System - - - - ); -}; - -Usage.getLayout = function getLayout(page: ReactElement) { - return {page}; -}; - -export default Usage; diff --git a/apps/website/screens/components/container/code/ContainerCodePage.tsx b/apps/website/screens/components/container/code/ContainerCodePage.tsx index f3c94ba793..6611792076 100644 --- a/apps/website/screens/components/container/code/ContainerCodePage.tsx +++ b/apps/website/screens/components/container/code/ContainerCodePage.tsx @@ -8,41 +8,45 @@ import TableCode, { ExtendedTableCode } from "@/common/TableCode"; import Example from "@/common/example/Example"; import basicUsage from "./examples/basicUsage"; import listbox from "./examples/listbox"; -import Link from "next/link"; const backgroundTypeString = `{ attachment?: string; clip?: string; - color?: CoreColorTokens; + color?: string; image?: string; origin?: string; position?: string; repeat?: string; size?: string; }`; + const borderTypeString = `BorderProperties | { top?: BorderProperties; right?: BorderProperties; bottom?: BorderProperties; left?: BorderProperties; }`; + const borderPropertiesTypeString = `{ width?: string; style?: LineStyleValues; - color?: CoreColorTokens; + color?: string; }`; + const insetTypeString = `{ top?: string; right?: string; bottom?: string; left?: string; }`; + const outlineTypeString = `{ width?: string; style?: LineStyleValues; - color?: CoreColorTokens; + color?: string; offset?: string; }`; + const overflowTypeString = `OverflowValues | { x?: OverflowValues; @@ -54,344 +58,336 @@ const sections = [ title: "Props", content: ( - - Name - Type - Description - Default - - - background - - {backgroundTypeString} -

- being CoreColorTokens the color tokens provided by Halstack Design System. See our{" "} - - Color palette - {" "} - for further knowledge. -

- - - Based on the CSS property background allows configuring all properties related to the - background of a container. See{" "} - - MDN - {" "} - for further information. - - - - - - border - - - {borderTypeString} -

- being BorderProperties an object with the following properties: -

- {borderPropertiesTypeString} + + + Name + Type + Description + Default + + + + + background + + {backgroundTypeString} + + + Based on the CSS property background allows configuring all properties related to the + background of a container. See{" "} + + MDN + {" "} + for further information. + + - + + + border + + + {borderTypeString} +

+ being BorderProperties an object with the following properties: +

+ {borderPropertiesTypeString} +

+ and LineStyleValues an enum with the following possible values: +

+ + 'none' | 'dotted' | 'dashed' | 'solid' | 'double' | 'groove' | 'ridge' | 'inset' | 'outset' + +
+ + + Based on the CSS property border allows configuring all properties related to the border of a + container. + + - + + + borderRadius + + string + + + Sets the border-radius CSS property. See{" "} + + MDN + {" "} + for further information. + + - + + + boxShadow + + string + + + Sets the box-shadow CSS property. See{" "} + + MDN + {" "} + for further information. + + + 'none' + + + + boxSizing + + 'content-box' | 'border-box' + + + Sets the box-sizing CSS property. See{" "} + + MDN + {" "} + for further information. + + + 'content-box' + + + + children + + React.ReactNode + + Custom content inside the container. + - + + + display + + 'block' | 'inline-block' | 'inline' | 'none' + + + Sets the display CSS property. See{" "} + + MDN + {" "} + for further information. The set of values is limited to the ones related to the outer display type. If + you want to apply any pattern from the inner box and how the children are laid out, we recommend you to + use the Flex and Grid components. + + + 'block' + + + + float + + 'left' | 'right' | 'none' + + + Sets the float CSS property. See{" "} + + MDN + {" "} + for further information. + + + 'none' + + + + height + + string + + + Sets the height CSS property. See{" "} + + MDN + {" "} + for further information. + + + 'auto' + + + + inset + + {insetTypeString} + + + Based on the CSS property inset this prop is a shorthand that corresponds to the{" "} + top, right, bottom, and/or left properties. + + + 'auto' + + + + margin + + 'xxsmall' | 'xsmall' | 'small' | 'medium' | 'large' | 'xlarge' | 'xxlarge' | Space + + + 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. + + - + + + maxHeight + + string + + + Sets the max-height CSS property. See{" "} + + MDN + {" "} + for further information. + + + 'none' + + + + maxWidth + + string + + + Sets the max-width CSS property. See{" "} + + MDN + {" "} + for further information. + + + 'none' + + + + minHeight + + string + + + Sets the min-height CSS property. See{" "} + + MDN + {" "} + for further information. + + + 'auto' + + + + minWidth + + string + + + Sets the min-width CSS property. See{" "} + + MDN + {" "} + for further information. + + + 'auto' + + + + outline + + {outlineTypeString} + + + Based on the CSS property outline allows configuring all properties related to the outline of + a container. + + - + + + overflow + + {overflowTypeString}

- and LineStyleValues an enum with the following possible values: + being OverflowValues an enum with the following possible values:

- - 'none' | 'dotted' | 'dashed' | 'solid' | 'double' | 'groove' | 'ridge' | 'inset' | 'outset' - -
- - - Based on the CSS property border allows configuring all properties related to the border of a - container. - - - - - - borderRadius - - string - - - Sets the border-radius CSS property. See{" "} - - MDN - {" "} - for further information. - - - - - - boxShadow - - string - - - Sets the box-shadow CSS property. See{" "} - - MDN - {" "} - for further information. - - - 'none' - - - - boxSizing - - 'content-box' | 'border-box' - - - Sets the box-sizing CSS property. See{" "} - - MDN - {" "} - for further information. - - - 'content-box' - - - - - - - children - - - - React.ReactNode - - Custom content inside the container. - - - - - display - - 'block' | 'inline-block' | 'inline' | 'none' - - - Sets the display CSS property. See{" "} - - MDN - {" "} - for further information. The set of values is limited to the ones related to the outer display type. If you - want to apply any pattern from the inner box and how the children are laid out, we recommend you to use the - Flex and Grid components. - - - 'block' - - - - float - - 'left' | 'right' | 'none' - - - Sets the float CSS property. See{" "} - - MDN - {" "} - for further information. - - - 'none' - - - - height - - string - - - Sets the height CSS property. See{" "} - - MDN - {" "} - for further information. - - - 'auto' - - - - inset - - {insetTypeString} - - - Based on the CSS property inset this prop is a shorthand that corresponds to the{" "} - top, right, bottom, and/or left properties. - - - 'auto' - - - - margin - - 'xxsmall' | 'xsmall' | 'small' | 'medium' | 'large' | 'xlarge' | 'xxlarge' | Space - - - 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. - - - - - - maxHeight - - string - - - Sets the max-height CSS property. See{" "} - - MDN - {" "} - for further information. - - - 'none' - - - - maxWidth - - string - - - Sets the max-width CSS property. See{" "} - - MDN - {" "} - for further information. - - - 'none' - - - - minHeight - - string - - - Sets the min-height CSS property. See{" "} - - MDN - {" "} - for further information. - - - 'auto' - - - - minWidth - - string - - - Sets the min-width CSS property. See{" "} - - MDN - {" "} - for further information. - - - 'auto' - - - - outline - - {outlineTypeString} - - - Based on the CSS property outline allows configuring all properties related to the outline of a - container. - - - - - - overflow - - {overflowTypeString} -

- being OverflowValues an enum with the following possible values: -

- 'visible' | 'hidden' | 'clip' | 'scroll' | 'auto' - - - Sets the overflow CSS property. See{" "} - - MDN - {" "} - for further information. - - - 'visible' - - - - padding - - 'xxsmall' | 'xsmall' | 'small' | 'medium' | 'large' | 'xlarge' | 'xxlarge' | Space - - - 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. - - - - - - position - - 'static' | 'relative' | 'absolute' | 'fixed' | 'sticky' - - - Sets the position CSS property. See{" "} - - MDN - {" "} - for further information. - - - 'static' - - - - width - - string - - - Sets the width CSS property. See{" "} - - MDN - {" "} - for further information. - - - 'auto' - - - - zIndex - - 'auto' | number - - - Sets the z-index CSS property. See{" "} - - MDN - {" "} - for further information. - - - 'auto' - - + 'visible' | 'hidden' | 'clip' | 'scroll' | 'auto' + + + Sets the overflow CSS property. See{" "} + + MDN + {" "} + for further information. + + + 'visible' + + + + padding + + 'xxsmall' | 'xsmall' | 'small' | 'medium' | 'large' | 'xlarge' | 'xxlarge' | Space + + + 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. + + - + + + position + + 'static' | 'relative' | 'absolute' | 'fixed' | 'sticky' + + + Sets the position CSS property. See{" "} + + MDN + {" "} + for further information. + + + 'static' + + + + width + + string + + + Sets the width CSS property. See{" "} + + MDN + {" "} + for further information. + + + 'auto' + + + + zIndex + + 'auto' | number + + + Sets the z-index CSS property. See{" "} + + MDN + {" "} + for further information. + + + 'auto' + + +
), }, @@ -408,8 +404,8 @@ const sections = [ <> This code provides an illustration of a custom component created exclusively with the{" "} - DxcContainer. You should not copy this code, but use instead our{" "} - DxcSelect. + DxcContainer. You should not copy this code, use our DxcSelect{" "} + instead. It is imperative to exclusively utilize Halstack components for optimal compatibility and adherence to our @@ -417,7 +413,7 @@ const sections = [ reach out to our development team {" "} - first to discuss your particular situation. + first to discuss your particular scenario. diff --git a/apps/website/screens/components/container/code/examples/basicUsage.ts b/apps/website/screens/components/container/code/examples/basicUsage.ts index a0c582d7ad..a5163e14c3 100644 --- a/apps/website/screens/components/container/code/examples/basicUsage.ts +++ b/apps/website/screens/components/container/code/examples/basicUsage.ts @@ -4,9 +4,13 @@ const code = `() => { return ( Example text diff --git a/apps/website/screens/components/container/code/examples/listbox.ts b/apps/website/screens/components/container/code/examples/listbox.ts index 07a861df6d..cf90ef4392 100644 --- a/apps/website/screens/components/container/code/examples/listbox.ts +++ b/apps/website/screens/components/container/code/examples/listbox.ts @@ -6,28 +6,38 @@ const code = `() => { return ( {suggestions.map((suggestion, index) => ( - + - + {suggestion} diff --git a/apps/website/screens/components/container/overview/examples/alternateBoxModel.ts b/apps/website/screens/components/container/overview/examples/alternateBoxModel.ts deleted file mode 100644 index c06ccf534c..0000000000 --- a/apps/website/screens/components/container/overview/examples/alternateBoxModel.ts +++ /dev/null @@ -1,25 +0,0 @@ -import { DxcContainer, DxcInset } from "@dxc-technology/halstack-react"; - -const code = `() => { - return ( - - -

Container with default box model "border-box"

-
-
- ); -}`; - -const scope = { - DxcContainer, - DxcInset, -}; - -export default { code, scope }; diff --git a/apps/website/screens/components/container/overview/examples/defaultBoxModel.ts b/apps/website/screens/components/container/overview/examples/defaultBoxModel.ts deleted file mode 100644 index ba94f390fc..0000000000 --- a/apps/website/screens/components/container/overview/examples/defaultBoxModel.ts +++ /dev/null @@ -1,24 +0,0 @@ -import { DxcContainer, DxcInset } from "@dxc-technology/halstack-react"; - -const code = `() => { - return ( - - -

Container with default box model "content-box"

-
-
- ); -}`; - -const scope = { - DxcContainer, - DxcInset, -}; - -export default { code, scope }; diff --git a/apps/website/screens/components/inset/InsetPageLayout.tsx b/apps/website/screens/components/inset/InsetPageLayout.tsx index 4e97fae4e0..53e6d8f296 100644 --- a/apps/website/screens/components/inset/InsetPageLayout.tsx +++ b/apps/website/screens/components/inset/InsetPageLayout.tsx @@ -6,9 +6,8 @@ import { ReactNode } from "react"; const InsetPageHeading = ({ children }: { children: ReactNode }) => { const tabs = [ - { label: "Code", path: "/components/inset" }, - { label: "Usage", path: "/components/inset/usage" }, - { label: "Specifications", path: "/components/inset/specifications" }, + { label: "Overview", path: "/components/inset" }, + { label: "Code", path: "/components/inset/code" }, ]; return ( @@ -17,7 +16,7 @@ const InsetPageHeading = ({ children }: { children: ReactNode }) => { Inset layout applies positive spacing scale to its child nodes. - + {children} diff --git a/apps/website/screens/components/inset/code/InsetCodePage.tsx b/apps/website/screens/components/inset/code/InsetCodePage.tsx index a4771d553a..c9ec682699 100644 --- a/apps/website/screens/components/inset/code/InsetCodePage.tsx +++ b/apps/website/screens/components/inset/code/InsetCodePage.tsx @@ -8,89 +8,90 @@ import customSides from "./examples/customSides"; import TableCode from "@/common/TableCode"; import StatusBadge from "@/common/StatusBadge"; -const coreSpacingTokensTypeString = `'0rem' | '0.125rem' | '0.25rem' | '0.5rem' | '0.75rem' | '1rem' | '1.5rem' | '2rem' | '2.5rem' | '3rem' | '3.5rem' | '4rem' | '5rem' | '6rem' | '7rem'`; - const sections = [ { title: "Props", content: ( - - Name - Type - Description - Default - - - space - - {coreSpacingTokensTypeString} - - Applies the spacing scale to all sides. - - - - - horizontal - - {coreSpacingTokensTypeString} - - Applies the spacing scale to the left and right sides. - - - - - vertical - - {coreSpacingTokensTypeString} - - Applies the spacing scale to the top and bottom sides. - - - - - top - - {coreSpacingTokensTypeString} - - Applies the spacing scale to the top side. - - - - - right - - {coreSpacingTokensTypeString} - - Applies the spacing scale to the right side. - - - - - bottom - - {coreSpacingTokensTypeString} - - Applies the spacing scale to the bottom side. - - - - - - left - - {coreSpacingTokensTypeString} - - Applies the spacing scale to the left side. - - - - - - - - children - - - - React.ReactNode - - Custom content inside the inset. - - - + + + Name + Type + Description + Default + + + + + bottom + + string + + Applies the spacing scale to the bottom side. + - + + + + + + children + + + + React.ReactNode + + Custom content inside the inset. + - + + + horizontal + + string + + Applies the spacing scale to the left and right sides. + - + + + left + + string + + Applies the spacing scale to the left side. + - + + + right + + string + + Applies the spacing scale to the right side. + - + + + space + + string + + Applies the spacing scale to all sides. + - + + + top + + string + + Applies the spacing scale to the top side. + - + + + vertical + + string + + Applies the spacing scale to the top and bottom sides. + - + + ), }, @@ -109,15 +110,13 @@ const sections = [ }, ]; -const InsetCodePage = () => { - return ( - - - - - - - ); -}; +const InsetCodePage = () => ( + + + + + + +); export default InsetCodePage; diff --git a/apps/website/screens/components/inset/code/examples/basicUsage.ts b/apps/website/screens/components/inset/code/examples/basicUsage.ts index 7ceb8e705e..3d46c84331 100644 --- a/apps/website/screens/components/inset/code/examples/basicUsage.ts +++ b/apps/website/screens/components/inset/code/examples/basicUsage.ts @@ -3,13 +3,13 @@ import Placeholder from "@/common/Placeholder"; const code = `() => { return ( - - - - - + + + + + - + ); diff --git a/apps/website/screens/components/inset/code/examples/customSides.ts b/apps/website/screens/components/inset/code/examples/customSides.ts index 8c5a252f9a..b870d743cb 100644 --- a/apps/website/screens/components/inset/code/examples/customSides.ts +++ b/apps/website/screens/components/inset/code/examples/customSides.ts @@ -3,13 +3,18 @@ import Placeholder from "@/common/Placeholder"; const code = `() => { return ( - - - - - + + + + + - + ); diff --git a/apps/website/screens/components/inset/usage/InsetUsagePage.tsx b/apps/website/screens/components/inset/overview/InsetOverviewPage.tsx similarity index 91% rename from apps/website/screens/components/inset/usage/InsetUsagePage.tsx rename to apps/website/screens/components/inset/overview/InsetOverviewPage.tsx index 6ee979d9cc..b6ba53578e 100644 --- a/apps/website/screens/components/inset/usage/InsetUsagePage.tsx +++ b/apps/website/screens/components/inset/overview/InsetOverviewPage.tsx @@ -6,7 +6,7 @@ import Code from "@/common/Code"; const sections = [ { - title: "Usage", + title: "Introduction", content: ( <> @@ -24,15 +24,15 @@ const sections = [ }, ]; -const InsetUsagePage = () => { +const InsetOverviewPage = () => { return ( - + ); }; -export default InsetUsagePage; +export default InsetOverviewPage; diff --git a/apps/website/screens/components/inset/specs/InsetSpecsPage.tsx b/apps/website/screens/components/inset/specs/InsetSpecsPage.tsx deleted file mode 100644 index 2777ef89c8..0000000000 --- a/apps/website/screens/components/inset/specs/InsetSpecsPage.tsx +++ /dev/null @@ -1,36 +0,0 @@ -import { DxcFlex, DxcParagraph } from "@dxc-technology/halstack-react"; -import QuickNavContainerLayout from "@/common/QuickNavContainerLayout"; -import DocFooter from "@/common/DocFooter"; -import QuickNavContainer from "@/common/QuickNavContainer"; -import Figure from "@/common/Figure"; -import Image from "@/common/Image"; -import insetSpecs from "./images/inset_specs.png"; - -const sections = [ - { - title: "Specifications", - content: ( - <> -
- Inset design specifications -
- - Positive space varies depending on the REM values and the approach to implementation. - - - ), - }, -]; - -const InsetSpecsPage = () => { - return ( - - - - - - - ); -}; - -export default InsetSpecsPage; diff --git a/apps/website/screens/components/inset/specs/images/inset_specs.png b/apps/website/screens/components/inset/specs/images/inset_specs.png deleted file mode 100644 index 5583cb33ccdcd99e73f815fc2db994a3447f7abd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 24114 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 Js{B19>0i2H`49jA diff --git a/packages/lib/src/container/Container.tsx b/packages/lib/src/container/Container.tsx index 36ad1da0cc..7fe51dec7e 100644 --- a/packages/lib/src/container/Container.tsx +++ b/packages/lib/src/container/Container.tsx @@ -63,21 +63,21 @@ const Container = styled.div` } return styles; }}; - margin: ${({ margin }) => (typeof margin === "string" ? spaces[margin] : "")}; - margin-top: ${({ margin }) => (typeof margin === "object" && margin.top ? spaces[margin.top] : "")}; - margin-right: ${({ margin }) => (typeof margin === "object" && margin.right ? spaces[margin.right] : "")}; - margin-bottom: ${({ margin }) => (typeof margin === "object" && margin.bottom ? spaces[margin.bottom] : "")}; - margin-left: ${({ margin }) => (typeof margin === "object" && margin.left ? spaces[margin.left] : "")}; + margin: ${({ margin }) => (typeof margin === "string" ? margin : "")}; + margin-top: ${({ margin }) => (typeof margin === "object" && margin.top ? margin.top : "")}; + margin-right: ${({ margin }) => (typeof margin === "object" && margin.right ? margin.right : "")}; + margin-bottom: ${({ margin }) => (typeof margin === "object" && margin.bottom ? margin.bottom : "")}; + margin-left: ${({ margin }) => (typeof margin === "object" && margin.left ? margin.left : "")}; outline: ${({ outline }) => `${outline?.width ?? ""} ${outline?.style ?? ""} ${outline?.color ?? ""}`}; outline-offset: ${({ outline }) => outline?.offset}; overflow: ${({ $overflow }) => (typeof $overflow === "string" ? $overflow : "")}; overflow-x: ${({ $overflow }) => (typeof $overflow === "object" ? `${$overflow?.x}` : "")}; overflow-y: ${({ $overflow }) => (typeof $overflow === "object" ? `${$overflow?.y}` : "")}; - padding: ${({ padding }) => (typeof padding === "string" ? spaces[padding] : "")}; - padding-top: ${({ padding }) => (typeof padding === "object" && padding.top ? spaces[padding.top] : "")}; - padding-right: ${({ padding }) => (typeof padding === "object" && padding.right ? spaces[padding.right] : "")}; - padding-bottom: ${({ padding }) => (typeof padding === "object" && padding.bottom ? spaces[padding.bottom] : "")}; - padding-left: ${({ padding }) => (typeof padding === "object" && padding.left ? spaces[padding.left] : "")}; + padding: ${({ padding }) => (typeof padding === "string" ? padding : "")}; + padding-top: ${({ padding }) => (typeof padding === "object" && padding.top ? padding.top : "")}; + padding-right: ${({ padding }) => (typeof padding === "object" && padding.right ? padding.right : "")}; + padding-bottom: ${({ padding }) => (typeof padding === "object" && padding.bottom ? padding.bottom : "")}; + padding-left: ${({ padding }) => (typeof padding === "object" && padding.left ? padding.left : "")}; `; export default function DxcContainer({ display, width, height, overflow, ...props }: ContainerPropsType) { diff --git a/packages/lib/src/container/types.ts b/packages/lib/src/container/types.ts index 683cac799f..63b12319b0 100644 --- a/packages/lib/src/container/types.ts +++ b/packages/lib/src/container/types.ts @@ -1,12 +1,12 @@ import { ReactNode } from "react"; -import { Space as SpacingValues } from "../common/utils"; + type Space = - | SpacingValues + | string | { - top?: SpacingValues; - right?: SpacingValues; - bottom?: SpacingValues; - left?: SpacingValues; + top?: string; + right?: string; + bottom?: string; + left?: string; }; type Inset = { @@ -80,7 +80,7 @@ type Props = { /** * Custom content inside the container. */ - children: ReactNode; + children?: ReactNode; /** * Sets the display CSS property. * The set of values is limited to the ones related to the outer display type. @@ -113,12 +113,6 @@ type Props = { * in order to specify different margin sizes. */ margin?: Space; - /** - * Sets the max-height CSS property. - * - * See MDN: https://developer.mozilla.org/en-US/docs/Web/CSS/max-height - */ - maxWidth?: string; /** * Sets the max-width CSS property. * @@ -126,17 +120,23 @@ type Props = { */ maxHeight?: string; /** - * Sets the min-height CSS property. + * Sets the max-height CSS property. * - * See MDN: https://developer.mozilla.org/en-US/docs/Web/CSS/min-height + * See MDN: https://developer.mozilla.org/en-US/docs/Web/CSS/max-height */ - minWidth?: string; + maxWidth?: string; /** * Sets the min-width CSS property. * * See MDN: https://developer.mozilla.org/en-US/docs/Web/CSS/min-width */ minHeight?: string; + /** + * Sets the min-height CSS property. + * + * See MDN: https://developer.mozilla.org/en-US/docs/Web/CSS/min-height + */ + minWidth?: string; /** * Based on the CSS property outline allows configuring all properties related * to the outline of a container. @@ -176,9 +176,9 @@ type Props = { export type StyledProps = Omit & { $display?: "block" | "inline-block" | "inline" | "none"; - $width?: string; $height?: string; $overflow?: Overflow; + $width?: string; }; export default Props; diff --git a/packages/lib/src/inset/Inset.stories.tsx b/packages/lib/src/inset/Inset.stories.tsx index 41315daf20..6fbb0e6ab3 100644 --- a/packages/lib/src/inset/Inset.stories.tsx +++ b/packages/lib/src/inset/Inset.stories.tsx @@ -1,26 +1,34 @@ -import styled from "styled-components"; import Title from "../../.storybook/components/Title"; import DxcFlex from "./../flex/Flex"; import DxcInset from "./Inset"; import { Meta, StoryObj } from "@storybook/react"; +import DxcContainer from "../container/Container"; +import { ReactNode } from "react"; export default { title: "Inset", component: DxcInset, } as Meta; -const Container = styled.div` - background: #f2eafa; - margin: 2.5rem; -`; +const Container = ({ children }: { children: ReactNode }) => ( + + {children} + +); -const Placeholder = styled.div` - min-height: 40px; - min-width: 120px; - border: 1px solid #a46ede; - border-radius: 0.5rem; - background-color: #e5d5f6; -`; +const Placeholder = () => ( + +); const Inset = () => ( <> diff --git a/packages/lib/src/inset/Inset.tsx b/packages/lib/src/inset/Inset.tsx index 4967184e39..c952c7d9d0 100644 --- a/packages/lib/src/inset/Inset.tsx +++ b/packages/lib/src/inset/Inset.tsx @@ -1,27 +1,19 @@ -import styled from "styled-components"; import InsetPropsType from "./types"; +import DxcContainer from "../container/Container"; -const retrieveSpacingValue = (spacingName?: string) => spacingName ?? "0rem"; - -const Inset = styled.div` - ${({ space, horizontal, vertical, top, right, bottom, left }) => ` - padding: ${retrieveSpacingValue(top || vertical || space)} ${retrieveSpacingValue(right || horizontal || space)} - ${retrieveSpacingValue(bottom || vertical || space)} ${retrieveSpacingValue(left || horizontal || space)}; -`} -`; - -export default function DxcInset({ space, horizontal, vertical, top, right, bottom, left, children }: InsetPropsType) { +export default function DxcInset({ bottom, children, horizontal, left, right, space, top, vertical }: InsetPropsType) { return ( - {children} - + ); } From 483f54cb4d9505fefa95c5a48b417197d8ff2390 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Iv=C3=A1n=20G=C3=B3mez=20Pinta?= <44321109+GomezIvann@users.noreply.github.com> Date: Mon, 31 Mar 2025 17:49:10 +0200 Subject: [PATCH 3/8] Overview page updated --- .../inset/overview/InsetOverviewPage.tsx | 62 ++++++++++++++----- 1 file changed, 45 insertions(+), 17 deletions(-) diff --git a/apps/website/screens/components/inset/overview/InsetOverviewPage.tsx b/apps/website/screens/components/inset/overview/InsetOverviewPage.tsx index b6ba53578e..a8d402c767 100644 --- a/apps/website/screens/components/inset/overview/InsetOverviewPage.tsx +++ b/apps/website/screens/components/inset/overview/InsetOverviewPage.tsx @@ -1,8 +1,9 @@ -import { DxcFlex, DxcParagraph } from "@dxc-technology/halstack-react"; +import { DxcBulletedList, DxcFlex, DxcLink, DxcParagraph } from "@dxc-technology/halstack-react"; import QuickNavContainerLayout from "@/common/QuickNavContainerLayout"; import QuickNavContainer from "@/common/QuickNavContainer"; import DocFooter from "@/common/DocFooter"; import Code from "@/common/Code"; +import Link from "next/link"; const sections = [ { @@ -10,29 +11,56 @@ const sections = [ content: ( <> - Inset properties refer to the scale of the spacing used outside a container. The unit commonly used for the - inset scale is REM, which is a measurement unit that refers to the font-size of the root element of a - document. + The inset component is a container that provides spacing around its content. It can be used to create visual + separation between elements in a layout. - The following values of REM are commonly used in the design system: 0, 0.125,{" "} - 0.25, 0.5, 1, 1.5, 2, 3,{" "} - 4, and 5. + The inset component can be customized with different spacing options, allowing for flexible design choices. It + is typically used in conjunction with other components to create a cohesive layout. ), }, + { + title: "Best practices", + content: ( + + + Use the inset component to create visual separation between elements in a layout. + + + Choose appropriate spacing values to ensure a balanced and visually appealing design. + + + Avoid excessive use of the inset component, as it may lead to a cluttered layout. + + + Use this component in conjunction with other layout components like{" "} + + flex + {" "} + and{" "} + + grid + {" "} + components to create consistent and semantic layouts. + + + Whenever possible, try to use the design tokens provided by the Halstack Design System, even + though the component allows any value. + + + ), + }, ]; -const InsetOverviewPage = () => { - return ( - - - - - - - ); -}; +const InsetOverviewPage = () => ( + + + + + + +); export default InsetOverviewPage; From a28b4f0bf1213de1f2aa5b86191c843a0af9e860 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Iv=C3=A1n=20G=C3=B3mez=20Pinta?= <44321109+GomezIvann@users.noreply.github.com> Date: Mon, 31 Mar 2025 17:58:44 +0200 Subject: [PATCH 4/8] Ordering Inset props --- packages/lib/src/inset/types.ts | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/packages/lib/src/inset/types.ts b/packages/lib/src/inset/types.ts index bff6c2abd5..af9833ef26 100644 --- a/packages/lib/src/inset/types.ts +++ b/packages/lib/src/inset/types.ts @@ -1,14 +1,14 @@ import { ReactNode } from "react"; type Props = { - /** - * Custom content inside the inset. - */ - children: ReactNode; /** * Applies the spacing scale to the bottom side. */ bottom?: string; + /** + * Custom content inside the inset. + */ + children: ReactNode; /** * Applies the spacing scale to the left and right sides. */ From e7e03702b894b6656884877513eab38adaf531c1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Iv=C3=A1n=20G=C3=B3mez=20Pinta?= <44321109+GomezIvann@users.noreply.github.com> Date: Tue, 1 Apr 2025 11:03:02 +0200 Subject: [PATCH 5/8] Documentation updates --- .../flex/overview/FlexOverviewPage.tsx | 10 +++---- .../inset/overview/InsetOverviewPage.tsx | 30 +++++++++---------- 2 files changed, 20 insertions(+), 20 deletions(-) diff --git a/apps/website/screens/components/flex/overview/FlexOverviewPage.tsx b/apps/website/screens/components/flex/overview/FlexOverviewPage.tsx index be0fb0d1eb..087051be19 100644 --- a/apps/website/screens/components/flex/overview/FlexOverviewPage.tsx +++ b/apps/website/screens/components/flex/overview/FlexOverviewPage.tsx @@ -64,11 +64,6 @@ const sections = [ they can lead to layout issues on different devices. Instead, leverage flex properties like grow, shrink, and basis to create scalable designs. - - Ensure consistency with design tokens: whenever possible, use the design tokens provided by - the Halstack Design System to maintain visual and functional consistency across applications, even though the - component allows custom values. - Leverage alignment and justification: use justifyContent and{" "} alignItems strategically to control content positioning within the flex container, ensuring a @@ -79,6 +74,11 @@ const sections = [ excessive nesting can reduce readability and maintainability. Consider alternative layout strategies when appropriate. + + Ensure consistency with design tokens: whenever possible, use the design tokens provided by + the Halstack Design System to maintain visual and functional consistency across applications, even though the + component allows custom values. + Combine with other layout techniques: flexbox is powerful but not always the best tool for every scenario. Consider using the{" "} diff --git a/apps/website/screens/components/inset/overview/InsetOverviewPage.tsx b/apps/website/screens/components/inset/overview/InsetOverviewPage.tsx index a8d402c767..35a447b0f6 100644 --- a/apps/website/screens/components/inset/overview/InsetOverviewPage.tsx +++ b/apps/website/screens/components/inset/overview/InsetOverviewPage.tsx @@ -2,7 +2,6 @@ import { DxcBulletedList, DxcFlex, DxcLink, DxcParagraph } from "@dxc-technology import QuickNavContainerLayout from "@/common/QuickNavContainerLayout"; import QuickNavContainer from "@/common/QuickNavContainer"; import DocFooter from "@/common/DocFooter"; -import Code from "@/common/Code"; import Link from "next/link"; const sections = [ @@ -11,12 +10,9 @@ const sections = [ content: ( <> - The inset component is a container that provides spacing around its content. It can be used to create visual - separation between elements in a layout. - - - The inset component can be customized with different spacing options, allowing for flexible design choices. It - is typically used in conjunction with other components to create a cohesive layout. + The inset component is a container that adds spacing around its content, enhancing visual separation between + elements in a layout. It offers customizable spacing options, allowing for greater design flexibility. + Typically, it is used alongside other components to create a cohesive and well-structured layout. ), @@ -26,16 +22,24 @@ const sections = [ content: ( - Use the inset component to create visual separation between elements in a layout. + Enhance visual hierarchy: use the inset component to create clear separation between elements + in a layout. + + + Maintain balance and aesthetics: choose appropriate spacing values to ensure a + well-proportioned and visually appealing design. - Choose appropriate spacing values to ensure a balanced and visually appealing design. + Avoid unnecessary clutter: excessive use of the Inset component may lead to a fragmented or + overcrowded layout. - Avoid excessive use of the inset component, as it may lead to a cluttered layout. + Ensure consistency with design tokens: whenever possible, use the design tokens provided by + the Halstack Design System, to maintain visual and functional consistency across applications, even though the + component allows custom values. - Use this component in conjunction with other layout components like{" "} + Combine with other layout techniques: use this component alongside{" "} flex {" "} @@ -45,10 +49,6 @@ const sections = [ {" "} components to create consistent and semantic layouts. - - Whenever possible, try to use the design tokens provided by the Halstack Design System, even - though the component allows any value. - ), }, From 713c7e69d49d5c78ef4def1a22842a463a481839 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Iv=C3=A1n=20G=C3=B3mez=20Pinta?= <44321109+GomezIvann@users.noreply.github.com> Date: Tue, 1 Apr 2025 11:13:08 +0200 Subject: [PATCH 6/8] Container updates --- .../container/code/ContainerCodePage.tsx | 29 +++++++++------ .../container/code/examples/listbox.ts | 4 +-- packages/lib/src/container/Container.tsx | 1 - packages/lib/src/container/types.ts | 36 ++++++++----------- 4 files changed, 36 insertions(+), 34 deletions(-) diff --git a/apps/website/screens/components/container/code/ContainerCodePage.tsx b/apps/website/screens/components/container/code/ContainerCodePage.tsx index 6611792076..075aac09d5 100644 --- a/apps/website/screens/components/container/code/ContainerCodePage.tsx +++ b/apps/website/screens/components/container/code/ContainerCodePage.tsx @@ -53,6 +53,13 @@ const overflowTypeString = `OverflowValues | y?: OverflowValues; }`; +const spaceTypeString = `{ + top?: string; + right?: string; + bottom?: string; + left?: string; +}`; + const sections = [ { title: "Props", @@ -225,12 +232,13 @@ const sections = [ margin - 'xxsmall' | 'xsmall' | 'small' | 'medium' | 'large' | 'xlarge' | 'xxlarge' | Space - - - 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. + string | Space +

+ being Space an object with the following properties: +

+ {spaceTypeString} + Size of the margin to be applied to the container. - @@ -331,12 +339,13 @@ const sections = [ padding - 'xxsmall' | 'xsmall' | 'small' | 'medium' | 'large' | 'xlarge' | 'xxlarge' | Space - - - 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. + string | Space +

+ being Space an object with the following properties: +

+ {spaceTypeString} + Size of the padding to be applied to the container. - diff --git a/apps/website/screens/components/container/code/examples/listbox.ts b/apps/website/screens/components/container/code/examples/listbox.ts index cf90ef4392..00953231f0 100644 --- a/apps/website/screens/components/container/code/examples/listbox.ts +++ b/apps/website/screens/components/container/code/examples/listbox.ts @@ -28,8 +28,8 @@ const code = `() => { ? { bottom: { color: "var(--border-color-neutral-lighter)", - style: "var(--border-style-default)" - width: "var(--border-width-s)", + style: "var(--border-style-default)", + width: "var(--border-width-s)" } } : undefined diff --git a/packages/lib/src/container/Container.tsx b/packages/lib/src/container/Container.tsx index 7fe51dec7e..4abf8d90be 100644 --- a/packages/lib/src/container/Container.tsx +++ b/packages/lib/src/container/Container.tsx @@ -1,6 +1,5 @@ import styled from "styled-components"; import ContainerPropsType, { BorderProperties, StyledProps } from "./types"; -import { spaces } from "../common/variables"; const getBorderStyles = (direction: "top" | "bottom" | "left" | "right", borderProperties: BorderProperties) => `border-${direction}: ${borderProperties.width ?? ""} ${borderProperties.style ?? ""} ${ diff --git a/packages/lib/src/container/types.ts b/packages/lib/src/container/types.ts index 63b12319b0..2346f54204 100644 --- a/packages/lib/src/container/types.ts +++ b/packages/lib/src/container/types.ts @@ -1,13 +1,11 @@ import { ReactNode } from "react"; -type Space = - | string - | { - top?: string; - right?: string; - bottom?: string; - left?: string; - }; +type Space = { + top?: string; + right?: string; + bottom?: string; + left?: string; +}; type Inset = { top?: string; @@ -35,11 +33,11 @@ export type BorderProperties = { type Border = | BorderProperties | { - top?: BorderProperties; - right?: BorderProperties; - bottom?: BorderProperties; - left?: BorderProperties; - }; + top?: BorderProperties; + right?: BorderProperties; + bottom?: BorderProperties; + left?: BorderProperties; + }; type Outline = BorderProperties & { offset?: string; @@ -108,11 +106,9 @@ type Props = { */ inset?: Inset; /** - * 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. + * Size of the margin to be applied to the container. */ - margin?: Space; + margin?: string | Space; /** * Sets the max-width CSS property. * @@ -149,11 +145,9 @@ type Props = { */ overflow?: Overflow; /** - * 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. + * Size of the padding to be applied to the container. */ - padding?: Space; + padding?: string | Space; /** * Sets the position CSS property. * From b7726051aa88e91f1f1b9b63671af4bea3176e0a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Iv=C3=A1n=20G=C3=B3mez=20Pinta?= <44321109+GomezIvann@users.noreply.github.com> Date: Tue, 1 Apr 2025 17:15:32 +0200 Subject: [PATCH 7/8] Updates based on feedback --- packages/lib/src/button/Button.stories.tsx | 2 +- packages/lib/src/quick-nav/QuickNav.tsx | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/lib/src/button/Button.stories.tsx b/packages/lib/src/button/Button.stories.tsx index 6eedc5f888..a91e42c359 100644 --- a/packages/lib/src/button/Button.stories.tsx +++ b/packages/lib/src/button/Button.stories.tsx @@ -4934,7 +4934,7 @@ const NestedTooltip = () => ( <> <ExampleContainer> - <DxcInset top="var(--spacing-padding-xl)"> + <DxcInset top="var(--spacing-padding-xxl)"> <DxcTooltip label="Button" position="top"> <DxcButton label="Button" title="Button" /> </DxcTooltip> diff --git a/packages/lib/src/quick-nav/QuickNav.tsx b/packages/lib/src/quick-nav/QuickNav.tsx index 51d3d82951..dcb1666c53 100644 --- a/packages/lib/src/quick-nav/QuickNav.tsx +++ b/packages/lib/src/quick-nav/QuickNav.tsx @@ -15,7 +15,7 @@ const DxcQuickNav = ({ title, links }: QuickNavTypes): JSX.Element => { return ( <ThemeProvider theme={colorsTheme.quickNav}> <QuickNavContainer> - <DxcFlex direction="column" gap="var(--spacing-padding-xs)"> + <DxcFlex direction="column" gap="var(--spacing-gap-s)"> <DxcHeading level={4} text={title || translatedLabels.quickNav.contentTitle} /> <ListColumn> {links.map((link) => ( From 48192421eccbff41e7c4911d8fbf710428f5421f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Iv=C3=A1n=20G=C3=B3mez=20Pinta?= <44321109+GomezIvann@users.noreply.github.com> Date: Wed, 2 Apr 2025 11:57:54 +0200 Subject: [PATCH 8/8] Container updates --- apps/website/screens/common/CodeBlock.tsx | 2 +- .../usage/examples/expandedContent.ts | 2 +- .../paginator/overview/examples/scrollable.ts | 20 ++-- .../lib/src/container/Container.stories.tsx | 107 +++++++++++------- packages/lib/src/container/Container.test.tsx | 20 ++-- .../lib/src/data-grid/DataGrid.stories.tsx | 36 +++--- 6 files changed, 105 insertions(+), 82 deletions(-) diff --git a/apps/website/screens/common/CodeBlock.tsx b/apps/website/screens/common/CodeBlock.tsx index 9de7130467..cf5e886598 100644 --- a/apps/website/screens/common/CodeBlock.tsx +++ b/apps/website/screens/common/CodeBlock.tsx @@ -51,7 +51,7 @@ export default function CodeBlock({ children }: { children: ReactNode; language? <PreformattedText onMouseEnter={onMouseEnter} onMouseLeave={onMouseLeave}> <Code>{children}</Code> {copyActionIsVisible && ( - <DxcContainer position="absolute" inset={{ top: "0", right: "0" }} padding="xsmall"> + <DxcContainer position="absolute" inset={{ top: "0", right: "0" }} padding="var(--spacing-padding-xs)"> <HalstackProvider advancedTheme={buttonTokens}> <DxcButton icon={copied ? "check" : "content_copy"} diff --git a/apps/website/screens/components/data-grid/usage/examples/expandedContent.ts b/apps/website/screens/components/data-grid/usage/examples/expandedContent.ts index 7c7bdbb6a6..cd3b7b9d0c 100644 --- a/apps/website/screens/components/data-grid/usage/examples/expandedContent.ts +++ b/apps/website/screens/components/data-grid/usage/examples/expandedContent.ts @@ -22,7 +22,7 @@ const code = `() => { { id: "Row 2", complete: 51, - expandedContent: <DxcContainer overflow="auto" height="200px" padding="medium"> + expandedContent: <DxcContainer overflow="auto" height="200px" padding="var(--spacing-padding-m)"> <DxcParagraph> Lorem ipsum dolor sit amet, consectetur adipiscing elit. Cras laoreet vulputate augue, non cursus justo eleifend non. Nam ante erat, finibus at tincidunt ut, convallis sed tortor. Proin commodo vestibulum sagittis. diff --git a/apps/website/screens/components/paginator/overview/examples/scrollable.ts b/apps/website/screens/components/paginator/overview/examples/scrollable.ts index 856536c6a4..c0246246b7 100644 --- a/apps/website/screens/components/paginator/overview/examples/scrollable.ts +++ b/apps/website/screens/components/paginator/overview/examples/scrollable.ts @@ -46,7 +46,7 @@ const code = `() => { complete: 46, priority: "High", issueType: "Bug", - expandedContent: <DxcContainer> Custom content 1</DxcContainer>, + expandedContent: <DxcContainer>Custom content 1</DxcContainer>, expandedContentHeight: 470 }, { @@ -55,7 +55,7 @@ const code = `() => { complete: 51, priority: "High", issueType: "Epic", - expandedContent: <DxcContainer> Custom content 1</DxcContainer> + expandedContent: <DxcContainer>Custom content 1</DxcContainer> }, { id: 3, @@ -63,7 +63,7 @@ const code = `() => { complete: 40, priority: "High", issueType: "Improvement", - expandedContent: <DxcContainer> Custom content 1</DxcContainer> + expandedContent: <DxcContainer>Custom content 1</DxcContainer> }, { id: 4, @@ -71,7 +71,7 @@ const code = `() => { complete: 10, priority: "High", issueType: "Improvement", - expandedContent: <DxcContainer> Custom content 1</DxcContainer> + expandedContent: <DxcContainer>Custom content 1</DxcContainer> }, { id: 5, @@ -87,7 +87,7 @@ const code = `() => { complete: 37, priority: "High", issueType: "Improvement", - expandedContent: <DxcContainer> Custom content 1</DxcContainer> + expandedContent: <DxcContainer>Custom content 1</DxcContainer> }, { id: 7, @@ -95,7 +95,7 @@ const code = `() => { complete: 73, priority: "Medium", issueType: "Story", - expandedContent: <DxcContainer> Custom content 1</DxcContainer> + expandedContent: <DxcContainer>Custom content 1</DxcContainer> }, { id: 8, @@ -103,7 +103,7 @@ const code = `() => { complete: 27, priority: "Medium", issueType: "Story", - expandedContent: <DxcContainer> Custom content 1</DxcContainer> + expandedContent: <DxcContainer>Custom content 1</DxcContainer> }, { id: 9, @@ -111,15 +111,15 @@ const code = `() => { complete: 36, priority: "Critical", issueType: "Epic", - expandedContent: <DxcContainer> Custom content 1</DxcContainer> + expandedContent: <DxcContainer>Custom content 1</DxcContainer> }, ]; return ( <DxcInset space="1rem"> <DxcContainer height="200px"> - <DxcDataGrid showPaginator columns={columns} rows={expandableRows} uniqueRowId="id" /> - </DxcContainer> + <DxcDataGrid showPaginator columns={columns} rows={expandableRows} uniqueRowId="id" /> + </DxcContainer> </DxcInset> ); }`; diff --git a/packages/lib/src/container/Container.stories.tsx b/packages/lib/src/container/Container.stories.tsx index 189305e5c9..f732722a45 100644 --- a/packages/lib/src/container/Container.stories.tsx +++ b/packages/lib/src/container/Container.stories.tsx @@ -11,43 +11,38 @@ export default { const Listbox = ({ suggestions = [] }: { suggestions: string[] }): JSX.Element => ( <DxcContainer - boxSizing="border-box" - boxShadow="0 4px 6px -1px rgba(0, 0, 0, 0.1)" + background={{ color: "var(--border-color-neutral-brighter)" }} border={{ + color: "var(--border-color-neutral-medium)", width: "var(--border-width-s)", style: "var(--border-style-default)", - color: "var(--border-color-neutral-medium)", }} borderRadius="var(--border-radius-s)" - background={{ color: "var(--color-bg-neutral-lightest)" }} - padding={{ top: "xxsmall", bottom: "xxsmall" }} + boxShadow="var(--shadow-mid-x-position) var(--shadow-mid-y-position) var(--shadow-mid-blur) var(--shadow-mid-spread) var(--shadow-light)" + boxSizing="border-box" maxHeight="304px" - width="250px" overflow={{ x: "hidden", y: "auto" }} + padding={{ bottom: "var(--spacing-padding-xxs)", top: "var(--spacing-padding-xxs)" }} + width="250px" > {suggestions.map((suggestion, index) => ( - <DxcContainer padding={{ left: "xsmall", right: "xsmall" }}> + <DxcContainer padding={{ left: "var(--spacing-padding-xs)", right: "var(--spacing-padding-xs)" }}> <DxcContainer border={ index !== suggestions.length - 1 ? { bottom: { - width: "var(--border-width-s)", - style: "var(--border-style-default)", color: "var(--border-color-neutral-lighter)", + style: "var(--border-style-default)", + width: "var(--border-width-s)", }, } : undefined } - padding={{ - top: "xxsmall", - bottom: "xxsmall", - left: "xxsmall", - right: "xxsmall", - }} overflow="hidden" + padding="var(--spacing-padding-xxs)" > - <DxcTypography whiteSpace="nowrap" textOverflow="ellipsis" lineHeight="1.715em"> + <DxcTypography lineHeight="1.715em" textOverflow="ellipsis" whiteSpace="nowrap"> {suggestion} </DxcTypography> </DxcContainer> @@ -78,8 +73,8 @@ const Container = () => ( }, }} borderRadius="var(--border-radius-none) var(--border-radius-none) var(--border-radius-s) var(--border-radius-s)" - padding="medium" - margin="large" + padding="var(--spacing-padding-m)" + margin="var(--spacing-padding-l)" > <b>Example text</b> </DxcContainer> @@ -109,21 +104,21 @@ const Container = () => ( style: "var(--border-style-dashed)", }} borderRadius="var(--border-radius-s)" - margin={{ bottom: "xxlarge" }} + margin={{ bottom: "var(--spacing-padding-xxl)" }} > <DxcContainer display="inline-block" background={{ color: "var(--color-bg-primary-medium)" }} - width="50px" - height="50px" + width="56px" + height="var(--height-xxxl)" > <b>1</b> </DxcContainer> <DxcContainer display="inline-block" background={{ color: "var(--color-bg-primary-medium)" }} - width="50px" - height="50px" + width="56px" + height="var(--height-xxxl)" > <b>2</b> </DxcContainer> @@ -132,8 +127,8 @@ const Container = () => ( position="absolute" inset={{ top: "25px", left: "0" }} background={{ color: "var(--color-bg-secondary-strong)" }} - width="50px" - height="50px" + width="56px" + height="var(--height-xxxl)" zIndex={1} > <b>3</b> @@ -155,15 +150,15 @@ const Container = () => ( background={{ color: "var(--color-bg-primary-medium)" }} width="50px" height="50px" - margin={{ bottom: "medium" }} + margin={{ bottom: "var(--spacing-padding-m)" }} > <b>1</b> </DxcContainer> <DxcContainer background={{ color: "var(--color-bg-primary-medium)" }} - width="50px" - height="50px" - margin={{ top: "large" }} + width="56px" + height="var(--height-xxxl)" + margin={{ top: "var(--spacing-padding-l)" }} > <b>2</b> </DxcContainer> @@ -173,10 +168,14 @@ const Container = () => ( <ExampleContainer> <DxcContainer overflow={{ x: "auto" }} maxHeight="100px" width="fit-content"> <DxcContainer - border={{ width: "var(--border-width-s)", style: "var(--border-style-default)", color: "var(--border-color-neutral-strongest)" }} + border={{ + width: "var(--border-width-s)", + style: "var(--border-style-default)", + color: "var(--border-color-neutral-strongest)", + }} background={{ color: "var(--color-bg-primary-medium)" }} - width="50px" - height="50px" + width="56px" + height="var(--height-xxxl)" > <b tabIndex={0}>1</b> </DxcContainer> @@ -187,16 +186,20 @@ const Container = () => ( color: "var(--border-color-neutral-strongest)", }} background={{ color: "var(--color-bg-primary-medium)" }} - width="50px" - height="50px" + width="56px" + height="var(--height-xxxl)" > <b tabIndex={0}>2</b> </DxcContainer> <DxcContainer - border={{ width: "var(--border-width-s)", style: "var(--border-style-default)", color: "var(--border-color-neutral-strongest)" }} + border={{ + width: "var(--border-width-s)", + style: "var(--border-style-default)", + color: "var(--border-color-neutral-strongest)", + }} background={{ color: "var(--color-bg-primary-medium)" }} - width="50px" - height="50px" + width="56px" + height="var(--height-xxxl)" > <b tabIndex={0}>3</b> </DxcContainer> @@ -204,8 +207,20 @@ const Container = () => ( </ExampleContainer> <Title title="Float" level={4} /> <ExampleContainer> - <DxcContainer padding="medium" border={{ width: "var(--border-width-s)", style: "var(--border-style-default)", color: "var(--border-color-neutral-strongest)" }}> - <DxcContainer float="right" background={{ color: "var(--color-bg-primary-medium)" }} width="100px" height="100px"> + <DxcContainer + padding="var(--spacing-padding-m)" + border={{ + width: "var(--border-width-s)", + style: "var(--border-style-default)", + color: "var(--border-color-neutral-strongest)", + }} + > + <DxcContainer + float="right" + background={{ color: "var(--color-bg-primary-medium)" }} + width="100px" + height="100px" + > <b>Floating text</b> </DxcContainer> <p style={{ margin: 0 }}> @@ -223,8 +238,12 @@ const Container = () => ( <Title title="Box shadow and opacity" level={4} /> <ExampleContainer> <DxcContainer - padding="medium" - outline={{ width: "var(--border-width-s)", style: "var(--border-style-default)", color: "var(--border-color-neutral-strongest)" }} + padding="var(--spacing-padding-m)" + outline={{ + width: "var(--border-width-s)", + style: "var(--border-style-default)", + color: "var(--border-color-neutral-strongest)", + }} boxShadow="10px 5px 5px #fe0123" > <p style={{ margin: 0 }}> @@ -246,7 +265,11 @@ const Container = () => ( <Title title="Border and outline" level={4} /> <ExampleContainer> <DxcContainer - outline={{ color: "var(--border-color-secondary-medium)", style: "var(--border-style-default)", offset: "var(--spacing-padding-xxxs)" }} + outline={{ + color: "var(--border-color-secondary-medium)", + style: "var(--border-style-default)", + offset: "var(--spacing-padding-xxxs)", + }} border={{ top: { style: "var(--border-style-default)" } }} > Example text diff --git a/packages/lib/src/container/Container.test.tsx b/packages/lib/src/container/Container.test.tsx index 0e54c959d1..0c8a4c5c7b 100644 --- a/packages/lib/src/container/Container.test.tsx +++ b/packages/lib/src/container/Container.test.tsx @@ -8,22 +8,22 @@ describe("Container component tests", () => { boxSizing="border-box" width="200px" height="200px" - background={{ color: "color_purple_400" }} + background={{ color: "var(--color-bg-primary-medium)" }} border={{ top: { - width: "2px", - color: "color_blue_600", - style: "solid", + width: "var(--border-width-m)", + color: "var(--border-color-secondary-strong)", + style: "var(--border-style-default)", }, bottom: { - width: "thick", - color: "color_purple_600", - style: "solid", + width: "var(--border-width-l)", + color: "var(--border-color-primary-strong)", + style: "var(--border-style-default)", }, }} - borderRadius="0 0 0.25rem 0.25rem" - padding="medium" - margin="large" + borderRadius="var(--border-radius-none) var(--border-radius-none) var(--border-radius-s) var(--border-radius-s)" + padding="var(--spacing-padding-m)" + margin="var(--spacing-padding-l)" > <b>Example text</b> </DxcContainer> diff --git a/packages/lib/src/data-grid/DataGrid.stories.tsx b/packages/lib/src/data-grid/DataGrid.stories.tsx index 5928392240..dc0f6f6d8d 100644 --- a/packages/lib/src/data-grid/DataGrid.stories.tsx +++ b/packages/lib/src/data-grid/DataGrid.stories.tsx @@ -151,7 +151,7 @@ const expandableRows = [ complete: 46, priority: "High", issueType: "Bug", - expandedContent: <DxcContainer> Custom content 1</DxcContainer>, + expandedContent: <DxcContainer>Custom content 1</DxcContainer>, expandedContentHeight: 470, actions: <DxcDataGrid.ActionsCell actions={actions} />, }, @@ -161,7 +161,7 @@ const expandableRows = [ complete: 51, priority: "High", issueType: "Epic", - expandedContent: <DxcContainer> Custom content 1</DxcContainer>, + expandedContent: <DxcContainer>Custom content 1</DxcContainer>, actions: <DxcDataGrid.ActionsCell actions={actions} />, }, { @@ -170,7 +170,7 @@ const expandableRows = [ complete: 40, priority: "High", issueType: "Improvement", - expandedContent: <DxcContainer> Custom content 1</DxcContainer>, + expandedContent: <DxcContainer>Custom content 1</DxcContainer>, actions: <DxcDataGrid.ActionsCell actions={actions} />, }, { @@ -179,7 +179,7 @@ const expandableRows = [ complete: 10, priority: "High", issueType: "Improvement", - expandedContent: <DxcContainer> Custom content 1</DxcContainer>, + expandedContent: <DxcContainer>Custom content 1</DxcContainer>, actions: <DxcDataGrid.ActionsCell actions={actions} />, }, { @@ -188,7 +188,7 @@ const expandableRows = [ complete: 68, priority: "High", issueType: "Improvement", - expandedContent: <DxcContainer> Custom content 1</DxcContainer>, + expandedContent: <DxcContainer>Custom content 1</DxcContainer>, actions: <DxcDataGrid.ActionsCell actions={actions} />, }, { @@ -197,7 +197,7 @@ const expandableRows = [ complete: 37, priority: "High", issueType: "Improvement", - expandedContent: <DxcContainer> Custom content 1</DxcContainer>, + expandedContent: <DxcContainer>Custom content 1</DxcContainer>, actions: <DxcDataGrid.ActionsCell actions={actions} />, }, { @@ -206,7 +206,7 @@ const expandableRows = [ complete: 73, priority: "Medium", issueType: "Story", - expandedContent: <DxcContainer> Custom content 1</DxcContainer>, + expandedContent: <DxcContainer>Custom content 1</DxcContainer>, actions: <DxcDataGrid.ActionsCell actions={actions} />, }, { @@ -215,7 +215,7 @@ const expandableRows = [ complete: 27, priority: "Medium", issueType: "Story", - expandedContent: <DxcContainer> Custom content 1</DxcContainer>, + expandedContent: <DxcContainer>Custom content 1</DxcContainer>, actions: <DxcDataGrid.ActionsCell actions={actions} />, }, { @@ -224,7 +224,7 @@ const expandableRows = [ complete: 36, priority: "Critical", issueType: "Epic", - expandedContent: <DxcContainer> Custom content 1</DxcContainer>, + expandedContent: <DxcContainer>Custom content 1</DxcContainer>, actions: <DxcDataGrid.ActionsCell actions={actions} />, }, ]; @@ -236,7 +236,7 @@ const expandableRowsPaginated = [ complete: 46, priority: "High", issueType: "Bug", - expandedContent: <DxcContainer> Custom content 1</DxcContainer>, + expandedContent: <DxcContainer>Custom content 1</DxcContainer>, expandedContentHeight: 470, }, { @@ -245,7 +245,7 @@ const expandableRowsPaginated = [ complete: 51, priority: "High", issueType: "Epic", - expandedContent: <DxcContainer> Custom content 1</DxcContainer>, + expandedContent: <DxcContainer>Custom content 1</DxcContainer>, }, { id: 33, @@ -253,7 +253,7 @@ const expandableRowsPaginated = [ complete: 40, priority: "High", issueType: "Improvement", - expandedContent: <DxcContainer> Custom content 1</DxcContainer>, + expandedContent: <DxcContainer>Custom content 1</DxcContainer>, }, { id: 44, @@ -261,7 +261,7 @@ const expandableRowsPaginated = [ complete: 10, priority: "High", issueType: "Improvement", - expandedContent: <DxcContainer> Custom content 1</DxcContainer>, + expandedContent: <DxcContainer>Custom content 1</DxcContainer>, }, { id: 55, @@ -269,7 +269,7 @@ const expandableRowsPaginated = [ complete: 68, priority: "High", issueType: "Improvement", - expandedContent: <DxcContainer> Custom content 1</DxcContainer>, + expandedContent: <DxcContainer>Custom content 1</DxcContainer>, }, { id: 66, @@ -277,7 +277,7 @@ const expandableRowsPaginated = [ complete: 37, priority: "High", issueType: "Improvement", - expandedContent: <DxcContainer> Custom content 1</DxcContainer>, + expandedContent: <DxcContainer>Custom content 1</DxcContainer>, }, { id: 77, @@ -285,7 +285,7 @@ const expandableRowsPaginated = [ complete: 73, priority: "Medium", issueType: "Story", - expandedContent: <DxcContainer> Custom content 1</DxcContainer>, + expandedContent: <DxcContainer>Custom content 1</DxcContainer>, }, { id: 88, @@ -293,7 +293,7 @@ const expandableRowsPaginated = [ complete: 27, priority: "Medium", issueType: "Story", - expandedContent: <DxcContainer> Custom content 1</DxcContainer>, + expandedContent: <DxcContainer>Custom content 1</DxcContainer>, }, { id: 99, @@ -301,7 +301,7 @@ const expandableRowsPaginated = [ complete: 36, priority: "Critical", issueType: "Epic", - expandedContent: <DxcContainer> Custom content 1</DxcContainer>, + expandedContent: <DxcContainer>Custom content 1</DxcContainer>, }, ];