@hitachivantara/uikit-react-core 5.31.0 → 5.32.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 (34) hide show
  1. package/dist/cjs/components/BreadCrumb/BreadCrumb.cjs +1 -1
  2. package/dist/cjs/components/BreadCrumb/BreadCrumb.cjs.map +1 -1
  3. package/dist/cjs/components/BreadCrumb/Page/Page.cjs +10 -8
  4. package/dist/cjs/components/BreadCrumb/Page/Page.cjs.map +1 -1
  5. package/dist/cjs/components/BreadCrumb/Page/Page.styles.cjs +3 -3
  6. package/dist/cjs/components/BreadCrumb/Page/Page.styles.cjs.map +1 -1
  7. package/dist/cjs/components/InlineEditor/InlineEditor.cjs +3 -2
  8. package/dist/cjs/components/InlineEditor/InlineEditor.cjs.map +1 -1
  9. package/dist/cjs/components/InlineEditor/InlineEditor.styles.cjs +2 -2
  10. package/dist/cjs/components/InlineEditor/InlineEditor.styles.cjs.map +1 -1
  11. package/dist/cjs/components/Section/Section.cjs +50 -0
  12. package/dist/cjs/components/Section/Section.cjs.map +1 -0
  13. package/dist/cjs/components/Section/Section.styles.cjs +40 -0
  14. package/dist/cjs/components/Section/Section.styles.cjs.map +1 -0
  15. package/dist/cjs/index.cjs +4 -0
  16. package/dist/cjs/index.cjs.map +1 -1
  17. package/dist/esm/components/BreadCrumb/BreadCrumb.js +2 -2
  18. package/dist/esm/components/BreadCrumb/BreadCrumb.js.map +1 -1
  19. package/dist/esm/components/BreadCrumb/Page/Page.js +10 -8
  20. package/dist/esm/components/BreadCrumb/Page/Page.js.map +1 -1
  21. package/dist/esm/components/BreadCrumb/Page/Page.styles.js +3 -3
  22. package/dist/esm/components/BreadCrumb/Page/Page.styles.js.map +1 -1
  23. package/dist/esm/components/InlineEditor/InlineEditor.js +3 -2
  24. package/dist/esm/components/InlineEditor/InlineEditor.js.map +1 -1
  25. package/dist/esm/components/InlineEditor/InlineEditor.styles.js +2 -2
  26. package/dist/esm/components/InlineEditor/InlineEditor.styles.js.map +1 -1
  27. package/dist/esm/components/Section/Section.js +51 -0
  28. package/dist/esm/components/Section/Section.js.map +1 -0
  29. package/dist/esm/components/Section/Section.styles.js +40 -0
  30. package/dist/esm/components/Section/Section.styles.js.map +1 -0
  31. package/dist/esm/index.js +4 -0
  32. package/dist/esm/index.js.map +1 -1
  33. package/dist/types/index.d.ts +54 -3
  34. package/package.json +5 -5
