@hitachivantara/uikit-react-core 5.18.4 → 5.19.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (80) hide show
  1. package/dist/cjs/components/BreadCrumb/BreadCrumb.cjs +1 -3
  2. package/dist/cjs/components/BreadCrumb/BreadCrumb.cjs.map +1 -1
  3. package/dist/cjs/components/BreadCrumb/Page/Page.cjs +1 -4
  4. package/dist/cjs/components/BreadCrumb/Page/Page.cjs.map +1 -1
  5. package/dist/cjs/components/Button/Button.cjs +32 -56
  6. package/dist/cjs/components/Button/Button.cjs.map +1 -1
  7. package/dist/cjs/components/Button/Button.styles.cjs +122 -240
  8. package/dist/cjs/components/Button/Button.styles.cjs.map +1 -1
  9. package/dist/cjs/components/Carousel/Carousel.cjs +95 -110
  10. package/dist/cjs/components/Carousel/Carousel.cjs.map +1 -1
  11. package/dist/cjs/components/Carousel/Carousel.styles.cjs +4 -8
  12. package/dist/cjs/components/Carousel/Carousel.styles.cjs.map +1 -1
  13. package/dist/cjs/components/Carousel/CarouselControls.cjs +62 -0
  14. package/dist/cjs/components/Carousel/CarouselControls.cjs.map +1 -0
  15. package/dist/cjs/components/Carousel/CarouselSlide/CarouselSlide.cjs +2 -1
  16. package/dist/cjs/components/Carousel/CarouselSlide/CarouselSlide.cjs.map +1 -1
  17. package/dist/cjs/components/Carousel/CarouselThumbnail.cjs +30 -0
  18. package/dist/cjs/components/Carousel/CarouselThumbnail.cjs.map +1 -0
  19. package/dist/cjs/components/Carousel/CarouselThumbnails.cjs +44 -0
  20. package/dist/cjs/components/Carousel/CarouselThumbnails.cjs.map +1 -0
  21. package/dist/cjs/components/Drawer/Drawer.cjs +81 -0
  22. package/dist/cjs/components/Drawer/Drawer.cjs.map +1 -0
  23. package/dist/cjs/components/Drawer/Drawer.styles.cjs +27 -0
  24. package/dist/cjs/components/Drawer/Drawer.styles.cjs.map +1 -0
  25. package/dist/cjs/components/Header/Actions/Actions.styles.cjs +3 -2
  26. package/dist/cjs/components/Header/Actions/Actions.styles.cjs.map +1 -1
  27. package/dist/cjs/components/Header/Navigation/MenuItem/MenuItem.cjs +6 -1
  28. package/dist/cjs/components/Header/Navigation/MenuItem/MenuItem.cjs.map +1 -1
  29. package/dist/cjs/components/InlineEditor/InlineEditor.cjs +10 -9
  30. package/dist/cjs/components/InlineEditor/InlineEditor.cjs.map +1 -1
  31. package/dist/cjs/components/MultiButton/MultiButton.styles.cjs +3 -2
  32. package/dist/cjs/components/MultiButton/MultiButton.styles.cjs.map +1 -1
  33. package/dist/cjs/components/Table/TableRow/TableRow.cjs +1 -1
  34. package/dist/cjs/index.cjs +6 -2
  35. package/dist/cjs/index.cjs.map +1 -1
  36. package/dist/cjs/utils/classes.cjs +2 -2
  37. package/dist/cjs/utils/classes.cjs.map +1 -1
  38. package/dist/esm/components/BreadCrumb/BreadCrumb.js +1 -2
  39. package/dist/esm/components/BreadCrumb/BreadCrumb.js.map +1 -1
  40. package/dist/esm/components/BreadCrumb/Page/Page.js +1 -2
  41. package/dist/esm/components/BreadCrumb/Page/Page.js.map +1 -1
  42. package/dist/esm/components/Button/Button.js +37 -60
  43. package/dist/esm/components/Button/Button.js.map +1 -1
  44. package/dist/esm/components/Button/Button.styles.js +122 -238
  45. package/dist/esm/components/Button/Button.styles.js.map +1 -1
  46. package/dist/esm/components/Carousel/Carousel.js +96 -111
  47. package/dist/esm/components/Carousel/Carousel.js.map +1 -1
  48. package/dist/esm/components/Carousel/Carousel.styles.js +4 -8
  49. package/dist/esm/components/Carousel/Carousel.styles.js.map +1 -1
  50. package/dist/esm/components/Carousel/CarouselControls.js +62 -0
  51. package/dist/esm/components/Carousel/CarouselControls.js.map +1 -0
  52. package/dist/esm/components/Carousel/CarouselSlide/CarouselSlide.js +2 -1
  53. package/dist/esm/components/Carousel/CarouselSlide/CarouselSlide.js.map +1 -1
  54. package/dist/esm/components/Carousel/CarouselThumbnail.js +30 -0
  55. package/dist/esm/components/Carousel/CarouselThumbnail.js.map +1 -0
  56. package/dist/esm/components/Carousel/CarouselThumbnails.js +44 -0
  57. package/dist/esm/components/Carousel/CarouselThumbnails.js.map +1 -0
  58. package/dist/esm/components/Drawer/Drawer.js +82 -0
  59. package/dist/esm/components/Drawer/Drawer.js.map +1 -0
  60. package/dist/esm/components/Drawer/Drawer.styles.js +27 -0
  61. package/dist/esm/components/Drawer/Drawer.styles.js.map +1 -0
  62. package/dist/esm/components/Header/Actions/Actions.styles.js +3 -2
  63. package/dist/esm/components/Header/Actions/Actions.styles.js.map +1 -1
  64. package/dist/esm/components/Header/Navigation/MenuItem/MenuItem.js +6 -1
  65. package/dist/esm/components/Header/Navigation/MenuItem/MenuItem.js.map +1 -1
  66. package/dist/esm/components/InlineEditor/InlineEditor.js +11 -10
  67. package/dist/esm/components/InlineEditor/InlineEditor.js.map +1 -1
  68. package/dist/esm/components/MultiButton/MultiButton.styles.js +3 -2
  69. package/dist/esm/components/MultiButton/MultiButton.styles.js.map +1 -1
  70. package/dist/esm/components/Table/TableRow/TableRow.js +1 -1
  71. package/dist/esm/index.js +232 -228
  72. package/dist/esm/index.js.map +1 -1
  73. package/dist/esm/utils/classes.js +2 -2
  74. package/dist/esm/utils/classes.js.map +1 -1
  75. package/dist/types/index.d.ts +222 -139
  76. package/package.json +5 -5
  77. package/dist/cjs/components/Button/buttonClasses.cjs +0 -8
  78. package/dist/cjs/components/Button/buttonClasses.cjs.map +0 -1
  79. package/dist/esm/components/Button/buttonClasses.js +0 -8
  80. package/dist/esm/components/Button/buttonClasses.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"BreadCrumb.js","sources":["../../../../src/components/BreadCrumb/BreadCrumb.tsx"],"sourcesContent":["import { clsx } from \"clsx\";\nimport isNil from \"lodash/isNil\";\nimport startCase from \"lodash/startCase\";\nimport { isValidElement, MouseEvent } from \"react\";\nimport { HvBaseProps } from \"@core/types/generic\";\nimport { HvDropDownMenuProps } from \"@core/components\";\nimport breadCrumbClasses, { HvBreadCrumbClasses } from \"./breadCrumbClasses\";\nimport { HvPathElement } from \"./PathElement\";\nimport { HvPage } from \"./Page\";\nimport {\n StyledOrderedList,\n StyledRoot,\n StyledTypography,\n} from \"./BreadCrumb.styles\";\nimport { pathWithSubMenu, removeExtension } from \"./utils\";\n\nexport interface HvBreadCrumbPathElement extends Record<string, any> {\n label: string;\n path: string;\n}\n\nexport interface HvBreadCrumbProps\n extends HvBaseProps<HTMLDivElement, \"onClick\"> {\n /** List of breadcrumb. */\n listRoute?: HvBreadCrumbPathElement[];\n /** URL to build the breadcrumb. */\n url?: string;\n /** Number of pages visible. */\n maxVisible?: number;\n /** The component used for the link node. Either a string to use a DOM element or a component. */\n component?: React.ElementType;\n /** Function passed to the component. If defined the component prop is used as the link node. */\n onClick?: (event: MouseEvent<HTMLElement>, data: any) => void;\n /** Props passed down to the DropDownMenu sub-menu component. */\n dropDownMenuProps?: Partial<HvDropDownMenuProps>;\n /** A Jss Object used to override or extend the styles applied to the component. */\n classes?: HvBreadCrumbClasses;\n}\n\n/**\n * A breadcrumb is a graphical control element frequently used as a navigational aid.\n */\nexport const HvBreadCrumb = ({\n classes,\n className,\n id,\n listRoute = [],\n maxVisible,\n url,\n onClick,\n component,\n dropDownMenuProps,\n ...others\n}: HvBreadCrumbProps) => {\n const maxVisibleElem = maxVisible && maxVisible < 2 ? 2 : maxVisible;\n let listPath = listRoute.slice();\n\n // build the listPath object list\n if (!isNil(url)) {\n listPath = [];\n\n // get the domain\n const baseUrl = url.match(/^.*\\/\\/[^/]+/);\n\n // get url without domain\n const urlWithoutDomain = url.replace(/^.*\\/\\/[^/]+/, \"\");\n\n const pathNames = urlWithoutDomain.split(\"/\").filter((x) => x);\n\n pathNames.map((elem, index) =>\n listPath.push({\n label: decodeURI(elem),\n path: `${baseUrl}/${pathNames.slice(0, index + 1).join(\"/\")}`,\n })\n );\n }\n\n const breadcrumbPath =\n maxVisibleElem && listPath.length > maxVisibleElem\n ? pathWithSubMenu(\n id,\n onClick,\n listPath,\n maxVisibleElem,\n dropDownMenuProps\n )\n : listPath;\n\n return (\n <StyledRoot\n id={id}\n className={clsx(breadCrumbClasses.root, classes?.root, className)}\n {...others}\n >\n <StyledOrderedList\n className={clsx(breadCrumbClasses.orderedList, classes?.orderedList)}\n >\n {listPath.map((elem, index) => {\n const key = `key_${index}`;\n const isLast = index === breadcrumbPath.length - 1;\n\n return (\n <HvPathElement\n classes={{\n centerContainer: clsx(\n breadCrumbClasses.centerContainer,\n classes?.centerContainer\n ),\n separatorContainer: clsx(\n breadCrumbClasses.separatorContainer,\n classes?.separatorContainer\n ),\n }}\n key={key}\n last={isLast}\n >\n {(isValidElement(elem) && elem) ||\n (isLast && (\n <StyledTypography\n className={clsx(\n breadCrumbClasses.currentPage,\n classes?.currentPage\n )}\n variant=\"body\"\n >\n {startCase(removeExtension(elem.label))}\n </StyledTypography>\n )) || (\n <HvPage\n elem={elem}\n classes={{\n a: clsx(breadCrumbClasses.a, classes?.a),\n link: clsx(breadCrumbClasses.link, classes?.link),\n }}\n component={component}\n onClick={onClick}\n />\n )}\n </HvPathElement>\n );\n })}\n </StyledOrderedList>\n </StyledRoot>\n );\n};\n"],"names":["HvBreadCrumb","classes","className","id","listRoute","maxVisible","url","onClick","component","dropDownMenuProps","others","maxVisibleElem","listPath","slice","isNil","baseUrl","match","urlWithoutDomain","replace","pathNames","split","filter","x","map","elem","index","push","label","decodeURI","path","join","breadcrumbPath","length","pathWithSubMenu","StyledRoot","clsx","breadCrumbClasses","root","children","StyledOrderedList","orderedList","key","isLast","HvPathElement","centerContainer","separatorContainer","last","isValidElement","StyledTypography","currentPage","variant","startCase","removeExtension","_jsx","HvPage","a","link"],"mappings":";;;;;;;;;;AA0CO,MAAMA,eAAeA,CAAC;AAAA,EAC3BC;AAAAA,EACAC;AAAAA,EACAC;AAAAA,EACAC,YAAY,CAAE;AAAA,EACdC;AAAAA,EACAC;AAAAA,EACAC;AAAAA,EACAC;AAAAA,EACAC;AAAAA,EACA,GAAGC;AACc,MAAM;AACvB,QAAMC,iBAAiBN,cAAcA,aAAa,IAAI,IAAIA;AACtDO,MAAAA,WAAWR,UAAUS;AAGrB,MAAA,CAACC,MAAMR,GAAG,GAAG;AACfM,eAAW,CAAA;AAGLG,UAAAA,UAAUT,IAAIU,MAAM,cAAc;AAGxC,UAAMC,mBAAmBX,IAAIY,QAAQ,gBAAgB,EAAE;AAEvD,UAAMC,YAAYF,iBAAiBG,MAAM,GAAG,EAAEC,OAAQC,OAAMA,CAAC;AAE7DH,cAAUI,IAAI,CAACC,MAAMC,UACnBb,SAASc,KAAK;AAAA,MACZC,OAAOC,UAAUJ,IAAI;AAAA,MACrBK,MAAO,GAAEd,WAAWI,UAAUN,MAAM,GAAGY,QAAQ,CAAC,EAAEK,KAAK,GAAG;AAAA,IAC3D,CAAA,CACH;AAAA,EACF;AAEMC,QAAAA,iBACJpB,kBAAkBC,SAASoB,SAASrB,iBAChCsB,gBACE9B,IACAI,SACAK,UACAD,gBACAF,iBACF,IACAG;AAEN,6BACGsB,YAAU;AAAA,IACT/B;AAAAA,IACAD,WAAWiC,KAAKC,kBAAkBC,MAAMpC,mCAASoC,MAAMnC,SAAS;AAAA,IAAE,GAC9DQ;AAAAA,IAAM4B,8BAETC,mBAAiB;AAAA,MAChBrC,WAAWiC,KAAKC,kBAAkBI,aAAavC,mCAASuC,WAAW;AAAA,MAAEF,UAEpE1B,SAASW,IAAI,CAACC,MAAMC,UAAU;AAC7B,cAAMgB,MAAO,OAAMhB;AACbiB,cAAAA,SAASjB,UAAUM,eAAeC,SAAS;AAEjD,mCACGW,eAAa;AAAA,UACZ1C,SAAS;AAAA,YACP2C,iBAAiBT,KACfC,kBAAkBQ,iBAClB3C,mCAAS2C,eACX;AAAA,YACAC,oBAAoBV,KAClBC,kBAAkBS,oBAClB5C,mCAAS4C,kBACX;AAAA,UACF;AAAA,UAEAC,MAAMJ;AAAAA,UAAOJ,UAEXS,eAAevB,IAAI,KAAKA,QACvBkB,8BACEM,kBAAgB;AAAA,YACf9C,WAAWiC,KACTC,kBAAkBa,aAClBhD,mCAASgD,WACX;AAAA,YACAC,SAAQ;AAAA,YAAMZ,UAEba,UAAUC,gBAAgB5B,KAAKG,KAAK,CAAC;AAAA,UAAA,CACtB,KAElB0B,oBAACC,QAAM;AAAA,YACL9B;AAAAA,YACAvB,SAAS;AAAA,cACPsD,GAAGpB,KAAKC,kBAAkBmB,GAAGtD,mCAASsD,CAAC;AAAA,cACvCC,MAAMrB,KAAKC,kBAAkBoB,MAAMvD,mCAASuD,IAAI;AAAA,YAClD;AAAA,YACAhD;AAAAA,YACAD;AAAAA,UAAAA,CACD;AAAA,WAvBAkC,GAyBQ;AAAA,MAAA,CAElB;AAAA,IAAA,CACgB;AAAA,EAAA,CACT;AAEhB;"}
