diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index b24183f68..11e0a539e 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -12,26 +12,26 @@ We welcome you to use the GitHub issue tracker to report bugs or suggest feature When filing an issue, please check existing open or recently closed, issues to make sure somebody else hasn't already reported the issue. Please try to include as much information as you can. Details like these are incredibly useful: -* A reproducible test case or series of steps -* The version of our code being used -* Any modifications you've made relevant to the bug -* Anything unusual about your environment or deployment +- A reproducible test case or series of steps +- The version of our code being used +- Any modifications you've made relevant to the bug +- Anything unusual about your environment or deployment ## Contributing via Pull Requests Contributions via pull requests are much appreciated. Before sending us a pull request, please ensure that: -1. You are working against the latest source on the *staging* branch. +1. You are working against the latest source on the _staging_ branch. 2. You check existing open, and recently merged, pull requests to make sure someone else hasn't addressed the problem already. 3. You open an issue to discuss any significant work - we would hate for your time to be wasted. To send us a pull request, please: 1. Fork the repository. -2. Working off the latest version of the *staging* branch, modify the source; please focus on the specific change you are contributing. If you also reformat all the code, it will be hard for us to focus on your change. +2. Working off the latest version of the _staging_ branch, modify the source; please focus on the specific change you are contributing. If you also reformat all the code, it will be hard for us to focus on your change. 3. Ensure local tests pass. 4. Commit to your fork using clear commit messages. -5. Send us a pull request merging into the *staging* branch, answering any default questions in the pull request interface. +5. Send us a pull request merging into the _staging_ branch, answering any default questions in the pull request interface. 6. CI pipelines will fail since this is a fork. We will manually run the CI pipeline on the PR after reviewing the code and give feedback if needed. GitHub provides additional document on [forking a repository](https://help.github.com/articles/fork-a-repo/) and [creating a pull request](https://help.github.com/articles/creating-a-pull-request/). diff --git a/LOCAL.md b/LOCAL.md index 825a1bb5f..8f12af82e 100644 --- a/LOCAL.md +++ b/LOCAL.md @@ -56,7 +56,7 @@ Here is a list of the most common commands you will use: - `turbo build` - Build the library. - `turbo dev` - Start the development server. -- `turbo format` - Run the Prettier formatter. +- `npm run format` - Run the Prettier formatter. - `turbo lint` - Run the linter. - `turbo storybook` - Start the Storybook server. - `turbo storybook:accessibility` - Run the accessibility tests on Storybook. diff --git a/README.md b/README.md index f59a6ba0f..cf4d8317d 100644 --- a/README.md +++ b/README.md @@ -19,7 +19,6 @@ npm i @dxc-technology/halstack-react ### Usage ```jsx -import React from "react"; import { DxcButton, DxcTextInput } from "@dxc-technology/halstack-react"; const App = () => ( diff --git a/apps/website/screens/common/sidenav/SidenavLogo.tsx b/apps/website/screens/common/sidenav/SidenavLogo.tsx index 2c3b49278..724cc27c6 100644 --- a/apps/website/screens/common/sidenav/SidenavLogo.tsx +++ b/apps/website/screens/common/sidenav/SidenavLogo.tsx @@ -1,15 +1,12 @@ import styled from "styled-components"; import Image from "@/common/Image"; import halstackLogo from "@/common/images/halstack_logo.svg"; -import React from "react"; import { DxcBadge, DxcFlex } from "@dxc-technology/halstack-react"; -import { useRouter } from "next/router"; type SidenavLogoProps = { subtitle?: string }; const SidenavLogo = ({ subtitle = "Design System" }: SidenavLogoProps): JSX.Element => { - const { basePath } = useRouter(); - const pathVersion = basePath.split("/")[2]; + const pathVersion = process.env.SITE_VERSION; const isDev = process.env.NODE_ENV === "development"; return ( @@ -22,7 +19,7 @@ const SidenavLogo = ({ subtitle = "Design System" }: SidenavLogoProps): JSX.Elem {subtitle} diff --git a/apps/website/screens/components/breadcrumbs/code/BreadcrumbsCodePage.tsx b/apps/website/screens/components/breadcrumbs/code/BreadcrumbsCodePage.tsx index 6b39940d3..17ac11574 100644 --- a/apps/website/screens/components/breadcrumbs/code/BreadcrumbsCodePage.tsx +++ b/apps/website/screens/components/breadcrumbs/code/BreadcrumbsCodePage.tsx @@ -3,11 +3,7 @@ import DocFooter from "@/common/DocFooter"; import Example from "@/common/example/Example"; import QuickNavContainer from "@/common/QuickNavContainer"; import QuickNavContainerLayout from "@/common/QuickNavContainerLayout"; -import { - DxcFlex, - DxcParagraph, - DxcTable, -} from "@dxc-technology/halstack-react"; +import { DxcFlex, DxcParagraph, DxcTable } from "@dxc-technology/halstack-react"; import TableCode, { ExtendedTableCode } from "@/common/TableCode"; import basicUsage from "./examples/basicUsage"; import nextJS from "./examples/nextJS"; @@ -37,10 +33,7 @@ const sections = [ string - - Provides a label that describes the type of navigation enabled by - the component. - + Provides a label that describes the type of navigation enabled by the component. 'Breadcrumbs' @@ -68,9 +61,8 @@ const sections = [ number - Number of items before showing a collapsed version of the - breadcrumbs. It can't be lower than two (root/collapsed action and - current page). + Number of items before showing a collapsed version of the breadcrumbs. It can't be lower than two + (root/collapsed action and current page). 4 @@ -82,10 +74,9 @@ const sections = [ number - Callback for custom navigation with third-party libraries such as - Next (useRouter) or React Router ( - useNavigate). This function will be called when an - item is clicked, receiving its href as a parameter. + Callback for custom navigation with third-party libraries such as Next (useRouter) or React + Router (useNavigate). This function will be called when an item is clicked, receiving its{" "} + href as a parameter. - @@ -94,10 +85,7 @@ const sections = [ boolean - - When items are collapsed, whether the root item should always be - displayed or not. - + When items are collapsed, whether the root item should always be displayed or not. true @@ -117,16 +105,11 @@ const sections = [ title: "Custom navigation", content: ( <> + There are many React based routers, unfortunately all with different APIs. - There are many React based routers, unfortunately all with - different APIs. - - - As we explained above, the onItemClick prop is a - callback that will be called when an item is clicked, receiving - its href as a parameter. You can take advantage of - this prop to navigate programmatically with third-party libraries - hooks or functions. + As we explained above, the onItemClick prop is a callback that will be called when an item is + clicked, receiving its href as a parameter. You can take advantage of this prop to navigate + programmatically with third-party libraries hooks or functions. ), @@ -145,10 +128,7 @@ const BreadcrumbsCodePage = () => { return ( - + diff --git a/apps/website/screens/components/bulleted-list/code/BulletedListCodePage.tsx b/apps/website/screens/components/bulleted-list/code/BulletedListCodePage.tsx index 06f2609f4..dc0f03e4a 100644 --- a/apps/website/screens/components/bulleted-list/code/BulletedListCodePage.tsx +++ b/apps/website/screens/components/bulleted-list/code/BulletedListCodePage.tsx @@ -3,12 +3,7 @@ import DocFooter from "@/common/DocFooter"; import Example from "@/common/example/Example"; import QuickNavContainer from "@/common/QuickNavContainer"; import QuickNavContainerLayout from "@/common/QuickNavContainerLayout"; -import { - DxcParagraph, - DxcFlex, - DxcTable, - DxcLink, -} from "@dxc-technology/halstack-react"; +import { DxcParagraph, DxcFlex, DxcTable, DxcLink } from "@dxc-technology/halstack-react"; import basicUsage from "./examples/basicUsage"; import nestedList from "./examples/nestedList"; import TableCode from "@/common/TableCode"; @@ -31,9 +26,7 @@ const sections = [ type - - 'disc' | 'circle' | 'square' | 'number' | 'icon' - + 'disc' | 'circle' | 'square' | 'number' | 'icon' Defines the style of the bullet point in the list. @@ -43,18 +36,15 @@ const sections = [ icon - - string | {"(React.ReactNode & React.SVGProps)"} - + string | {"(React.ReactNode & React.SVGProps)"} Material Symbol {" "} - name or SVG element to be displayed as the bullet. When using - Material Symbols, replace spaces with underscores. By default they - are outlined if you want it to be filled prefix the symbol name - with "filled_". + name or SVG element to be displayed as the bullet. When using Material Symbols, replace spaces with + underscores. By default they are outlined if you want it to be filled prefix the symbol name with{" "} + "filled_". - @@ -64,12 +54,7 @@ const sections = [ }, { title: "DxcBulletedList.Item", - content: ( - - Everything between the tags will be displayed as a text item in the - list. - - ), + content: Everything between the tags will be displayed as a text item in the list., subSections: [ { title: "Props", @@ -86,11 +71,7 @@ const sections = [ - + children @@ -126,10 +107,7 @@ const BulletedListCodePage = () => { return ( - + diff --git a/apps/website/screens/components/contextual-menu/code/ContextualMenuCodePage.tsx b/apps/website/screens/components/contextual-menu/code/ContextualMenuCodePage.tsx index d016b9730..fafad6cc3 100644 --- a/apps/website/screens/components/contextual-menu/code/ContextualMenuCodePage.tsx +++ b/apps/website/screens/components/contextual-menu/code/ContextualMenuCodePage.tsx @@ -48,28 +48,23 @@ const sections = [ - - (Item | GroupItem)[] | Section[] - + (Item | GroupItem)[] | Section[]

- being an Item an object with the following - properties: + being an Item an object with the following properties:

{itemTypeString}

- a GroupItem another object with the following - properties: + a GroupItem another object with the following properties:

{groupItemTypeString}

- and a Section another object with the following - properties: + and a Section another object with the following properties:

{sectionTypeString} - Array of items to be displayed in the Contextual menu. Each item can - be a single/simple item, a group item or a section. + Array of items to be displayed in the Contextual menu. Each item can be a single/simple item, a group item + or a section. - @@ -95,10 +90,7 @@ const ContextualMenuCodePage = () => { return ( - + diff --git a/apps/website/screens/components/dialog/code/examples/withContent.ts b/apps/website/screens/components/dialog/code/examples/withContent.ts index 25b59ceec..499fd53d0 100644 --- a/apps/website/screens/components/dialog/code/examples/withContent.ts +++ b/apps/website/screens/components/dialog/code/examples/withContent.ts @@ -1,4 +1,12 @@ -import { DxcDialog, DxcButton, DxcTextInput, DxcInset, DxcFlex, DxcGrid, DxcHeading } from "@dxc-technology/halstack-react"; +import { + DxcDialog, + DxcButton, + DxcTextInput, + DxcInset, + DxcFlex, + DxcGrid, + DxcHeading, +} from "@dxc-technology/halstack-react"; import { useState } from "react"; const code = `() => { diff --git a/apps/website/screens/components/flex/code/FlexCodePage.tsx b/apps/website/screens/components/flex/code/FlexCodePage.tsx index e7d0285f9..a8667fce8 100644 --- a/apps/website/screens/components/flex/code/FlexCodePage.tsx +++ b/apps/website/screens/components/flex/code/FlexCodePage.tsx @@ -23,16 +23,11 @@ const sections = [ direction - - 'row' | 'row-reverse' | 'column' | 'column-reverse' - + 'row' | 'row-reverse' | 'column' | 'column-reverse' Sets flex-direction CSS property. See{" "} - + MDN {" "} for further information. @@ -45,16 +40,13 @@ const sections = [ justifyContent - 'flex-start' | 'flex-end' | 'start' | 'end' | 'left' | 'right' | - 'center' | 'space-between' | 'space-around' | 'space-evenly' + 'flex-start' | 'flex-end' | 'start' | 'end' | 'left' | 'right' | 'center' | 'space-between' | + 'space-around' | 'space-evenly' Sets justify-content CSS property. See{" "} - + MDN {" "} for further information. @@ -67,16 +59,13 @@ const sections = [ alignItems - 'stretch' | 'flex-start' | 'flex-end' | 'start' | 'end' | - 'self-start' | 'self-end' | 'center' | 'baseline' + 'stretch' | 'flex-start' | 'flex-end' | 'start' | 'end' | 'self-start' | 'self-end' | 'center' | + 'baseline' Sets align-items CSS property. See{" "} - + MDN {" "} for further information. @@ -89,16 +78,13 @@ const sections = [ alignContent - 'normal' | 'flex-start' | 'flex-end' | 'start' | 'end' | 'center' - | 'space-between' | 'space-evenly' | 'stretch' + 'normal' | 'flex-start' | 'flex-end' | 'start' | 'end' | 'center' | 'space-between' | 'space-evenly' | + 'stretch' Sets align-content CSS property. See{" "} - + MDN {" "} for further information. @@ -110,17 +96,11 @@ const sections = [ alignSelf - - 'auto' | 'flex-start' | 'flex-end' | 'center' | 'baseline' | - 'stretch' - + 'auto' | 'flex-start' | 'flex-end' | 'center' | 'baseline' | 'stretch' Sets align-self CSS property. See{" "} - + MDN {" "} for further information. @@ -136,10 +116,7 @@ const sections = [ Sets flex-wrap CSS property. See{" "} - + MDN {" "} for further information. @@ -152,20 +129,15 @@ const sections = [ gap - '0rem' | '0.125rem' | '0.25rem' | '0.5rem' | '1rem' | '1.5rem' | - '2rem' | '3rem' | '4rem' | '5rem' | Gap + '0rem' | '0.125rem' | '0.25rem' | '0.5rem' | '1rem' | '1.5rem' | '2rem' | '3rem' | '4rem' | '5rem' | Gap Sets gap CSS property. See{" "} - + MDN {" "} - for further information. It can be either a value from the range or - an object with the following properties: + for further information. It can be either a value from the range or an object with the following properties:
  • rowGap: gutter between rows. @@ -186,10 +158,7 @@ const sections = [ Sets flex-grow CSS property. See{" "} - + MDN {" "} for further information. @@ -205,10 +174,7 @@ const sections = [ Sets flex-shrink CSS property. See{" "} - + MDN {" "} for further information. @@ -224,10 +190,7 @@ const sections = [ Sets order CSS property. See{" "} - + MDN {" "} for further information. @@ -243,10 +206,7 @@ const sections = [ Sets flex-basis CSS property. See{" "} - + MDN {" "} for further information. @@ -300,10 +260,7 @@ const FlexCodePage = () => { return ( - + diff --git a/apps/website/screens/components/paragraph/code/ParagraphCodePage.tsx b/apps/website/screens/components/paragraph/code/ParagraphCodePage.tsx index 58440ec83..2919d0af3 100644 --- a/apps/website/screens/components/paragraph/code/ParagraphCodePage.tsx +++ b/apps/website/screens/components/paragraph/code/ParagraphCodePage.tsx @@ -54,10 +54,7 @@ const ParagraphCodePage = () => { return ( - + diff --git a/apps/website/screens/components/quick-nav/code/QuickNavCodePage.tsx b/apps/website/screens/components/quick-nav/code/QuickNavCodePage.tsx index 95df96044..d8a7b2665 100644 --- a/apps/website/screens/components/quick-nav/code/QuickNavCodePage.tsx +++ b/apps/website/screens/components/quick-nav/code/QuickNavCodePage.tsx @@ -41,15 +41,13 @@ const sections = [ {"{ label: string; links?: Link[]; }[]"} - Links of the quick nav component. Only first and second level - links will be shown in the quick nav, due to design restrictions. - Each link has the following properties: + Links of the quick nav component. Only first and second level links will be shown in the quick nav, due to + design restrictions. Each link has the following properties:
    • - label: Text to be shown in the link. The content must - be wrapped with an id equal to the slugified label (in lower - case and the white spaces replaced by '-') in order to - be able to navigate to the section that the label references. + label: Text to be shown in the link. The content must be wrapped with an id equal to the + slugified label (in lower case and the white spaces replaced by '-') in order to be able to + navigate to the section that the label references.
    • links: Sublinks of the link. @@ -89,10 +87,7 @@ const QuickNavCodePage = () => { return ( - + diff --git a/apps/website/screens/components/status-light/code/StatusLightCodePage.tsx b/apps/website/screens/components/status-light/code/StatusLightCodePage.tsx index ebe465067..0d78e2eb2 100644 --- a/apps/website/screens/components/status-light/code/StatusLightCodePage.tsx +++ b/apps/website/screens/components/status-light/code/StatusLightCodePage.tsx @@ -24,14 +24,9 @@ const sections = [ mode - - 'default' | 'info' | 'success' | 'warning' | 'error' - - - - It will define the color of the light based on its semantic - meaning. + 'default' | 'info' | 'success' | 'warning' | 'error' + It will define the color of the light based on its semantic meaning. 'default' @@ -54,10 +49,7 @@ const sections = [ 'small' | 'medium' | 'large' - - Size of the component. Should be defined based on its importance - and/or available space. - + Size of the component. Should be defined based on its importance and/or available space. 'medium' @@ -81,10 +73,7 @@ const StatusLightCodePage = () => { return ( - + diff --git a/apps/website/screens/components/tooltip/TooltipPageLayout.tsx b/apps/website/screens/components/tooltip/TooltipPageLayout.tsx index fb6c5414c..4be436140 100644 --- a/apps/website/screens/components/tooltip/TooltipPageLayout.tsx +++ b/apps/website/screens/components/tooltip/TooltipPageLayout.tsx @@ -19,11 +19,9 @@ const TooltipPageHeading = ({ children }: { children: React.ReactNode }) => { - A tooltip is a descriptive or supplementary element that is - displayed when an object is focused or hovered over. They are - typically employed to enhance user experience by offering brief and - helpful descriptions, instructions or tips without cluttering the - interface. + A tooltip is a descriptive or supplementary element that is displayed when an object is focused or hovered + over. They are typically employed to enhance user experience by offering brief and helpful descriptions, + instructions or tips without cluttering the interface. diff --git a/apps/website/screens/components/tooltip/code/TooltipCodePage.tsx b/apps/website/screens/components/tooltip/code/TooltipCodePage.tsx index fe14e0604..0314176ae 100644 --- a/apps/website/screens/components/tooltip/code/TooltipCodePage.tsx +++ b/apps/website/screens/components/tooltip/code/TooltipCodePage.tsx @@ -26,10 +26,11 @@ const sections = [ 'bottom' | 'top' | 'left' | 'right' - Preferred position for displaying the tooltip. It may adjust - automatically based on available space. + Preferred position for displaying the tooltip. It may adjust automatically based on available space. + + + 'bottom' - 'bottom' label @@ -66,10 +67,7 @@ const TooltipCodePage = () => { return ( - + diff --git a/apps/website/screens/components/tooltip/code/examples/basicUsage.ts b/apps/website/screens/components/tooltip/code/examples/basicUsage.ts index dc86d75a8..bfa50a6fe 100644 --- a/apps/website/screens/components/tooltip/code/examples/basicUsage.ts +++ b/apps/website/screens/components/tooltip/code/examples/basicUsage.ts @@ -1,8 +1,4 @@ -import { - DxcTooltip, - DxcButton, - DxcInset, -} from "@dxc-technology/halstack-react"; +import { DxcTooltip, DxcButton, DxcInset } from "@dxc-technology/halstack-react"; const code = `() => { return ( diff --git a/apps/website/screens/components/tooltip/specs/TooltipSpecsPage.tsx b/apps/website/screens/components/tooltip/specs/TooltipSpecsPage.tsx index 8fd68d928..b357807fd 100644 --- a/apps/website/screens/components/tooltip/specs/TooltipSpecsPage.tsx +++ b/apps/website/screens/components/tooltip/specs/TooltipSpecsPage.tsx @@ -1,8 +1,4 @@ -import { - DxcParagraph, - DxcBulletedList, - DxcFlex, -} from "@dxc-technology/halstack-react"; +import { DxcParagraph, DxcBulletedList, DxcFlex } from "@dxc-technology/halstack-react"; import Image from "@/common/Image"; import QuickNavContainer from "@/common/QuickNavContainer"; import QuickNavContainerLayout from "@/common/QuickNavContainerLayout"; @@ -37,9 +33,7 @@ const sections = [ title: "Design tokens", content: ( <> - - This component currently has no design tokens. - + This component currently has no design tokens. ), }, @@ -49,10 +43,7 @@ const TooltipSpecsPage = () => { return ( - + diff --git a/apps/website/screens/components/tooltip/usage/TooltipUsagePage.tsx b/apps/website/screens/components/tooltip/usage/TooltipUsagePage.tsx index c6e38d92c..9cb2f7a03 100644 --- a/apps/website/screens/components/tooltip/usage/TooltipUsagePage.tsx +++ b/apps/website/screens/components/tooltip/usage/TooltipUsagePage.tsx @@ -1,8 +1,4 @@ -import { - DxcParagraph, - DxcBulletedList, - DxcFlex, -} from "@dxc-technology/halstack-react"; +import { DxcParagraph, DxcBulletedList, DxcFlex } from "@dxc-technology/halstack-react"; import QuickNavContainer from "@/common/QuickNavContainer"; import QuickNavContainerLayout from "@/common/QuickNavContainerLayout"; import DocFooter from "@/common/DocFooter"; @@ -19,22 +15,17 @@ const sections = [ content: ( - Use tooltips when sharing valuable information as clearly and - concisely as possible. + Use tooltips when sharing valuable information as clearly and concisely as possible. - Describe icons by using tooltips. Tooltips effectively provide - context and clarity for components without labels, delivering - helpful information directly to the user when they hover over or - focus on an icon. + Describe icons by using tooltips. Tooltips effectively provide context and clarity for components without + labels, delivering helpful information directly to the user when they hover over or focus on an icon. - Maintain consistency in the positioning of tooltips throughout the - user interface. + Maintain consistency in the positioning of tooltips throughout the user interface. - Use clear and accurate phrasing when placing the text inside a - tooltip. + Use clear and accurate phrasing when placing the text inside a tooltip. ), @@ -44,22 +35,17 @@ const sections = [ content: ( - Avoid using tooltips to convey crucial information. This type of - information must always be present, not only when the user hovers - over or focuses on a component. + Avoid using tooltips to convey crucial information. This type of information must always be present, not + only when the user hovers over or focuses on a component. - Don't place tooltips where they might cover or obscure important - information or critical areas of the interface that need to remain - visible at all times. + Don't place tooltips where they might cover or obscure important information or critical areas of the + interface that need to remain visible at all times. + Don't use tooltips to communicate error messages. - Don't use tooltips to communicate error messages. - - - Avoid using tooltips in interfaces where there is sufficient space - to display additional information directly, without the need for - hiding it. + Avoid using tooltips in interfaces where there is sufficient space to display additional information + directly, without the need for hiding it. ), @@ -71,9 +57,8 @@ const sections = [ content: ( <> - Depending on the tooltip's placement relative to the object it - describes, there are four possible configurations: top, right, bottom - and left. + Depending on the tooltip's placement relative to the object it describes, there are four possible + configurations: top, right, bottom and left.
      Tooltip positions @@ -87,10 +72,7 @@ const TooltipUsagePage = () => { return ( - + diff --git a/apps/website/screens/overview/releases/ReleasesPage.tsx b/apps/website/screens/overview/releases/ReleasesPage.tsx index 925646edb..8a5ec8eda 100644 --- a/apps/website/screens/overview/releases/ReleasesPage.tsx +++ b/apps/website/screens/overview/releases/ReleasesPage.tsx @@ -27,6 +27,9 @@ const sections = [ <> Every major release of Halstack is collected below: + + Halstack 13 + Halstack 12 diff --git a/apps/website/screens/principles/themes/ThemesPage.tsx b/apps/website/screens/principles/themes/ThemesPage.tsx index 330cf30ae..5599d5229 100644 --- a/apps/website/screens/principles/themes/ThemesPage.tsx +++ b/apps/website/screens/principles/themes/ThemesPage.tsx @@ -1,4 +1,12 @@ -import { DxcTable, DxcFlex, DxcLink, DxcHeading, DxcParagraph, DxcBulletedList, DxcAlert } from "@dxc-technology/halstack-react"; +import { + DxcTable, + DxcFlex, + DxcLink, + DxcHeading, + DxcParagraph, + DxcBulletedList, + DxcAlert, +} from "@dxc-technology/halstack-react"; import Link from "next/link"; import QuickNavContainer from "@/common/QuickNavContainer"; import PageHeading from "@/common/PageHeading"; diff --git a/apps/website/screens/theme-generator/ThemeGenerator.tsx b/apps/website/screens/theme-generator/ThemeGenerator.tsx index 7da2a8d2d..909af4b5e 100644 --- a/apps/website/screens/theme-generator/ThemeGenerator.tsx +++ b/apps/website/screens/theme-generator/ThemeGenerator.tsx @@ -1,5 +1,13 @@ import React, { useState, useCallback } from "react"; -import { DxcApplicationLayout, DxcButton, DxcInset, DxcFlex, DxcLink, DxcTypography, DxcHeading } from "@dxc-technology/halstack-react"; +import { + DxcApplicationLayout, + DxcButton, + DxcInset, + DxcFlex, + DxcLink, + DxcTypography, + DxcHeading, +} from "@dxc-technology/halstack-react"; import Link from "next/link"; import { useRouter } from "next/router"; import opinionatedTheme from "@/common/themes/opinionated-theme.json"; diff --git a/apps/website/screens/theme-generator/components/previews/Dialog.tsx b/apps/website/screens/theme-generator/components/previews/Dialog.tsx index 67d2411d4..7b4678e55 100644 --- a/apps/website/screens/theme-generator/components/previews/Dialog.tsx +++ b/apps/website/screens/theme-generator/components/previews/Dialog.tsx @@ -1,5 +1,13 @@ import React, { useState } from "react"; -import { DxcDialog, DxcButton, DxcHeading, DxcTextInput, DxcFlex, DxcParagraph, DxcInset } from "@dxc-technology/halstack-react"; +import { + DxcDialog, + DxcButton, + DxcHeading, + DxcTextInput, + DxcFlex, + DxcParagraph, + DxcInset, +} from "@dxc-technology/halstack-react"; import Mode from "../Mode"; import PreviewContainer from "./PreviewContainer"; diff --git a/apps/website/screens/utilities/halstack-provider/HalstackProviderPage.tsx b/apps/website/screens/utilities/halstack-provider/HalstackProviderPage.tsx index ee46a7139..4e481a483 100644 --- a/apps/website/screens/utilities/halstack-provider/HalstackProviderPage.tsx +++ b/apps/website/screens/utilities/halstack-provider/HalstackProviderPage.tsx @@ -6,7 +6,16 @@ import QuickNavContainerLayout from "@/common/QuickNavContainerLayout"; import opinionatedTheme from "./examples/opinionatedTheme"; import advancedTheme from "./examples/advancedTheme"; import customTranslations from "./examples/customTranslations"; -import { DxcFlex, DxcParagraph, DxcTable, DxcLink, DxcAlert, DxcTypography, DxcBleed, DxcHeading } from "@dxc-technology/halstack-react"; +import { + DxcFlex, + DxcParagraph, + DxcTable, + DxcLink, + DxcAlert, + DxcTypography, + DxcBleed, + DxcHeading, +} from "@dxc-technology/halstack-react"; import Link from "next/link"; import PageHeading from "@/common/PageHeading"; import TableCode from "@/common/TableCode"; diff --git a/package-lock.json b/package-lock.json index cafaedf45..bfc876f64 100644 --- a/package-lock.json +++ b/package-lock.json @@ -2196,9 +2196,9 @@ "dev": true }, "node_modules/@chromatic-com/storybook": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/@chromatic-com/storybook/-/storybook-1.6.0.tgz", - "integrity": "sha512-6sHj0l194KMBIZ0D5SeJ+Ys+zslehKHcC2d6Hd/YEn4cCl7p9mLuxrZjvf8xharGKy8vf9Q1tKrU2YdldzUBoQ==", + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/@chromatic-com/storybook/-/storybook-1.6.1.tgz", + "integrity": "sha512-x1x1NB3j4xpfeSWKr96emc+7ZvfsvH+/WVb3XCjkB24PPbT8VZXb3mJSAQMrSzuQ8+eQE9kDogYHH9Fj3tb/Cw==", "dev": true, "dependencies": { "chromatic": "^11.4.0", @@ -2217,9 +2217,9 @@ "link": true }, "node_modules/@cloudscape-design/components-themeable": { - "version": "3.0.692", - "resolved": "https://registry.npmjs.org/@cloudscape-design/components-themeable/-/components-themeable-3.0.692.tgz", - "integrity": "sha512-C0VTAgIZITnn4TzeN4imi00LVXVLN4rLK8FNCWdKX3F7Sv6csPN6e+3bTjdOk1EsXfVvdiYMlcJ70VLrmX3xlA==", + "version": "3.0.696", + "resolved": "https://registry.npmjs.org/@cloudscape-design/components-themeable/-/components-themeable-3.0.696.tgz", + "integrity": "sha512-bg5fMTCgB6THB9mRvMULqrq7sJhmLJo2ENFhEaznfmExMwZoHW04U4g6bUdjWBLHA3AukgHCNKjSBmi079qy2w==", "dev": true, "dependencies": { "@cloudscape-design/theming-build": "^1.0.0" @@ -2230,9 +2230,9 @@ "link": true }, "node_modules/@cloudscape-design/theming-build": { - "version": "1.0.58", - "resolved": "https://registry.npmjs.org/@cloudscape-design/theming-build/-/theming-build-1.0.58.tgz", - "integrity": "sha512-dtKMlT0lFe5Qmk6Yp6eiV1Mg6qqW4gszDTZc395VHYUgXCuzDgztAuAH35rYkdtFhNQQxDZyo2UdRKohSPOwMw==", + "version": "1.0.59", + "resolved": "https://registry.npmjs.org/@cloudscape-design/theming-build/-/theming-build-1.0.59.tgz", + "integrity": "sha512-p9OkW+t+GT8azRsiqOeGT0Q/P8EwOdW81OCKMQE107te1DWtY9+d1T02HIkOW2dSd/7hag2mZ0t5ENtIqzGaiw==", "dev": true, "dependencies": { "autoprefixer": "^10.4.8", @@ -4257,9 +4257,9 @@ } }, "node_modules/@jridgewell/sourcemap-codec": { - "version": "1.4.15", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", - "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==" + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz", + "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==" }, "node_modules/@jridgewell/trace-mapping": { "version": "0.3.25", @@ -5110,9 +5110,9 @@ "dev": true }, "node_modules/@rollup/rollup-android-arm-eabi": { - "version": "4.18.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.18.0.tgz", - "integrity": "sha512-Tya6xypR10giZV1XzxmH5wr25VcZSncG0pZIjfePT0OVBvqNEurzValetGNarVrGiq66EBVAFn15iYX4w6FKgQ==", + "version": "4.18.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.18.1.tgz", + "integrity": "sha512-lncuC4aHicncmbORnx+dUaAgzee9cm/PbIqgWz1PpXuwc+sa1Ct83tnqUDy/GFKleLiN7ZIeytM6KJ4cAn1SxA==", "cpu": [ "arm" ], @@ -5123,9 +5123,9 @@ ] }, "node_modules/@rollup/rollup-android-arm64": { - "version": "4.18.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.18.0.tgz", - "integrity": "sha512-avCea0RAP03lTsDhEyfy+hpfr85KfyTctMADqHVhLAF3MlIkq83CP8UfAHUssgXTYd+6er6PaAhx/QGv4L1EiA==", + "version": "4.18.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.18.1.tgz", + "integrity": "sha512-F/tkdw0WSs4ojqz5Ovrw5r9odqzFjb5LIgHdHZG65dFI1lWTWRVy32KDJLKRISHgJvqUeUhdIvy43fX41znyDg==", "cpu": [ "arm64" ], @@ -5136,9 +5136,9 @@ ] }, "node_modules/@rollup/rollup-darwin-arm64": { - "version": "4.18.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.18.0.tgz", - "integrity": "sha512-IWfdwU7KDSm07Ty0PuA/W2JYoZ4iTj3TUQjkVsO/6U+4I1jN5lcR71ZEvRh52sDOERdnNhhHU57UITXz5jC1/w==", + "version": "4.18.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.18.1.tgz", + "integrity": "sha512-vk+ma8iC1ebje/ahpxpnrfVQJibTMyHdWpOGZ3JpQ7Mgn/3QNHmPq7YwjZbIE7km73dH5M1e6MRRsnEBW7v5CQ==", "cpu": [ "arm64" ], @@ -5149,9 +5149,9 @@ ] }, "node_modules/@rollup/rollup-darwin-x64": { - "version": "4.18.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.18.0.tgz", - "integrity": "sha512-n2LMsUz7Ynu7DoQrSQkBf8iNrjOGyPLrdSg802vk6XT3FtsgX6JbE8IHRvposskFm9SNxzkLYGSq9QdpLYpRNA==", + "version": "4.18.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.18.1.tgz", + "integrity": "sha512-IgpzXKauRe1Tafcej9STjSSuG0Ghu/xGYH+qG6JwsAUxXrnkvNHcq/NL6nz1+jzvWAnQkuAJ4uIwGB48K9OCGA==", "cpu": [ "x64" ], @@ -5162,9 +5162,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm-gnueabihf": { - "version": "4.18.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.18.0.tgz", - "integrity": "sha512-C/zbRYRXFjWvz9Z4haRxcTdnkPt1BtCkz+7RtBSuNmKzMzp3ZxdM28Mpccn6pt28/UWUCTXa+b0Mx1k3g6NOMA==", + "version": "4.18.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.18.1.tgz", + "integrity": "sha512-P9bSiAUnSSM7EmyRK+e5wgpqai86QOSv8BwvkGjLwYuOpaeomiZWifEos517CwbG+aZl1T4clSE1YqqH2JRs+g==", "cpu": [ "arm" ], @@ -5175,9 +5175,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm-musleabihf": { - "version": "4.18.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.18.0.tgz", - "integrity": "sha512-l3m9ewPgjQSXrUMHg93vt0hYCGnrMOcUpTz6FLtbwljo2HluS4zTXFy2571YQbisTnfTKPZ01u/ukJdQTLGh9A==", + "version": "4.18.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.18.1.tgz", + "integrity": "sha512-5RnjpACoxtS+aWOI1dURKno11d7krfpGDEn19jI8BuWmSBbUC4ytIADfROM1FZrFhQPSoP+KEa3NlEScznBTyQ==", "cpu": [ "arm" ], @@ -5188,9 +5188,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm64-gnu": { - "version": "4.18.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.18.0.tgz", - "integrity": "sha512-rJ5D47d8WD7J+7STKdCUAgmQk49xuFrRi9pZkWoRD1UeSMakbcepWXPF8ycChBoAqs1pb2wzvbY6Q33WmN2ftw==", + "version": "4.18.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.18.1.tgz", + "integrity": "sha512-8mwmGD668m8WaGbthrEYZ9CBmPug2QPGWxhJxh/vCgBjro5o96gL04WLlg5BA233OCWLqERy4YUzX3bJGXaJgQ==", "cpu": [ "arm64" ], @@ -5201,9 +5201,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm64-musl": { - "version": "4.18.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.18.0.tgz", - "integrity": "sha512-be6Yx37b24ZwxQ+wOQXXLZqpq4jTckJhtGlWGZs68TgdKXJgw54lUUoFYrg6Zs/kjzAQwEwYbp8JxZVzZLRepQ==", + "version": "4.18.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.18.1.tgz", + "integrity": "sha512-dJX9u4r4bqInMGOAQoGYdwDP8lQiisWb9et+T84l2WXk41yEej8v2iGKodmdKimT8cTAYt0jFb+UEBxnPkbXEQ==", "cpu": [ "arm64" ], @@ -5214,9 +5214,9 @@ ] }, "node_modules/@rollup/rollup-linux-powerpc64le-gnu": { - "version": "4.18.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.18.0.tgz", - "integrity": "sha512-hNVMQK+qrA9Todu9+wqrXOHxFiD5YmdEi3paj6vP02Kx1hjd2LLYR2eaN7DsEshg09+9uzWi2W18MJDlG0cxJA==", + "version": "4.18.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.18.1.tgz", + "integrity": "sha512-V72cXdTl4EI0x6FNmho4D502sy7ed+LuVW6Ym8aI6DRQ9hQZdp5sj0a2usYOlqvFBNKQnLQGwmYnujo2HvjCxQ==", "cpu": [ "ppc64" ], @@ -5227,9 +5227,9 @@ ] }, "node_modules/@rollup/rollup-linux-riscv64-gnu": { - "version": "4.18.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.18.0.tgz", - "integrity": "sha512-ROCM7i+m1NfdrsmvwSzoxp9HFtmKGHEqu5NNDiZWQtXLA8S5HBCkVvKAxJ8U+CVctHwV2Gb5VUaK7UAkzhDjlg==", + "version": "4.18.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.18.1.tgz", + "integrity": "sha512-f+pJih7sxoKmbjghrM2RkWo2WHUW8UbfxIQiWo5yeCaCM0TveMEuAzKJte4QskBp1TIinpnRcxkquY+4WuY/tg==", "cpu": [ "riscv64" ], @@ -5240,9 +5240,9 @@ ] }, "node_modules/@rollup/rollup-linux-s390x-gnu": { - "version": "4.18.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.18.0.tgz", - "integrity": "sha512-0UyyRHyDN42QL+NbqevXIIUnKA47A+45WyasO+y2bGJ1mhQrfrtXUpTxCOrfxCR4esV3/RLYyucGVPiUsO8xjg==", + "version": "4.18.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.18.1.tgz", + "integrity": "sha512-qb1hMMT3Fr/Qz1OKovCuUM11MUNLUuHeBC2DPPAWUYYUAOFWaxInaTwTQmc7Fl5La7DShTEpmYwgdt2hG+4TEg==", "cpu": [ "s390x" ], @@ -5253,9 +5253,9 @@ ] }, "node_modules/@rollup/rollup-linux-x64-gnu": { - "version": "4.18.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.18.0.tgz", - "integrity": "sha512-xuglR2rBVHA5UsI8h8UbX4VJ470PtGCf5Vpswh7p2ukaqBGFTnsfzxUBetoWBWymHMxbIG0Cmx7Y9qDZzr648w==", + "version": "4.18.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.18.1.tgz", + "integrity": "sha512-7O5u/p6oKUFYjRbZkL2FLbwsyoJAjyeXHCU3O4ndvzg2OFO2GinFPSJFGbiwFDaCFc+k7gs9CF243PwdPQFh5g==", "cpu": [ "x64" ], @@ -5266,9 +5266,9 @@ ] }, "node_modules/@rollup/rollup-linux-x64-musl": { - "version": "4.18.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.18.0.tgz", - "integrity": "sha512-LKaqQL9osY/ir2geuLVvRRs+utWUNilzdE90TpyoX0eNqPzWjRm14oMEE+YLve4k/NAqCdPkGYDaDF5Sw+xBfg==", + "version": "4.18.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.18.1.tgz", + "integrity": "sha512-pDLkYITdYrH/9Cv/Vlj8HppDuLMDUBmgsM0+N+xLtFd18aXgM9Nyqupb/Uw+HeidhfYg2lD6CXvz6CjoVOaKjQ==", "cpu": [ "x64" ], @@ -5279,9 +5279,9 @@ ] }, "node_modules/@rollup/rollup-win32-arm64-msvc": { - "version": "4.18.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.18.0.tgz", - "integrity": "sha512-7J6TkZQFGo9qBKH0pk2cEVSRhJbL6MtfWxth7Y5YmZs57Pi+4x6c2dStAUvaQkHQLnEQv1jzBUW43GvZW8OFqA==", + "version": "4.18.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.18.1.tgz", + "integrity": "sha512-W2ZNI323O/8pJdBGil1oCauuCzmVd9lDmWBBqxYZcOqWD6aWqJtVBQ1dFrF4dYpZPks6F+xCZHfzG5hYlSHZ6g==", "cpu": [ "arm64" ], @@ -5292,9 +5292,9 @@ ] }, "node_modules/@rollup/rollup-win32-ia32-msvc": { - "version": "4.18.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.18.0.tgz", - "integrity": "sha512-Txjh+IxBPbkUB9+SXZMpv+b/vnTEtFyfWZgJ6iyCmt2tdx0OF5WhFowLmnh8ENGNpfUlUZkdI//4IEmhwPieNg==", + "version": "4.18.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.18.1.tgz", + "integrity": "sha512-ELfEX1/+eGZYMaCIbK4jqLxO1gyTSOIlZr6pbC4SRYFaSIDVKOnZNMdoZ+ON0mrFDp4+H5MhwNC1H/AhE3zQLg==", "cpu": [ "ia32" ], @@ -5305,9 +5305,9 @@ ] }, "node_modules/@rollup/rollup-win32-x64-msvc": { - "version": "4.18.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.18.0.tgz", - "integrity": "sha512-UOo5FdvOL0+eIVTgS4tIdbW+TtnBLWg1YBCcU2KWM7nuNwRz9bksDX1bekJJCpu25N1DVWaCwnT39dVQxzqS8g==", + "version": "4.18.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.18.1.tgz", + "integrity": "sha512-yjk2MAkQmoaPYCSu35RLJ62+dz358nE83VfTePJRp8CG7aMg25mEJYpXFiD+NcevhX8LxD5OP5tktPXnXN7GDw==", "cpu": [ "x64" ], @@ -6170,9 +6170,9 @@ } }, "node_modules/@storybook/core-common/node_modules/glob": { - "version": "10.4.2", - "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.2.tgz", - "integrity": "sha512-GwMlUF6PkPo3Gk21UxkCohOv0PLcIXVtKyLlpEI28R/cO/4eNOdmLk3CMW1wROV/WR/EsZOWAfBbBOqYvs88/w==", + "version": "10.4.5", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz", + "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==", "dev": true, "dependencies": { "foreground-child": "^3.1.0", @@ -6185,9 +6185,6 @@ "bin": { "glob": "dist/esm/bin.mjs" }, - "engines": { - "node": ">=16 || 14 >=14.18" - }, "funding": { "url": "https://github.com/sponsors/isaacs" } @@ -6202,15 +6199,15 @@ } }, "node_modules/@storybook/core-common/node_modules/jackspeak": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.0.tgz", - "integrity": "sha512-JVYhQnN59LVPFCEcVa2C3CrEKYacvjRfqIQl+h8oi91aLYQVWRYbxjPcv1bUiUy/kLmQaANrYfNMCO3kuEDHfw==", + "version": "3.4.2", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.2.tgz", + "integrity": "sha512-qH3nOSj8q/8+Eg8LUPOq3C+6HWkpUioIjDsq1+D4zY91oZvpPttw8GwtF1nReRYKXl+1AORyFqtm2f5Q1SB6/Q==", "dev": true, "dependencies": { "@isaacs/cliui": "^8.0.2" }, "engines": { - "node": ">=14" + "node": "14 >=14.21 || 16 >=16.20 || >=18" }, "funding": { "url": "https://github.com/sponsors/isaacs" @@ -7266,9 +7263,9 @@ } }, "node_modules/@testing-library/dom": { - "version": "10.3.0", - "resolved": "https://registry.npmjs.org/@testing-library/dom/-/dom-10.3.0.tgz", - "integrity": "sha512-pT/TYB2+IyMYkkB6lqpkzD7VFbsR0JBJtflK3cS68sCNWxmOhWwRm1XvVHlseNEorsNcxkYsb4sRDV3aNIpttg==", + "version": "10.3.1", + "resolved": "https://registry.npmjs.org/@testing-library/dom/-/dom-10.3.1.tgz", + "integrity": "sha512-q/WL+vlXMpC0uXDyfsMtc1rmotzLV8Y0gq6q1gfrrDjQeHoeLrqHbxdPvPNAh1i+xuJl7+BezywcXArz7vLqKQ==", "dev": true, "peer": true, "dependencies": { @@ -8101,9 +8098,9 @@ "integrity": "sha512-nG96G3Wp6acyAgJqGasjODb+acrI7KltPiRxzHPXnP3NgI28bpQDRv53olbqGXbfcgF5aiiHmO3xpwEpS5Ld9g==" }, "node_modules/@types/node": { - "version": "20.14.9", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.14.9.tgz", - "integrity": "sha512-06OCtnTXtWOZBJlRApleWndH4JsRVs1pDCc8dLSQp+7PpUpX3ePdHyeNSFTeSe7FtKyQkrlPvHwJOW3SLd8Oyg==", + "version": "20.14.10", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.14.10.tgz", + "integrity": "sha512-MdiXf+nDuMvY0gJKxyfZ7/6UFsETO7mGKF54MVD/ekJS6HdFtpZFBgrh6Pseu64XTb2MLyFPlbW6hj8HYRQNOQ==", "dependencies": { "undici-types": "~5.26.4" } @@ -8280,16 +8277,16 @@ "dev": true }, "node_modules/@typescript-eslint/eslint-plugin": { - "version": "7.15.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-7.15.0.tgz", - "integrity": "sha512-uiNHpyjZtFrLwLDpHnzaDlP3Tt6sGMqTCiqmxaN4n4RP0EfYZDODJyddiFDF44Hjwxr5xAcaYxVKm9QKQFJFLA==", + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-7.16.0.tgz", + "integrity": "sha512-py1miT6iQpJcs1BiJjm54AMzeuMPBSPuKPlnT8HlfudbcS5rYeX5jajpLf3mrdRh9dA/Ec2FVUY0ifeVNDIhZw==", "dev": true, "dependencies": { "@eslint-community/regexpp": "^4.10.0", - "@typescript-eslint/scope-manager": "7.15.0", - "@typescript-eslint/type-utils": "7.15.0", - "@typescript-eslint/utils": "7.15.0", - "@typescript-eslint/visitor-keys": "7.15.0", + "@typescript-eslint/scope-manager": "7.16.0", + "@typescript-eslint/type-utils": "7.16.0", + "@typescript-eslint/utils": "7.16.0", + "@typescript-eslint/visitor-keys": "7.16.0", "graphemer": "^1.4.0", "ignore": "^5.3.1", "natural-compare": "^1.4.0", @@ -8313,15 +8310,15 @@ } }, "node_modules/@typescript-eslint/parser": { - "version": "7.15.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-7.15.0.tgz", - "integrity": "sha512-k9fYuQNnypLFcqORNClRykkGOMOj+pV6V91R4GO/l1FDGwpqmSwoOQrOHo3cGaH63e+D3ZiCAOsuS/D2c99j/A==", + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-7.16.0.tgz", + "integrity": "sha512-ar9E+k7CU8rWi2e5ErzQiC93KKEFAXA2Kky0scAlPcxYblLt8+XZuHUZwlyfXILyQa95P6lQg+eZgh/dDs3+Vw==", "dev": true, "dependencies": { - "@typescript-eslint/scope-manager": "7.15.0", - "@typescript-eslint/types": "7.15.0", - "@typescript-eslint/typescript-estree": "7.15.0", - "@typescript-eslint/visitor-keys": "7.15.0", + "@typescript-eslint/scope-manager": "7.16.0", + "@typescript-eslint/types": "7.16.0", + "@typescript-eslint/typescript-estree": "7.16.0", + "@typescript-eslint/visitor-keys": "7.16.0", "debug": "^4.3.4" }, "engines": { @@ -8341,13 +8338,13 @@ } }, "node_modules/@typescript-eslint/scope-manager": { - "version": "7.15.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-7.15.0.tgz", - "integrity": "sha512-Q/1yrF/XbxOTvttNVPihxh1b9fxamjEoz2Os/Pe38OHwxC24CyCqXxGTOdpb4lt6HYtqw9HetA/Rf6gDGaMPlw==", + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-7.16.0.tgz", + "integrity": "sha512-8gVv3kW6n01Q6TrI1cmTZ9YMFi3ucDT7i7aI5lEikk2ebk1AEjrwX8MDTdaX5D7fPXMBLvnsaa0IFTAu+jcfOw==", "dev": true, "dependencies": { - "@typescript-eslint/types": "7.15.0", - "@typescript-eslint/visitor-keys": "7.15.0" + "@typescript-eslint/types": "7.16.0", + "@typescript-eslint/visitor-keys": "7.16.0" }, "engines": { "node": "^18.18.0 || >=20.0.0" @@ -8358,13 +8355,13 @@ } }, "node_modules/@typescript-eslint/type-utils": { - "version": "7.15.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-7.15.0.tgz", - "integrity": "sha512-SkgriaeV6PDvpA6253PDVep0qCqgbO1IOBiycjnXsszNTVQe5flN5wR5jiczoEoDEnAqYFSFFc9al9BSGVltkg==", + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-7.16.0.tgz", + "integrity": "sha512-j0fuUswUjDHfqV/UdW6mLtOQQseORqfdmoBNDFOqs9rvNVR2e+cmu6zJu/Ku4SDuqiJko6YnhwcL8x45r8Oqxg==", "dev": true, "dependencies": { - "@typescript-eslint/typescript-estree": "7.15.0", - "@typescript-eslint/utils": "7.15.0", + "@typescript-eslint/typescript-estree": "7.16.0", + "@typescript-eslint/utils": "7.16.0", "debug": "^4.3.4", "ts-api-utils": "^1.3.0" }, @@ -8385,9 +8382,9 @@ } }, "node_modules/@typescript-eslint/types": { - "version": "7.15.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-7.15.0.tgz", - "integrity": "sha512-aV1+B1+ySXbQH0pLK0rx66I3IkiZNidYobyfn0WFsdGhSXw+P3YOqeTq5GED458SfB24tg+ux3S+9g118hjlTw==", + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-7.16.0.tgz", + "integrity": "sha512-fecuH15Y+TzlUutvUl9Cc2XJxqdLr7+93SQIbcZfd4XRGGKoxyljK27b+kxKamjRkU7FYC6RrbSCg0ALcZn/xw==", "dev": true, "engines": { "node": "^18.18.0 || >=20.0.0" @@ -8398,13 +8395,13 @@ } }, "node_modules/@typescript-eslint/typescript-estree": { - "version": "7.15.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-7.15.0.tgz", - "integrity": "sha512-gjyB/rHAopL/XxfmYThQbXbzRMGhZzGw6KpcMbfe8Q3nNQKStpxnUKeXb0KiN/fFDR42Z43szs6rY7eHk0zdGQ==", + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-7.16.0.tgz", + "integrity": "sha512-a5NTvk51ZndFuOLCh5OaJBELYc2O3Zqxfl3Js78VFE1zE46J2AaVuW+rEbVkQznjkmlzWsUI15BG5tQMixzZLw==", "dev": true, "dependencies": { - "@typescript-eslint/types": "7.15.0", - "@typescript-eslint/visitor-keys": "7.15.0", + "@typescript-eslint/types": "7.16.0", + "@typescript-eslint/visitor-keys": "7.16.0", "debug": "^4.3.4", "globby": "^11.1.0", "is-glob": "^4.0.3", @@ -8438,15 +8435,15 @@ } }, "node_modules/@typescript-eslint/utils": { - "version": "7.15.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-7.15.0.tgz", - "integrity": "sha512-hfDMDqaqOqsUVGiEPSMLR/AjTSCsmJwjpKkYQRo1FNbmW4tBwBspYDwO9eh7sKSTwMQgBw9/T4DHudPaqshRWA==", + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-7.16.0.tgz", + "integrity": "sha512-PqP4kP3hb4r7Jav+NiRCntlVzhxBNWq6ZQ+zQwII1y/G/1gdIPeYDCKr2+dH6049yJQsWZiHU6RlwvIFBXXGNA==", "dev": true, "dependencies": { "@eslint-community/eslint-utils": "^4.4.0", - "@typescript-eslint/scope-manager": "7.15.0", - "@typescript-eslint/types": "7.15.0", - "@typescript-eslint/typescript-estree": "7.15.0" + "@typescript-eslint/scope-manager": "7.16.0", + "@typescript-eslint/types": "7.16.0", + "@typescript-eslint/typescript-estree": "7.16.0" }, "engines": { "node": "^18.18.0 || >=20.0.0" @@ -8460,12 +8457,12 @@ } }, "node_modules/@typescript-eslint/visitor-keys": { - "version": "7.15.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-7.15.0.tgz", - "integrity": "sha512-Hqgy/ETgpt2L5xueA/zHHIl4fJI2O4XUE9l4+OIfbJIRSnTJb/QscncdqqZzofQegIJugRIF57OJea1khw2SDw==", + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-7.16.0.tgz", + "integrity": "sha512-rMo01uPy9C7XxG7AFsxa8zLnWXTF8N3PYclekWSrurvhwiw1eW88mrKiAYe6s53AUY57nTRz8dJsuuXdkAhzCg==", "dev": true, "dependencies": { - "@typescript-eslint/types": "7.15.0", + "@typescript-eslint/types": "7.16.0", "eslint-visitor-keys": "^3.4.3" }, "engines": { @@ -10096,9 +10093,9 @@ } }, "node_modules/browserslist": { - "version": "4.23.1", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.23.1.tgz", - "integrity": "sha512-TUfofFo/KsK/bWZ9TWQ5O26tsWW4Uhmt8IYklbnUa70udB6P2wA7w7o4PY4muaEPBQaAX+CEnmmIA41NVHtPVw==", + "version": "4.23.2", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.23.2.tgz", + "integrity": "sha512-qkqSyistMYdxAcw+CzbZwlBy8AGmS/eEWs+sEV5TnLRGDOL+C5M2EnH6tlZyg0YoAxGJAFKh61En9BR941GnHA==", "funding": [ { "type": "opencollective", @@ -10114,10 +10111,10 @@ } ], "dependencies": { - "caniuse-lite": "^1.0.30001629", - "electron-to-chromium": "^1.4.796", + "caniuse-lite": "^1.0.30001640", + "electron-to-chromium": "^1.4.820", "node-releases": "^2.0.14", - "update-browserslist-db": "^1.0.16" + "update-browserslist-db": "^1.1.0" }, "bin": { "browserslist": "cli.js" @@ -10388,9 +10385,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001640", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001640.tgz", - "integrity": "sha512-lA4VMpW0PSUrFnkmVuEKBUovSWKhj7puyCg8StBChgu298N1AtuF1sKWEvfDuimSEDbhlb/KqPKC3fs1HbuQUA==", + "version": "1.0.30001641", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001641.tgz", + "integrity": "sha512-Phv5thgl67bHYo1TtMY/MurjkHhV4EDaCosezRXgZ8jzA/Ub+wjxAvbGvjoFENStinwi5kCyOYV3mi5tOGykwA==", "funding": [ { "type": "opencollective", @@ -10533,9 +10530,9 @@ } }, "node_modules/chromatic": { - "version": "11.5.4", - "resolved": "https://registry.npmjs.org/chromatic/-/chromatic-11.5.4.tgz", - "integrity": "sha512-+J+CopeUSyGUIQJsU6X7CfvSmeVBs0j6LZ9AgF4+XTjI4pFmUiUXsTc00rH9x9W1jCppOaqDXv2kqJJXGDK3mA==", + "version": "11.5.5", + "resolved": "https://registry.npmjs.org/chromatic/-/chromatic-11.5.5.tgz", + "integrity": "sha512-YS0GJwegF0vpMbwZE68/xJlI4SlUGMqI78V2ATAF19YwTHaq8jGP1CPQGKUSlgWUhzPtyu3ELy6Dvv/owYljAg==", "dev": true, "bin": { "chroma": "dist/bin.js", @@ -12046,9 +12043,9 @@ } }, "node_modules/electron-to-chromium": { - "version": "1.4.816", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.816.tgz", - "integrity": "sha512-EKH5X5oqC6hLmiS7/vYtZHZFTNdhsYG5NVPRN6Yn0kQHNBlT59+xSM8HBy66P5fxWpKgZbPqb+diC64ng295Jw==" + "version": "1.4.823", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.823.tgz", + "integrity": "sha512-4h+oPeAiGQOHFyUJOqpoEcPj/xxlicxBzOErVeYVMMmAiXUXsGpsFd0QXBMaUUbnD8hhSfLf9uw+MlsoIA7j5w==" }, "node_modules/emittery": { "version": "0.13.1", @@ -13755,9 +13752,9 @@ } }, "node_modules/esquery": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz", - "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==", + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.6.0.tgz", + "integrity": "sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==", "dev": true, "dependencies": { "estraverse": "^5.1.0" @@ -14115,9 +14112,9 @@ } }, "node_modules/filesize": { - "version": "10.1.2", - "resolved": "https://registry.npmjs.org/filesize/-/filesize-10.1.2.tgz", - "integrity": "sha512-Dx770ai81ohflojxhU+oG+Z2QGvKdYxgEr9OSA8UVrqhwNHjfH9A8f5NKfg83fEH8ZFA5N5llJo5T3PIoZ4CRA==", + "version": "10.1.4", + "resolved": "https://registry.npmjs.org/filesize/-/filesize-10.1.4.tgz", + "integrity": "sha512-ryBwPIIeErmxgPnm6cbESAzXjuEFubs+yKYLBZvg3CaiNcmkJChoOGcBSrZ6IwkMwPABwPpVXE6IlNdGJJrvEg==", "dev": true, "engines": { "node": ">= 10.4.0" @@ -14401,9 +14398,9 @@ "dev": true }, "node_modules/flow-parser": { - "version": "0.239.0", - "resolved": "https://registry.npmjs.org/flow-parser/-/flow-parser-0.239.0.tgz", - "integrity": "sha512-U5dgOsS6cg4FGNzzTD/zHRDM4bliL6laUgD0LUCSMzI2zEfKMnRV2/wgDv8nKmO2Z1R8ri5pE1YoldmrSV7FOw==", + "version": "0.239.1", + "resolved": "https://registry.npmjs.org/flow-parser/-/flow-parser-0.239.1.tgz", + "integrity": "sha512-topOrETNxJ6T2gAnQiWqAlzGPj8uI2wtmNOlDIMNB+qyvGJZ6R++STbUOTAYmvPhOMz2gXnXPH0hOvURYmrBow==", "dev": true, "engines": { "node": ">=0.4.0" @@ -21551,13 +21548,10 @@ } }, "node_modules/path-scurry/node_modules/lru-cache": { - "version": "10.3.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.3.0.tgz", - "integrity": "sha512-CQl19J/g+Hbjbv4Y3mFNNXFEL/5t/KCg8POCuUqd4rMKjGG+j1ybER83hxV58zL+dFI1PTkt3GNFSHRt+d8qEQ==", - "dev": true, - "engines": { - "node": "14 || >=16.14" - } + "version": "10.4.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", + "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", + "dev": true }, "node_modules/path-to-regexp": { "version": "0.1.7", @@ -22321,9 +22315,9 @@ ] }, "node_modules/qs": { - "version": "6.12.2", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.12.2.tgz", - "integrity": "sha512-x+NLUpx9SYrcwXtX7ob1gnkSems4i/mGZX5SlYxwIau6RrUSODO89TR/XDGGpn5RPWSYIB+aSfuSlV5+CmbTBg==", + "version": "6.12.3", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.12.3.tgz", + "integrity": "sha512-AWJm14H1vVaO/iNZ4/hO+HyaTehuy9nRqVdkTqlJt0HWvBiBIEXFmb4C0DGeYo3Xes9rrEW+TxHsaigCbN5ICQ==", "dev": true, "dependencies": { "side-channel": "^1.0.6" @@ -23413,9 +23407,9 @@ } }, "node_modules/rollup": { - "version": "4.18.0", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.18.0.tgz", - "integrity": "sha512-QmJz14PX3rzbJCN1SG4Xe/bAAX2a6NpCP8ab2vfu2GiUr8AQcr2nCV/oEO3yneFarB67zk8ShlIyWb2LGTb3Sg==", + "version": "4.18.1", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.18.1.tgz", + "integrity": "sha512-Elx2UT8lzxxOXMpy5HWQGZqkrQOtrVDDa/bm9l10+U4rQnVzbL/LgZ4NOM1MPIDyHk69W4InuYDF5dzRh4Kw1A==", "dev": true, "dependencies": { "@types/estree": "1.0.5" @@ -23428,22 +23422,22 @@ "npm": ">=8.0.0" }, "optionalDependencies": { - "@rollup/rollup-android-arm-eabi": "4.18.0", - "@rollup/rollup-android-arm64": "4.18.0", - "@rollup/rollup-darwin-arm64": "4.18.0", - "@rollup/rollup-darwin-x64": "4.18.0", - "@rollup/rollup-linux-arm-gnueabihf": "4.18.0", - "@rollup/rollup-linux-arm-musleabihf": "4.18.0", - "@rollup/rollup-linux-arm64-gnu": "4.18.0", - "@rollup/rollup-linux-arm64-musl": "4.18.0", - "@rollup/rollup-linux-powerpc64le-gnu": "4.18.0", - "@rollup/rollup-linux-riscv64-gnu": "4.18.0", - "@rollup/rollup-linux-s390x-gnu": "4.18.0", - "@rollup/rollup-linux-x64-gnu": "4.18.0", - "@rollup/rollup-linux-x64-musl": "4.18.0", - "@rollup/rollup-win32-arm64-msvc": "4.18.0", - "@rollup/rollup-win32-ia32-msvc": "4.18.0", - "@rollup/rollup-win32-x64-msvc": "4.18.0", + "@rollup/rollup-android-arm-eabi": "4.18.1", + "@rollup/rollup-android-arm64": "4.18.1", + "@rollup/rollup-darwin-arm64": "4.18.1", + "@rollup/rollup-darwin-x64": "4.18.1", + "@rollup/rollup-linux-arm-gnueabihf": "4.18.1", + "@rollup/rollup-linux-arm-musleabihf": "4.18.1", + "@rollup/rollup-linux-arm64-gnu": "4.18.1", + "@rollup/rollup-linux-arm64-musl": "4.18.1", + "@rollup/rollup-linux-powerpc64le-gnu": "4.18.1", + "@rollup/rollup-linux-riscv64-gnu": "4.18.1", + "@rollup/rollup-linux-s390x-gnu": "4.18.1", + "@rollup/rollup-linux-x64-gnu": "4.18.1", + "@rollup/rollup-linux-x64-musl": "4.18.1", + "@rollup/rollup-win32-arm64-msvc": "4.18.1", + "@rollup/rollup-win32-ia32-msvc": "4.18.1", + "@rollup/rollup-win32-x64-msvc": "4.18.1", "fsevents": "~2.3.2" } }, @@ -23566,9 +23560,9 @@ "dev": true }, "node_modules/sass": { - "version": "1.77.6", - "resolved": "https://registry.npmjs.org/sass/-/sass-1.77.6.tgz", - "integrity": "sha512-ByXE1oLD79GVq9Ht1PeHWCPMPB8XHpBuz1r85oByKHjZY6qV6rWnQovQzXJXuQ/XyE1Oj3iPk3lo28uzaRA2/Q==", + "version": "1.77.7", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.77.7.tgz", + "integrity": "sha512-9ywH75cO+rLjbrZ6en3Gp8qAMwPGBapFtlsMJoDTkcMU/bSe5a6cjKVUn5Jr4Gzg5GbP3HE8cm+02pLCgcoMow==", "devOptional": true, "dependencies": { "chokidar": ">=3.0.0 <4.0.0", @@ -24631,9 +24625,9 @@ } }, "node_modules/sucrase/node_modules/glob": { - "version": "10.4.2", - "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.2.tgz", - "integrity": "sha512-GwMlUF6PkPo3Gk21UxkCohOv0PLcIXVtKyLlpEI28R/cO/4eNOdmLk3CMW1wROV/WR/EsZOWAfBbBOqYvs88/w==", + "version": "10.4.5", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz", + "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==", "dev": true, "dependencies": { "foreground-child": "^3.1.0", @@ -24646,23 +24640,20 @@ "bin": { "glob": "dist/esm/bin.mjs" }, - "engines": { - "node": ">=16 || 14 >=14.18" - }, "funding": { "url": "https://github.com/sponsors/isaacs" } }, "node_modules/sucrase/node_modules/jackspeak": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.0.tgz", - "integrity": "sha512-JVYhQnN59LVPFCEcVa2C3CrEKYacvjRfqIQl+h8oi91aLYQVWRYbxjPcv1bUiUy/kLmQaANrYfNMCO3kuEDHfw==", + "version": "3.4.2", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.2.tgz", + "integrity": "sha512-qH3nOSj8q/8+Eg8LUPOq3C+6HWkpUioIjDsq1+D4zY91oZvpPttw8GwtF1nReRYKXl+1AORyFqtm2f5Q1SB6/Q==", "dev": true, "dependencies": { "@isaacs/cliui": "^8.0.2" }, "engines": { - "node": ">=14" + "node": "14 >=14.21 || 16 >=16.20 || >=18" }, "funding": { "url": "https://github.com/sponsors/isaacs" @@ -27835,9 +27826,8 @@ }, "packages/lib/node_modules/@types/styled-components": { "version": "5.1.34", - "resolved": "https://registry.npmjs.org/@types/styled-components/-/styled-components-5.1.34.tgz", - "integrity": "sha512-mmiVvwpYklFIv9E8qfxuPyIt/OuyIrn6gMOAMOFUO3WJfSrSE+sGUoa4PiZj77Ut7bKZpaa6o1fBKS/4TOEvnA==", "dev": true, + "license": "MIT", "dependencies": { "@types/hoist-non-react-statics": "*", "@types/react": "*", diff --git a/package.json b/package.json index 97f1104d7..1a2068ece 100644 --- a/package.json +++ b/package.json @@ -12,7 +12,8 @@ "storybook:accessibility": "turbo storybook:accessibility", "storybook:accessibility:ci": "turbo storybook:accessibility:ci", "test": "turbo test", - "test:accessibility": "turbo test:accessibility" + "test:accessibility": "turbo test:accessibility", + "test:watch": "turbo test:watch" }, "devDependencies": { "prettier": "^3.2.5", diff --git a/packages/cloudscape-themed/src/index.ts b/packages/cloudscape-themed/src/index.ts index bd51d92a0..fc4669d51 100644 --- a/packages/cloudscape-themed/src/index.ts +++ b/packages/cloudscape-themed/src/index.ts @@ -1,5 +1,5 @@ -import { join } from 'path'; -import { buildThemedComponents } from '@cloudscape-design/components-themeable/theming'; +import { join } from "path"; +import { buildThemedComponents } from "@cloudscape-design/components-themeable/theming"; const CoreColorTokens = { color_grey_700: "#666666", @@ -53,7 +53,7 @@ const theme = { buildThemedComponents({ theme, - outputDir: join(__dirname, './themed'), + outputDir: join(__dirname, "./themed"), }); -console.log('✅ Cloudscape components themed'); \ No newline at end of file +console.log("✅ Cloudscape components themed"); diff --git a/packages/lib/package.json b/packages/lib/package.json index ad9c521f9..e6cc2e4ca 100644 --- a/packages/lib/package.json +++ b/packages/lib/package.json @@ -1,6 +1,10 @@ { "name": "@dxc-technology/halstack-react", "version": "0.0.0", + "repository": { + "type": "git", + "url": "https://github.com/dxc-technology/halstack-react" + }, "main": "./dist/index.js", "module": "./dist/index.mjs", "types": "./dist/index.d.ts", diff --git a/packages/lib/src/badge/Badge.tsx b/packages/lib/src/badge/Badge.tsx index 62d50ad17..937c421ab 100644 --- a/packages/lib/src/badge/Badge.tsx +++ b/packages/lib/src/badge/Badge.tsx @@ -3,6 +3,7 @@ import BadgePropsType from "./types"; import DxcFlex from "../flex/Flex"; import CoreTokens from "../common/coreTokens"; import DxcIcon from "../icon/Icon"; +import DxcTooltip from "../tooltip/Tooltip"; const contextualColorMap = { grey: { @@ -92,23 +93,24 @@ const DxcBadge = ({ size = "medium", }: BadgePropsType): JSX.Element => { return ( - - {(mode === "contextual" && ( - - {icon && ( - {typeof icon === "string" ? : icon} - )} - - )) || + + + {(mode === "contextual" && ( + + {icon && ( + {typeof icon === "string" ? : icon} + )} + + )) || + ); }; diff --git a/packages/lib/src/bar-chart/BarChart.stories.tsx b/packages/lib/src/bar-chart/BarChart.stories.tsx index 8b471c148..73bd63d66 100644 --- a/packages/lib/src/bar-chart/BarChart.stories.tsx +++ b/packages/lib/src/bar-chart/BarChart.stories.tsx @@ -276,5 +276,5 @@ const BarChart = () => ( export const Chromatic = BarChart.bind({}); Chromatic.play = async ({ canvasElement }) => { const canvas = within(canvasElement); - await userEvent.click(canvas.getAllByTitle("Clear selection")[1]); + await userEvent.click(canvas.getAllByRole("button")[9]); }; diff --git a/packages/lib/src/button/Button.test.tsx b/packages/lib/src/button/Button.test.tsx index d77e87aa7..60de5cbb5 100644 --- a/packages/lib/src/button/Button.test.tsx +++ b/packages/lib/src/button/Button.test.tsx @@ -21,7 +21,6 @@ describe("Button component tests", () => { const button = getByRole("button"); expect(button.getAttribute("aria-label")).toBe("Go home"); - expect(button.getAttribute("title")).toBe("Go home"); expect(button.getAttribute("tabindex")).toBe("1"); }); }); diff --git a/packages/lib/src/button/Button.tsx b/packages/lib/src/button/Button.tsx index fffde90e4..967434ef4 100644 --- a/packages/lib/src/button/Button.tsx +++ b/packages/lib/src/button/Button.tsx @@ -4,6 +4,7 @@ import { getMargin } from "../common/utils"; import useTheme from "../useTheme"; import ButtonPropsType from "./types"; import DxcIcon from "../icon/Icon"; +import DxcTooltip from "../tooltip/Tooltip"; const DxcButton = ({ label = "", @@ -22,25 +23,26 @@ const DxcButton = ({ return ( - + + + ); }; diff --git a/packages/lib/src/common/variables.ts b/packages/lib/src/common/variables.ts index 5109b12e4..c9a52cda9 100644 --- a/packages/lib/src/common/variables.ts +++ b/packages/lib/src/common/variables.ts @@ -1357,7 +1357,7 @@ export const defaultTranslatedComponentLabels = { logoAlternativeText: "Logo", }, applicationLayout: { - visibilityToggleTitle: "Toggle visibility sidenav", + visibilityToggleTitle: "Toggle sidenav visibility", }, alert: { infoTitleText: "information", diff --git a/packages/lib/src/date-input/DateInput.test.tsx b/packages/lib/src/date-input/DateInput.test.tsx index f7d60ebef..bf7fcdf51 100644 --- a/packages/lib/src/date-input/DateInput.test.tsx +++ b/packages/lib/src/date-input/DateInput.test.tsx @@ -156,7 +156,7 @@ describe("DateInput component tests", () => { }); test("Changing months using the arrows", async () => { - const { getByText, getByRole, getByTitle } = render( + const { getByText, getByRole, getAllByRole } = render( ); const calendarAction = getByRole("combobox"); @@ -164,11 +164,13 @@ describe("DateInput component tests", () => { let d = dayjs("10-10-2000", "DD-MM-YYYY", true); d = d.set("date", 10); expect(getByText(d.format("MMMM YYYY"))).toBeTruthy(); - const previousMonth = getByTitle("Previous month"); - await userEvent.click(previousMonth); + const previousMonthButton = getAllByRole("button")[0]; + expect(previousMonthButton.getAttribute("aria-label")).toBe("Previous month"); + await userEvent.click(previousMonthButton); expect(getByText(d.set("month", d.get("month") - 1).format("MMMM YYYY"))).toBeTruthy(); - const nextMonth = getByTitle("Next month"); - await userEvent.click(nextMonth); + const nextMonthButton = getAllByRole("button")[2]; + expect(nextMonthButton.getAttribute("aria-label")).toBe("Next month"); + await userEvent.click(nextMonthButton); expect(getByText(d.format("MMMM YYYY"))).toBeTruthy(); }); diff --git a/packages/lib/src/date-input/DatePicker.tsx b/packages/lib/src/date-input/DatePicker.tsx index a4621fe59..bc799140a 100644 --- a/packages/lib/src/date-input/DatePicker.tsx +++ b/packages/lib/src/date-input/DatePicker.tsx @@ -7,6 +7,7 @@ import Calendar from "./Calendar"; import YearPicker from "./YearPicker"; import useTranslatedLabels from "../useTranslatedLabels"; import DxcIcon from "../icon/Icon"; +import DxcTooltip from "../tooltip/Tooltip"; const today = dayjs(); @@ -33,13 +34,14 @@ const DatePicker = ({ date, onDateSelect, id }: DatePickerPropsType): JSX.Elemen return ( - handleMonthChange(innerDate.set("month", innerDate.get("month") - 1))} - > - - + + handleMonthChange(innerDate.set("month", innerDate.get("month") - 1))} + > + + + setContent((content) => (content === "yearPicker" ? "calendar" : "yearPicker"))} @@ -49,13 +51,14 @@ const DatePicker = ({ date, onDateSelect, id }: DatePickerPropsType): JSX.Elemen - handleMonthChange(innerDate.set("month", innerDate.get("month") + 1))} - > - - + + handleMonthChange(innerDate.set("month", innerDate.get("month") + 1))} + > + + + {content === "calendar" && ( {footerLogo} {mode === "default" && ( - + {socialLinks?.map((link, index) => ( - - - {typeof link.logo === "string" ? : link.logo} - - + + + + {typeof link.logo === "string" ? : link.logo} + + + ))} )} @@ -153,8 +156,6 @@ const LogoImg = styled.img<{ mode?: FooterPropsType["mode"] }>` `; const SocialAnchor = styled.a<{ index: number }>` - display: inline-flex; - margin-left: ${(props) => (props.index === 0 ? "0px" : props.theme.socialLinksGutter)}; border-radius: 4px; &:focus { diff --git a/packages/lib/src/header/Header.tsx b/packages/lib/src/header/Header.tsx index dff4c4ec8..d7be0086a 100644 --- a/packages/lib/src/header/Header.tsx +++ b/packages/lib/src/header/Header.tsx @@ -6,6 +6,7 @@ import DxcIcon from "../icon/Icon"; import useTheme from "../useTheme"; import useTranslatedLabels from "../useTranslatedLabels"; import HeaderPropsType from "./types"; +import DxcTooltip from "../tooltip/Tooltip"; import DxcFlex from "../flex/Flex"; const Dropdown = (props: ComponentProps) => ( @@ -118,14 +119,11 @@ const DxcHeader = ({ {headerResponsiveLogo} - - - + + + + + {headerContent} {sidenav && isResponsive && ( - - - {visibilityToggleLabel} - + + + + {visibilityToggleLabel} + + )} diff --git a/packages/lib/src/select/Select.test.tsx b/packages/lib/src/select/Select.test.tsx index e1bc5b96b..6f9ea2955 100644 --- a/packages/lib/src/select/Select.test.tsx +++ b/packages/lib/src/select/Select.test.tsx @@ -547,19 +547,18 @@ describe("Select component tests", () => { test("Non-Grouped Options: Searchable - While user types, a clear action is displayed for cleaning the search value", async () => { const onChange = jest.fn(); - const { container, getByRole, getAllByRole, queryByTitle } = render( + const { container, getByRole, getAllByRole, queryByRole } = render( ); const searchInput = container.querySelectorAll("input")[1]; await userEvent.type(searchInput, "Option 02"); expect(getAllByRole("option").length).toBe(1); - expect(queryByTitle("Clear search")).toBeTruthy(); - const clearAction = getByRole("button"); - expect(clearAction).toBeTruthy(); - await userEvent.click(clearAction); + const clearSearchButton = getByRole("button"); + expect(clearSearchButton.getAttribute("aria-label")).toBe("Clear search"); + await userEvent.click(clearSearchButton); expect(getByRole("listbox")).toBeTruthy(); expect(getAllByRole("option").length).toBe(20); - expect(queryByTitle("Clear search")).toBeFalsy(); + expect(queryByRole("button")).toBeFalsy(); }); test("Non-Grouped Options: Multiple selection - Displays a checkbox per option and enables the multi-selection", async () => { @@ -586,7 +585,7 @@ describe("Select component tests", () => { test("Non-Grouped Options: Multiple selection - Clear action and selection indicator", async () => { const onChange = jest.fn(); - const { getByText, queryByText, getByRole, getAllByRole, queryByRole, getByTitle, queryByTitle } = render( + const { getByText, queryByText, getByRole, getAllByRole, queryByRole } = render( ); const select = getByRole("combobox"); @@ -598,12 +597,14 @@ describe("Select component tests", () => { expect(queryByRole("listbox")).toBeTruthy(); expect(getByText("Option 06, Option 09, Option 14")).toBeTruthy(); expect(getByText("3", { exact: true })).toBeTruthy(); - await userEvent.click(getByTitle("Clear selection")); + const clearSelectionButton = getByRole("button"); + expect(clearSelectionButton.getAttribute("aria-label")).toBe("Clear selection"); + await userEvent.click(clearSelectionButton); expect(onChange).toHaveBeenCalledWith({ value: [], error: "This field is required. Please, enter a value." }); expect(queryByRole("listbox")).toBeTruthy(); expect(queryByText("Option 06, Option 09, Option 14")).toBeFalsy(); expect(queryByText("3")).toBeFalsy(); - expect(queryByTitle("Clear selection")).toBeFalsy(); + expect(queryByRole("button")).toBeFalsy(); }); test("Non-Grouped Options: Multiple selection - Optional option should not be added when the select is marked as multiple", async () => { @@ -892,7 +893,7 @@ describe("Select component tests", () => { test("Grouped Options: Multiple selection - Clear action and selection indicator", async () => { const onChange = jest.fn(); - const { getByText, queryByText, getByRole, getAllByRole, queryByRole, getByTitle, queryByTitle } = render( + const { getByText, queryByText, getByRole, getAllByRole, queryByRole } = render( ); const select = getByRole("combobox"); @@ -905,11 +906,13 @@ describe("Select component tests", () => { expect(queryByRole("list")).toBeTruthy(); expect(getByText("Blanco, Oviedo, Duero, Ebro")).toBeTruthy(); expect(getByText("4", { exact: true })).toBeTruthy(); - await userEvent.click(getByTitle("Clear selection")); + const clearSelectionButton = getByRole("button"); + expect(clearSelectionButton.getAttribute("aria-label")).toBe("Clear selection"); + await userEvent.click(clearSelectionButton); expect(queryByRole("list")).toBeTruthy(); expect(queryByText("Blanco, Oviedo, Duero, Ebro")).toBeFalsy(); expect(queryByText("4")).toBeFalsy(); - expect(queryByTitle("Clear selection")).toBeFalsy(); + expect(queryByRole("button")).toBeFalsy(); }); test("Grouped Options: Multiple selection - Optional option should not be added when the select is marked as multiple", async () => { @@ -978,7 +981,7 @@ describe("Select component tests", () => { test("Multiple selection and optional - Clear action cleans every selected option but does not display an error", async () => { const onChange = jest.fn(); - const { getByRole, getAllByRole, getByTitle } = render( + const { getByRole, getAllByRole } = render( ); const select = getByRole("combobox"); @@ -987,7 +990,9 @@ describe("Select component tests", () => { await userEvent.click(getAllByRole("option")[8]); await userEvent.click(getAllByRole("option")[13]); expect(onChange).toHaveBeenCalledWith({ value: ["6", "9", "14"] }); - await userEvent.click(getByTitle("Clear selection")); + const clearSelectionButton = getByRole("button"); + expect(clearSelectionButton.getAttribute("aria-label")).toBe("Clear selection"); + await userEvent.click(clearSelectionButton); expect(onChange).toHaveBeenCalledWith({ value: [] }); }); }); diff --git a/packages/lib/src/select/Select.tsx b/packages/lib/src/select/Select.tsx index 4629eef71..46db5d482 100644 --- a/packages/lib/src/select/Select.tsx +++ b/packages/lib/src/select/Select.tsx @@ -4,6 +4,7 @@ import styled, { ThemeProvider } from "styled-components"; import { getMargin } from "../common/utils"; import { spaces } from "../common/variables"; import DxcIcon from "../icon/Icon"; +import DxcTooltip from "../tooltip/Tooltip"; import useTheme from "../useTheme"; import useTranslatedLabels from "../useTranslatedLabels"; import useWidth from "../utils/useWidth"; @@ -278,19 +279,20 @@ const DxcSelect = forwardRef( {multiple && Array.isArray(selectedOption) && selectedOption.length > 0 && ( {selectedOption.length} - { - // Avoid input to lose focus when pressed - event.preventDefault(); - }} - onClick={handleClearOptionsActionOnClick} - tabIndex={-1} - title={translatedLabels.select.actionClearSelectionTitle} - aria-label={translatedLabels.select.actionClearSelectionTitle} - > - - + + { + // Avoid input to lose focus when pressed + event.preventDefault(); + }} + onClick={handleClearOptionsActionOnClick} + tabIndex={-1} + aria-label={translatedLabels.select.actionClearSelectionTitle} + > + + + )} @@ -341,18 +343,19 @@ const DxcSelect = forwardRef( )} {searchable && searchValue.length > 0 && ( - { - // Avoid input to lose focus - event.preventDefault(); - }} - onClick={handleClearSearchActionOnClick} - tabIndex={-1} - title={translatedLabels.select.actionClearSearchTitle} - aria-label={translatedLabels.select.actionClearSearchTitle} - > - - + + { + // Avoid input to lose focus + event.preventDefault(); + }} + onClick={handleClearSearchActionOnClick} + tabIndex={-1} + aria-label={translatedLabels.select.actionClearSearchTitle} + > + + + )} @@ -520,6 +523,7 @@ const ClearOptionsAction = styled.button` color: ${(props) => props.disabled ? props.theme.disabledColor : props.theme.enabledSelectionIndicatorActionIconColor}; font-size: 16px; + width: 100%; :focus-visible { outline: none;