@@ -47,7 +47,7 @@ const HvBreadCrumb = (props) => {
47
47
  return /* @__PURE__ */ jsxRuntime.jsx(PathElement.HvPathElement, { classes: {
48
48
  centerContainer: classes.centerContainer,
49
49
  separatorContainer: classes.separatorContainer
50
- }, last: isLast, children: React.isValidElement(elem) && elem || isLast && /* @__PURE__ */ jsxRuntime.jsx(Typography.HvTypography, { className: classes.currentPage, variant: "body", children: utils.removeExtension(elem.label) }) || /* @__PURE__ */ jsxRuntime.jsx(Page.HvPage, { elem, classes: {
50
+ }, last: isLast, children: React.isValidElement(elem) && elem || isLast && /* @__PURE__ */ jsxRuntime.jsx(Typography.HvTypography, { className: classes.currentPage, variant: "body", children: utils.removeExtension(elem.label) }) || /* @__PURE__ */ jsxRuntime.jsx(Page.HvBreadCrumbPage, { elem, classes: {
51
51
  a: classes.a,
52
52
  link: classes.link
53
53
  }, component, onClick }) }, key);
@@ -1 +1 @@
1
- {"version":3,"file":"BreadCrumb.cjs","sources":["../../../../src/components/BreadCrumb/BreadCrumb.tsx"],"sourcesContent":["import { isValidElement, MouseEvent } from \"react\";\n\nimport isNil from \"lodash/isNil\";\n\nimport { useDefaultProps } from \"@core/hooks/useDefaultProps\";\nimport { HvBaseProps } from \"@core/types/generic\";\nimport { HvDropDownMenuProps } from \"@core/components/DropDownMenu\";\nimport { ExtractNames } from \"@core/utils/classes\";\nimport { HvTypography } from \"@core/components/Typography\";\n\nimport { HvPathElement } from \"./PathElement\";\nimport { HvPage } from \"./Page\";\nimport { staticClasses, useClasses } from \"./BreadCrumb.styles\";\nimport { pathWithSubMenu, removeExtension } from \"./utils\";\nimport { HvBreadCrumbPathElement } from \"./types\";\n\nexport { staticClasses as breadCrumbClasses };\n\nexport type HvBreadCrumbClasses = ExtractNames<typeof useClasses>;\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 = (props: HvBreadCrumbProps) => {\n const {\n classes: classesProp,\n className,\n id,\n listRoute = [],\n maxVisible,\n url,\n onClick,\n component,\n dropDownMenuProps,\n ...others\n } = useDefaultProps(\"HvBreadCrumb\", props);\n\n const { classes, cx } = useClasses(classesProp);\n\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 listPath,\n maxVisibleElem,\n onClick,\n dropDownMenuProps\n )\n : listPath;\n\n return (\n <nav id={id} className={cx(classes.root, className)} {...others}>\n <ol className={classes.orderedList}>\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: classes.centerContainer,\n separatorContainer: classes.separatorContainer,\n }}\n key={key}\n last={isLast}\n >\n {(isValidElement(elem) && elem) ||\n (isLast && (\n <HvTypography className={classes.currentPage} variant=\"body\">\n {removeExtension(elem.label)}\n </HvTypography>\n )) || (\n <HvPage\n elem={elem}\n classes={{\n a: classes.a,\n link: classes.link,\n }}\n component={component}\n onClick={onClick}\n />\n )}\n </HvPathElement>\n );\n })}\n </ol>\n </nav>\n );\n};\n"],"names":["HvBreadCrumb","props","classes","classesProp","className","id","listRoute","maxVisible","url","onClick","component","dropDownMenuProps","others","useDefaultProps","cx","useClasses","maxVisibleElem","listPath","slice","isNil","baseUrl","match","urlWithoutDomain","replace","pathNames","split","filter","x","map","elem","index","push","label","decodeURI","path","join","breadcrumbPath","length","pathWithSubMenu","jsx","root","orderedList","key","isLast","HvPathElement","centerContainer","separatorContainer","isValidElement","HvTypography","currentPage","removeExtension","HvPage","a","link"],"mappings":";;;;;;;;;;;;;AAyCaA,MAAAA,eAAeA,CAACC,UAA6B;AAClD,QAAA;AAAA,IACJC,SAASC;AAAAA,IACTC;AAAAA,IACAC;AAAAA,IACAC,YAAY,CAAE;AAAA,IACdC;AAAAA,IACAC;AAAAA,IACAC;AAAAA,IACAC;AAAAA,IACAC;AAAAA,IACA,GAAGC;AAAAA,EAAAA,IACDC,gBAAgB,gBAAA,gBAAgBZ,KAAK;AAEnC,QAAA;AAAA,IAAEC;AAAAA,IAASY;AAAAA,EAAAA,IAAOC,kBAAAA,WAAWZ,WAAW;AAE9C,QAAMa,iBAAiBT,cAAcA,aAAa,IAAI,IAAIA;AACtDU,MAAAA,WAAWX,UAAUY;AAGrB,MAAA,CAACC,eAAAA,QAAMX,GAAG,GAAG;AACfS,eAAW,CAAA;AAGLG,UAAAA,UAAUZ,IAAIa,MAAM,cAAc;AAGxC,UAAMC,mBAAmBd,IAAIe,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,OAAQ,IAAGI,UAAUN,MAAM,GAAGY,QAAQ,CAAC,EAAEK,KAAK,GAAG,CAAE;AAAA,IAC7D,CAAA,CACH;AAAA,EACF;AAEMC,QAAAA,iBACJpB,kBAAkBC,SAASoB,SAASrB,iBAChCsB,MAAAA,gBACEjC,IACAY,UACAD,gBACAP,SACAE,iBACF,IACAM;AAGJ,SAAAsB,+BAAC,SAAI,IAAQ,WAAWzB,GAAGZ,QAAQsC,MAAMpC,SAAS,GAAOQ,GAAAA,QACvD,UAAC2B,2BAAAA,IAAA,MAAA,EAAG,WAAWrC,QAAQuC,aACpBxB,mBAASW,IAAI,CAACC,MAAMC,UAAU;AACvBY,UAAAA,MAAO,OAAMZ,KAAM;AACnBa,UAAAA,SAASb,UAAUM,eAAeC,SAAS;AAG/C,WAAAE,2BAAA,IAACK,6BACC,SAAS;AAAA,MACPC,iBAAiB3C,QAAQ2C;AAAAA,MACzBC,oBAAoB5C,QAAQ4C;AAAAA,IAC9B,GAEA,MAAMH,QAEJI,UAAAA,MAAAA,eAAelB,IAAI,KAAKA,QACvBc,UACCJ,2BAAA,IAACS,yBAAa,EAAA,WAAW9C,QAAQ+C,aAAa,SAAQ,QACnDC,UAAAA,MAAAA,gBAAgBrB,KAAKG,KAAK,EAC7B,CAAA,KAEAO,2BAAAA,IAACY,KAAAA,QACC,EAAA,MACA,SAAS;AAAA,MACPC,GAAGlD,QAAQkD;AAAAA,MACXC,MAAMnD,QAAQmD;AAAAA,IAEhB,GAAA,WACA,QAEH,CAAA,EAAA,GAlBEX,GAmBP;AAAA,EAAA,CAEH,GACH,EACF,CAAA;AAEJ;;;"}
1
+ {"version":3,"file":"BreadCrumb.cjs","sources":["../../../../src/components/BreadCrumb/BreadCrumb.tsx"],"sourcesContent":["import { isValidElement, MouseEvent } from \"react\";\n\nimport isNil from \"lodash/isNil\";\n\nimport { useDefaultProps } from \"@core/hooks/useDefaultProps\";\nimport { HvBaseProps } from \"@core/types/generic\";\nimport { HvDropDownMenuProps } from \"@core/components/DropDownMenu\";\nimport { ExtractNames } from \"@core/utils/classes\";\nimport { HvTypography } from \"@core/components/Typography\";\n\nimport { HvPathElement } from \"./PathElement\";\nimport { HvBreadCrumbPage } from \"./Page\";\nimport { staticClasses, useClasses } from \"./BreadCrumb.styles\";\nimport { pathWithSubMenu, removeExtension } from \"./utils\";\nimport { HvBreadCrumbPathElement } from \"./types\";\n\nexport { staticClasses as breadCrumbClasses };\n\nexport type HvBreadCrumbClasses = ExtractNames<typeof useClasses>;\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 = (props: HvBreadCrumbProps) => {\n const {\n classes: classesProp,\n className,\n id,\n listRoute = [],\n maxVisible,\n url,\n onClick,\n component,\n dropDownMenuProps,\n ...others\n } = useDefaultProps(\"HvBreadCrumb\", props);\n\n const { classes, cx } = useClasses(classesProp);\n\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 listPath,\n maxVisibleElem,\n onClick,\n dropDownMenuProps\n )\n : listPath;\n\n return (\n <nav id={id} className={cx(classes.root, className)} {...others}>\n <ol className={classes.orderedList}>\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: classes.centerContainer,\n separatorContainer: classes.separatorContainer,\n }}\n key={key}\n last={isLast}\n >\n {(isValidElement(elem) && elem) ||\n (isLast && (\n <HvTypography className={classes.currentPage} variant=\"body\">\n {removeExtension(elem.label)}\n </HvTypography>\n )) || (\n <HvBreadCrumbPage\n elem={elem}\n classes={{\n a: classes.a,\n link: classes.link,\n }}\n component={component}\n onClick={onClick}\n />\n )}\n </HvPathElement>\n );\n })}\n </ol>\n </nav>\n );\n};\n"],"names":["HvBreadCrumb","props","classes","classesProp","className","id","listRoute","maxVisible","url","onClick","component","dropDownMenuProps","others","useDefaultProps","cx","useClasses","maxVisibleElem","listPath","slice","isNil","baseUrl","match","urlWithoutDomain","replace","pathNames","split","filter","x","map","elem","index","push","label","decodeURI","path","join","breadcrumbPath","length","pathWithSubMenu","jsx","root","orderedList","key","isLast","HvPathElement","centerContainer","separatorContainer","isValidElement","HvTypography","currentPage","removeExtension","HvBreadCrumbPage","a","link"],"mappings":";;;;;;;;;;;;;AAyCaA,MAAAA,eAAeA,CAACC,UAA6B;AAClD,QAAA;AAAA,IACJC,SAASC;AAAAA,IACTC;AAAAA,IACAC;AAAAA,IACAC,YAAY,CAAE;AAAA,IACdC;AAAAA,IACAC;AAAAA,IACAC;AAAAA,IACAC;AAAAA,IACAC;AAAAA,IACA,GAAGC;AAAAA,EAAAA,IACDC,gBAAgB,gBAAA,gBAAgBZ,KAAK;AAEnC,QAAA;AAAA,IAAEC;AAAAA,IAASY;AAAAA,EAAAA,IAAOC,kBAAAA,WAAWZ,WAAW;AAE9C,QAAMa,iBAAiBT,cAAcA,aAAa,IAAI,IAAIA;AACtDU,MAAAA,WAAWX,UAAUY;AAGrB,MAAA,CAACC,eAAAA,QAAMX,GAAG,GAAG;AACfS,eAAW,CAAA;AAGLG,UAAAA,UAAUZ,IAAIa,MAAM,cAAc;AAGxC,UAAMC,mBAAmBd,IAAIe,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,OAAQ,IAAGI,UAAUN,MAAM,GAAGY,QAAQ,CAAC,EAAEK,KAAK,GAAG,CAAE;AAAA,IAC7D,CAAA,CACH;AAAA,EACF;AAEMC,QAAAA,iBACJpB,kBAAkBC,SAASoB,SAASrB,iBAChCsB,MAAAA,gBACEjC,IACAY,UACAD,gBACAP,SACAE,iBACF,IACAM;AAGJ,SAAAsB,+BAAC,SAAI,IAAQ,WAAWzB,GAAGZ,QAAQsC,MAAMpC,SAAS,GAAOQ,GAAAA,QACvD,UAAC2B,2BAAAA,IAAA,MAAA,EAAG,WAAWrC,QAAQuC,aACpBxB,mBAASW,IAAI,CAACC,MAAMC,UAAU;AACvBY,UAAAA,MAAO,OAAMZ,KAAM;AACnBa,UAAAA,SAASb,UAAUM,eAAeC,SAAS;AAG/C,WAAAE,2BAAA,IAACK,6BACC,SAAS;AAAA,MACPC,iBAAiB3C,QAAQ2C;AAAAA,MACzBC,oBAAoB5C,QAAQ4C;AAAAA,IAC9B,GAEA,MAAMH,QAEJI,UAAAA,MAAAA,eAAelB,IAAI,KAAKA,QACvBc,UACCJ,2BAAA,IAACS,yBAAa,EAAA,WAAW9C,QAAQ+C,aAAa,SAAQ,QACnDC,UAAAA,MAAAA,gBAAgBrB,KAAKG,KAAK,EAC7B,CAAA,KAEAO,2BAAAA,IAACY,KAAAA,kBACC,EAAA,MACA,SAAS;AAAA,MACPC,GAAGlD,QAAQkD;AAAAA,MACXC,MAAMnD,QAAQmD;AAAAA,IAEhB,GAAA,WACA,QAEH,CAAA,EAAA,GAlBEX,GAmBP;AAAA,EAAA,CAEH,GACH,EACF,CAAA;AAEJ;;;"}
@@ -3,13 +3,15 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
3
  const jsxRuntime = require("@emotion/react/jsx-runtime");
4
4
  const Page_styles = require("./Page.styles.cjs");
5
5
  const OverflowTooltip = require("../../OverflowTooltip/OverflowTooltip.cjs");
6
+ const useDefaultProps = require("../../../hooks/useDefaultProps.cjs");
6
7
  const Typography = require("../../Typography/Typography.cjs");
7
- const HvPage = ({
8
- component,
9
- onClick,
10
- elem,
11
- classes: classesProp
12
- }) => {
8
+ const HvBreadCrumbPage = (props) => {
9
+ const {
10
+ component,
11
+ onClick,
12
+ elem,
13
+ classes: classesProp
14
+ } = useDefaultProps.useDefaultProps("HvBreadCrumbPage", props);
13
15
  const {
14
16
  classes,
15
17
  cx
@@ -25,6 +27,6 @@ const HvPage = ({
25
27
  };
26
28
  return /* @__PURE__ */ jsxRuntime.jsx(Typography.HvTypography, { noWrap: true, variant: "label", component: component || "a", href: elem.path, onClick: onClick && handleClick, className: cx(classes.link, classes.label, classes.a), ...others, children: /* @__PURE__ */ jsxRuntime.jsx(OverflowTooltip.HvOverflowTooltip, { data: elem.label }) });
27
29
  };
28
- exports.pageClasses = Page_styles.staticClasses;
29
- exports.HvPage = HvPage;
30
+ exports.breadCrumbPageClasses = Page_styles.staticClasses;
31
+ exports.HvBreadCrumbPage = HvBreadCrumbPage;
30
32
  //# sourceMappingURL=Page.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"Page.cjs","sources":["../../../../../src/components/BreadCrumb/Page/Page.tsx"],"sourcesContent":["import { MouseEvent } from \"react\";\n\nimport { HvTypography } from \"@core/components/Typography\";\nimport { HvOverflowTooltip } from \"@core/components/OverflowTooltip\";\nimport { ExtractNames } from \"@core/utils/classes\";\n\nimport { HvBreadCrumbPathElement } from \"../types\";\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","jsx","HvTypography","link","a","HvOverflowTooltip"],"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,YAAAA,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,SACGW,2BAAAA,IAAAC,WAAAA,cAAA,EACC,QAAM,MACN,SAAQ,SACR,WAAWd,aAAa,KACxB,MAAME,KAAKM,MACX,SAASP,WAAWS,aACpB,WAAWL,GAAGF,QAAQY,MAAMZ,QAAQI,OAAOJ,QAAQa,CAAC,GAChDP,GAAAA,QAEJ,UAACI,2BAAA,IAAAI,gBAAA,mBAAA,EAAkB,MAAMf,KAAKK,OAAM,EACtC,CAAA;AAEJ;;;"}
1
+ {"version":3,"file":"Page.cjs","sources":["../../../../../src/components/BreadCrumb/Page/Page.tsx"],"sourcesContent":["import { MouseEvent } from \"react\";\n\nimport { HvTypography } from \"@core/components/Typography\";\nimport { HvOverflowTooltip } from \"@core/components/OverflowTooltip\";\nimport { ExtractNames } from \"@core/utils/classes\";\nimport { useDefaultProps } from \"@core/hooks\";\n\nimport { HvBreadCrumbPathElement } from \"../types\";\nimport { staticClasses, useClasses } from \"./Page.styles\";\n\nexport { staticClasses as breadCrumbPageClasses };\n\nexport type HvBreadCrumbPageClasses = ExtractNames<typeof useClasses>;\n\nexport interface HvBreadCrumbPageProps {\n component?: React.ElementType;\n onClick?: (event: MouseEvent<HTMLElement>, data: any) => void;\n elem: HvBreadCrumbPathElement;\n classes?: HvBreadCrumbPageClasses;\n}\n\nexport const HvBreadCrumbPage = (props: HvBreadCrumbPageProps) => {\n const {\n component,\n onClick,\n elem,\n classes: classesProp,\n } = useDefaultProps(\"HvBreadCrumbPage\", props);\n\n const { classes, cx } = useClasses(classesProp);\n\n const { label, path, ...others } = elem;\n\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":["HvBreadCrumbPage","props","component","onClick","elem","classes","classesProp","useDefaultProps","cx","useClasses","label","path","others","handleClick","event","preventDefault","jsx","HvTypography","link","a","HvOverflowTooltip"],"mappings":";;;;;;;AAqBaA,MAAAA,mBAAmBA,CAACC,UAAiC;AAC1D,QAAA;AAAA,IACJC;AAAAA,IACAC;AAAAA,IACAC;AAAAA,IACAC,SAASC;AAAAA,EAAAA,IACPC,gBAAgB,gBAAA,oBAAoBN,KAAK;AAEvC,QAAA;AAAA,IAAEI;AAAAA,IAASG;AAAAA,EAAAA,IAAOC,YAAAA,WAAWH,WAAW;AAExC,QAAA;AAAA,IAAEI;AAAAA,IAAOC;AAAAA,IAAM,GAAGC;AAAAA,EAAWR,IAAAA;AAE7BS,QAAAA,cAAcA,CAACC,UAAmC;AACtDA,UAAMC,eAAe;AACrBZ,uCAAUW,OAAOV;AAAAA,EAAI;AAGvB,SACGY,2BAAAA,IAAAC,WAAAA,cAAA,EACC,QAAM,MACN,SAAQ,SACR,WAAWf,aAAa,KACxB,MAAME,KAAKO,MACX,SAASR,WAAWU,aACpB,WAAWL,GAAGH,QAAQa,MAAMb,QAAQK,OAAOL,QAAQc,CAAC,GAChDP,GAAAA,QAEJ,UAACI,2BAAA,IAAAI,gBAAA,mBAAA,EAAkB,MAAMhB,KAAKM,OAAM,EACtC,CAAA;AAEJ;;;"}
@@ -6,7 +6,7 @@ const focusUtils = require("../../../utils/focusUtils.cjs");
6
6
  const {
7
7
  staticClasses,
8
8
  useClasses
9
- } = classes.createClasses("HvPage", {
9
+ } = classes.createClasses("HvBreadCrumbPage", {
10
10
  link: {
11
11
  padding: `8px ${uikitStyles.theme.space.xs}`,
12
12
  borderRadius: uikitStyles.theme.radii.base,
@@ -14,10 +14,10 @@ const {
14
14
  textTransform: "capitalize",
15
15
  "&:hover": {
16
16
  cursor: "pointer",
17
- backgroundColor: uikitStyles.theme.colors.atmo3
17
+ backgroundColor: uikitStyles.theme.colors.primary_20
18
18
  },
19
19
  "&:focus": {
20
- backgroundColor: uikitStyles.theme.colors.atmo3
20
+ backgroundColor: uikitStyles.theme.colors.primary_20
21
21
  },
22
22
  "&:focus-visible": {
23
23
  ...focusUtils.outlineStyles
@@ -1 +1 @@
1
- {"version":3,"file":"Page.styles.cjs","sources":["../../../../../src/components/BreadCrumb/Page/Page.styles.tsx"],"sourcesContent":["import { theme } from \"@hitachivantara/uikit-styles\";\n\nimport { createClasses } from \"@core/utils/classes\";\nimport { outlineStyles } from \"@core/utils/focusUtils\";\n\nexport const { staticClasses, useClasses } = createClasses(\"HvPage\", {\n link: {\n padding: `8px ${theme.space.xs}`,\n borderRadius: theme.radii.base,\n maxWidth: 170 + 16,\n textTransform: \"capitalize\",\n \"&:hover\": {\n cursor: \"pointer\",\n backgroundColor: theme.colors.atmo3,\n },\n \"&:focus\": {\n backgroundColor: theme.colors.atmo3,\n },\n \"&:focus-visible\": {\n ...outlineStyles,\n },\n },\n label: {},\n a: {},\n});\n"],"names":["staticClasses","useClasses","createClasses","link","padding","theme","space","xs","borderRadius","radii","base","maxWidth","textTransform","cursor","backgroundColor","colors","atmo3","outlineStyles","label","a"],"mappings":";;;;;AAKa,MAAA;AAAA,EAAEA;AAAAA,EAAeC;AAAW,IAAIC,QAAAA,cAAc,UAAU;AAAA,EACnEC,MAAM;AAAA,IACJC,SAAU,OAAMC,YAAMC,MAAAA,MAAMC,EAAG;AAAA,IAC/BC,cAAcH,YAAAA,MAAMI,MAAMC;AAAAA,IAC1BC,UAAU,MAAM;AAAA,IAChBC,eAAe;AAAA,IACf,WAAW;AAAA,MACTC,QAAQ;AAAA,MACRC,iBAAiBT,YAAAA,MAAMU,OAAOC;AAAAA,IAChC;AAAA,IACA,WAAW;AAAA,MACTF,iBAAiBT,YAAAA,MAAMU,OAAOC;AAAAA,IAChC;AAAA,IACA,mBAAmB;AAAA,MACjB,GAAGC,WAAAA;AAAAA,IACL;AAAA,EACF;AAAA,EACAC,OAAO,CAAC;AAAA,EACRC,GAAG,CAAC;AACN,CAAC;;;"}
1
+ {"version":3,"file":"Page.styles.cjs","sources":["../../../../../src/components/BreadCrumb/Page/Page.styles.tsx"],"sourcesContent":["import { theme } from \"@hitachivantara/uikit-styles\";\n\nimport { createClasses } from \"@core/utils/classes\";\nimport { outlineStyles } from \"@core/utils/focusUtils\";\n\nexport const { staticClasses, useClasses } = createClasses(\"HvBreadCrumbPage\", {\n link: {\n padding: `8px ${theme.space.xs}`,\n borderRadius: theme.radii.base,\n maxWidth: 170 + 16,\n textTransform: \"capitalize\",\n \"&:hover\": {\n cursor: \"pointer\",\n backgroundColor: theme.colors.primary_20,\n },\n \"&:focus\": {\n backgroundColor: theme.colors.primary_20,\n },\n \"&:focus-visible\": {\n ...outlineStyles,\n },\n },\n label: {},\n a: {},\n});\n"],"names":["staticClasses","useClasses","createClasses","link","padding","theme","space","xs","borderRadius","radii","base","maxWidth","textTransform","cursor","backgroundColor","colors","primary_20","outlineStyles","label","a"],"mappings":";;;;;AAKa,MAAA;AAAA,EAAEA;AAAAA,EAAeC;AAAW,IAAIC,QAAAA,cAAc,oBAAoB;AAAA,EAC7EC,MAAM;AAAA,IACJC,SAAU,OAAMC,YAAMC,MAAAA,MAAMC,EAAG;AAAA,IAC/BC,cAAcH,YAAAA,MAAMI,MAAMC;AAAAA,IAC1BC,UAAU,MAAM;AAAA,IAChBC,eAAe;AAAA,IACf,WAAW;AAAA,MACTC,QAAQ;AAAA,MACRC,iBAAiBT,YAAAA,MAAMU,OAAOC;AAAAA,IAChC;AAAA,IACA,WAAW;AAAA,MACTF,iBAAiBT,YAAAA,MAAMU,OAAOC;AAAAA,IAChC;AAAA,IACA,mBAAmB;AAAA,MACjB,GAAGC,WAAAA;AAAAA,IACL;AAAA,EACF;AAAA,EACAC,OAAO,CAAC;AAAA,EACRC,GAAG,CAAC;AACN,CAAC;;;"}
@@ -26,6 +26,7 @@ const HvInlineEditor = (props) => {
26
26
  onKeyDown,
27
27
  buttonProps,
28
28
  typographyProps,
29
+ disabled,
29
30
  ...others
30
31
  } = useDefaultProps.useDefaultProps("HvInlineEditor", props);
31
32
  const {
@@ -71,7 +72,7 @@ const HvInlineEditor = (props) => {
71
72
  setValue(val);
72
73
  onChange == null ? void 0 : onChange(event, val);
73
74
  };
74
- return /* @__PURE__ */ jsxRuntime.jsx("div", { className: cx(classes.root, className), children: editMode ? /* @__PURE__ */ jsxRuntime.jsx(InputComponent, { inputRef, classes: {
75
+ return /* @__PURE__ */ jsxRuntime.jsx("div", { className: cx(classes.root, className), children: editMode && !disabled ? /* @__PURE__ */ jsxRuntime.jsx(InputComponent, { inputRef, classes: {
75
76
  root: classes.inputRoot,
76
77
  input: classes.input,
77
78
  inputBorderContainer: classes.inputBorderContainer
@@ -84,7 +85,7 @@ const HvInlineEditor = (props) => {
84
85
  [classes.iconVisible]: showIcon
85
86
  }) }), className: cx(classes.button, {
86
87
  [classes.largeText]: parseInt(lineHeight, 10) >= 28
87
- }), onClick: handleClick, ...buttonProps, children: /* @__PURE__ */ jsxRuntime.jsx(Typography.HvTypography, { variant, noWrap: true, className: cx(classes.text, {
88
+ }), onClick: handleClick, disabled, ...buttonProps, children: /* @__PURE__ */ jsxRuntime.jsx(Typography.HvTypography, { variant, noWrap: true, className: cx(classes.text, {
88
89
  [classes.textEmpty]: !value
89
90
  }), ...typographyProps, children: value || placeholder }) }) });
90
91
  };
@@ -1 +1 @@
1
- {"version":3,"file":"InlineEditor.cjs","sources":["../../../../src/components/InlineEditor/InlineEditor.tsx"],"sourcesContent":["import React, { useLayoutEffect, useRef, useState } from \"react\";\nimport { useDefaultProps } from \"@core/hooks/useDefaultProps\";\n\nimport { Edit } from \"@hitachivantara/uikit-react-icons\";\n\nimport { HvBaseProps } from \"@core/types/generic\";\nimport { useControlled } from \"@core/hooks/useControlled\";\nimport { useTheme } from \"@core/hooks/useTheme\";\nimport { ExtractNames } from \"@core/utils/classes\";\nimport { isKey } from \"@core/utils/keyboardUtils\";\nimport { HvButtonProps, HvButton } from \"@core/components/Button\";\nimport {\n HvTypographyVariants,\n HvTypographyProps,\n HvTypography,\n} from \"@core/components/Typography\";\nimport { HvInput, HvInputProps } from \"@core/components/Input\";\n\nimport { staticClasses, useClasses } from \"./InlineEditor.styles\";\n\nexport { staticClasses as inlineEditorClasses };\n\nexport type HvInlineEditorClasses = ExtractNames<typeof useClasses>;\n\nexport interface HvInlineEditorProps\n extends HvBaseProps<HTMLDivElement, \"onBlur\" | \"onChange\"> {\n /** The value of the form element. */\n value?: string;\n /** Whether the Edit icon should always be visible */\n showIcon?: boolean;\n /** Component to use as the input. The component \"inherit\" from `HvBaseInput` (such as `HvInput` or `HvTextArea`) */\n component?: React.ElementType;\n /** Variant of the HvTypography to display */\n variant?: HvTypographyVariants;\n /** Called when the input is blurred. */\n onBlur?: (\n event: React.FocusEvent<HTMLTextAreaElement | HTMLInputElement>,\n value: string\n ) => void;\n /** Called when the input value changes. */\n onChange?: (event: React.SyntheticEvent, value: string) => void;\n /** Props passed to the HvButton component */\n buttonProps?: HvButtonProps;\n /** Props passed to the HvTypography text component */\n typographyProps?: HvTypographyProps;\n /** A Jss Object used to override or extend the styles applied to the empty state component. */\n classes?: HvInlineEditorClasses;\n}\n\n/**\n * An Inline Editor allows the user to edit a record without making a major switch\n * between viewing and editing, making it an efficient method of updating a record.\n */\nexport const HvInlineEditor = (props: HvInlineEditorProps) => {\n const {\n className,\n classes: classesProp,\n value: valueProp,\n defaultValue,\n showIcon,\n component: InputComponent = HvInput,\n variant = \"body\",\n placeholder = \"Enter text\",\n onBlur,\n onChange,\n onKeyDown,\n buttonProps,\n typographyProps,\n ...others\n } = useDefaultProps(\"HvInlineEditor\", props);\n\n const { classes, cx } = useClasses(classesProp);\n const [value, setValue] = useControlled(valueProp, defaultValue);\n const [editMode, setEditMode] = useState(false);\n const [cachedValue, setCachedValue] = useState(value);\n const inputRef = useRef<HTMLInputElement>();\n const { activeTheme } = useTheme();\n\n const typographyStyles = activeTheme?.typography[variant] || {};\n const { lineHeight } = typographyStyles;\n\n useLayoutEffect(() => {\n const input = inputRef.current;\n if (editMode && input) {\n input.focus();\n input.select();\n }\n }, [editMode]);\n\n const handleClick = () => {\n setEditMode(true);\n setCachedValue(value);\n };\n\n const handleBlur: HvInputProps[\"onBlur\"] = (event) => {\n setEditMode(false);\n\n const newValue = value || cachedValue; // empty values should be ignored\n setValue(newValue);\n onBlur?.(event, newValue);\n };\n\n const handleKeyDown: HvInputProps[\"onKeyDown\"] = (event) => {\n if (isKey(event, \"Esc\")) {\n setEditMode(false);\n setValue(cachedValue);\n }\n onKeyDown?.(event as any);\n };\n\n const handleChange: HvInputProps[\"onChange\"] = (event, val) => {\n setValue(val);\n onChange?.(event, val);\n };\n\n return (\n <div className={cx(classes.root, className)}>\n {editMode ? (\n <InputComponent\n inputRef={inputRef}\n classes={{\n root: classes.inputRoot,\n input: classes.input,\n inputBorderContainer: classes.inputBorderContainer,\n }}\n inputProps={{\n style: {\n ...typographyStyles,\n height: InputComponent === HvInput ? lineHeight : undefined,\n },\n }}\n value={value}\n onBlur={handleBlur}\n onChange={handleChange}\n onKeyDown={handleKeyDown}\n {...others}\n />\n ) : (\n <HvButton\n variant=\"secondaryGhost\"\n overrideIconColors={false}\n endIcon={\n <Edit\n color=\"secondary_60\"\n role=\"none\"\n className={cx(classes.icon, { [classes.iconVisible]: showIcon })}\n />\n }\n className={cx(classes.button, {\n [classes.largeText]: parseInt(lineHeight as string, 10) >= 28,\n })}\n onClick={handleClick}\n {...buttonProps}\n >\n <HvTypography\n variant={variant}\n noWrap\n className={cx(classes.text, { [classes.textEmpty]: !value })}\n {...typographyProps}\n >\n {value || placeholder}\n </HvTypography>\n </HvButton>\n )}\n </div>\n );\n};\n"],"names":["HvInlineEditor","props","className","classes","classesProp","value","valueProp","defaultValue","showIcon","component","InputComponent","HvInput","variant","placeholder","onBlur","onChange","onKeyDown","buttonProps","typographyProps","others","useDefaultProps","cx","useClasses","setValue","useControlled","editMode","setEditMode","useState","cachedValue","setCachedValue","inputRef","useRef","activeTheme","useTheme","typographyStyles","typography","lineHeight","useLayoutEffect","input","current","focus","select","handleClick","handleBlur","event","newValue","handleKeyDown","isKey","handleChange","val","jsx","root","inputRoot","inputBorderContainer","style","height","undefined","HvButton","Edit","icon","iconVisible","button","largeText","parseInt","HvTypography","text","textEmpty"],"mappings":"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"}
1
+ {"version":3,"file":"InlineEditor.cjs","sources":["../../../../src/components/InlineEditor/InlineEditor.tsx"],"sourcesContent":["import React, { useLayoutEffect, useRef, useState } from \"react\";\nimport { useDefaultProps } from \"@core/hooks/useDefaultProps\";\n\nimport { Edit } from \"@hitachivantara/uikit-react-icons\";\n\nimport { HvBaseProps } from \"@core/types/generic\";\nimport { useControlled } from \"@core/hooks/useControlled\";\nimport { useTheme } from \"@core/hooks/useTheme\";\nimport { ExtractNames } from \"@core/utils/classes\";\nimport { isKey } from \"@core/utils/keyboardUtils\";\nimport { HvButtonProps, HvButton } from \"@core/components/Button\";\nimport {\n HvTypographyVariants,\n HvTypographyProps,\n HvTypography,\n} from \"@core/components/Typography\";\nimport { HvInput, HvInputProps } from \"@core/components/Input\";\n\nimport { staticClasses, useClasses } from \"./InlineEditor.styles\";\n\nexport { staticClasses as inlineEditorClasses };\n\nexport type HvInlineEditorClasses = ExtractNames<typeof useClasses>;\n\nexport interface HvInlineEditorProps\n extends HvBaseProps<HTMLDivElement, \"onBlur\" | \"onChange\"> {\n /** The value of the form element. */\n value?: string;\n /** Whether the Edit icon should always be visible */\n showIcon?: boolean;\n /** Component to use as the input. The component \"inherit\" from `HvBaseInput` (such as `HvInput` or `HvTextArea`) */\n component?: React.ElementType;\n /** Variant of the HvTypography to display */\n variant?: HvTypographyVariants;\n /** Called when the input is blurred. */\n onBlur?: (\n event: React.FocusEvent<HTMLTextAreaElement | HTMLInputElement>,\n value: string\n ) => void;\n /** Called when the input value changes. */\n onChange?: (event: React.SyntheticEvent, value: string) => void;\n /** Props passed to the HvButton component */\n buttonProps?: HvButtonProps;\n /** Props passed to the HvTypography text component */\n typographyProps?: HvTypographyProps;\n /** Whether the editor is disabled or not. */\n disabled?: boolean;\n /** A Jss Object used to override or extend the styles applied to the empty state component. */\n classes?: HvInlineEditorClasses;\n}\n\n/**\n * An Inline Editor allows the user to edit a record without making a major switch\n * between viewing and editing, making it an efficient method of updating a record.\n */\nexport const HvInlineEditor = (props: HvInlineEditorProps) => {\n const {\n className,\n classes: classesProp,\n value: valueProp,\n defaultValue,\n showIcon,\n component: InputComponent = HvInput,\n variant = \"body\",\n placeholder = \"Enter text\",\n onBlur,\n onChange,\n onKeyDown,\n buttonProps,\n typographyProps,\n disabled,\n ...others\n } = useDefaultProps(\"HvInlineEditor\", props);\n\n const { classes, cx } = useClasses(classesProp);\n const [value, setValue] = useControlled(valueProp, defaultValue);\n const [editMode, setEditMode] = useState(false);\n const [cachedValue, setCachedValue] = useState(value);\n const inputRef = useRef<HTMLInputElement>();\n const { activeTheme } = useTheme();\n\n const typographyStyles = activeTheme?.typography[variant] || {};\n const { lineHeight } = typographyStyles;\n\n useLayoutEffect(() => {\n const input = inputRef.current;\n if (editMode && input) {\n input.focus();\n input.select();\n }\n }, [editMode]);\n\n const handleClick = () => {\n setEditMode(true);\n setCachedValue(value);\n };\n\n const handleBlur: HvInputProps[\"onBlur\"] = (event) => {\n setEditMode(false);\n\n const newValue = value || cachedValue; // empty values should be ignored\n setValue(newValue);\n onBlur?.(event, newValue);\n };\n\n const handleKeyDown: HvInputProps[\"onKeyDown\"] = (event) => {\n if (isKey(event, \"Esc\")) {\n setEditMode(false);\n setValue(cachedValue);\n }\n onKeyDown?.(event as any);\n };\n\n const handleChange: HvInputProps[\"onChange\"] = (event, val) => {\n setValue(val);\n onChange?.(event, val);\n };\n\n return (\n <div className={cx(classes.root, className)}>\n {editMode && !disabled ? (\n <InputComponent\n inputRef={inputRef}\n classes={{\n root: classes.inputRoot,\n input: classes.input,\n inputBorderContainer: classes.inputBorderContainer,\n }}\n inputProps={{\n style: {\n ...typographyStyles,\n height: InputComponent === HvInput ? lineHeight : undefined,\n },\n }}\n value={value}\n onBlur={handleBlur}\n onChange={handleChange}\n onKeyDown={handleKeyDown}\n {...others}\n />\n ) : (\n <HvButton\n variant=\"secondaryGhost\"\n overrideIconColors={false}\n endIcon={\n <Edit\n color=\"secondary_60\"\n role=\"none\"\n className={cx(classes.icon, {\n [classes.iconVisible]: showIcon,\n })}\n />\n }\n className={cx(classes.button, {\n [classes.largeText]: parseInt(lineHeight as string, 10) >= 28,\n })}\n onClick={handleClick}\n disabled={disabled}\n {...buttonProps}\n >\n <HvTypography\n variant={variant}\n noWrap\n className={cx(classes.text, { [classes.textEmpty]: !value })}\n {...typographyProps}\n >\n {value || placeholder}\n </HvTypography>\n </HvButton>\n )}\n </div>\n );\n};\n"],"names":["HvInlineEditor","props","className","classes","classesProp","value","valueProp","defaultValue","showIcon","component","InputComponent","HvInput","variant","placeholder","onBlur","onChange","onKeyDown","buttonProps","typographyProps","disabled","others","useDefaultProps","cx","useClasses","setValue","useControlled","editMode","setEditMode","useState","cachedValue","setCachedValue","inputRef","useRef","activeTheme","useTheme","typographyStyles","typography","lineHeight","useLayoutEffect","input","current","focus","select","handleClick","handleBlur","event","newValue","handleKeyDown","isKey","handleChange","val","jsx","root","inputRoot","inputBorderContainer","style","height","undefined","HvButton","Edit","icon","iconVisible","button","largeText","parseInt","HvTypography","text","textEmpty"],"mappings":"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"}
@@ -40,11 +40,11 @@ const {
40
40
  maxWidth: "100%",
41
41
  justifyContent: "flex-start",
42
42
  alignItems: "center",
43
- backgroundColor: "transparent",
43
+ backgroundColor: uikitStyles.theme.colors.atmo1,
44
44
  border: `1px solid transparent`,
45
45
  "&:hover, &:focus": {
46
46
  border: `1px solid ${uikitStyles.theme.colors.primary}`,
47
- backgroundColor: "transparent",
47
+ backgroundColor: uikitStyles.theme.colors.atmo1,
48
48
  "& $icon": {
49
49
  visibility: "visible"
50
50
  }
@@ -1 +1 @@
1
- {"version":3,"file":"InlineEditor.styles.cjs","sources":["../../../../src/components/InlineEditor/InlineEditor.styles.tsx"],"sourcesContent":["import { theme } from \"@hitachivantara/uikit-styles\";\n\nimport { createClasses } from \"@core/utils/classes\";\nimport { inputClasses } from \"@core/components/Input\";\nimport { baseInputClasses } from \"@core/components/BaseInput\";\n\nexport const { staticClasses, useClasses } = createClasses(\"HvInlineEditor\", {\n root: {\n [`& .${baseInputClasses.inputRoot}.${inputClasses.inputRoot}`]: {\n height: \"100%\",\n minHeight: \"32px\",\n },\n },\n inputBorderContainer: {\n top: \"unset\",\n bottom: 0,\n },\n input: {},\n inputRoot: {},\n text: {\n overflow: \"hidden\",\n textOverflow: \"ellipsis\",\n whiteSpace: \"nowrap\",\n alignSelf: \"center\",\n },\n largeText: {},\n textEmpty: {\n color: theme.colors.secondary_60,\n },\n button: {\n padding: theme.spacing(\"6px\", \"8px\", \"5px\", \"8px\"),\n minHeight: \"32px\",\n\n boxSizing: \"border-box\",\n cursor: \"text\",\n height: \"100%\",\n width: \"100%\",\n maxWidth: \"100%\",\n justifyContent: \"flex-start\",\n alignItems: \"center\",\n\n backgroundColor: \"transparent\",\n border: `1px solid transparent`,\n\n \"&:hover, &:focus\": {\n border: `1px solid ${theme.colors.primary}`,\n backgroundColor: \"transparent\",\n\n \"& $icon\": {\n visibility: \"visible\",\n },\n },\n\n \"&:active\": {\n border: `1px solid ${theme.colors.secondary}`,\n backgroundColor: \"transparent\",\n\n \"& $icon\": {\n visibility: \"visible\",\n },\n },\n\n \"& > div\": {\n width: \"100%\",\n },\n \"& > div > span\": {\n width: \"100%\",\n },\n },\n icon: {\n cursor: \"pointer\",\n visibility: \"hidden\",\n alignSelf: \"center\",\n height: \"16px\",\n width: \"32px\",\n minWidth: \"32px\",\n\n \"& svg\": {\n margin: theme.spacing(0, \"xs\"),\n },\n },\n iconVisible: {\n visibility: \"visible\",\n },\n});\n"],"names":["staticClasses","useClasses","createClasses","root","baseInputClasses","inputRoot","inputClasses","height","minHeight","inputBorderContainer","top","bottom","input","text","overflow","textOverflow","whiteSpace","alignSelf","largeText","textEmpty","color","theme","colors","secondary_60","button","padding","spacing","boxSizing","cursor","width","maxWidth","justifyContent","alignItems","backgroundColor","border","primary","visibility","secondary","icon","minWidth","margin","iconVisible"],"mappings":";;;;;;AAMa,MAAA;AAAA,EAAEA;AAAAA,EAAeC;AAAW,IAAIC,QAAAA,cAAc,kBAAkB;AAAA,EAC3EC,MAAM;AAAA,IACJ,CAAE,MAAKC,+BAAiBC,SAAU,IAAGC,aAAaD,cAAAA,SAAU,EAAC,GAAG;AAAA,MAC9DE,QAAQ;AAAA,MACRC,WAAW;AAAA,IACb;AAAA,EACF;AAAA,EACAC,sBAAsB;AAAA,IACpBC,KAAK;AAAA,IACLC,QAAQ;AAAA,EACV;AAAA,EACAC,OAAO,CAAC;AAAA,EACRP,WAAW,CAAC;AAAA,EACZQ,MAAM;AAAA,IACJC,UAAU;AAAA,IACVC,cAAc;AAAA,IACdC,YAAY;AAAA,IACZC,WAAW;AAAA,EACb;AAAA,EACAC,WAAW,CAAC;AAAA,EACZC,WAAW;AAAA,IACTC,OAAOC,YAAAA,MAAMC,OAAOC;AAAAA,EACtB;AAAA,EACAC,QAAQ;AAAA,IACNC,SAASJ,YAAMK,MAAAA,QAAQ,OAAO,OAAO,OAAO,KAAK;AAAA,IACjDlB,WAAW;AAAA,IAEXmB,WAAW;AAAA,IACXC,QAAQ;AAAA,IACRrB,QAAQ;AAAA,IACRsB,OAAO;AAAA,IACPC,UAAU;AAAA,IACVC,gBAAgB;AAAA,IAChBC,YAAY;AAAA,IAEZC,iBAAiB;AAAA,IACjBC,QAAS;AAAA,IAET,oBAAoB;AAAA,MAClBA,QAAS,aAAYb,YAAMC,MAAAA,OAAOa,OAAQ;AAAA,MAC1CF,iBAAiB;AAAA,MAEjB,WAAW;AAAA,QACTG,YAAY;AAAA,MACd;AAAA,IACF;AAAA,IAEA,YAAY;AAAA,MACVF,QAAS,aAAYb,YAAMC,MAAAA,OAAOe,SAAU;AAAA,MAC5CJ,iBAAiB;AAAA,MAEjB,WAAW;AAAA,QACTG,YAAY;AAAA,MACd;AAAA,IACF;AAAA,IAEA,WAAW;AAAA,MACTP,OAAO;AAAA,IACT;AAAA,IACA,kBAAkB;AAAA,MAChBA,OAAO;AAAA,IACT;AAAA,EACF;AAAA,EACAS,MAAM;AAAA,IACJV,QAAQ;AAAA,IACRQ,YAAY;AAAA,IACZnB,WAAW;AAAA,IACXV,QAAQ;AAAA,IACRsB,OAAO;AAAA,IACPU,UAAU;AAAA,IAEV,SAAS;AAAA,MACPC,QAAQnB,YAAAA,MAAMK,QAAQ,GAAG,IAAI;AAAA,IAC/B;AAAA,EACF;AAAA,EACAe,aAAa;AAAA,IACXL,YAAY;AAAA,EACd;AACF,CAAC;;;"}
1
+ {"version":3,"file":"InlineEditor.styles.cjs","sources":["../../../../src/components/InlineEditor/InlineEditor.styles.tsx"],"sourcesContent":["import { theme } from \"@hitachivantara/uikit-styles\";\n\nimport { createClasses } from \"@core/utils/classes\";\nimport { inputClasses } from \"@core/components/Input\";\nimport { baseInputClasses } from \"@core/components/BaseInput\";\n\nexport const { staticClasses, useClasses } = createClasses(\"HvInlineEditor\", {\n root: {\n [`& .${baseInputClasses.inputRoot}.${inputClasses.inputRoot}`]: {\n height: \"100%\",\n minHeight: \"32px\",\n },\n },\n inputBorderContainer: {\n top: \"unset\",\n bottom: 0,\n },\n input: {},\n inputRoot: {},\n text: {\n overflow: \"hidden\",\n textOverflow: \"ellipsis\",\n whiteSpace: \"nowrap\",\n alignSelf: \"center\",\n },\n largeText: {},\n textEmpty: {\n color: theme.colors.secondary_60,\n },\n button: {\n padding: theme.spacing(\"6px\", \"8px\", \"5px\", \"8px\"),\n minHeight: \"32px\",\n\n boxSizing: \"border-box\",\n cursor: \"text\",\n height: \"100%\",\n width: \"100%\",\n maxWidth: \"100%\",\n justifyContent: \"flex-start\",\n alignItems: \"center\",\n\n backgroundColor: theme.colors.atmo1,\n border: `1px solid transparent`,\n\n \"&:hover, &:focus\": {\n border: `1px solid ${theme.colors.primary}`,\n backgroundColor: theme.colors.atmo1,\n\n \"& $icon\": {\n visibility: \"visible\",\n },\n },\n\n \"&:active\": {\n border: `1px solid ${theme.colors.secondary}`,\n backgroundColor: \"transparent\",\n\n \"& $icon\": {\n visibility: \"visible\",\n },\n },\n\n \"& > div\": {\n width: \"100%\",\n },\n \"& > div > span\": {\n width: \"100%\",\n },\n },\n icon: {\n cursor: \"pointer\",\n visibility: \"hidden\",\n alignSelf: \"center\",\n height: \"16px\",\n width: \"32px\",\n minWidth: \"32px\",\n\n \"& svg\": {\n margin: theme.spacing(0, \"xs\"),\n },\n },\n iconVisible: {\n visibility: \"visible\",\n },\n});\n"],"names":["staticClasses","useClasses","createClasses","root","baseInputClasses","inputRoot","inputClasses","height","minHeight","inputBorderContainer","top","bottom","input","text","overflow","textOverflow","whiteSpace","alignSelf","largeText","textEmpty","color","theme","colors","secondary_60","button","padding","spacing","boxSizing","cursor","width","maxWidth","justifyContent","alignItems","backgroundColor","atmo1","border","primary","visibility","secondary","icon","minWidth","margin","iconVisible"],"mappings":";;;;;;AAMa,MAAA;AAAA,EAAEA;AAAAA,EAAeC;AAAW,IAAIC,QAAAA,cAAc,kBAAkB;AAAA,EAC3EC,MAAM;AAAA,IACJ,CAAE,MAAKC,+BAAiBC,SAAU,IAAGC,aAAaD,cAAAA,SAAU,EAAC,GAAG;AAAA,MAC9DE,QAAQ;AAAA,MACRC,WAAW;AAAA,IACb;AAAA,EACF;AAAA,EACAC,sBAAsB;AAAA,IACpBC,KAAK;AAAA,IACLC,QAAQ;AAAA,EACV;AAAA,EACAC,OAAO,CAAC;AAAA,EACRP,WAAW,CAAC;AAAA,EACZQ,MAAM;AAAA,IACJC,UAAU;AAAA,IACVC,cAAc;AAAA,IACdC,YAAY;AAAA,IACZC,WAAW;AAAA,EACb;AAAA,EACAC,WAAW,CAAC;AAAA,EACZC,WAAW;AAAA,IACTC,OAAOC,YAAAA,MAAMC,OAAOC;AAAAA,EACtB;AAAA,EACAC,QAAQ;AAAA,IACNC,SAASJ,YAAMK,MAAAA,QAAQ,OAAO,OAAO,OAAO,KAAK;AAAA,IACjDlB,WAAW;AAAA,IAEXmB,WAAW;AAAA,IACXC,QAAQ;AAAA,IACRrB,QAAQ;AAAA,IACRsB,OAAO;AAAA,IACPC,UAAU;AAAA,IACVC,gBAAgB;AAAA,IAChBC,YAAY;AAAA,IAEZC,iBAAiBZ,YAAAA,MAAMC,OAAOY;AAAAA,IAC9BC,QAAS;AAAA,IAET,oBAAoB;AAAA,MAClBA,QAAS,aAAYd,YAAMC,MAAAA,OAAOc,OAAQ;AAAA,MAC1CH,iBAAiBZ,YAAAA,MAAMC,OAAOY;AAAAA,MAE9B,WAAW;AAAA,QACTG,YAAY;AAAA,MACd;AAAA,IACF;AAAA,IAEA,YAAY;AAAA,MACVF,QAAS,aAAYd,YAAMC,MAAAA,OAAOgB,SAAU;AAAA,MAC5CL,iBAAiB;AAAA,MAEjB,WAAW;AAAA,QACTI,YAAY;AAAA,MACd;AAAA,IACF;AAAA,IAEA,WAAW;AAAA,MACTR,OAAO;AAAA,IACT;AAAA,IACA,kBAAkB;AAAA,MAChBA,OAAO;AAAA,IACT;AAAA,EACF;AAAA,EACAU,MAAM;AAAA,IACJX,QAAQ;AAAA,IACRS,YAAY;AAAA,IACZpB,WAAW;AAAA,IACXV,QAAQ;AAAA,IACRsB,OAAO;AAAA,IACPW,UAAU;AAAA,IAEV,SAAS;AAAA,MACPC,QAAQpB,YAAAA,MAAMK,QAAQ,GAAG,IAAI;AAAA,IAC/B;AAAA,EACF;AAAA,EACAgB,aAAa;AAAA,IACXL,YAAY;AAAA,EACd;AACF,CAAC;;;"}
@@ -0,0 +1,50 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ const jsxRuntime = require("@emotion/react/jsx-runtime");
4
+ const useDefaultProps = require("../../hooks/useDefaultProps.cjs");
5
+ const useControlled = require("../../hooks/useControlled.cjs");
6
+ const useUniqueId = require("../../hooks/useUniqueId.cjs");
7
+ const uikitReactIcons = require("@hitachivantara/uikit-react-icons");
8
+ const setId = require("../../utils/setId.cjs");
9
+ const Section_styles = require("./Section.styles.cjs");
10
+ const Button = require("../Button/Button.cjs");
11
+ const HvSection = (props) => {
12
+ const {
13
+ id,
14
+ classes: classesProp,
15
+ className,
16
+ title,
17
+ expandable,
18
+ expanded,
19
+ defaultExpanded = true,
20
+ actions,
21
+ onToggle,
22
+ expandButtonProps,
23
+ children,
24
+ ...others
25
+ } = useDefaultProps.useDefaultProps("HvSection", props);
26
+ const {
27
+ classes,
28
+ cx
29
+ } = Section_styles.useClasses(classesProp);
30
+ const [isOpen, setIsOpen] = useControlled.useControlled(expanded, Boolean(defaultExpanded));
31
+ const elementId = useUniqueId.useUniqueId(id, "hvSection");
32
+ const contentId = setId.setId(elementId, "content");
33
+ const showContent = expandable ? !!isOpen : true;
34
+ return /* @__PURE__ */ jsxRuntime.jsxs("div", { id: elementId, className: cx(classes.root, className), ...others, children: [
35
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: classes.header, children: [
36
+ expandable && /* @__PURE__ */ jsxRuntime.jsx(Button.HvButton, { icon: true, onClick: (event) => {
37
+ setIsOpen((o) => !o);
38
+ onToggle == null ? void 0 : onToggle(event, !isOpen);
39
+ }, "aria-expanded": isOpen, "aria-controls": contentId, "aria-label": isOpen ? "Collapse" : "Expand", ...expandButtonProps, children: isOpen ? /* @__PURE__ */ jsxRuntime.jsx(uikitReactIcons.Up, {}) : /* @__PURE__ */ jsxRuntime.jsx(uikitReactIcons.Down, {}) }),
40
+ title,
41
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: classes.actions, children: actions })
42
+ ] }),
43
+ /* @__PURE__ */ jsxRuntime.jsx("div", { id: contentId, hidden: !isOpen, className: cx(classes.content, {
44
+ [classes.hidden]: !showContent
45
+ }), children })
46
+ ] });
47
+ };
48
+ exports.sectionClasses = Section_styles.staticClasses;
49
+ exports.HvSection = HvSection;
50
+ //# sourceMappingURL=Section.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Section.cjs","sources":["../../../../src/components/Section/Section.tsx"],"sourcesContent":["import { HvBaseProps } from \"@core/types/generic\";\nimport { ExtractNames } from \"@core/utils/classes\";\nimport { HvButton, HvButtonProps } from \"@core/components/Button\";\nimport { useDefaultProps } from \"@core/hooks/useDefaultProps\";\nimport { useControlled } from \"@core/hooks/useControlled\";\nimport { useUniqueId } from \"@core/hooks/useUniqueId\";\nimport { Down, Up } from \"@hitachivantara/uikit-react-icons\";\nimport { setId } from \"@core/utils/setId\";\nimport { staticClasses, useClasses } from \"./Section.styles\";\n\nexport { staticClasses as sectionClasses };\n\nexport type HvSectionClasses = ExtractNames<typeof useClasses>;\n\nexport interface HvSectionProps\n extends Omit<HvBaseProps<HTMLDivElement>, \"title\"> {\n /** The title of the section */\n title?: React.ReactNode;\n /** Whether or not the section is expandable. */\n expandable?: boolean;\n /** Whether the section is open or not, if this property is defined the accordion must be fully controlled. */\n expanded?: boolean;\n /** When uncontrolled, defines the initial expanded state. */\n defaultExpanded?: boolean;\n /** Section actions */\n // actions?: HvActionGeneric[];\n actions?: React.ReactNode;\n /** Section onExpand callback */\n onToggle?: (\n event: React.MouseEventHandler<HTMLButtonElement>,\n open: boolean\n ) => void;\n /** Props to be passed to the expand button */\n expandButtonProps?: HvButtonProps;\n /** A Jss Object used to override or extend the styles applied to the empty state component. */\n classes?: HvSectionClasses;\n}\n\n/**\n * Sections allow grouping information on a page under the same topic.\n */\nexport const HvSection = (props: HvSectionProps) => {\n const {\n id,\n classes: classesProp,\n className,\n title,\n expandable,\n expanded,\n defaultExpanded = true,\n actions,\n onToggle,\n expandButtonProps,\n children,\n ...others\n } = useDefaultProps(\"HvSection\", props);\n\n const { classes, cx } = useClasses(classesProp);\n\n const [isOpen, setIsOpen] = useControlled(expanded, Boolean(defaultExpanded));\n\n const elementId = useUniqueId(id, \"hvSection\");\n const contentId = setId(elementId, \"content\");\n\n const showContent = expandable ? !!isOpen : true;\n\n return (\n <div id={elementId} className={cx(classes.root, className)} {...others}>\n <div className={classes.header}>\n {expandable && (\n <HvButton\n icon\n onClick={(event) => {\n setIsOpen((o) => !o);\n onToggle?.(event, !isOpen);\n }}\n aria-expanded={isOpen}\n aria-controls={contentId}\n aria-label={isOpen ? \"Collapse\" : \"Expand\"}\n {...expandButtonProps}\n >\n {isOpen ? <Up /> : <Down />}\n </HvButton>\n )}\n {title}\n <div className={classes.actions}>{actions}</div>\n </div>\n <div\n id={contentId}\n hidden={!isOpen}\n className={cx(classes.content, { [classes.hidden]: !showContent })}\n >\n {children}\n </div>\n </div>\n );\n};\n"],"names":["HvSection","props","id","classes","classesProp","className","title","expandable","expanded","defaultExpanded","actions","onToggle","expandButtonProps","children","others","useDefaultProps","cx","useClasses","isOpen","setIsOpen","useControlled","Boolean","elementId","useUniqueId","contentId","setId","showContent","jsxs","root","header","jsx","HvButton","event","o","Up","Down","content","hidden"],"mappings":";;;;;;;;;;AAyCaA,MAAAA,YAAYA,CAACC,UAA0B;AAC5C,QAAA;AAAA,IACJC;AAAAA,IACAC,SAASC;AAAAA,IACTC;AAAAA,IACAC;AAAAA,IACAC;AAAAA,IACAC;AAAAA,IACAC,kBAAkB;AAAA,IAClBC;AAAAA,IACAC;AAAAA,IACAC;AAAAA,IACAC;AAAAA,IACA,GAAGC;AAAAA,EAAAA,IACDC,gBAAgB,gBAAA,aAAad,KAAK;AAEhC,QAAA;AAAA,IAAEE;AAAAA,IAASa;AAAAA,EAAAA,IAAOC,eAAAA,WAAWb,WAAW;AAExC,QAAA,CAACc,QAAQC,SAAS,IAAIC,cAAAA,cAAcZ,UAAUa,QAAQZ,eAAe,CAAC;AAEtEa,QAAAA,YAAYC,YAAAA,YAAYrB,IAAI,WAAW;AACvCsB,QAAAA,YAAYC,MAAAA,MAAMH,WAAW,SAAS;AAE5C,QAAMI,cAAcnB,aAAa,CAAC,CAACW,SAAS;AAG1C,SAAAS,2BAAA,KAAC,OAAI,EAAA,IAAIL,WAAW,WAAWN,GAAGb,QAAQyB,MAAMvB,SAAS,GAAOS,GAAAA,QAC9D,UAAA;AAAA,IAACa,2BAAA,KAAA,OAAA,EAAI,WAAWxB,QAAQ0B,QACrBtB,UAAAA;AAAAA,MAAAA,cACEuB,2BAAA,IAAAC,iBAAA,EACC,MAAI,MACJ,SAAUC,CAAU,UAAA;AACPC,kBAAAA,CAAAA,MAAM,CAACA,CAAC;AACRD,6CAAAA,OAAO,CAACd;AAAAA,MAAM,GAE3B,iBAAeA,QACf,iBAAeM,WACf,cAAYN,SAAS,aAAa,UAC9BN,GAAAA,mBAEHM,UAAS,SAAAY,2BAAA,IAACI,sBAAK,IAAGJ,+BAACK,gBAAAA,OAAO,CAAA,GAC7B;AAAA,MAED7B;AAAAA,MACAwB,2BAAA,IAAA,OAAA,EAAI,WAAW3B,QAAQO,SAAUA,UAAQ,SAAA;AAAA,IAAA,GAC5C;AAAA,IACAoB,2BAAAA,IAAC,OACC,EAAA,IAAIN,WACJ,QAAQ,CAACN,QACT,WAAWF,GAAGb,QAAQiC,SAAS;AAAA,MAAE,CAACjC,QAAQkC,MAAM,GAAG,CAACX;AAAAA,IAAAA,CAAa,GAEhEb,SACH,CAAA;AAAA,EACF,EAAA,CAAA;AAEJ;;;"}
@@ -0,0 +1,40 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ const uikitStyles = require("@hitachivantara/uikit-styles");
4
+ const classes = require("../../utils/classes.cjs");
5
+ const {
6
+ staticClasses,
7
+ useClasses
8
+ } = classes.createClasses("HvSection", {
9
+ root: {
10
+ width: "100%",
11
+ display: "flex",
12
+ flexDirection: "column",
13
+ padding: uikitStyles.theme.space.sm,
14
+ backgroundColor: uikitStyles.theme.colors.atmo1,
15
+ borderRadius: uikitStyles.theme.radii.round,
16
+ border: `1px solid ${uikitStyles.theme.colors.atmo4}`
17
+ },
18
+ hidden: {
19
+ height: 0,
20
+ display: "none"
21
+ },
22
+ header: {
23
+ display: "flex",
24
+ alignItems: "center",
25
+ position: "relative",
26
+ minHeight: uikitStyles.theme.sizes.sm
27
+ },
28
+ content: {
29
+ marginTop: uikitStyles.theme.space.sm
30
+ },
31
+ actions: {
32
+ display: "flex",
33
+ gap: uikitStyles.theme.space.xs,
34
+ position: "absolute",
35
+ right: 0
36
+ }
37
+ });
38
+ exports.staticClasses = staticClasses;
39
+ exports.useClasses = useClasses;
40
+ //# sourceMappingURL=Section.styles.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Section.styles.cjs","sources":["../../../../src/components/Section/Section.styles.tsx"],"sourcesContent":["import { theme } from \"@hitachivantara/uikit-styles\";\n\nimport { createClasses } from \"@core/utils/classes\";\n\nexport const { staticClasses, useClasses } = createClasses(\"HvSection\", {\n root: {\n width: \"100%\",\n display: \"flex\",\n flexDirection: \"column\",\n padding: theme.space.sm,\n backgroundColor: theme.colors.atmo1,\n borderRadius: theme.radii.round,\n border: `1px solid ${theme.colors.atmo4}`,\n },\n hidden: { height: 0, display: \"none\" },\n header: {\n display: \"flex\",\n alignItems: \"center\",\n position: \"relative\",\n minHeight: theme.sizes.sm,\n },\n content: {\n marginTop: theme.space.sm,\n },\n actions: {\n display: \"flex\",\n gap: theme.space.xs,\n position: \"absolute\",\n right: 0,\n },\n});\n"],"names":["staticClasses","useClasses","createClasses","root","width","display","flexDirection","padding","theme","space","sm","backgroundColor","colors","atmo1","borderRadius","radii","round","border","atmo4","hidden","height","header","alignItems","position","minHeight","sizes","content","marginTop","actions","gap","xs","right"],"mappings":";;;;AAIa,MAAA;AAAA,EAAEA;AAAAA,EAAeC;AAAW,IAAIC,QAAAA,cAAc,aAAa;AAAA,EACtEC,MAAM;AAAA,IACJC,OAAO;AAAA,IACPC,SAAS;AAAA,IACTC,eAAe;AAAA,IACfC,SAASC,YAAAA,MAAMC,MAAMC;AAAAA,IACrBC,iBAAiBH,YAAAA,MAAMI,OAAOC;AAAAA,IAC9BC,cAAcN,YAAAA,MAAMO,MAAMC;AAAAA,IAC1BC,QAAS,aAAYT,YAAMI,MAAAA,OAAOM,KAAM;AAAA,EAC1C;AAAA,EACAC,QAAQ;AAAA,IAAEC,QAAQ;AAAA,IAAGf,SAAS;AAAA,EAAO;AAAA,EACrCgB,QAAQ;AAAA,IACNhB,SAAS;AAAA,IACTiB,YAAY;AAAA,IACZC,UAAU;AAAA,IACVC,WAAWhB,YAAAA,MAAMiB,MAAMf;AAAAA,EACzB;AAAA,EACAgB,SAAS;AAAA,IACPC,WAAWnB,YAAAA,MAAMC,MAAMC;AAAAA,EACzB;AAAA,EACAkB,SAAS;AAAA,IACPvB,SAAS;AAAA,IACTwB,KAAKrB,YAAAA,MAAMC,MAAMqB;AAAAA,IACjBP,UAAU;AAAA,IACVQ,OAAO;AAAA,EACT;AACF,CAAC;;;"}
@@ -262,6 +262,8 @@ const CarouselControls = require("./components/Carousel/CarouselControls.cjs");
262
262
  const CarouselThumbnails = require("./components/Carousel/CarouselThumbnails.cjs");
263
263
  const TimePicker_styles = require("./components/TimePicker/TimePicker.styles.cjs");
264
264
  const TimePicker = require("./components/TimePicker/TimePicker.cjs");
265
+ const Section_styles = require("./components/Section/Section.styles.cjs");
266
+ const Section = require("./components/Section/Section.cjs");
265
267
  const useClickOutside = require("./hooks/useClickOutside.cjs");
266
268
  const useControlled = require("./hooks/useControlled.cjs");
267
269
  const useForkRef = require("./hooks/useForkRef.cjs");
@@ -622,6 +624,8 @@ exports.HvCarouselControls = CarouselControls.HvCarouselControls;
622
624
  exports.HvCarouselThumbnails = CarouselThumbnails.HvCarouselThumbnails;
623
625
  exports.timePickerClasses = TimePicker_styles.staticClasses;
624
626
  exports.HvTimePicker = TimePicker.HvTimePicker;
627
+ exports.sectionClasses = Section_styles.staticClasses;
628
+ exports.HvSection = Section.HvSection;
625
629
  exports.useClickOutside = useClickOutside.useClickOutside;
626
630
  exports.useControlled = useControlled.useControlled;
627
631
  exports.useForkRef = useForkRef.useForkRef;
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"index.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -6,7 +6,7 @@ import { useClasses } from "./BreadCrumb.styles.js";
6
6
  import { staticClasses } from "./BreadCrumb.styles.js";
7
7
  import { pathWithSubMenu, removeExtension } from "./utils.js";
8
8
  import { HvPathElement } from "./PathElement/PathElement.js";
9
- import { HvPage } from "./Page/Page.js";
9
+ import { HvBreadCrumbPage } from "./Page/Page.js";
10
10
  import { HvTypography } from "../Typography/Typography.js";
11
11
  const HvBreadCrumb = (props) => {
12
12
  const {
@@ -44,7 +44,7 @@ const HvBreadCrumb = (props) => {
44
44
  return /* @__PURE__ */ jsx(HvPathElement, { classes: {
45
45
  centerContainer: classes.centerContainer,
46
46
  separatorContainer: classes.separatorContainer
47
- }, last: isLast, children: isValidElement(elem) && elem || isLast && /* @__PURE__ */ jsx(HvTypography, { className: classes.currentPage, variant: "body", children: removeExtension(elem.label) }) || /* @__PURE__ */ jsx(HvPage, { elem, classes: {
47
+ }, last: isLast, children: isValidElement(elem) && elem || isLast && /* @__PURE__ */ jsx(HvTypography, { className: classes.currentPage, variant: "body", children: removeExtension(elem.label) }) || /* @__PURE__ */ jsx(HvBreadCrumbPage, { elem, classes: {
48
48
  a: classes.a,
49
49
  link: classes.link
50
50
  }, component, onClick }) }, key);
@@ -1 +1 @@
1
- {"version":3,"file":"BreadCrumb.js","sources":["../../../../src/components/BreadCrumb/BreadCrumb.tsx"],"sourcesContent":["import { isValidElement, MouseEvent } from \"react\";\n\nimport isNil from \"lodash/isNil\";\n\nimport { useDefaultProps } from \"@core/hooks/useDefaultProps\";\nimport { HvBaseProps } from \"@core/types/generic\";\nimport { HvDropDownMenuProps } from \"@core/components/DropDownMenu\";\nimport { ExtractNames } from \"@core/utils/classes\";\nimport { HvTypography } from \"@core/components/Typography\";\n\nimport { HvPathElement } from \"./PathElement\";\nimport { HvPage } from \"./Page\";\nimport { staticClasses, useClasses } from \"./BreadCrumb.styles\";\nimport { pathWithSubMenu, removeExtension } from \"./utils\";\nimport { HvBreadCrumbPathElement } from \"./types\";\n\nexport { staticClasses as breadCrumbClasses };\n\nexport type HvBreadCrumbClasses = ExtractNames<typeof useClasses>;\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 = (props: HvBreadCrumbProps) => {\n const {\n classes: classesProp,\n className,\n id,\n listRoute = [],\n maxVisible,\n url,\n onClick,\n component,\n dropDownMenuProps,\n ...others\n } = useDefaultProps(\"HvBreadCrumb\", props);\n\n const { classes, cx } = useClasses(classesProp);\n\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 listPath,\n maxVisibleElem,\n onClick,\n dropDownMenuProps\n )\n : listPath;\n\n return (\n <nav id={id} className={cx(classes.root, className)} {...others}>\n <ol className={classes.orderedList}>\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: classes.centerContainer,\n separatorContainer: classes.separatorContainer,\n }}\n key={key}\n last={isLast}\n >\n {(isValidElement(elem) && elem) ||\n (isLast && (\n <HvTypography className={classes.currentPage} variant=\"body\">\n {removeExtension(elem.label)}\n </HvTypography>\n )) || (\n <HvPage\n elem={elem}\n classes={{\n a: classes.a,\n link: classes.link,\n }}\n component={component}\n onClick={onClick}\n />\n )}\n </HvPathElement>\n );\n })}\n </ol>\n </nav>\n );\n};\n"],"names":["HvBreadCrumb","props","classes","classesProp","className","id","listRoute","maxVisible","url","onClick","component","dropDownMenuProps","others","useDefaultProps","cx","useClasses","maxVisibleElem","listPath","slice","isNil","baseUrl","match","urlWithoutDomain","replace","pathNames","split","filter","x","map","elem","index","push","label","decodeURI","path","join","breadcrumbPath","length","pathWithSubMenu","root","orderedList","key","isLast","centerContainer","separatorContainer","isValidElement","currentPage","removeExtension","a","link"],"mappings":";;;;;;;;;;AAyCaA,MAAAA,eAAeA,CAACC,UAA6B;AAClD,QAAA;AAAA,IACJC,SAASC;AAAAA,IACTC;AAAAA,IACAC;AAAAA,IACAC,YAAY,CAAE;AAAA,IACdC;AAAAA,IACAC;AAAAA,IACAC;AAAAA,IACAC;AAAAA,IACAC;AAAAA,IACA,GAAGC;AAAAA,EAAAA,IACDC,gBAAgB,gBAAgBZ,KAAK;AAEnC,QAAA;AAAA,IAAEC;AAAAA,IAASY;AAAAA,EAAAA,IAAOC,WAAWZ,WAAW;AAE9C,QAAMa,iBAAiBT,cAAcA,aAAa,IAAI,IAAIA;AACtDU,MAAAA,WAAWX,UAAUY;AAGrB,MAAA,CAACC,MAAMX,GAAG,GAAG;AACfS,eAAW,CAAA;AAGLG,UAAAA,UAAUZ,IAAIa,MAAM,cAAc;AAGxC,UAAMC,mBAAmBd,IAAIe,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,OAAQ,IAAGI,UAAUN,MAAM,GAAGY,QAAQ,CAAC,EAAEK,KAAK,GAAG,CAAE;AAAA,IAC7D,CAAA,CACH;AAAA,EACF;AAEMC,QAAAA,iBACJpB,kBAAkBC,SAASoB,SAASrB,iBAChCsB,gBACEjC,IACAY,UACAD,gBACAP,SACAE,iBACF,IACAM;AAGJ,SAAA,oBAAC,SAAI,IAAQ,WAAWH,GAAGZ,QAAQqC,MAAMnC,SAAS,GAAOQ,GAAAA,QACvD,UAAC,oBAAA,MAAA,EAAG,WAAWV,QAAQsC,aACpBvB,mBAASW,IAAI,CAACC,MAAMC,UAAU;AACvBW,UAAAA,MAAO,OAAMX,KAAM;AACnBY,UAAAA,SAASZ,UAAUM,eAAeC,SAAS;AAG/C,WAAA,oBAAC,iBACC,SAAS;AAAA,MACPM,iBAAiBzC,QAAQyC;AAAAA,MACzBC,oBAAoB1C,QAAQ0C;AAAAA,IAC9B,GAEA,MAAMF,QAEJG,UAAAA,eAAehB,IAAI,KAAKA,QACvBa,UACC,oBAAC,cAAa,EAAA,WAAWxC,QAAQ4C,aAAa,SAAQ,QACnDC,UAAAA,gBAAgBlB,KAAKG,KAAK,EAC7B,CAAA,KAEA,oBAAC,QACC,EAAA,MACA,SAAS;AAAA,MACPgB,GAAG9C,QAAQ8C;AAAAA,MACXC,MAAM/C,QAAQ+C;AAAAA,IAEhB,GAAA,WACA,QAEH,CAAA,EAAA,GAlBER,GAmBP;AAAA,EAAA,CAEH,GACH,EACF,CAAA;AAEJ;"}
1
+ {"version":3,"file":"BreadCrumb.js","sources":["../../../../src/components/BreadCrumb/BreadCrumb.tsx"],"sourcesContent":["import { isValidElement, MouseEvent } from \"react\";\n\nimport isNil from \"lodash/isNil\";\n\nimport { useDefaultProps } from \"@core/hooks/useDefaultProps\";\nimport { HvBaseProps } from \"@core/types/generic\";\nimport { HvDropDownMenuProps } from \"@core/components/DropDownMenu\";\nimport { ExtractNames } from \"@core/utils/classes\";\nimport { HvTypography } from \"@core/components/Typography\";\n\nimport { HvPathElement } from \"./PathElement\";\nimport { HvBreadCrumbPage } from \"./Page\";\nimport { staticClasses, useClasses } from \"./BreadCrumb.styles\";\nimport { pathWithSubMenu, removeExtension } from \"./utils\";\nimport { HvBreadCrumbPathElement } from \"./types\";\n\nexport { staticClasses as breadCrumbClasses };\n\nexport type HvBreadCrumbClasses = ExtractNames<typeof useClasses>;\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 = (props: HvBreadCrumbProps) => {\n const {\n classes: classesProp,\n className,\n id,\n listRoute = [],\n maxVisible,\n url,\n onClick,\n component,\n dropDownMenuProps,\n ...others\n } = useDefaultProps(\"HvBreadCrumb\", props);\n\n const { classes, cx } = useClasses(classesProp);\n\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 listPath,\n maxVisibleElem,\n onClick,\n dropDownMenuProps\n )\n : listPath;\n\n return (\n <nav id={id} className={cx(classes.root, className)} {...others}>\n <ol className={classes.orderedList}>\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: classes.centerContainer,\n separatorContainer: classes.separatorContainer,\n }}\n key={key}\n last={isLast}\n >\n {(isValidElement(elem) && elem) ||\n (isLast && (\n <HvTypography className={classes.currentPage} variant=\"body\">\n {removeExtension(elem.label)}\n </HvTypography>\n )) || (\n <HvBreadCrumbPage\n elem={elem}\n classes={{\n a: classes.a,\n link: classes.link,\n }}\n component={component}\n onClick={onClick}\n />\n )}\n </HvPathElement>\n );\n })}\n </ol>\n </nav>\n );\n};\n"],"names":["HvBreadCrumb","props","classes","classesProp","className","id","listRoute","maxVisible","url","onClick","component","dropDownMenuProps","others","useDefaultProps","cx","useClasses","maxVisibleElem","listPath","slice","isNil","baseUrl","match","urlWithoutDomain","replace","pathNames","split","filter","x","map","elem","index","push","label","decodeURI","path","join","breadcrumbPath","length","pathWithSubMenu","root","orderedList","key","isLast","centerContainer","separatorContainer","isValidElement","currentPage","removeExtension","a","link"],"mappings":";;;;;;;;;;AAyCaA,MAAAA,eAAeA,CAACC,UAA6B;AAClD,QAAA;AAAA,IACJC,SAASC;AAAAA,IACTC;AAAAA,IACAC;AAAAA,IACAC,YAAY,CAAE;AAAA,IACdC;AAAAA,IACAC;AAAAA,IACAC;AAAAA,IACAC;AAAAA,IACAC;AAAAA,IACA,GAAGC;AAAAA,EAAAA,IACDC,gBAAgB,gBAAgBZ,KAAK;AAEnC,QAAA;AAAA,IAAEC;AAAAA,IAASY;AAAAA,EAAAA,IAAOC,WAAWZ,WAAW;AAE9C,QAAMa,iBAAiBT,cAAcA,aAAa,IAAI,IAAIA;AACtDU,MAAAA,WAAWX,UAAUY;AAGrB,MAAA,CAACC,MAAMX,GAAG,GAAG;AACfS,eAAW,CAAA;AAGLG,UAAAA,UAAUZ,IAAIa,MAAM,cAAc;AAGxC,UAAMC,mBAAmBd,IAAIe,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,OAAQ,IAAGI,UAAUN,MAAM,GAAGY,QAAQ,CAAC,EAAEK,KAAK,GAAG,CAAE;AAAA,IAC7D,CAAA,CACH;AAAA,EACF;AAEMC,QAAAA,iBACJpB,kBAAkBC,SAASoB,SAASrB,iBAChCsB,gBACEjC,IACAY,UACAD,gBACAP,SACAE,iBACF,IACAM;AAGJ,SAAA,oBAAC,SAAI,IAAQ,WAAWH,GAAGZ,QAAQqC,MAAMnC,SAAS,GAAOQ,GAAAA,QACvD,UAAC,oBAAA,MAAA,EAAG,WAAWV,QAAQsC,aACpBvB,mBAASW,IAAI,CAACC,MAAMC,UAAU;AACvBW,UAAAA,MAAO,OAAMX,KAAM;AACnBY,UAAAA,SAASZ,UAAUM,eAAeC,SAAS;AAG/C,WAAA,oBAAC,iBACC,SAAS;AAAA,MACPM,iBAAiBzC,QAAQyC;AAAAA,MACzBC,oBAAoB1C,QAAQ0C;AAAAA,IAC9B,GAEA,MAAMF,QAEJG,UAAAA,eAAehB,IAAI,KAAKA,QACvBa,UACC,oBAAC,cAAa,EAAA,WAAWxC,QAAQ4C,aAAa,SAAQ,QACnDC,UAAAA,gBAAgBlB,KAAKG,KAAK,EAC7B,CAAA,KAEA,oBAAC,kBACC,EAAA,MACA,SAAS;AAAA,MACPgB,GAAG9C,QAAQ8C;AAAAA,MACXC,MAAM/C,QAAQ+C;AAAAA,IAEhB,GAAA,WACA,QAEH,CAAA,EAAA,GAlBER,GAmBP;AAAA,EAAA,CAEH,GACH,EACF,CAAA;AAEJ;"}
@@ -2,13 +2,15 @@ import { jsx } from "@emotion/react/jsx-runtime";
2
2
  import { useClasses } from "./Page.styles.js";
3
3
  import { staticClasses } from "./Page.styles.js";
4
4
  import { HvOverflowTooltip } from "../../OverflowTooltip/OverflowTooltip.js";
5
+ import { useDefaultProps } from "../../../hooks/useDefaultProps.js";
5
6
  import { HvTypography } from "../../Typography/Typography.js";
6
- const HvPage = ({
7
- component,
8
- onClick,
9
- elem,
10
- classes: classesProp
11
- }) => {
7
+ const HvBreadCrumbPage = (props) => {
8
+ const {
9
+ component,
10
+ onClick,
11
+ elem,
12
+ classes: classesProp
13
+ } = useDefaultProps("HvBreadCrumbPage", props);
12
14
  const {
13
15
  classes,
14
16
  cx
@@ -25,7 +27,7 @@ const HvPage = ({
25
27
  return /* @__PURE__ */ jsx(HvTypography, { noWrap: true, variant: "label", component: component || "a", href: elem.path, onClick: onClick && handleClick, className: cx(classes.link, classes.label, classes.a), ...others, children: /* @__PURE__ */ jsx(HvOverflowTooltip, { data: elem.label }) });
26
28
  };
27
29
  export {
28
- HvPage,
29
- staticClasses as pageClasses
30
+ HvBreadCrumbPage,
31
+ staticClasses as breadCrumbPageClasses
30
32
  };
31
33
  //# sourceMappingURL=Page.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Page.js","sources":["../../../../../src/components/BreadCrumb/Page/Page.tsx"],"sourcesContent":["import { MouseEvent } from \"react\";\n\nimport { HvTypography } from \"@core/components/Typography\";\nimport { HvOverflowTooltip } from \"@core/components/OverflowTooltip\";\nimport { ExtractNames } from \"@core/utils/classes\";\n\nimport { HvBreadCrumbPathElement } from \"../types\";\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","link","a"],"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,SACG,oBAAA,cAAA,EACC,QAAM,MACN,SAAQ,SACR,WAAWF,aAAa,KACxB,MAAME,KAAKM,MACX,SAASP,WAAWS,aACpB,WAAWL,GAAGF,QAAQU,MAAMV,QAAQI,OAAOJ,QAAQW,CAAC,GAChDL,GAAAA,QAEJ,UAAC,oBAAA,mBAAA,EAAkB,MAAMP,KAAKK,OAAM,EACtC,CAAA;AAEJ;"}
1
+ {"version":3,"file":"Page.js","sources":["../../../../../src/components/BreadCrumb/Page/Page.tsx"],"sourcesContent":["import { MouseEvent } from \"react\";\n\nimport { HvTypography } from \"@core/components/Typography\";\nimport { HvOverflowTooltip } from \"@core/components/OverflowTooltip\";\nimport { ExtractNames } from \"@core/utils/classes\";\nimport { useDefaultProps } from \"@core/hooks\";\n\nimport { HvBreadCrumbPathElement } from \"../types\";\nimport { staticClasses, useClasses } from \"./Page.styles\";\n\nexport { staticClasses as breadCrumbPageClasses };\n\nexport type HvBreadCrumbPageClasses = ExtractNames<typeof useClasses>;\n\nexport interface HvBreadCrumbPageProps {\n component?: React.ElementType;\n onClick?: (event: MouseEvent<HTMLElement>, data: any) => void;\n elem: HvBreadCrumbPathElement;\n classes?: HvBreadCrumbPageClasses;\n}\n\nexport const HvBreadCrumbPage = (props: HvBreadCrumbPageProps) => {\n const {\n component,\n onClick,\n elem,\n classes: classesProp,\n } = useDefaultProps(\"HvBreadCrumbPage\", props);\n\n const { classes, cx } = useClasses(classesProp);\n\n const { label, path, ...others } = elem;\n\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":["HvBreadCrumbPage","props","component","onClick","elem","classes","classesProp","useDefaultProps","cx","useClasses","label","path","others","handleClick","event","preventDefault","link","a"],"mappings":";;;;;;AAqBaA,MAAAA,mBAAmBA,CAACC,UAAiC;AAC1D,QAAA;AAAA,IACJC;AAAAA,IACAC;AAAAA,IACAC;AAAAA,IACAC,SAASC;AAAAA,EAAAA,IACPC,gBAAgB,oBAAoBN,KAAK;AAEvC,QAAA;AAAA,IAAEI;AAAAA,IAASG;AAAAA,EAAAA,IAAOC,WAAWH,WAAW;AAExC,QAAA;AAAA,IAAEI;AAAAA,IAAOC;AAAAA,IAAM,GAAGC;AAAAA,EAAWR,IAAAA;AAE7BS,QAAAA,cAAcA,CAACC,UAAmC;AACtDA,UAAMC,eAAe;AACrBZ,uCAAUW,OAAOV;AAAAA,EAAI;AAGvB,SACG,oBAAA,cAAA,EACC,QAAM,MACN,SAAQ,SACR,WAAWF,aAAa,KACxB,MAAME,KAAKO,MACX,SAASR,WAAWU,aACpB,WAAWL,GAAGH,QAAQW,MAAMX,QAAQK,OAAOL,QAAQY,CAAC,GAChDL,GAAAA,QAEJ,UAAC,oBAAA,mBAAA,EAAkB,MAAMR,KAAKM,OAAM,EACtC,CAAA;AAEJ;"}
@@ -4,7 +4,7 @@ import { outlineStyles } from "../../../utils/focusUtils.js";
4
4
  const {
5
5
  staticClasses,
6
6
  useClasses
7
- } = createClasses("HvPage", {
7
+ } = createClasses("HvBreadCrumbPage", {
8
8
  link: {
9
9
  padding: `8px ${theme.space.xs}`,
10
10
  borderRadius: theme.radii.base,
@@ -12,10 +12,10 @@ const {
12
12
  textTransform: "capitalize",
13
13
  "&:hover": {
14
14
  cursor: "pointer",
15
- backgroundColor: theme.colors.atmo3
15
+ backgroundColor: theme.colors.primary_20
16
16
  },
17
17
  "&:focus": {
18
- backgroundColor: theme.colors.atmo3
18
+ backgroundColor: theme.colors.primary_20
19
19
  },
20
20
  "&:focus-visible": {
21
21
  ...outlineStyles
@@ -1 +1 @@
1
- {"version":3,"file":"Page.styles.js","sources":["../../../../../src/components/BreadCrumb/Page/Page.styles.tsx"],"sourcesContent":["import { theme } from \"@hitachivantara/uikit-styles\";\n\nimport { createClasses } from \"@core/utils/classes\";\nimport { outlineStyles } from \"@core/utils/focusUtils\";\n\nexport const { staticClasses, useClasses } = createClasses(\"HvPage\", {\n link: {\n padding: `8px ${theme.space.xs}`,\n borderRadius: theme.radii.base,\n maxWidth: 170 + 16,\n textTransform: \"capitalize\",\n \"&:hover\": {\n cursor: \"pointer\",\n backgroundColor: theme.colors.atmo3,\n },\n \"&:focus\": {\n backgroundColor: theme.colors.atmo3,\n },\n \"&:focus-visible\": {\n ...outlineStyles,\n },\n },\n label: {},\n a: {},\n});\n"],"names":["staticClasses","useClasses","createClasses","link","padding","theme","space","xs","borderRadius","radii","base","maxWidth","textTransform","cursor","backgroundColor","colors","atmo3","outlineStyles","label","a"],"mappings":";;;AAKa,MAAA;AAAA,EAAEA;AAAAA,EAAeC;AAAW,IAAIC,cAAc,UAAU;AAAA,EACnEC,MAAM;AAAA,IACJC,SAAU,OAAMC,MAAMC,MAAMC,EAAG;AAAA,IAC/BC,cAAcH,MAAMI,MAAMC;AAAAA,IAC1BC,UAAU,MAAM;AAAA,IAChBC,eAAe;AAAA,IACf,WAAW;AAAA,MACTC,QAAQ;AAAA,MACRC,iBAAiBT,MAAMU,OAAOC;AAAAA,IAChC;AAAA,IACA,WAAW;AAAA,MACTF,iBAAiBT,MAAMU,OAAOC;AAAAA,IAChC;AAAA,IACA,mBAAmB;AAAA,MACjB,GAAGC;AAAAA,IACL;AAAA,EACF;AAAA,EACAC,OAAO,CAAC;AAAA,EACRC,GAAG,CAAC;AACN,CAAC;"}
1
+ {"version":3,"file":"Page.styles.js","sources":["../../../../../src/components/BreadCrumb/Page/Page.styles.tsx"],"sourcesContent":["import { theme } from \"@hitachivantara/uikit-styles\";\n\nimport { createClasses } from \"@core/utils/classes\";\nimport { outlineStyles } from \"@core/utils/focusUtils\";\n\nexport const { staticClasses, useClasses } = createClasses(\"HvBreadCrumbPage\", {\n link: {\n padding: `8px ${theme.space.xs}`,\n borderRadius: theme.radii.base,\n maxWidth: 170 + 16,\n textTransform: \"capitalize\",\n \"&:hover\": {\n cursor: \"pointer\",\n backgroundColor: theme.colors.primary_20,\n },\n \"&:focus\": {\n backgroundColor: theme.colors.primary_20,\n },\n \"&:focus-visible\": {\n ...outlineStyles,\n },\n },\n label: {},\n a: {},\n});\n"],"names":["staticClasses","useClasses","createClasses","link","padding","theme","space","xs","borderRadius","radii","base","maxWidth","textTransform","cursor","backgroundColor","colors","primary_20","outlineStyles","label","a"],"mappings":";;;AAKa,MAAA;AAAA,EAAEA;AAAAA,EAAeC;AAAW,IAAIC,cAAc,oBAAoB;AAAA,EAC7EC,MAAM;AAAA,IACJC,SAAU,OAAMC,MAAMC,MAAMC,EAAG;AAAA,IAC/BC,cAAcH,MAAMI,MAAMC;AAAAA,IAC1BC,UAAU,MAAM;AAAA,IAChBC,eAAe;AAAA,IACf,WAAW;AAAA,MACTC,QAAQ;AAAA,MACRC,iBAAiBT,MAAMU,OAAOC;AAAAA,IAChC;AAAA,IACA,WAAW;AAAA,MACTF,iBAAiBT,MAAMU,OAAOC;AAAAA,IAChC;AAAA,IACA,mBAAmB;AAAA,MACjB,GAAGC;AAAAA,IACL;AAAA,EACF;AAAA,EACAC,OAAO,CAAC;AAAA,EACRC,GAAG,CAAC;AACN,CAAC;"}
@@ -25,6 +25,7 @@ const HvInlineEditor = (props) => {
25
25
  onKeyDown,
26
26
  buttonProps,
27
27
  typographyProps,
28
+ disabled,
28
29
  ...others
29
30
  } = useDefaultProps("HvInlineEditor", props);
30
31
  const {
@@ -70,7 +71,7 @@ const HvInlineEditor = (props) => {
70
71
  setValue(val);
71
72
  onChange == null ? void 0 : onChange(event, val);
72
73
  };
73
- return /* @__PURE__ */ jsx("div", { className: cx(classes.root, className), children: editMode ? /* @__PURE__ */ jsx(InputComponent, { inputRef, classes: {
74
+ return /* @__PURE__ */ jsx("div", { className: cx(classes.root, className), children: editMode && !disabled ? /* @__PURE__ */ jsx(InputComponent, { inputRef, classes: {
74
75
  root: classes.inputRoot,
75
76
  input: classes.input,
76
77
  inputBorderContainer: classes.inputBorderContainer
@@ -83,7 +84,7 @@ const HvInlineEditor = (props) => {
83
84
  [classes.iconVisible]: showIcon
84
85
  }) }), className: cx(classes.button, {
85
86
  [classes.largeText]: parseInt(lineHeight, 10) >= 28
86
- }), onClick: handleClick, ...buttonProps, children: /* @__PURE__ */ jsx(HvTypography, { variant, noWrap: true, className: cx(classes.text, {
87
+ }), onClick: handleClick, disabled, ...buttonProps, children: /* @__PURE__ */ jsx(HvTypography, { variant, noWrap: true, className: cx(classes.text, {
87
88
  [classes.textEmpty]: !value
88
89
  }), ...typographyProps, children: value || placeholder }) }) });
89
90
  };
@@ -1 +1 @@
1
- {"version":3,"file":"InlineEditor.js","sources":["../../../../src/components/InlineEditor/InlineEditor.tsx"],"sourcesContent":["import React, { useLayoutEffect, useRef, useState } from \"react\";\nimport { useDefaultProps } from \"@core/hooks/useDefaultProps\";\n\nimport { Edit } from \"@hitachivantara/uikit-react-icons\";\n\nimport { HvBaseProps } from \"@core/types/generic\";\nimport { useControlled } from \"@core/hooks/useControlled\";\nimport { useTheme } from \"@core/hooks/useTheme\";\nimport { ExtractNames } from \"@core/utils/classes\";\nimport { isKey } from \"@core/utils/keyboardUtils\";\nimport { HvButtonProps, HvButton } from \"@core/components/Button\";\nimport {\n HvTypographyVariants,\n HvTypographyProps,\n HvTypography,\n} from \"@core/components/Typography\";\nimport { HvInput, HvInputProps } from \"@core/components/Input\";\n\nimport { staticClasses, useClasses } from \"./InlineEditor.styles\";\n\nexport { staticClasses as inlineEditorClasses };\n\nexport type HvInlineEditorClasses = ExtractNames<typeof useClasses>;\n\nexport interface HvInlineEditorProps\n extends HvBaseProps<HTMLDivElement, \"onBlur\" | \"onChange\"> {\n /** The value of the form element. */\n value?: string;\n /** Whether the Edit icon should always be visible */\n showIcon?: boolean;\n /** Component to use as the input. The component \"inherit\" from `HvBaseInput` (such as `HvInput` or `HvTextArea`) */\n component?: React.ElementType;\n /** Variant of the HvTypography to display */\n variant?: HvTypographyVariants;\n /** Called when the input is blurred. */\n onBlur?: (\n event: React.FocusEvent<HTMLTextAreaElement | HTMLInputElement>,\n value: string\n ) => void;\n /** Called when the input value changes. */\n onChange?: (event: React.SyntheticEvent, value: string) => void;\n /** Props passed to the HvButton component */\n buttonProps?: HvButtonProps;\n /** Props passed to the HvTypography text component */\n typographyProps?: HvTypographyProps;\n /** A Jss Object used to override or extend the styles applied to the empty state component. */\n classes?: HvInlineEditorClasses;\n}\n\n/**\n * An Inline Editor allows the user to edit a record without making a major switch\n * between viewing and editing, making it an efficient method of updating a record.\n */\nexport const HvInlineEditor = (props: HvInlineEditorProps) => {\n const {\n className,\n classes: classesProp,\n value: valueProp,\n defaultValue,\n showIcon,\n component: InputComponent = HvInput,\n variant = \"body\",\n placeholder = \"Enter text\",\n onBlur,\n onChange,\n onKeyDown,\n buttonProps,\n typographyProps,\n ...others\n } = useDefaultProps(\"HvInlineEditor\", props);\n\n const { classes, cx } = useClasses(classesProp);\n const [value, setValue] = useControlled(valueProp, defaultValue);\n const [editMode, setEditMode] = useState(false);\n const [cachedValue, setCachedValue] = useState(value);\n const inputRef = useRef<HTMLInputElement>();\n const { activeTheme } = useTheme();\n\n const typographyStyles = activeTheme?.typography[variant] || {};\n const { lineHeight } = typographyStyles;\n\n useLayoutEffect(() => {\n const input = inputRef.current;\n if (editMode && input) {\n input.focus();\n input.select();\n }\n }, [editMode]);\n\n const handleClick = () => {\n setEditMode(true);\n setCachedValue(value);\n };\n\n const handleBlur: HvInputProps[\"onBlur\"] = (event) => {\n setEditMode(false);\n\n const newValue = value || cachedValue; // empty values should be ignored\n setValue(newValue);\n onBlur?.(event, newValue);\n };\n\n const handleKeyDown: HvInputProps[\"onKeyDown\"] = (event) => {\n if (isKey(event, \"Esc\")) {\n setEditMode(false);\n setValue(cachedValue);\n }\n onKeyDown?.(event as any);\n };\n\n const handleChange: HvInputProps[\"onChange\"] = (event, val) => {\n setValue(val);\n onChange?.(event, val);\n };\n\n return (\n <div className={cx(classes.root, className)}>\n {editMode ? (\n <InputComponent\n inputRef={inputRef}\n classes={{\n root: classes.inputRoot,\n input: classes.input,\n inputBorderContainer: classes.inputBorderContainer,\n }}\n inputProps={{\n style: {\n ...typographyStyles,\n height: InputComponent === HvInput ? lineHeight : undefined,\n },\n }}\n value={value}\n onBlur={handleBlur}\n onChange={handleChange}\n onKeyDown={handleKeyDown}\n {...others}\n />\n ) : (\n <HvButton\n variant=\"secondaryGhost\"\n overrideIconColors={false}\n endIcon={\n <Edit\n color=\"secondary_60\"\n role=\"none\"\n className={cx(classes.icon, { [classes.iconVisible]: showIcon })}\n />\n }\n className={cx(classes.button, {\n [classes.largeText]: parseInt(lineHeight as string, 10) >= 28,\n })}\n onClick={handleClick}\n {...buttonProps}\n >\n <HvTypography\n variant={variant}\n noWrap\n className={cx(classes.text, { [classes.textEmpty]: !value })}\n {...typographyProps}\n >\n {value || placeholder}\n </HvTypography>\n </HvButton>\n )}\n </div>\n );\n};\n"],"names":["HvInlineEditor","props","className","classes","classesProp","value","valueProp","defaultValue","showIcon","component","InputComponent","HvInput","variant","placeholder","onBlur","onChange","onKeyDown","buttonProps","typographyProps","others","useDefaultProps","cx","useClasses","setValue","useControlled","editMode","setEditMode","useState","cachedValue","setCachedValue","inputRef","useRef","activeTheme","useTheme","typographyStyles","typography","lineHeight","useLayoutEffect","input","current","focus","select","handleClick","handleBlur","event","newValue","handleKeyDown","isKey","handleChange","val","root","inputRoot","inputBorderContainer","style","height","undefined","icon","iconVisible","button","largeText","parseInt","text","textEmpty"],"mappings":"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"}
1
+ {"version":3,"file":"InlineEditor.js","sources":["../../../../src/components/InlineEditor/InlineEditor.tsx"],"sourcesContent":["import React, { useLayoutEffect, useRef, useState } from \"react\";\nimport { useDefaultProps } from \"@core/hooks/useDefaultProps\";\n\nimport { Edit } from \"@hitachivantara/uikit-react-icons\";\n\nimport { HvBaseProps } from \"@core/types/generic\";\nimport { useControlled } from \"@core/hooks/useControlled\";\nimport { useTheme } from \"@core/hooks/useTheme\";\nimport { ExtractNames } from \"@core/utils/classes\";\nimport { isKey } from \"@core/utils/keyboardUtils\";\nimport { HvButtonProps, HvButton } from \"@core/components/Button\";\nimport {\n HvTypographyVariants,\n HvTypographyProps,\n HvTypography,\n} from \"@core/components/Typography\";\nimport { HvInput, HvInputProps } from \"@core/components/Input\";\n\nimport { staticClasses, useClasses } from \"./InlineEditor.styles\";\n\nexport { staticClasses as inlineEditorClasses };\n\nexport type HvInlineEditorClasses = ExtractNames<typeof useClasses>;\n\nexport interface HvInlineEditorProps\n extends HvBaseProps<HTMLDivElement, \"onBlur\" | \"onChange\"> {\n /** The value of the form element. */\n value?: string;\n /** Whether the Edit icon should always be visible */\n showIcon?: boolean;\n /** Component to use as the input. The component \"inherit\" from `HvBaseInput` (such as `HvInput` or `HvTextArea`) */\n component?: React.ElementType;\n /** Variant of the HvTypography to display */\n variant?: HvTypographyVariants;\n /** Called when the input is blurred. */\n onBlur?: (\n event: React.FocusEvent<HTMLTextAreaElement | HTMLInputElement>,\n value: string\n ) => void;\n /** Called when the input value changes. */\n onChange?: (event: React.SyntheticEvent, value: string) => void;\n /** Props passed to the HvButton component */\n buttonProps?: HvButtonProps;\n /** Props passed to the HvTypography text component */\n typographyProps?: HvTypographyProps;\n /** Whether the editor is disabled or not. */\n disabled?: boolean;\n /** A Jss Object used to override or extend the styles applied to the empty state component. */\n classes?: HvInlineEditorClasses;\n}\n\n/**\n * An Inline Editor allows the user to edit a record without making a major switch\n * between viewing and editing, making it an efficient method of updating a record.\n */\nexport const HvInlineEditor = (props: HvInlineEditorProps) => {\n const {\n className,\n classes: classesProp,\n value: valueProp,\n defaultValue,\n showIcon,\n component: InputComponent = HvInput,\n variant = \"body\",\n placeholder = \"Enter text\",\n onBlur,\n onChange,\n onKeyDown,\n buttonProps,\n typographyProps,\n disabled,\n ...others\n } = useDefaultProps(\"HvInlineEditor\", props);\n\n const { classes, cx } = useClasses(classesProp);\n const [value, setValue] = useControlled(valueProp, defaultValue);\n const [editMode, setEditMode] = useState(false);\n const [cachedValue, setCachedValue] = useState(value);\n const inputRef = useRef<HTMLInputElement>();\n const { activeTheme } = useTheme();\n\n const typographyStyles = activeTheme?.typography[variant] || {};\n const { lineHeight } = typographyStyles;\n\n useLayoutEffect(() => {\n const input = inputRef.current;\n if (editMode && input) {\n input.focus();\n input.select();\n }\n }, [editMode]);\n\n const handleClick = () => {\n setEditMode(true);\n setCachedValue(value);\n };\n\n const handleBlur: HvInputProps[\"onBlur\"] = (event) => {\n setEditMode(false);\n\n const newValue = value || cachedValue; // empty values should be ignored\n setValue(newValue);\n onBlur?.(event, newValue);\n };\n\n const handleKeyDown: HvInputProps[\"onKeyDown\"] = (event) => {\n if (isKey(event, \"Esc\")) {\n setEditMode(false);\n setValue(cachedValue);\n }\n onKeyDown?.(event as any);\n };\n\n const handleChange: HvInputProps[\"onChange\"] = (event, val) => {\n setValue(val);\n onChange?.(event, val);\n };\n\n return (\n <div className={cx(classes.root, className)}>\n {editMode && !disabled ? (\n <InputComponent\n inputRef={inputRef}\n classes={{\n root: classes.inputRoot,\n input: classes.input,\n inputBorderContainer: classes.inputBorderContainer,\n }}\n inputProps={{\n style: {\n ...typographyStyles,\n height: InputComponent === HvInput ? lineHeight : undefined,\n },\n }}\n value={value}\n onBlur={handleBlur}\n onChange={handleChange}\n onKeyDown={handleKeyDown}\n {...others}\n />\n ) : (\n <HvButton\n variant=\"secondaryGhost\"\n overrideIconColors={false}\n endIcon={\n <Edit\n color=\"secondary_60\"\n role=\"none\"\n className={cx(classes.icon, {\n [classes.iconVisible]: showIcon,\n })}\n />\n }\n className={cx(classes.button, {\n [classes.largeText]: parseInt(lineHeight as string, 10) >= 28,\n })}\n onClick={handleClick}\n disabled={disabled}\n {...buttonProps}\n >\n <HvTypography\n variant={variant}\n noWrap\n className={cx(classes.text, { [classes.textEmpty]: !value })}\n {...typographyProps}\n >\n {value || placeholder}\n </HvTypography>\n </HvButton>\n )}\n </div>\n );\n};\n"],"names":["HvInlineEditor","props","className","classes","classesProp","value","valueProp","defaultValue","showIcon","component","InputComponent","HvInput","variant","placeholder","onBlur","onChange","onKeyDown","buttonProps","typographyProps","disabled","others","useDefaultProps","cx","useClasses","setValue","useControlled","editMode","setEditMode","useState","cachedValue","setCachedValue","inputRef","useRef","activeTheme","useTheme","typographyStyles","typography","lineHeight","useLayoutEffect","input","current","focus","select","handleClick","handleBlur","event","newValue","handleKeyDown","isKey","handleChange","val","root","inputRoot","inputBorderContainer","style","height","undefined","icon","iconVisible","button","largeText","parseInt","text","textEmpty"],"mappings":"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"}
@@ -38,11 +38,11 @@ const {
38
38
  maxWidth: "100%",
39
39
  justifyContent: "flex-start",
40
40
  alignItems: "center",
41
- backgroundColor: "transparent",
41
+ backgroundColor: theme.colors.atmo1,
42
42
  border: `1px solid transparent`,
43
43
  "&:hover, &:focus": {
44
44
  border: `1px solid ${theme.colors.primary}`,
45
- backgroundColor: "transparent",
45
+ backgroundColor: theme.colors.atmo1,
46
46
  "& $icon": {
47
47
  visibility: "visible"
48
48
  }
@@ -1 +1 @@
1
- {"version":3,"file":"InlineEditor.styles.js","sources":["../../../../src/components/InlineEditor/InlineEditor.styles.tsx"],"sourcesContent":["import { theme } from \"@hitachivantara/uikit-styles\";\n\nimport { createClasses } from \"@core/utils/classes\";\nimport { inputClasses } from \"@core/components/Input\";\nimport { baseInputClasses } from \"@core/components/BaseInput\";\n\nexport const { staticClasses, useClasses } = createClasses(\"HvInlineEditor\", {\n root: {\n [`& .${baseInputClasses.inputRoot}.${inputClasses.inputRoot}`]: {\n height: \"100%\",\n minHeight: \"32px\",\n },\n },\n inputBorderContainer: {\n top: \"unset\",\n bottom: 0,\n },\n input: {},\n inputRoot: {},\n text: {\n overflow: \"hidden\",\n textOverflow: \"ellipsis\",\n whiteSpace: \"nowrap\",\n alignSelf: \"center\",\n },\n largeText: {},\n textEmpty: {\n color: theme.colors.secondary_60,\n },\n button: {\n padding: theme.spacing(\"6px\", \"8px\", \"5px\", \"8px\"),\n minHeight: \"32px\",\n\n boxSizing: \"border-box\",\n cursor: \"text\",\n height: \"100%\",\n width: \"100%\",\n maxWidth: \"100%\",\n justifyContent: \"flex-start\",\n alignItems: \"center\",\n\n backgroundColor: \"transparent\",\n border: `1px solid transparent`,\n\n \"&:hover, &:focus\": {\n border: `1px solid ${theme.colors.primary}`,\n backgroundColor: \"transparent\",\n\n \"& $icon\": {\n visibility: \"visible\",\n },\n },\n\n \"&:active\": {\n border: `1px solid ${theme.colors.secondary}`,\n backgroundColor: \"transparent\",\n\n \"& $icon\": {\n visibility: \"visible\",\n },\n },\n\n \"& > div\": {\n width: \"100%\",\n },\n \"& > div > span\": {\n width: \"100%\",\n },\n },\n icon: {\n cursor: \"pointer\",\n visibility: \"hidden\",\n alignSelf: \"center\",\n height: \"16px\",\n width: \"32px\",\n minWidth: \"32px\",\n\n \"& svg\": {\n margin: theme.spacing(0, \"xs\"),\n },\n },\n iconVisible: {\n visibility: \"visible\",\n },\n});\n"],"names":["staticClasses","useClasses","createClasses","root","baseInputClasses","inputRoot","inputClasses","height","minHeight","inputBorderContainer","top","bottom","input","text","overflow","textOverflow","whiteSpace","alignSelf","largeText","textEmpty","color","theme","colors","secondary_60","button","padding","spacing","boxSizing","cursor","width","maxWidth","justifyContent","alignItems","backgroundColor","border","primary","visibility","secondary","icon","minWidth","margin","iconVisible"],"mappings":";;;;AAMa,MAAA;AAAA,EAAEA;AAAAA,EAAeC;AAAW,IAAIC,cAAc,kBAAkB;AAAA,EAC3EC,MAAM;AAAA,IACJ,CAAE,MAAKC,gBAAiBC,SAAU,IAAGC,gBAAaD,SAAU,EAAC,GAAG;AAAA,MAC9DE,QAAQ;AAAA,MACRC,WAAW;AAAA,IACb;AAAA,EACF;AAAA,EACAC,sBAAsB;AAAA,IACpBC,KAAK;AAAA,IACLC,QAAQ;AAAA,EACV;AAAA,EACAC,OAAO,CAAC;AAAA,EACRP,WAAW,CAAC;AAAA,EACZQ,MAAM;AAAA,IACJC,UAAU;AAAA,IACVC,cAAc;AAAA,IACdC,YAAY;AAAA,IACZC,WAAW;AAAA,EACb;AAAA,EACAC,WAAW,CAAC;AAAA,EACZC,WAAW;AAAA,IACTC,OAAOC,MAAMC,OAAOC;AAAAA,EACtB;AAAA,EACAC,QAAQ;AAAA,IACNC,SAASJ,MAAMK,QAAQ,OAAO,OAAO,OAAO,KAAK;AAAA,IACjDlB,WAAW;AAAA,IAEXmB,WAAW;AAAA,IACXC,QAAQ;AAAA,IACRrB,QAAQ;AAAA,IACRsB,OAAO;AAAA,IACPC,UAAU;AAAA,IACVC,gBAAgB;AAAA,IAChBC,YAAY;AAAA,IAEZC,iBAAiB;AAAA,IACjBC,QAAS;AAAA,IAET,oBAAoB;AAAA,MAClBA,QAAS,aAAYb,MAAMC,OAAOa,OAAQ;AAAA,MAC1CF,iBAAiB;AAAA,MAEjB,WAAW;AAAA,QACTG,YAAY;AAAA,MACd;AAAA,IACF;AAAA,IAEA,YAAY;AAAA,MACVF,QAAS,aAAYb,MAAMC,OAAOe,SAAU;AAAA,MAC5CJ,iBAAiB;AAAA,MAEjB,WAAW;AAAA,QACTG,YAAY;AAAA,MACd;AAAA,IACF;AAAA,IAEA,WAAW;AAAA,MACTP,OAAO;AAAA,IACT;AAAA,IACA,kBAAkB;AAAA,MAChBA,OAAO;AAAA,IACT;AAAA,EACF;AAAA,EACAS,MAAM;AAAA,IACJV,QAAQ;AAAA,IACRQ,YAAY;AAAA,IACZnB,WAAW;AAAA,IACXV,QAAQ;AAAA,IACRsB,OAAO;AAAA,IACPU,UAAU;AAAA,IAEV,SAAS;AAAA,MACPC,QAAQnB,MAAMK,QAAQ,GAAG,IAAI;AAAA,IAC/B;AAAA,EACF;AAAA,EACAe,aAAa;AAAA,IACXL,YAAY;AAAA,EACd;AACF,CAAC;"}
1
+ {"version":3,"file":"InlineEditor.styles.js","sources":["../../../../src/components/InlineEditor/InlineEditor.styles.tsx"],"sourcesContent":["import { theme } from \"@hitachivantara/uikit-styles\";\n\nimport { createClasses } from \"@core/utils/classes\";\nimport { inputClasses } from \"@core/components/Input\";\nimport { baseInputClasses } from \"@core/components/BaseInput\";\n\nexport const { staticClasses, useClasses } = createClasses(\"HvInlineEditor\", {\n root: {\n [`& .${baseInputClasses.inputRoot}.${inputClasses.inputRoot}`]: {\n height: \"100%\",\n minHeight: \"32px\",\n },\n },\n inputBorderContainer: {\n top: \"unset\",\n bottom: 0,\n },\n input: {},\n inputRoot: {},\n text: {\n overflow: \"hidden\",\n textOverflow: \"ellipsis\",\n whiteSpace: \"nowrap\",\n alignSelf: \"center\",\n },\n largeText: {},\n textEmpty: {\n color: theme.colors.secondary_60,\n },\n button: {\n padding: theme.spacing(\"6px\", \"8px\", \"5px\", \"8px\"),\n minHeight: \"32px\",\n\n boxSizing: \"border-box\",\n cursor: \"text\",\n height: \"100%\",\n width: \"100%\",\n maxWidth: \"100%\",\n justifyContent: \"flex-start\",\n alignItems: \"center\",\n\n backgroundColor: theme.colors.atmo1,\n border: `1px solid transparent`,\n\n \"&:hover, &:focus\": {\n border: `1px solid ${theme.colors.primary}`,\n backgroundColor: theme.colors.atmo1,\n\n \"& $icon\": {\n visibility: \"visible\",\n },\n },\n\n \"&:active\": {\n border: `1px solid ${theme.colors.secondary}`,\n backgroundColor: \"transparent\",\n\n \"& $icon\": {\n visibility: \"visible\",\n },\n },\n\n \"& > div\": {\n width: \"100%\",\n },\n \"& > div > span\": {\n width: \"100%\",\n },\n },\n icon: {\n cursor: \"pointer\",\n visibility: \"hidden\",\n alignSelf: \"center\",\n height: \"16px\",\n width: \"32px\",\n minWidth: \"32px\",\n\n \"& svg\": {\n margin: theme.spacing(0, \"xs\"),\n },\n },\n iconVisible: {\n visibility: \"visible\",\n },\n});\n"],"names":["staticClasses","useClasses","createClasses","root","baseInputClasses","inputRoot","inputClasses","height","minHeight","inputBorderContainer","top","bottom","input","text","overflow","textOverflow","whiteSpace","alignSelf","largeText","textEmpty","color","theme","colors","secondary_60","button","padding","spacing","boxSizing","cursor","width","maxWidth","justifyContent","alignItems","backgroundColor","atmo1","border","primary","visibility","secondary","icon","minWidth","margin","iconVisible"],"mappings":";;;;AAMa,MAAA;AAAA,EAAEA;AAAAA,EAAeC;AAAW,IAAIC,cAAc,kBAAkB;AAAA,EAC3EC,MAAM;AAAA,IACJ,CAAE,MAAKC,gBAAiBC,SAAU,IAAGC,gBAAaD,SAAU,EAAC,GAAG;AAAA,MAC9DE,QAAQ;AAAA,MACRC,WAAW;AAAA,IACb;AAAA,EACF;AAAA,EACAC,sBAAsB;AAAA,IACpBC,KAAK;AAAA,IACLC,QAAQ;AAAA,EACV;AAAA,EACAC,OAAO,CAAC;AAAA,EACRP,WAAW,CAAC;AAAA,EACZQ,MAAM;AAAA,IACJC,UAAU;AAAA,IACVC,cAAc;AAAA,IACdC,YAAY;AAAA,IACZC,WAAW;AAAA,EACb;AAAA,EACAC,WAAW,CAAC;AAAA,EACZC,WAAW;AAAA,IACTC,OAAOC,MAAMC,OAAOC;AAAAA,EACtB;AAAA,EACAC,QAAQ;AAAA,IACNC,SAASJ,MAAMK,QAAQ,OAAO,OAAO,OAAO,KAAK;AAAA,IACjDlB,WAAW;AAAA,IAEXmB,WAAW;AAAA,IACXC,QAAQ;AAAA,IACRrB,QAAQ;AAAA,IACRsB,OAAO;AAAA,IACPC,UAAU;AAAA,IACVC,gBAAgB;AAAA,IAChBC,YAAY;AAAA,IAEZC,iBAAiBZ,MAAMC,OAAOY;AAAAA,IAC9BC,QAAS;AAAA,IAET,oBAAoB;AAAA,MAClBA,QAAS,aAAYd,MAAMC,OAAOc,OAAQ;AAAA,MAC1CH,iBAAiBZ,MAAMC,OAAOY;AAAAA,MAE9B,WAAW;AAAA,QACTG,YAAY;AAAA,MACd;AAAA,IACF;AAAA,IAEA,YAAY;AAAA,MACVF,QAAS,aAAYd,MAAMC,OAAOgB,SAAU;AAAA,MAC5CL,iBAAiB;AAAA,MAEjB,WAAW;AAAA,QACTI,YAAY;AAAA,MACd;AAAA,IACF;AAAA,IAEA,WAAW;AAAA,MACTR,OAAO;AAAA,IACT;AAAA,IACA,kBAAkB;AAAA,MAChBA,OAAO;AAAA,IACT;AAAA,EACF;AAAA,EACAU,MAAM;AAAA,IACJX,QAAQ;AAAA,IACRS,YAAY;AAAA,IACZpB,WAAW;AAAA,IACXV,QAAQ;AAAA,IACRsB,OAAO;AAAA,IACPW,UAAU;AAAA,IAEV,SAAS;AAAA,MACPC,QAAQpB,MAAMK,QAAQ,GAAG,IAAI;AAAA,IAC/B;AAAA,EACF;AAAA,EACAgB,aAAa;AAAA,IACXL,YAAY;AAAA,EACd;AACF,CAAC;"}
@@ -0,0 +1,51 @@
1
+ import { jsxs, jsx } from "@emotion/react/jsx-runtime";
2
+ import { useDefaultProps } from "../../hooks/useDefaultProps.js";
3
+ import { useControlled } from "../../hooks/useControlled.js";
4
+ import { useUniqueId } from "../../hooks/useUniqueId.js";
5
+ import { Up, Down } from "@hitachivantara/uikit-react-icons";
6
+ import { setId } from "../../utils/setId.js";
7
+ import { useClasses } from "./Section.styles.js";
8
+ import { staticClasses } from "./Section.styles.js";
9
+ import { HvButton } from "../Button/Button.js";
10
+ const HvSection = (props) => {
11
+ const {
12
+ id,
13
+ classes: classesProp,
14
+ className,
15
+ title,
16
+ expandable,
17
+ expanded,
18
+ defaultExpanded = true,
19
+ actions,
20
+ onToggle,
21
+ expandButtonProps,
22
+ children,
23
+ ...others
24
+ } = useDefaultProps("HvSection", props);
25
+ const {
26
+ classes,
27
+ cx
28
+ } = useClasses(classesProp);
29
+ const [isOpen, setIsOpen] = useControlled(expanded, Boolean(defaultExpanded));
30
+ const elementId = useUniqueId(id, "hvSection");
31
+ const contentId = setId(elementId, "content");
32
+ const showContent = expandable ? !!isOpen : true;
33
+ return /* @__PURE__ */ jsxs("div", { id: elementId, className: cx(classes.root, className), ...others, children: [
34
+ /* @__PURE__ */ jsxs("div", { className: classes.header, children: [
35
+ expandable && /* @__PURE__ */ jsx(HvButton, { icon: true, onClick: (event) => {
36
+ setIsOpen((o) => !o);
37
+ onToggle == null ? void 0 : onToggle(event, !isOpen);
38
+ }, "aria-expanded": isOpen, "aria-controls": contentId, "aria-label": isOpen ? "Collapse" : "Expand", ...expandButtonProps, children: isOpen ? /* @__PURE__ */ jsx(Up, {}) : /* @__PURE__ */ jsx(Down, {}) }),
39
+ title,
40
+ /* @__PURE__ */ jsx("div", { className: classes.actions, children: actions })
41
+ ] }),
42
+ /* @__PURE__ */ jsx("div", { id: contentId, hidden: !isOpen, className: cx(classes.content, {
43
+ [classes.hidden]: !showContent
44
+ }), children })
45
+ ] });
46
+ };
47
+ export {
48
+ HvSection,
49
+ staticClasses as sectionClasses
50
+ };
51
+ //# sourceMappingURL=Section.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Section.js","sources":["../../../../src/components/Section/Section.tsx"],"sourcesContent":["import { HvBaseProps } from \"@core/types/generic\";\nimport { ExtractNames } from \"@core/utils/classes\";\nimport { HvButton, HvButtonProps } from \"@core/components/Button\";\nimport { useDefaultProps } from \"@core/hooks/useDefaultProps\";\nimport { useControlled } from \"@core/hooks/useControlled\";\nimport { useUniqueId } from \"@core/hooks/useUniqueId\";\nimport { Down, Up } from \"@hitachivantara/uikit-react-icons\";\nimport { setId } from \"@core/utils/setId\";\nimport { staticClasses, useClasses } from \"./Section.styles\";\n\nexport { staticClasses as sectionClasses };\n\nexport type HvSectionClasses = ExtractNames<typeof useClasses>;\n\nexport interface HvSectionProps\n extends Omit<HvBaseProps<HTMLDivElement>, \"title\"> {\n /** The title of the section */\n title?: React.ReactNode;\n /** Whether or not the section is expandable. */\n expandable?: boolean;\n /** Whether the section is open or not, if this property is defined the accordion must be fully controlled. */\n expanded?: boolean;\n /** When uncontrolled, defines the initial expanded state. */\n defaultExpanded?: boolean;\n /** Section actions */\n // actions?: HvActionGeneric[];\n actions?: React.ReactNode;\n /** Section onExpand callback */\n onToggle?: (\n event: React.MouseEventHandler<HTMLButtonElement>,\n open: boolean\n ) => void;\n /** Props to be passed to the expand button */\n expandButtonProps?: HvButtonProps;\n /** A Jss Object used to override or extend the styles applied to the empty state component. */\n classes?: HvSectionClasses;\n}\n\n/**\n * Sections allow grouping information on a page under the same topic.\n */\nexport const HvSection = (props: HvSectionProps) => {\n const {\n id,\n classes: classesProp,\n className,\n title,\n expandable,\n expanded,\n defaultExpanded = true,\n actions,\n onToggle,\n expandButtonProps,\n children,\n ...others\n } = useDefaultProps(\"HvSection\", props);\n\n const { classes, cx } = useClasses(classesProp);\n\n const [isOpen, setIsOpen] = useControlled(expanded, Boolean(defaultExpanded));\n\n const elementId = useUniqueId(id, \"hvSection\");\n const contentId = setId(elementId, \"content\");\n\n const showContent = expandable ? !!isOpen : true;\n\n return (\n <div id={elementId} className={cx(classes.root, className)} {...others}>\n <div className={classes.header}>\n {expandable && (\n <HvButton\n icon\n onClick={(event) => {\n setIsOpen((o) => !o);\n onToggle?.(event, !isOpen);\n }}\n aria-expanded={isOpen}\n aria-controls={contentId}\n aria-label={isOpen ? \"Collapse\" : \"Expand\"}\n {...expandButtonProps}\n >\n {isOpen ? <Up /> : <Down />}\n </HvButton>\n )}\n {title}\n <div className={classes.actions}>{actions}</div>\n </div>\n <div\n id={contentId}\n hidden={!isOpen}\n className={cx(classes.content, { [classes.hidden]: !showContent })}\n >\n {children}\n </div>\n </div>\n );\n};\n"],"names":["HvSection","props","id","classes","classesProp","className","title","expandable","expanded","defaultExpanded","actions","onToggle","expandButtonProps","children","others","useDefaultProps","cx","useClasses","isOpen","setIsOpen","useControlled","Boolean","elementId","useUniqueId","contentId","setId","showContent","root","header","event","o","content","hidden"],"mappings":";;;;;;;;;AAyCaA,MAAAA,YAAYA,CAACC,UAA0B;AAC5C,QAAA;AAAA,IACJC;AAAAA,IACAC,SAASC;AAAAA,IACTC;AAAAA,IACAC;AAAAA,IACAC;AAAAA,IACAC;AAAAA,IACAC,kBAAkB;AAAA,IAClBC;AAAAA,IACAC;AAAAA,IACAC;AAAAA,IACAC;AAAAA,IACA,GAAGC;AAAAA,EAAAA,IACDC,gBAAgB,aAAad,KAAK;AAEhC,QAAA;AAAA,IAAEE;AAAAA,IAASa;AAAAA,EAAAA,IAAOC,WAAWb,WAAW;AAExC,QAAA,CAACc,QAAQC,SAAS,IAAIC,cAAcZ,UAAUa,QAAQZ,eAAe,CAAC;AAEtEa,QAAAA,YAAYC,YAAYrB,IAAI,WAAW;AACvCsB,QAAAA,YAAYC,MAAMH,WAAW,SAAS;AAE5C,QAAMI,cAAcnB,aAAa,CAAC,CAACW,SAAS;AAG1C,SAAA,qBAAC,OAAI,EAAA,IAAII,WAAW,WAAWN,GAAGb,QAAQwB,MAAMtB,SAAS,GAAOS,GAAAA,QAC9D,UAAA;AAAA,IAAC,qBAAA,OAAA,EAAI,WAAWX,QAAQyB,QACrBrB,UAAAA;AAAAA,MAAAA,cACE,oBAAA,UAAA,EACC,MAAI,MACJ,SAAUsB,CAAU,UAAA;AACPC,kBAAAA,CAAAA,MAAM,CAACA,CAAC;AACRD,6CAAAA,OAAO,CAACX;AAAAA,MAAM,GAE3B,iBAAeA,QACf,iBAAeM,WACf,cAAYN,SAAS,aAAa,UAC9BN,GAAAA,mBAEHM,UAAS,SAAA,oBAAC,MAAK,IAAG,oBAAC,OAAO,CAAA,GAC7B;AAAA,MAEDZ;AAAAA,MACA,oBAAA,OAAA,EAAI,WAAWH,QAAQO,SAAUA,UAAQ,SAAA;AAAA,IAAA,GAC5C;AAAA,IACA,oBAAC,OACC,EAAA,IAAIc,WACJ,QAAQ,CAACN,QACT,WAAWF,GAAGb,QAAQ4B,SAAS;AAAA,MAAE,CAAC5B,QAAQ6B,MAAM,GAAG,CAACN;AAAAA,IAAAA,CAAa,GAEhEb,SACH,CAAA;AAAA,EACF,EAAA,CAAA;AAEJ;"}
@@ -0,0 +1,40 @@
1
+ import { theme } from "@hitachivantara/uikit-styles";
2
+ import { createClasses } from "../../utils/classes.js";
3
+ const {
4
+ staticClasses,
5
+ useClasses
6
+ } = createClasses("HvSection", {
7
+ root: {
8
+ width: "100%",
9
+ display: "flex",
10
+ flexDirection: "column",
11
+ padding: theme.space.sm,
12
+ backgroundColor: theme.colors.atmo1,
13
+ borderRadius: theme.radii.round,
14
+ border: `1px solid ${theme.colors.atmo4}`
15
+ },
16
+ hidden: {
17
+ height: 0,
18
+ display: "none"
19
+ },
20
+ header: {
21
+ display: "flex",
22
+ alignItems: "center",
23
+ position: "relative",
24
+ minHeight: theme.sizes.sm
25
+ },
26
+ content: {
27
+ marginTop: theme.space.sm
28
+ },
29
+ actions: {
30
+ display: "flex",
31
+ gap: theme.space.xs,
32
+ position: "absolute",
33
+ right: 0
34
+ }
35
+ });
36
+ export {
37
+ staticClasses,
38
+ useClasses
39
+ };
40
+ //# sourceMappingURL=Section.styles.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Section.styles.js","sources":["../../../../src/components/Section/Section.styles.tsx"],"sourcesContent":["import { theme } from \"@hitachivantara/uikit-styles\";\n\nimport { createClasses } from \"@core/utils/classes\";\n\nexport const { staticClasses, useClasses } = createClasses(\"HvSection\", {\n root: {\n width: \"100%\",\n display: \"flex\",\n flexDirection: \"column\",\n padding: theme.space.sm,\n backgroundColor: theme.colors.atmo1,\n borderRadius: theme.radii.round,\n border: `1px solid ${theme.colors.atmo4}`,\n },\n hidden: { height: 0, display: \"none\" },\n header: {\n display: \"flex\",\n alignItems: \"center\",\n position: \"relative\",\n minHeight: theme.sizes.sm,\n },\n content: {\n marginTop: theme.space.sm,\n },\n actions: {\n display: \"flex\",\n gap: theme.space.xs,\n position: \"absolute\",\n right: 0,\n },\n});\n"],"names":["staticClasses","useClasses","createClasses","root","width","display","flexDirection","padding","theme","space","sm","backgroundColor","colors","atmo1","borderRadius","radii","round","border","atmo4","hidden","height","header","alignItems","position","minHeight","sizes","content","marginTop","actions","gap","xs","right"],"mappings":";;AAIa,MAAA;AAAA,EAAEA;AAAAA,EAAeC;AAAW,IAAIC,cAAc,aAAa;AAAA,EACtEC,MAAM;AAAA,IACJC,OAAO;AAAA,IACPC,SAAS;AAAA,IACTC,eAAe;AAAA,IACfC,SAASC,MAAMC,MAAMC;AAAAA,IACrBC,iBAAiBH,MAAMI,OAAOC;AAAAA,IAC9BC,cAAcN,MAAMO,MAAMC;AAAAA,IAC1BC,QAAS,aAAYT,MAAMI,OAAOM,KAAM;AAAA,EAC1C;AAAA,EACAC,QAAQ;AAAA,IAAEC,QAAQ;AAAA,IAAGf,SAAS;AAAA,EAAO;AAAA,EACrCgB,QAAQ;AAAA,IACNhB,SAAS;AAAA,IACTiB,YAAY;AAAA,IACZC,UAAU;AAAA,IACVC,WAAWhB,MAAMiB,MAAMf;AAAAA,EACzB;AAAA,EACAgB,SAAS;AAAA,IACPC,WAAWnB,MAAMC,MAAMC;AAAAA,EACzB;AAAA,EACAkB,SAAS;AAAA,IACPvB,SAAS;AAAA,IACTwB,KAAKrB,MAAMC,MAAMqB;AAAAA,IACjBP,UAAU;AAAA,IACVQ,OAAO;AAAA,EACT;AACF,CAAC;"}
package/dist/esm/index.js CHANGED
@@ -260,6 +260,8 @@ import { HvCarouselControls } from "./components/Carousel/CarouselControls.js";
260
260
  import { HvCarouselThumbnails } from "./components/Carousel/CarouselThumbnails.js";
261
261
  import { staticClasses as staticClasses112 } from "./components/TimePicker/TimePicker.styles.js";
262
262
  import { HvTimePicker } from "./components/TimePicker/TimePicker.js";
263
+ import { staticClasses as staticClasses113 } from "./components/Section/Section.styles.js";
264
+ import { HvSection } from "./components/Section/Section.js";
263
265
  import { useClickOutside } from "./hooks/useClickOutside.js";
264
266
  import { useControlled } from "./hooks/useControlled.js";
265
267
  import { useForkRef } from "./hooks/useForkRef.js";
@@ -393,6 +395,7 @@ export {
393
395
  HvRightControl,
394
396
  HvScrollToHorizontal,
395
397
  HvScrollToVertical,
398
+ HvSection,
396
399
  HvSelectionList,
397
400
  HvSimpleGrid,
398
401
  HvSlider,
@@ -575,6 +578,7 @@ export {
575
578
  staticClasses89 as rightControlClasses,
576
579
  staticClasses106 as scrollToHorizontalClasses,
577
580
  staticClasses104 as scrollToVerticalClasses,
581
+ staticClasses113 as sectionClasses,
578
582
  staticClasses11 as selectionListClasses,
579
583
  setElementAttrs,
580
584
  setId,
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -4000,6 +4000,8 @@ export declare interface HvInlineEditorProps extends HvBaseProps<HTMLDivElement,
4000
4000
  buttonProps?: HvButtonProps;
4001
4001
  /** Props passed to the HvTypography text component */
4002
4002
  typographyProps?: HvTypographyProps;
4003
+ /** Whether the editor is disabled or not. */
4004
+ disabled?: boolean;
4003
4005
  /** A Jss Object used to override or extend the styles applied to the empty state component. */
4004
4006
  classes?: HvInlineEditorClasses;
4005
4007
  }
@@ -5412,6 +5414,32 @@ export declare interface HvScrollToVerticalProps extends HvBaseProps<HTMLOListEl
5412
5414
  classes?: HvScrollToVerticalClasses;
5413
5415
  }
5414
5416
 
5417
+ /**
5418
+ * Sections allow grouping information on a page under the same topic.
5419
+ */
5420
+ export declare const HvSection: (props: HvSectionProps) => JSX_2.Element;
5421
+
5422
+ export declare type HvSectionClasses = ExtractNames<typeof useClasses_119>;
5423
+
5424
+ export declare interface HvSectionProps extends Omit<HvBaseProps<HTMLDivElement>, "title"> {
5425
+ /** The title of the section */
5426
+ title?: React.ReactNode;
5427
+ /** Whether or not the section is expandable. */
5428
+ expandable?: boolean;
5429
+ /** Whether the section is open or not, if this property is defined the accordion must be fully controlled. */
5430
+ expanded?: boolean;
5431
+ /** When uncontrolled, defines the initial expanded state. */
5432
+ defaultExpanded?: boolean;
5433
+ /** Section actions */
5434
+ actions?: React.ReactNode;
5435
+ /** Section onExpand callback */
5436
+ onToggle?: (event: React.MouseEventHandler<HTMLButtonElement>, open: boolean) => void;
5437
+ /** Props to be passed to the expand button */
5438
+ expandButtonProps?: HvButtonProps;
5439
+ /** A Jss Object used to override or extend the styles applied to the empty state component. */
5440
+ classes?: HvSectionClasses;
5441
+ }
5442
+
5415
5443
  /**
5416
5444
  * Allows the user to select one or more items from a list of choices.
5417
5445
  *
@@ -7570,6 +7598,14 @@ export declare const scrollToVerticalClasses: {
7570
7598
  positionAbsolute: "HvScrollToVertical-positionAbsolute";
7571
7599
  };
7572
7600
 
7601
+ export declare const sectionClasses: {
7602
+ hidden: "HvSection-hidden";
7603
+ content: "HvSection-content";
7604
+ header: "HvSection-header";
7605
+ root: "HvSection-root";
7606
+ actions: "HvSection-actions";
7607
+ };
7608
+
7573
7609
  export declare const selectionListClasses: {
7574
7610
  label: "HvSelectionList-label";
7575
7611
  root: "HvSelectionList-root";
@@ -7899,10 +7935,10 @@ export declare const treeViewItemClasses: {
7899
7935
  node: "HvVerticalNavigationTreeViewItem-node";
7900
7936
  focused: "HvVerticalNavigationTreeViewItem-focused";
7901
7937
  selectable: "HvVerticalNavigationTreeViewItem-selectable";
7938
+ expandable: "HvVerticalNavigationTreeViewItem-expandable";
7902
7939
  labelIcon: "HvVerticalNavigationTreeViewItem-labelIcon";
7903
7940
  collapsed: "HvVerticalNavigationTreeViewItem-collapsed";
7904
7941
  minimized: "HvVerticalNavigationTreeViewItem-minimized";
7905
- expandable: "HvVerticalNavigationTreeViewItem-expandable";
7906
7942
  unselected: "HvVerticalNavigationTreeViewItem-unselected";
7907
7943
  labelExpandable: "HvVerticalNavigationTreeViewItem-labelExpandable";
7908
7944
  };
@@ -8049,7 +8085,7 @@ declare const useClasses_102: (classesProp?: Partial<Record<"root", string>>, ad
8049
8085
  cx: (...args: any) => string;
8050
8086
  };
8051
8087
 
8052
- declare const useClasses_103: (classesProp?: Partial<Record<"content" | "unselectable" | "link" | "label" | "group" | "hide" | "expanded" | "disabled" | "selected" | "node" | "focused" | "selectable" | "labelIcon" | "collapsed" | "minimized" | "expandable" | "unselected" | "labelExpandable", string>>, addStatic?: boolean) => {
8088
+ declare const useClasses_103: (classesProp?: Partial<Record<"content" | "unselectable" | "link" | "label" | "group" | "hide" | "expanded" | "disabled" | "selected" | "node" | "focused" | "selectable" | "expandable" | "labelIcon" | "collapsed" | "minimized" | "unselected" | "labelExpandable", string>>, addStatic?: boolean) => {
8053
8089
  classes: {
8054
8090
  content: string;
8055
8091
  unselectable: string;
@@ -8063,10 +8099,10 @@ declare const useClasses_103: (classesProp?: Partial<Record<"content" | "unselec
8063
8099
  node: string;
8064
8100
  focused: string;
8065
8101
  selectable: string;
8102
+ expandable: string;
8066
8103
  labelIcon: string;
8067
8104
  collapsed: string;
8068
8105
  minimized: string;
8069
- expandable: string;
8070
8106
  unselected: string;
8071
8107
  labelExpandable: string;
8072
8108
  };
@@ -8389,6 +8425,21 @@ declare const useClasses_118: (classesProp?: Partial<Record<"placeholder" | "lab
8389
8425
  cx: (...args: any) => string;
8390
8426
  };
8391
8427
 
8428
+ declare const useClasses_119: (classesProp?: Partial<Record<"hidden" | "content" | "header" | "root" | "actions", string>>, addStatic?: boolean) => {
8429
+ classes: {
8430
+ hidden: string;
8431
+ content: string;
8432
+ header: string;
8433
+ root: string;
8434
+ actions: string;
8435
+ };
8436
+ css: {
8437
+ (template: TemplateStringsArray, ...args: CSSInterpolation[]): string;
8438
+ (...args: CSSInterpolation[]): string;
8439
+ };
8440
+ cx: (...args: any) => string;
8441
+ };
8442
+
8392
8443
  declare const useClasses_12: (classesProp?: Partial<Record<"root" | "popper" | "list", string>>, addStatic?: boolean) => {
8393
8444
  classes: {
8394
8445
  root: string;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hitachivantara/uikit-react-core",
3
- "version": "5.31.0",
3
+ "version": "5.32.0",
4
4
  "private": false,
5
5
  "author": "Hitachi Vantara UI Kit Team",
6
6
  "description": "Core React components for the NEXT Design System.",
@@ -33,9 +33,9 @@
33
33
  "@emotion/css": "^11.11.0",
34
34
  "@emotion/serialize": "^1.1.2",
35
35
  "@emotion/utils": "^1.2.1",
36
- "@hitachivantara/uikit-react-icons": "^5.6.9",
37
- "@hitachivantara/uikit-react-shared": "^5.1.13",
38
- "@hitachivantara/uikit-styles": "^5.13.1",
36
+ "@hitachivantara/uikit-react-icons": "^5.6.10",
37
+ "@hitachivantara/uikit-react-shared": "^5.1.14",
38
+ "@hitachivantara/uikit-styles": "^5.14.0",
39
39
  "@internationalized/date": "^3.2.0",
40
40
  "@mui/base": "^5.0.0-beta.4",
41
41
  "@popperjs/core": "^2.11.8",
@@ -64,7 +64,7 @@
64
64
  "access": "public",
65
65
  "directory": "package"
66
66
  },
67
- "gitHead": "a9944a858c166b604a1320c48bbec48c90bac568",
67
+ "gitHead": "c3dfa0e28fb43a89c410cd673b7e3ab20a7b70c6",
68
68
  "main": "dist/cjs/index.cjs",
69
69
  "exports": {
70
70
  ".": {