1
+ {"version":3,"file":"BreadCrumb.js","sources":["../../../../src/components/BreadCrumb/BreadCrumb.tsx"],"sourcesContent":["import { clsx } from \"clsx\";\nimport isNil from \"lodash/isNil\";\nimport { isValidElement, MouseEvent } from \"react\";\nimport { HvBaseProps } from \"@core/types/generic\";\nimport { HvDropDownMenuProps } from \"@core/components\";\nimport breadCrumbClasses, { HvBreadCrumbClasses } from \"./breadCrumbClasses\";\nimport { HvPathElement } from \"./PathElement\";\nimport { HvPage } from \"./Page\";\nimport {\n StyledOrderedList,\n StyledRoot,\n StyledTypography,\n} from \"./BreadCrumb.styles\";\nimport { pathWithSubMenu, removeExtension } from \"./utils\";\n\nexport interface HvBreadCrumbPathElement extends Record<string, any> {\n label: string;\n path: string;\n}\n\nexport interface HvBreadCrumbProps\n extends HvBaseProps<HTMLDivElement, \"onClick\"> {\n /** List of breadcrumb. */\n listRoute?: HvBreadCrumbPathElement[];\n /** URL to build the breadcrumb. */\n url?: string;\n /** Number of pages visible. */\n maxVisible?: number;\n /** The component used for the link node. Either a string to use a DOM element or a component. */\n component?: React.ElementType;\n /** Function passed to the component. If defined the component prop is used as the link node. */\n onClick?: (event: MouseEvent<HTMLElement>, data: any) => void;\n /** Props passed down to the DropDownMenu sub-menu component. */\n dropDownMenuProps?: Partial<HvDropDownMenuProps>;\n /** A Jss Object used to override or extend the styles applied to the component. */\n classes?: HvBreadCrumbClasses;\n}\n\n/**\n * A breadcrumb is a graphical control element frequently used as a navigational aid.\n */\nexport const HvBreadCrumb = ({\n classes,\n className,\n id,\n listRoute = [],\n maxVisible,\n url,\n onClick,\n component,\n dropDownMenuProps,\n ...others\n}: HvBreadCrumbProps) => {\n const maxVisibleElem = maxVisible && maxVisible < 2 ? 2 : maxVisible;\n let listPath = listRoute.slice();\n\n // build the listPath object list\n if (!isNil(url)) {\n listPath = [];\n\n // get the domain\n const baseUrl = url.match(/^.*\\/\\/[^/]+/);\n\n // get url without domain\n const urlWithoutDomain = url.replace(/^.*\\/\\/[^/]+/, \"\");\n\n const pathNames = urlWithoutDomain.split(\"/\").filter((x) => x);\n\n pathNames.map((elem, index) =>\n listPath.push({\n label: decodeURI(elem),\n path: `${baseUrl}/${pathNames.slice(0, index + 1).join(\"/\")}`,\n })\n );\n }\n\n const breadcrumbPath =\n maxVisibleElem && listPath.length > maxVisibleElem\n ? pathWithSubMenu(\n id,\n onClick,\n listPath,\n maxVisibleElem,\n dropDownMenuProps\n )\n : listPath;\n\n return (\n <StyledRoot\n id={id}\n className={clsx(breadCrumbClasses.root, classes?.root, className)}\n {...others}\n >\n <StyledOrderedList\n className={clsx(breadCrumbClasses.orderedList, classes?.orderedList)}\n >\n {listPath.map((elem, index) => {\n const key = `key_${index}`;\n const isLast = index === breadcrumbPath.length - 1;\n\n return (\n <HvPathElement\n classes={{\n centerContainer: clsx(\n breadCrumbClasses.centerContainer,\n classes?.centerContainer\n ),\n separatorContainer: clsx(\n breadCrumbClasses.separatorContainer,\n classes?.separatorContainer\n ),\n }}\n key={key}\n last={isLast}\n >\n {(isValidElement(elem) && elem) ||\n (isLast && (\n <StyledTypography\n className={clsx(\n breadCrumbClasses.currentPage,\n classes?.currentPage\n )}\n variant=\"body\"\n >\n {removeExtension(elem.label)}\n </StyledTypography>\n )) || (\n <HvPage\n elem={elem}\n classes={{\n a: clsx(breadCrumbClasses.a, classes?.a),\n link: clsx(breadCrumbClasses.link, classes?.link),\n }}\n component={component}\n onClick={onClick}\n />\n )}\n </HvPathElement>\n );\n })}\n </StyledOrderedList>\n </StyledRoot>\n );\n};\n"],"names":["HvBreadCrumb","classes","className","id","listRoute","maxVisible","url","onClick","component","dropDownMenuProps","others","maxVisibleElem","listPath","slice","isNil","baseUrl","match","urlWithoutDomain","replace","pathNames","split","filter","x","map","elem","index","push","label","decodeURI","path","join","breadcrumbPath","length","pathWithSubMenu","StyledRoot","clsx","breadCrumbClasses","root","children","StyledOrderedList","orderedList","key","isLast","HvPathElement","centerContainer","separatorContainer","last","isValidElement","StyledTypography","currentPage","variant","removeExtension","_jsx","HvPage","a","link"],"mappings":";;;;;;;;;AAyCO,MAAMA,eAAeA,CAAC;AAAA,EAC3BC;AAAAA,EACAC;AAAAA,EACAC;AAAAA,EACAC,YAAY,CAAE;AAAA,EACdC;AAAAA,EACAC;AAAAA,EACAC;AAAAA,EACAC;AAAAA,EACAC;AAAAA,EACA,GAAGC;AACc,MAAM;AACvB,QAAMC,iBAAiBN,cAAcA,aAAa,IAAI,IAAIA;AACtDO,MAAAA,WAAWR,UAAUS;AAGrB,MAAA,CAACC,MAAMR,GAAG,GAAG;AACfM,eAAW,CAAA;AAGLG,UAAAA,UAAUT,IAAIU,MAAM,cAAc;AAGxC,UAAMC,mBAAmBX,IAAIY,QAAQ,gBAAgB,EAAE;AAEvD,UAAMC,YAAYF,iBAAiBG,MAAM,GAAG,EAAEC,OAAQC,OAAMA,CAAC;AAE7DH,cAAUI,IAAI,CAACC,MAAMC,UACnBb,SAASc,KAAK;AAAA,MACZC,OAAOC,UAAUJ,IAAI;AAAA,MACrBK,MAAO,GAAEd,WAAWI,UAAUN,MAAM,GAAGY,QAAQ,CAAC,EAAEK,KAAK,GAAG;AAAA,IAC3D,CAAA,CACH;AAAA,EACF;AAEMC,QAAAA,iBACJpB,kBAAkBC,SAASoB,SAASrB,iBAChCsB,gBACE9B,IACAI,SACAK,UACAD,gBACAF,iBACF,IACAG;AAEN,6BACGsB,YAAU;AAAA,IACT/B;AAAAA,IACAD,WAAWiC,KAAKC,kBAAkBC,MAAMpC,mCAASoC,MAAMnC,SAAS;AAAA,IAAE,GAC9DQ;AAAAA,IAAM4B,8BAETC,mBAAiB;AAAA,MAChBrC,WAAWiC,KAAKC,kBAAkBI,aAAavC,mCAASuC,WAAW;AAAA,MAAEF,UAEpE1B,SAASW,IAAI,CAACC,MAAMC,UAAU;AAC7B,cAAMgB,MAAO,OAAMhB;AACbiB,cAAAA,SAASjB,UAAUM,eAAeC,SAAS;AAEjD,mCACGW,eAAa;AAAA,UACZ1C,SAAS;AAAA,YACP2C,iBAAiBT,KACfC,kBAAkBQ,iBAClB3C,mCAAS2C,eACX;AAAA,YACAC,oBAAoBV,KAClBC,kBAAkBS,oBAClB5C,mCAAS4C,kBACX;AAAA,UACF;AAAA,UAEAC,MAAMJ;AAAAA,UAAOJ,UAEXS,eAAevB,IAAI,KAAKA,QACvBkB,8BACEM,kBAAgB;AAAA,YACf9C,WAAWiC,KACTC,kBAAkBa,aAClBhD,mCAASgD,WACX;AAAA,YACAC,SAAQ;AAAA,YAAMZ,UAEba,gBAAgB3B,KAAKG,KAAK;AAAA,UAAA,CACX,KAElByB,oBAACC,QAAM;AAAA,YACL7B;AAAAA,YACAvB,SAAS;AAAA,cACPqD,GAAGnB,KAAKC,kBAAkBkB,GAAGrD,mCAASqD,CAAC;AAAA,cACvCC,MAAMpB,KAAKC,kBAAkBmB,MAAMtD,mCAASsD,IAAI;AAAA,YAClD;AAAA,YACA/C;AAAAA,YACAD;AAAAA,UAAAA,CACD;AAAA,WAvBAkC,GAyBQ;AAAA,MAAA,CAElB;AAAA,IAAA,CACgB;AAAA,EAAA,CACT;AAEhB;"}
@@ -1,4 +1,3 @@
1
- import startCase from "lodash/startCase";
2
1
  import { useClasses } from "./Page.styles.js";
3
2
  import { staticClasses } from "./Page.styles.js";
4
3
  import { jsx } from "@emotion/react/jsx-runtime";
@@ -32,7 +31,7 @@ const HvPage = ({
32
31
  className: cx(classes.link, classes.label, classes.a),
33
32
  ...others,
34
33
  children: /* @__PURE__ */ jsx(HvOverflowTooltip, {
35
- data: startCase(elem.label)
34
+ data: elem.label
36
35
  })
37
36
  });
38
37
  };
@@ -1 +1 @@
1
- {"version":3,"file":"Page.js","sources":["../../../../../src/components/BreadCrumb/Page/Page.tsx"],"sourcesContent":["import {\n HvBreadCrumbPathElement,\n HvOverflowTooltip,\n HvTypography,\n} from \"@core/components\";\nimport { ExtractNames } from \"@core/utils\";\nimport startCase from \"lodash/startCase\";\nimport { MouseEvent } from \"react\";\nimport { staticClasses, useClasses } from \"./Page.styles\";\n\nexport { staticClasses as pageClasses };\n\nexport type HvPageClasses = ExtractNames<typeof useClasses>;\n\nexport interface HvPageProps {\n component?: React.ElementType;\n onClick?: (event: MouseEvent<HTMLElement>, data: any) => void;\n elem: HvBreadCrumbPathElement;\n classes?: HvPageClasses;\n}\n\nexport const HvPage = ({\n component,\n onClick,\n elem,\n classes: classesProp,\n}: HvPageProps) => {\n const { classes, cx } = useClasses(classesProp);\n const { label, path, ...others } = elem;\n const handleClick = (event: MouseEvent<HTMLElement>) => {\n event.preventDefault();\n onClick?.(event, elem);\n };\n\n return (\n <HvTypography\n noWrap\n variant=\"label\"\n component={component || \"a\"}\n href={elem.path}\n onClick={onClick && handleClick}\n className={cx(classes.link, classes.label, classes.a)}\n {...others}\n >\n <HvOverflowTooltip data={startCase(elem.label)} />\n </HvTypography>\n );\n};\n"],"names":["HvPage","component","onClick","elem","classes","classesProp","cx","useClasses","label","path","others","handleClick","event","preventDefault","HvTypography","noWrap","variant","href","className","link","a","children","HvOverflowTooltip","data","startCase"],"mappings":";;;;;;AAqBO,MAAMA,SAASA,CAAC;AAAA,EACrBC;AAAAA,EACAC;AAAAA,EACAC;AAAAA,EACAC,SAASC;AACE,MAAM;AACX,QAAA;AAAA,IAAED;AAAAA,IAASE;AAAAA,EAAAA,IAAOC,WAAWF,WAAW;AACxC,QAAA;AAAA,IAAEG;AAAAA,IAAOC;AAAAA,IAAM,GAAGC;AAAAA,EAAWP,IAAAA;AAC7BQ,QAAAA,cAAcA,CAACC,UAAmC;AACtDA,UAAMC,eAAe;AACrBX,uCAAUU,OAAOT;AAAAA,EAAI;AAGvB,6BACGW,cAAY;AAAA,IACXC,QAAM;AAAA,IACNC,SAAQ;AAAA,IACRf,WAAWA,aAAa;AAAA,IACxBgB,MAAMd,KAAKM;AAAAA,IACXP,SAASA,WAAWS;AAAAA,IACpBO,WAAWZ,GAAGF,QAAQe,MAAMf,QAAQI,OAAOJ,QAAQgB,CAAC;AAAA,IAAE,GAClDV;AAAAA,IAAMW,8BAETC,mBAAiB;AAAA,MAACC,MAAMC,UAAUrB,KAAKK,KAAK;AAAA,IAAA,CAAI;AAAA,EAAA,CACrC;AAElB;"}
1
+ {"version":3,"file":"Page.js","sources":["../../../../../src/components/BreadCrumb/Page/Page.tsx"],"sourcesContent":["import {\n HvBreadCrumbPathElement,\n HvOverflowTooltip,\n HvTypography,\n} from \"@core/components\";\nimport { ExtractNames } from \"@core/utils\";\nimport { MouseEvent } from \"react\";\nimport { staticClasses, useClasses } from \"./Page.styles\";\n\nexport { staticClasses as pageClasses };\n\nexport type HvPageClasses = ExtractNames<typeof useClasses>;\n\nexport interface HvPageProps {\n component?: React.ElementType;\n onClick?: (event: MouseEvent<HTMLElement>, data: any) => void;\n elem: HvBreadCrumbPathElement;\n classes?: HvPageClasses;\n}\n\nexport const HvPage = ({\n component,\n onClick,\n elem,\n classes: classesProp,\n}: HvPageProps) => {\n const { classes, cx } = useClasses(classesProp);\n const { label, path, ...others } = elem;\n const handleClick = (event: MouseEvent<HTMLElement>) => {\n event.preventDefault();\n onClick?.(event, elem);\n };\n\n return (\n <HvTypography\n noWrap\n variant=\"label\"\n component={component || \"a\"}\n href={elem.path}\n onClick={onClick && handleClick}\n className={cx(classes.link, classes.label, classes.a)}\n {...others}\n >\n <HvOverflowTooltip data={elem.label} />\n </HvTypography>\n );\n};\n"],"names":["HvPage","component","onClick","elem","classes","classesProp","cx","useClasses","label","path","others","handleClick","event","preventDefault","HvTypography","noWrap","variant","href","className","link","a","children","HvOverflowTooltip","data"],"mappings":";;;;;AAoBO,MAAMA,SAASA,CAAC;AAAA,EACrBC;AAAAA,EACAC;AAAAA,EACAC;AAAAA,EACAC,SAASC;AACE,MAAM;AACX,QAAA;AAAA,IAAED;AAAAA,IAASE;AAAAA,EAAAA,IAAOC,WAAWF,WAAW;AACxC,QAAA;AAAA,IAAEG;AAAAA,IAAOC;AAAAA,IAAM,GAAGC;AAAAA,EAAWP,IAAAA;AAC7BQ,QAAAA,cAAcA,CAACC,UAAmC;AACtDA,UAAMC,eAAe;AACrBX,uCAAUU,OAAOT;AAAAA,EAAI;AAGvB,6BACGW,cAAY;AAAA,IACXC,QAAM;AAAA,IACNC,SAAQ;AAAA,IACRf,WAAWA,aAAa;AAAA,IACxBgB,MAAMd,KAAKM;AAAAA,IACXP,SAASA,WAAWS;AAAAA,IACpBO,WAAWZ,GAAGF,QAAQe,MAAMf,QAAQI,OAAOJ,QAAQgB,CAAC;AAAA,IAAE,GAClDV;AAAAA,IAAMW,8BAETC,mBAAiB;AAAA,MAACC,MAAMpB,KAAKK;AAAAA,IAAAA,CAAQ;AAAA,EAAA,CAC1B;AAElB;"}
@@ -1,94 +1,71 @@
1
- import { clsx } from "clsx";
2
- import { forwardRef, useMemo } from "react";
3
- import { StyledButton, StyledContentDiv, StyledIconSpan, StyledChildren } from "./Button.styles.js";
4
- import buttonClasses from "./buttonClasses.js";
5
- import { jsx, jsxs } from "@emotion/react/jsx-runtime";
1
+ import { forwardRef } from "react";
2
+ import { useClasses, getVariantStyles, getSizeStyles, getRadiusStyles, getOverrideColors } from "./Button.styles.js";
3
+ import { staticClasses } from "./Button.styles.js";
4
+ import { jsxs, jsx } from "@emotion/react/jsx-runtime";
6
5
  import { useTheme } from "../../hooks/useTheme.js";
7
6
  const mapVariant = (variant, theme) => {
8
- if (theme !== "ds3") {
9
- if (variant === "secondary") {
10
- console.warn("Button variant 'secondary' is deprecated. Please use 'secondarySubtle'.");
11
- return "secondarySubtle";
12
- }
13
- if (variant === "ghost") {
14
- console.warn("Button variant 'ghost' is deprecated. Please use 'primaryGhost'.");
15
- return "primaryGhost";
16
- }
7
+ if (theme === "ds3")
8
+ return variant;
9
+ const deprecatedVariantMap = {
10
+ secondary: "secondarySubtle",
11
+ ghost: "primaryGhost"
12
+ };
13
+ const mappedVariant = deprecatedVariantMap[variant];
14
+ if (mappedVariant) {
15
+ console.warn(`Button variant '${variant}' is deprecated. Please use '${mappedVariant}'.`);
17
16
  }
18
- return variant;
17
+ return mappedVariant || variant;
19
18
  };
20
19
  const HvButton = forwardRef((props, ref) => {
21
20
  const {
22
21
  id,
23
- classes,
22
+ classes: classesProp,
24
23
  children,
25
- variant = "primary",
26
- onClick,
24
+ variant: variantProp = "primary",
27
25
  disabled = false,
28
26
  className,
29
27
  startIcon,
30
28
  endIcon,
31
29
  icon = false,
32
30
  size,
33
- radius = "base",
31
+ radius,
34
32
  overrideIconColors = true,
35
33
  component: Component = "button",
36
34
  ...others
37
35
  } = props;
36
+ const {
37
+ classes,
38
+ css,
39
+ cx
40
+ } = useClasses(classesProp);
38
41
  const {
39
42
  activeTheme
40
43
  } = useTheme();
41
- const onFocusHandler = (event) => {
42
- event.target.classList.add("HvIsFocusVisible");
43
- event.target.classList.add(buttonClasses.focusVisible);
44
- if (classes == null ? void 0 : classes.focusVisible) {
45
- event.target.classList.add(classes.focusVisible);
46
- }
47
- };
48
- const onBlurHandler = (event) => {
49
- event.target.classList.remove("HvIsFocusVisible");
50
- event.target.classList.remove(buttonClasses.focusVisible);
51
- if (classes == null ? void 0 : classes.focusVisible) {
52
- event.target.classList.remove(classes.focusVisible);
53
- }
54
- };
55
- const StyledComponent = useMemo(() => StyledButton(Component), [Component]);
56
- return /* @__PURE__ */ jsx(StyledComponent, {
57
- id,
44
+ const variant = mapVariant(variantProp, activeTheme == null ? void 0 : activeTheme.name);
45
+ return /* @__PURE__ */ jsxs(Component, {
58
46
  ref,
59
47
  type: "button",
60
- className: clsx(className, classes == null ? void 0 : classes.root, buttonClasses.root),
61
- onClick,
62
- onFocus: onFocusHandler,
63
- onBlur: onBlurHandler,
64
- $variant: mapVariant(variant, activeTheme == null ? void 0 : activeTheme.name),
65
- $iconOnly: icon,
66
- $size: size,
67
- $radius: radius,
68
- $overrideIconColors: overrideIconColors,
69
- $startIcon: !!startIcon,
70
- $endIcon: !!endIcon,
48
+ className: cx(classes.root, css(getVariantStyles(variant)), size && css(getSizeStyles(size)), radius && css(getRadiusStyles(radius)), overrideIconColors && css(getOverrideColors(variant)), {
49
+ [classes.icon]: icon,
50
+ [classes.disabled]: disabled
51
+ }, className),
71
52
  ...disabled && {
72
- $disabled: true,
73
53
  disabled: true,
74
54
  tabIndex: -1,
75
55
  "aria-disabled": true
76
56
  },
77
57
  ...others,
78
- children: /* @__PURE__ */ jsxs(StyledContentDiv, {
79
- children: [startIcon && /* @__PURE__ */ jsx(StyledIconSpan, {
80
- className: clsx(classes == null ? void 0 : classes.startIcon, buttonClasses.startIcon),
81
- children: startIcon
82
- }), children && /* @__PURE__ */ jsx(StyledChildren, {
83
- children
84
- }), endIcon && /* @__PURE__ */ jsx(StyledIconSpan, {
85
- className: clsx(classes == null ? void 0 : classes.endIcon, buttonClasses.endIcon),
86
- children: endIcon
87
- })]
88
- })
58
+ children: [startIcon && /* @__PURE__ */ jsx("span", {
59
+ className: classes.startIcon,
60
+ children: startIcon
61
+ }), children, endIcon && /* @__PURE__ */ jsx("span", {
62
+ className: classes.endIcon,
63
+ children: endIcon
64
+ })]
89
65
  });
90
66
  });
91
67
  export {
92
- HvButton
68
+ HvButton,
69
+ staticClasses as buttonClasses
93
70
  };
94
71
  //# sourceMappingURL=Button.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Button.js","sources":["../../../../src/components/Button/Button.tsx"],"sourcesContent":["import { clsx } from \"clsx\";\nimport React, { forwardRef, ReactElement, useMemo } from \"react\";\nimport { useTheme } from \"@core/hooks\";\nimport { PolymorphicComponentRef, PolymorphicRef } from \"@core/types\";\nimport {\n StyledButton,\n StyledChildren,\n StyledContentDiv,\n StyledIconSpan,\n} from \"./Button.styles\";\nimport buttonClasses, { HvButtonClasses } from \"./buttonClasses\";\n\nexport const buttonVariant = [\n \"primary\",\n \"primarySubtle\",\n \"primaryGhost\",\n \"secondarySubtle\",\n \"secondaryGhost\",\n \"semantic\",\n // deprecated props\n \"secondary\",\n \"ghost\",\n] as const;\nexport type HvButtonVariant = (typeof buttonVariant)[number];\n\nexport const buttonSize = [\"xs\", \"sm\", \"md\", \"lg\", \"xl\"] as const;\nexport type HvButtonSize = (typeof buttonSize)[number];\n\nexport const buttonRadius = [\n \"none\",\n \"base\",\n \"round\",\n \"circle\",\n \"full\",\n] as const;\nexport type HvButtonRadius = (typeof buttonRadius)[number];\n\nexport type HvButtonProps<C extends React.ElementType = \"button\"> =\n PolymorphicComponentRef<\n C,\n {\n /** Use the variant prop to change the visual style of the Button. */\n variant?: HvButtonVariant;\n /** Whether the Button is an icon-only button. */\n icon?: boolean;\n /** Whether the Button is disabled or not. */\n disabled?: boolean;\n /** Class names to be applied. */\n className?: string;\n /** Element placed before the children. */\n startIcon?: ReactElement;\n /** Element placed after the children. */\n endIcon?: ReactElement;\n /** Button size. */\n size?: HvButtonSize;\n /** Button border radius. */\n radius?: HvButtonRadius;\n /** Defines the default colors of the button are forced into the icon. */\n overrideIconColors?: boolean;\n /** A Jss Object used to override or extend the styles applied. */\n classes?: HvButtonClasses;\n /** Whether the Button is selected or not. */\n selected?: boolean;\n }\n >;\n\n/**\n * Normalize the button variant. It's meant to give us some retro-compatibility with\n * the DS 3.6 API.\n *\n * @param variant the variant of the button\n * @returns the normalized variant in DS 5 API\n */\nconst mapVariant = (\n variant: HvButtonVariant,\n theme?: string\n): HvButtonVariant => {\n if (theme !== \"ds3\") {\n if (variant === \"secondary\") {\n // eslint-disable-next-line no-console\n console.warn(\n \"Button variant 'secondary' is deprecated. Please use 'secondarySubtle'.\"\n );\n return \"secondarySubtle\";\n }\n if (variant === \"ghost\") {\n // eslint-disable-next-line no-console\n console.warn(\n \"Button variant 'ghost' is deprecated. Please use 'primaryGhost'.\"\n );\n return \"primaryGhost\";\n }\n }\n return variant;\n};\n\n/**\n * Button component is used to trigger an action or event.\n */\nexport const HvButton: <C extends React.ElementType = \"button\">(\n props: HvButtonProps<C>\n) => React.ReactElement | null = forwardRef(\n <C extends React.ElementType = \"button\">(\n props: HvButtonProps<C>,\n ref: PolymorphicRef<C>\n ) => {\n const {\n id,\n classes,\n children,\n variant = \"primary\",\n onClick,\n disabled = false,\n className,\n startIcon,\n endIcon,\n icon = false,\n size,\n radius = \"base\",\n overrideIconColors = true,\n component: Component = \"button\",\n ...others\n } = props;\n\n const { activeTheme } = useTheme();\n\n const onFocusHandler = (event) => {\n event.target.classList.add(\"HvIsFocusVisible\");\n event.target.classList.add(buttonClasses.focusVisible);\n if (classes?.focusVisible) {\n event.target.classList.add(classes.focusVisible);\n }\n };\n\n const onBlurHandler = (event) => {\n event.target.classList.remove(\"HvIsFocusVisible\");\n event.target.classList.remove(buttonClasses.focusVisible);\n if (classes?.focusVisible) {\n event.target.classList.remove(classes.focusVisible);\n }\n };\n\n const StyledComponent = useMemo(() => StyledButton(Component), [Component]);\n\n return (\n <StyledComponent\n id={id}\n ref={ref}\n type=\"button\"\n className={clsx(className, classes?.root, buttonClasses.root)}\n onClick={onClick}\n onFocus={onFocusHandler}\n onBlur={onBlurHandler}\n $variant={mapVariant(variant, activeTheme?.name)}\n $iconOnly={icon}\n $size={size}\n $radius={radius}\n $overrideIconColors={overrideIconColors}\n $startIcon={!!startIcon}\n $endIcon={!!endIcon}\n {...(disabled && {\n $disabled: true,\n disabled: true,\n tabIndex: -1,\n \"aria-disabled\": true,\n })}\n {...others}\n >\n <StyledContentDiv>\n {startIcon && (\n <StyledIconSpan\n className={clsx(classes?.startIcon, buttonClasses.startIcon)}\n >\n {startIcon}\n </StyledIconSpan>\n )}\n {children && <StyledChildren>{children}</StyledChildren>}\n {endIcon && (\n <StyledIconSpan\n className={clsx(classes?.endIcon, buttonClasses.endIcon)}\n >\n {endIcon}\n </StyledIconSpan>\n )}\n </StyledContentDiv>\n </StyledComponent>\n );\n }\n);\n"],"names":["mapVariant","variant","theme","console","warn","HvButton","forwardRef","props","ref","id","classes","children","onClick","disabled","className","startIcon","endIcon","icon","size","radius","overrideIconColors","component","Component","others","activeTheme","useTheme","onFocusHandler","event","target","classList","add","buttonClasses","focusVisible","onBlurHandler","remove","StyledComponent","useMemo","StyledButton","type","clsx","root","onFocus","onBlur","$variant","name","$iconOnly","$size","$radius","$overrideIconColors","$startIcon","$endIcon","$disabled","tabIndex","StyledContentDiv","_jsx","StyledIconSpan","StyledChildren"],"mappings":";;;;;;AAyEA,MAAMA,aAAaA,CACjBC,SACAC,UACoB;AACpB,MAAIA,UAAU,OAAO;AACnB,QAAID,YAAY,aAAa;AAE3BE,cAAQC,KACN,yEACF;AACO,aAAA;AAAA,IACT;AACA,QAAIH,YAAY,SAAS;AAEvBE,cAAQC,KACN,kEACF;AACO,aAAA;AAAA,IACT;AAAA,EACF;AACOH,SAAAA;AACT;AAKO,MAAMI,WAEoBC,WAC/B,CACEC,OACAC,QACG;AACG,QAAA;AAAA,IACJC;AAAAA,IACAC;AAAAA,IACAC;AAAAA,IACAV,UAAU;AAAA,IACVW;AAAAA,IACAC,WAAW;AAAA,IACXC;AAAAA,IACAC;AAAAA,IACAC;AAAAA,IACAC,OAAO;AAAA,IACPC;AAAAA,IACAC,SAAS;AAAA,IACTC,qBAAqB;AAAA,IACrBC,WAAWC,YAAY;AAAA,IACvB,GAAGC;AAAAA,EACDhB,IAAAA;AAEE,QAAA;AAAA,IAAEiB;AAAAA,MAAgBC,SAAS;AAEjC,QAAMC,iBAAkBC,CAAU,UAAA;AAC1BC,UAAAA,OAAOC,UAAUC,IAAI,kBAAkB;AAC7CH,UAAMC,OAAOC,UAAUC,IAAIC,cAAcC,YAAY;AACrD,QAAItB,mCAASsB,cAAc;AACzBL,YAAMC,OAAOC,UAAUC,IAAIpB,QAAQsB,YAAY;AAAA,IACjD;AAAA,EAAA;AAGF,QAAMC,gBAAiBN,CAAU,UAAA;AACzBC,UAAAA,OAAOC,UAAUK,OAAO,kBAAkB;AAChDP,UAAMC,OAAOC,UAAUK,OAAOH,cAAcC,YAAY;AACxD,QAAItB,mCAASsB,cAAc;AACzBL,YAAMC,OAAOC,UAAUK,OAAOxB,QAAQsB,YAAY;AAAA,IACpD;AAAA,EAAA;AAGIG,QAAAA,kBAAkBC,QAAQ,MAAMC,aAAaf,SAAS,GAAG,CAACA,SAAS,CAAC;AAE1E,6BACGa,iBAAe;AAAA,IACd1B;AAAAA,IACAD;AAAAA,IACA8B,MAAK;AAAA,IACLxB,WAAWyB,KAAKzB,WAAWJ,mCAAS8B,MAAMT,cAAcS,IAAI;AAAA,IAC5D5B;AAAAA,IACA6B,SAASf;AAAAA,IACTgB,QAAQT;AAAAA,IACRU,UAAU3C,WAAWC,SAASuB,2CAAaoB,IAAI;AAAA,IAC/CC,WAAW5B;AAAAA,IACX6B,OAAO5B;AAAAA,IACP6B,SAAS5B;AAAAA,IACT6B,qBAAqB5B;AAAAA,IACrB6B,YAAY,CAAC,CAAClC;AAAAA,IACdmC,UAAU,CAAC,CAAClC;AAAAA,IAAQ,GACfH,YAAY;AAAA,MACfsC,WAAW;AAAA,MACXtC,UAAU;AAAA,MACVuC,UAAU;AAAA,MACV,iBAAiB;AAAA,IACnB;AAAA,IAAC,GACG7B;AAAAA,IAAMZ,+BAET0C,kBAAgB;AAAA,MAAA1C,UACdI,CAAAA,aACCuC,oBAACC,gBAAc;AAAA,QACbzC,WAAWyB,KAAK7B,mCAASK,WAAWgB,cAAchB,SAAS;AAAA,QAAEJ,UAE5DI;AAAAA,MAAAA,CACa,GAEjBJ,YAAY2C,oBAACE,gBAAc;AAAA,QAAA7C;AAAAA,MAAAA,CAA2B,GACtDK,WACCsC,oBAACC,gBAAc;AAAA,QACbzC,WAAWyB,KAAK7B,mCAASM,SAASe,cAAcf,OAAO;AAAA,QAAEL,UAExDK;AAAAA,MAAAA,CACa,CACjB;AAAA,IAAA,CACe;AAAA,EAAA,CACH;AAErB,CACF;"}
1
+ {"version":3,"file":"Button.js","sources":["../../../../src/components/Button/Button.tsx"],"sourcesContent":["import React, { forwardRef, ReactElement } from \"react\";\nimport { useTheme } from \"@core/hooks\";\nimport { PolymorphicComponentRef, PolymorphicRef } from \"@core/types\";\nimport { ExtractNames } from \"@core/utils\";\nimport {\n staticClasses as buttonClasses,\n getOverrideColors,\n getRadiusStyles,\n getSizeStyles,\n getVariantStyles,\n useClasses,\n} from \"./Button.styles\";\n\nexport { buttonClasses };\n\nexport type HvButtonClasses = ExtractNames<typeof useClasses>;\n\nexport const buttonVariant = [\n \"primary\",\n \"primarySubtle\",\n \"primaryGhost\",\n \"secondarySubtle\",\n \"secondaryGhost\",\n \"semantic\",\n // deprecated props\n \"secondary\",\n \"ghost\",\n] as const;\nexport type HvButtonVariant = (typeof buttonVariant)[number];\n\nexport const buttonSize = [\"xs\", \"sm\", \"md\", \"lg\", \"xl\"] as const;\nexport type HvButtonSize = (typeof buttonSize)[number];\n\nexport const buttonRadius = [\n \"none\",\n \"base\",\n \"round\",\n \"circle\",\n \"full\",\n] as const;\nexport type HvButtonRadius = (typeof buttonRadius)[number];\n\nexport type HvButtonProps<C extends React.ElementType = \"button\"> =\n PolymorphicComponentRef<\n C,\n {\n /** Use the variant prop to change the visual style of the Button. */\n variant?: HvButtonVariant;\n /** Whether the Button is an icon-only button. */\n icon?: boolean;\n /** Whether the Button is disabled or not. */\n disabled?: boolean;\n /** Class names to be applied. */\n className?: string;\n /** Element placed before the children. */\n startIcon?: ReactElement;\n /** Element placed after the children. */\n endIcon?: ReactElement;\n /** Button size. */\n size?: HvButtonSize;\n /** Button border radius. */\n radius?: HvButtonRadius;\n /** Defines the default colors of the button are forced into the icon. */\n overrideIconColors?: boolean;\n /** A Jss Object used to override or extend the styles applied. */\n classes?: HvButtonClasses;\n /** Whether the Button is selected or not. */\n selected?: boolean;\n }\n >;\n\n/**\n * Normalize the button variant. It's meant to give us some retro-compatibility with\n * the DS 3.6 API.\n * @returns the normalized variant in DS 5 API\n */\nconst mapVariant = (\n variant: HvButtonVariant,\n theme?: string\n): HvButtonVariant => {\n if (theme === \"ds3\") return variant;\n\n const deprecatedVariantMap: Record<string, HvButtonVariant> = {\n secondary: \"secondarySubtle\",\n ghost: \"primaryGhost\",\n };\n\n const mappedVariant = deprecatedVariantMap[variant];\n\n if (mappedVariant) {\n // eslint-disable-next-line no-console\n console.warn(\n `Button variant '${variant}' is deprecated. Please use '${mappedVariant}'.`\n );\n }\n\n return mappedVariant || variant;\n};\n\n/**\n * Button component is used to trigger an action or event.\n */\nexport const HvButton: <C extends React.ElementType = \"button\">(\n props: HvButtonProps<C>\n) => React.ReactElement | null = forwardRef(\n <C extends React.ElementType = \"button\">(\n props: HvButtonProps<C>,\n ref: PolymorphicRef<C>\n ) => {\n const {\n id,\n classes: classesProp,\n children,\n variant: variantProp = \"primary\",\n disabled = false,\n className,\n startIcon,\n endIcon,\n icon = false,\n size,\n radius,\n overrideIconColors = true,\n component: Component = \"button\",\n ...others\n } = props;\n const { classes, css, cx } = useClasses(classesProp);\n const { activeTheme } = useTheme();\n\n const variant = mapVariant(variantProp, activeTheme?.name);\n\n return (\n <Component\n ref={ref}\n type=\"button\"\n className={cx(\n classes.root,\n css(getVariantStyles(variant)),\n size && css(getSizeStyles(size)),\n radius && css(getRadiusStyles(radius)),\n overrideIconColors && css(getOverrideColors(variant)),\n {\n [classes.icon]: icon,\n [classes.disabled]: disabled,\n },\n className\n )}\n {...(disabled && {\n disabled: true,\n tabIndex: -1,\n \"aria-disabled\": true,\n })}\n {...others}\n >\n {startIcon && <span className={classes.startIcon}>{startIcon}</span>}\n {children}\n {endIcon && <span className={classes.endIcon}>{endIcon}</span>}\n </Component>\n );\n }\n);\n"],"names":["mapVariant","variant","theme","deprecatedVariantMap","secondary","ghost","mappedVariant","warn","HvButton","forwardRef","props","ref","id","classes","classesProp","children","variantProp","disabled","className","startIcon","endIcon","icon","size","radius","overrideIconColors","component","Component","others","css","cx","useClasses","activeTheme","useTheme","name","type","root","getVariantStyles","getSizeStyles","getRadiusStyles","getOverrideColors","tabIndex","_jsx"],"mappings":";;;;;AA4EA,MAAMA,aAAaA,CACjBC,SACAC,UACoB;AACpB,MAAIA,UAAU;AAAcD,WAAAA;AAE5B,QAAME,uBAAwD;AAAA,IAC5DC,WAAW;AAAA,IACXC,OAAO;AAAA,EAAA;AAGHC,QAAAA,gBAAgBH,qBAAqBF,OAAO;AAElD,MAAIK,eAAe;AAETC,YAAAA,KACL,mBAAkBN,uCAAuCK,iBAC5D;AAAA,EACF;AAEA,SAAOA,iBAAiBL;AAC1B;AAKO,MAAMO,WAEoBC,WAC/B,CACEC,OACAC,QACG;AACG,QAAA;AAAA,IACJC;AAAAA,IACAC,SAASC;AAAAA,IACTC;AAAAA,IACAd,SAASe,cAAc;AAAA,IACvBC,WAAW;AAAA,IACXC;AAAAA,IACAC;AAAAA,IACAC;AAAAA,IACAC,OAAO;AAAA,IACPC;AAAAA,IACAC;AAAAA,IACAC,qBAAqB;AAAA,IACrBC,WAAWC,YAAY;AAAA,IACvB,GAAGC;AAAAA,EACDjB,IAAAA;AACE,QAAA;AAAA,IAAEG;AAAAA,IAASe;AAAAA,IAAKC;AAAAA,EAAAA,IAAOC,WAAWhB,WAAW;AAC7C,QAAA;AAAA,IAAEiB;AAAAA,MAAgBC,SAAS;AAEjC,QAAM/B,UAAUD,WAAWgB,aAAae,2CAAaE,IAAI;AAEzD,8BACGP,WAAS;AAAA,IACRf;AAAAA,IACAuB,MAAK;AAAA,IACLhB,WAAWW,GACThB,QAAQsB,MACRP,IAAIQ,iBAAiBnC,OAAO,CAAC,GAC7BqB,QAAQM,IAAIS,cAAcf,IAAI,CAAC,GAC/BC,UAAUK,IAAIU,gBAAgBf,MAAM,CAAC,GACrCC,sBAAsBI,IAAIW,kBAAkBtC,OAAO,CAAC,GACpD;AAAA,MACE,CAACY,QAAQQ,IAAI,GAAGA;AAAAA,MAChB,CAACR,QAAQI,QAAQ,GAAGA;AAAAA,OAEtBC,SACF;AAAA,IAAE,GACGD,YAAY;AAAA,MACfA,UAAU;AAAA,MACVuB,UAAU;AAAA,MACV,iBAAiB;AAAA,IACnB;AAAA,IAAC,GACGb;AAAAA,IAAMZ,UAAA,CAETI,aAAasB,oBAAA,QAAA;AAAA,MAAMvB,WAAWL,QAAQM;AAAAA,MAAUJ,UAAEI;AAAAA,IAAgB,CAAA,GAClEJ,UACAK,+BAAW,QAAA;AAAA,MAAMF,WAAWL,QAAQO;AAAAA,MAAQL,UAAEK;AAAAA,IAAAA,CAAc,CAAC;AAAA,EAAA,CACrD;AAEf,CACF;"}