@hitachivantara/uikit-react-core 6.4.3 → 6.5.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.
@@ -47,6 +47,7 @@ const HvBannerContent = forwardRef(function HvBannerContent2(props, ref) {
47
47
  actionProps,
48
48
  onClose: (evt) => onClose?.(evt),
49
49
  onAction,
50
+ size,
50
51
  ...others,
51
52
  children: children ?? content
52
53
  }
@@ -1,18 +1,22 @@
1
- import { jsx } from "react/jsx-runtime";
1
+ import { jsx, jsxs } from "react/jsx-runtime";
2
2
  import { forwardRef, isValidElement } from "react";
3
- import { useDefaultProps, useTheme } from "@hitachivantara/uikit-react-utils";
3
+ import { useDefaultProps } from "@hitachivantara/uikit-react-utils";
4
+ import { SvgBase } from "../icons.js";
4
5
  import { useClasses } from "./BreadCrumb.styles.js";
5
6
  import { staticClasses } from "./BreadCrumb.styles.js";
6
7
  import { pathWithSubMenu, removeExtension } from "./utils.js";
7
8
  import { HvPathElement } from "./PathElement/PathElement.js";
8
9
  import { HvBreadCrumbPage } from "./Page/Page.js";
10
+ import { HvIconButton } from "../IconButton/IconButton.js";
9
11
  import { HvTypography } from "../Typography/Typography.js";
12
+ const HomeIcon = (props) => /* @__PURE__ */ jsx(SvgBase, { viewBox: "0 0 256 256", width: "16", height: "16", ...props, children: /* @__PURE__ */ jsx("path", { d: "M219.31,108.68l-80-80a16,16,0,0,0-22.62,0l-80,80A15.87,15.87,0,0,0,32,120v96a8,8,0,0,0,8,8h64a8,8,0,0,0,8-8V160h32v56a8,8,0,0,0,8,8h64a8,8,0,0,0,8-8V120A15.87,15.87,0,0,0,219.31,108.68ZM208,208H160V152a8,8,0,0,0-8-8H104a8,8,0,0,0-8,8v56H48V120l80-80,80,80Z" }) });
10
13
  const HvBreadCrumb = forwardRef(function HvBreadCrumb2(props, ref) {
11
14
  const {
12
15
  classes: classesProp,
13
16
  className,
14
17
  id,
15
18
  listRoute = [],
19
+ home,
16
20
  maxVisible,
17
21
  url,
18
22
  onClick,
@@ -22,7 +26,6 @@ const HvBreadCrumb = forwardRef(function HvBreadCrumb2(props, ref) {
22
26
  ...others
23
27
  } = useDefaultProps("HvBreadCrumb", props);
24
28
  const { classes, cx } = useClasses(classesProp);
25
- const { activeTheme } = useTheme();
26
29
  const maxVisibleElem = maxVisible && maxVisible < 2 ? 2 : maxVisible;
27
30
  let listPath = listRoute.slice();
28
31
  if (url != null) {
@@ -38,46 +41,68 @@ const HvBreadCrumb = forwardRef(function HvBreadCrumb2(props, ref) {
38
41
  listPath,
39
42
  maxVisibleElem,
40
43
  onClick,
41
- dropDownMenuProps,
42
- activeTheme?.name === "pentahoPlus" ? 2 : 1
44
+ dropDownMenuProps
43
45
  ) : listPath;
44
- return /* @__PURE__ */ jsx("nav", { ref, id, className: cx(classes.root, className), ...others, children: /* @__PURE__ */ jsx("ol", { className: classes.orderedList, children: listPath.map((elem, index) => {
45
- const key = `key_${index}`;
46
- const isLast = index === breadcrumbPath.length - 1;
47
- const isFirst = index === 0;
48
- return /* @__PURE__ */ jsx(
46
+ return /* @__PURE__ */ jsx("nav", { ref, id, className: cx(classes.root, className), ...others, children: /* @__PURE__ */ jsxs("ol", { className: classes.orderedList, children: [
47
+ home && /* @__PURE__ */ jsx(
49
48
  HvPathElement,
50
49
  {
51
50
  classes: {
52
51
  centerContainer: classes.centerContainer,
53
52
  separatorContainer: classes.separatorContainer
54
53
  },
55
- last: isLast,
56
54
  separator,
57
- children: isValidElement(elem) && elem || isLast && /* @__PURE__ */ jsx(
58
- HvTypography,
59
- {
60
- className: classes.currentPage,
61
- variant: "caption1",
62
- children: removeExtension(elem.label)
63
- }
64
- ) || /* @__PURE__ */ jsx(
65
- HvBreadCrumbPage,
55
+ children: /* @__PURE__ */ jsx(
56
+ HvIconButton,
66
57
  {
67
- elem,
68
- showHome: isFirst && activeTheme?.name === "pentahoPlus",
69
- classes: {
70
- a: classes.a,
71
- link: classes.link
58
+ title: home.label,
59
+ component: component || "a",
60
+ href: home.path,
61
+ onClick: (event) => {
62
+ event.preventDefault();
63
+ onClick?.(event, home);
72
64
  },
73
- component,
74
- onClick
65
+ children: /* @__PURE__ */ jsx(HomeIcon, {})
75
66
  }
76
67
  )
77
- },
78
- key
79
- );
80
- }) }) });
68
+ }
69
+ ),
70
+ listPath.map((elem, index) => {
71
+ const key = `key_${index}`;
72
+ const isLast = index === breadcrumbPath.length - 1;
73
+ return /* @__PURE__ */ jsx(
74
+ HvPathElement,
75
+ {
76
+ classes: {
77
+ centerContainer: classes.centerContainer,
78
+ separatorContainer: classes.separatorContainer
79
+ },
80
+ last: isLast,
81
+ separator,
82
+ children: isValidElement(elem) && elem || isLast && /* @__PURE__ */ jsx(
83
+ HvTypography,
84
+ {
85
+ className: classes.currentPage,
86
+ variant: "caption1",
87
+ children: removeExtension(elem.label)
88
+ }
89
+ ) || /* @__PURE__ */ jsx(
90
+ HvBreadCrumbPage,
91
+ {
92
+ elem,
93
+ classes: {
94
+ a: classes.a,
95
+ link: classes.link
96
+ },
97
+ component,
98
+ onClick
99
+ }
100
+ )
101
+ },
102
+ key
103
+ );
104
+ })
105
+ ] }) });
81
106
  });
82
107
  export {
83
108
  HvBreadCrumb,
@@ -1,18 +1,14 @@
1
1
  import { jsx } from "react/jsx-runtime";
2
2
  import { useDefaultProps } from "@hitachivantara/uikit-react-utils";
3
- import { SvgBase } from "../../icons.js";
4
3
  import { useClasses } from "./Page.styles.js";
5
4
  import { staticClasses } from "./Page.styles.js";
6
- import { HvIconButton } from "../../IconButton/IconButton.js";
7
5
  import { HvTypography } from "../../Typography/Typography.js";
8
6
  import { HvOverflowTooltip } from "../../OverflowTooltip/OverflowTooltip.js";
9
- const HomeIcon = (props) => /* @__PURE__ */ jsx(SvgBase, { viewBox: "0 0 256 256", width: "16", height: "16", ...props, children: /* @__PURE__ */ jsx("path", { d: "M219.31,108.68l-80-80a16,16,0,0,0-22.62,0l-80,80A15.87,15.87,0,0,0,32,120v96a8,8,0,0,0,8,8h64a8,8,0,0,0,8-8V160h32v56a8,8,0,0,0,8,8h64a8,8,0,0,0,8-8V120A15.87,15.87,0,0,0,219.31,108.68ZM208,208H160V152a8,8,0,0,0-8-8H104a8,8,0,0,0-8,8v56H48V120l80-80,80,80Z" }) });
10
7
  const HvBreadCrumbPage = (props) => {
11
8
  const {
12
9
  component,
13
10
  onClick,
14
11
  elem,
15
- showHome,
16
12
  classes: classesProp
17
13
  } = useDefaultProps("HvBreadCrumbPage", props);
18
14
  const { classes, cx } = useClasses(classesProp);
@@ -21,16 +17,7 @@ const HvBreadCrumbPage = (props) => {
21
17
  event.preventDefault();
22
18
  onClick?.(event, elem);
23
19
  };
24
- return showHome ? /* @__PURE__ */ jsx(
25
- HvIconButton,
26
- {
27
- title: elem.label,
28
- component: component || "a",
29
- href: elem.path,
30
- onClick: onClick && handleClick,
31
- children: /* @__PURE__ */ jsx(HomeIcon, {})
32
- }
33
- ) : /* @__PURE__ */ jsx(
20
+ return /* @__PURE__ */ jsx(
34
21
  HvTypography,
35
22
  {
36
23
  noWrap: true,
@@ -2,18 +2,15 @@ import { jsx } from "react/jsx-runtime";
2
2
  import { HvIcon } from "../icons.js";
3
3
  import { HvDropDownMenu } from "../DropDownMenu/DropDownMenu.js";
4
4
  const removeExtension = (label) => label.includes(".") ? label.slice(0, label.lastIndexOf(".")) : label;
5
- const pathWithSubMenu = (id, listRoute, maxVisible, onClick, dropDownMenuProps, moreOptionsPosition = 1) => {
5
+ const pathWithSubMenu = (id, listRoute, maxVisible, onClick, dropDownMenuProps) => {
6
6
  const nbrElemToSubMenu = listRoute.length - maxVisible;
7
- const subMenuList = listRoute.slice(
8
- 1,
9
- nbrElemToSubMenu + moreOptionsPosition
10
- );
7
+ const subMenuList = listRoute.slice(1, nbrElemToSubMenu + 1);
11
8
  const handleClick = (event, data) => {
12
9
  event.preventDefault();
13
10
  onClick?.(event, data);
14
11
  };
15
12
  listRoute.splice(
16
- moreOptionsPosition,
13
+ 1,
17
14
  nbrElemToSubMenu,
18
15
  /* @__PURE__ */ jsx(
19
16
  HvDropDownMenu,
@@ -13,14 +13,15 @@ const HvBulkActions = forwardRef(function HvBulkActions2(props, ref) {
13
13
  className,
14
14
  classes: classesProp,
15
15
  selectAllPagesLabel,
16
- actionsDisabled,
16
+ disabled,
17
+ actionsDisabled: actionsDisabledProp,
17
18
  maxVisibleActions,
18
19
  checkboxProps,
19
20
  actions,
20
21
  numTotal = 0,
21
22
  numSelected = 0,
22
23
  selectAllConjunctionLabel = "/",
23
- showSelectAllPages = false,
24
+ showSelectAllPages,
24
25
  semantic = true,
25
26
  onAction,
26
27
  onSelectAll,
@@ -30,22 +31,23 @@ const HvBulkActions = forwardRef(function HvBulkActions2(props, ref) {
30
31
  const { classes, cx } = useClasses(classesProp);
31
32
  const anySelected = numSelected > 0;
32
33
  const isSemantic = semantic && anySelected;
34
+ const actionsDisabled = disabled || actionsDisabledProp;
33
35
  return /* @__PURE__ */ jsxs(
34
36
  "div",
35
37
  {
36
38
  ref,
37
39
  id,
38
- className: cx(
39
- classes.root,
40
- { [classes.semantic]: isSemantic },
41
- className
42
- ),
40
+ className: cx(classes.root, className, {
41
+ [classes.semantic]: isSemantic,
42
+ [classes.disabled]: disabled
43
+ }),
43
44
  ...others,
44
45
  children: [
45
46
  /* @__PURE__ */ jsxs("div", { className: classes.selectAllContainer, children: [
46
47
  /* @__PURE__ */ jsx(
47
48
  HvCheckBox,
48
49
  {
50
+ disabled,
49
51
  className: classes.selectAll,
50
52
  checked: numSelected > 0,
51
53
  semantic: isSemantic,
@@ -67,6 +69,7 @@ const HvBulkActions = forwardRef(function HvBulkActions2(props, ref) {
67
69
  /* @__PURE__ */ jsx(
68
70
  HvButton,
69
71
  {
72
+ disabled,
70
73
  className: classes.selectAllPages,
71
74
  variant: isSemantic ? "primaryGhost" : "secondaryGhost",
72
75
  onClick: onSelectAllPages,
@@ -12,15 +12,10 @@ const { staticClasses, useClasses } = createClasses("HvBulkActions", {
12
12
  marginBottom: theme.space.xs
13
13
  },
14
14
  semantic: {
15
- backgroundColor: theme.colors.bgHover,
16
- "& $selectAll div": {
17
- "&:hover:not(:disabled)": {
18
- backgroundColor: theme.alpha("textLight", 0.3)
19
- }
20
- },
21
- "& $selectAll:focus-within div": {
22
- backgroundColor: theme.alpha("textLight", 0.3)
23
- }
15
+ backgroundColor: theme.colors.bgHover
16
+ },
17
+ disabled: {
18
+ backgroundColor: theme.colors.bgDisabled
24
19
  },
25
20
  actions: {
26
21
  display: "inline-flex",
@@ -32,15 +27,18 @@ const { staticClasses, useClasses } = createClasses("HvBulkActions", {
32
27
  }
33
28
  }
34
29
  },
35
- selectAllContainer: { display: "flex", alignItems: "center" },
30
+ selectAllContainer: {
31
+ display: "flex",
32
+ alignItems: "center",
33
+ gap: theme.space.xs
34
+ },
36
35
  selectAll: {},
37
36
  selectAllPages: {},
38
37
  divider: {
39
38
  display: "flex",
40
39
  backgroundColor: theme.colors.border,
41
40
  width: "1px",
42
- height: "32px",
43
- marginLeft: theme.space.sm
41
+ height: "32px"
44
42
  }
45
43
  });
46
44
  export {
@@ -29,6 +29,7 @@ const HvSnackbar = forwardRef(function HvSnackbar2(props, ref) {
29
29
  container,
30
30
  offset = 60,
31
31
  snackbarContentProps,
32
+ size,
32
33
  ...others
33
34
  } = useDefaultProps("HvSnackbar", props);
34
35
  const { classes } = useClasses(classesProp);
@@ -78,6 +79,7 @@ const HvSnackbar = forwardRef(function HvSnackbar2(props, ref) {
78
79
  action,
79
80
  onAction,
80
81
  onClose,
82
+ size,
81
83
  ...snackbarContentProps
82
84
  }
83
85
  )
@@ -18,6 +18,7 @@ const HvSnackbarContent = forwardRef(function HvSnackbarContent2(props, ref) {
18
18
  action,
19
19
  onAction,
20
20
  onClose,
21
+ size,
21
22
  ...others
22
23
  } = useDefaultProps("HvSnackbarContent", props);
23
24
  const { classes, cx } = useClasses(classesProp);
@@ -40,6 +41,7 @@ const HvSnackbarContent = forwardRef(function HvSnackbarContent2(props, ref) {
40
41
  actions: isActionGeneric(action) ? [action] : action,
41
42
  onClose,
42
43
  onAction,
44
+ size,
43
45
  ...others,
44
46
  children: label
45
47
  }
package/dist/index.d.ts CHANGED
@@ -369,6 +369,7 @@ export declare const breadCrumbClasses: {
369
369
  export declare const bulkActionsClasses: {
370
370
  root: string;
371
371
  semantic: string;
372
+ disabled: string;
372
373
  actions: string;
373
374
  selectAllContainer: string;
374
375
  selectAll: string;
@@ -1234,7 +1235,7 @@ export declare interface HvBannerContentProps extends Omit<SnackbarContentProps,
1234
1235
  /** The props to pass down to the Action Container. */
1235
1236
  actionProps?: Partial<HvButtonProps>;
1236
1237
  /** The size of the banner. */
1237
- size?: HvCalloutProps["size"];
1238
+ size?: Extract<HvCalloutProps["size"], "regular" | "large" | "micro">;
1238
1239
  /** A Jss Object used to override or extend the styles applied to the component. */
1239
1240
  classes?: HvBannerContentClasses;
1240
1241
  }
@@ -1691,6 +1692,8 @@ export declare interface HvBreadCrumbPathElement extends Record<string, any> {
1691
1692
  export declare interface HvBreadCrumbProps extends HvBaseProps<HTMLDivElement, "onClick"> {
1692
1693
  /** List of breadcrumb. */
1693
1694
  listRoute?: HvBreadCrumbPathElement[];
1695
+ /** Home breadcrumb element. If passed, it will be displayed as the first breadcrumb item as a Home icon */
1696
+ home?: HvBreadCrumbPathElement;
1694
1697
  /** URL to build the breadcrumb. */
1695
1698
  url?: string;
1696
1699
  /** Number of pages visible. */
@@ -1737,6 +1740,8 @@ export declare interface HvBulkActionsProps extends HvBaseProps {
1737
1740
  semantic?: boolean;
1738
1741
  /** The renderable content inside the right actions slot, or an array of actions `{ id, label, icon, disabled, ... }` */
1739
1742
  actions?: HvActionsGenericProps["actions"];
1743
+ /** Whether the bulk actions component is disabled */
1744
+ disabled?: boolean;
1740
1745
  /** Whether actions should be all disabled */
1741
1746
  actionsDisabled?: boolean;
1742
1747
  /** The callback function called when an action is triggered, receiving `action` as parameter. */
@@ -1995,7 +2000,7 @@ declare interface HvCalloutProps extends Omit<SnackbarContentProps, "title" | "v
1995
2000
  /** The props to pass down to the Action Container. */
1996
2001
  actionProps?: Partial<HvButtonProps>;
1997
2002
  /** The size of the banner. */
1998
- size?: "large" | "regular" | "micro";
2003
+ size?: "large" | "regular" | "toast" | "micro";
1999
2004
  /** A Jss Object used to override or extend the styles applied to the component. */
2000
2005
  classes?: HvCalloutClasses;
2001
2006
  }
@@ -5490,6 +5495,8 @@ export declare interface HvSnackbarContentProps extends Omit<SnackbarContentProp
5490
5495
  onAction?: HvActionsGenericProps["onAction"];
5491
5496
  /** @inheritdoc */
5492
5497
  onClose?: SnackbarProps["onClose"];
5498
+ /** The size of the snackbar. */
5499
+ size?: Extract<HvCalloutProps["size"], "regular" | "toast">;
5493
5500
  /** A Jss Object used to override or extend the styles applied to the component. */
5494
5501
  classes?: HvSnackbarContentClasses;
5495
5502
  }
@@ -5533,6 +5540,8 @@ export declare interface HvSnackbarProps extends Omit<SnackbarProps, "action" |
5533
5540
  offset?: number;
5534
5541
  /** Others applied to the content of the snackbar. */
5535
5542
  snackbarContentProps?: HvSnackbarContentProps;
5543
+ /** The size of the snackbar. */
5544
+ size?: Extract<HvCalloutProps["size"], "regular" | "toast">;
5536
5545
  /** A Jss Object used to override or extend the styles applied to the component. */
5537
5546
  classes?: HvSnackbarClasses;
5538
5547
  /** @ignore */
@@ -8652,10 +8661,11 @@ declare const useClasses_35: (classesProp?: Partial<Record<"link" | "a" | "root"
8652
8661
  readonly cx: (...args: any) => string;
8653
8662
  };
8654
8663
 
8655
- declare const useClasses_36: (classesProp?: Partial<Record<"semantic" | "root" | "actions" | "selectAll" | "selectAllContainer" | "selectAllPages" | "divider", string>>, addStatic?: boolean) => {
8664
+ declare const useClasses_36: (classesProp?: Partial<Record<"semantic" | "disabled" | "root" | "actions" | "selectAll" | "selectAllContainer" | "selectAllPages" | "divider", string>>, addStatic?: boolean) => {
8656
8665
  readonly classes: {
8657
8666
  root: string;
8658
8667
  semantic: string;
8668
+ disabled: string;
8659
8669
  actions: string;
8660
8670
  selectAllContainer: string;
8661
8671
  selectAll: string;
@@ -125,9 +125,20 @@ const pentaho = mergeTheme(pentaho$1, {
125
125
  }
126
126
  }
127
127
  },
128
+ HvBulkActions: {
129
+ semantic: false,
130
+ classes: {
131
+ root: {
132
+ borderRadius: theme.radii.round,
133
+ padding: theme.space.xs
134
+ }
135
+ }
136
+ },
128
137
  HvCallout: {
129
138
  classes: {
130
- root: { outline: "1px solid var(--icolor, currentcolor)" },
139
+ root: {
140
+ outline: "1px solid var(--icolor, currentcolor)"
141
+ },
131
142
  ...Object.fromEntries(
132
143
  Object.entries(notificationMap).map(([variant, color]) => [
133
144
  variant,
@@ -1121,11 +1132,21 @@ const pentaho = mergeTheme(pentaho$1, {
1121
1132
  HvSnackbarContent: {
1122
1133
  classes: {
1123
1134
  root: {
1135
+ width: 525,
1124
1136
  minHeight: "unset"
1137
+ },
1138
+ messageText: {
1139
+ paddingLeft: 0
1140
+ },
1141
+ iconVariant: {
1142
+ alignSelf: "flex-start",
1143
+ margin: theme.space.xxs,
1144
+ marginRight: theme.space.sm
1125
1145
  }
1126
1146
  }
1127
1147
  },
1128
1148
  HvBreadCrumb: {
1149
+ maxVisible: 5,
1129
1150
  classes: {
1130
1151
  currentPage: {
1131
1152
  fontWeight: theme.fontWeights.semibold,
@@ -78,6 +78,16 @@ const { useClasses } = createClasses("HvCallout", {
78
78
  alignSelf: "flex-end"
79
79
  }
80
80
  });
81
+ const getIconSize = (size) => {
82
+ switch (size) {
83
+ case "large":
84
+ return "md";
85
+ case "toast":
86
+ return "xs";
87
+ default:
88
+ return "sm";
89
+ }
90
+ };
81
91
  const HvCallout = forwardRef(function HvCallout2(props, ref) {
82
92
  const {
83
93
  id,
@@ -130,7 +140,7 @@ const HvCallout = forwardRef(function HvCallout2(props, ref) {
130
140
  icon && /* @__PURE__ */ jsx(
131
141
  HvStatusIcon,
132
142
  {
133
- size: size === "large" ? "md" : "sm",
143
+ size: getIconSize(size),
134
144
  className: classes.messageIcon,
135
145
  variant: variant === "default" ? "info" : variant,
136
146
  customIcon
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hitachivantara/uikit-react-core",
3
- "version": "6.4.3",
3
+ "version": "6.5.0",
4
4
  "type": "module",
5
5
  "private": false,
6
6
  "author": "Hitachi Vantara UI Kit Team",
@@ -61,7 +61,7 @@
61
61
  "access": "public",
62
62
  "directory": "package"
63
63
  },
64
- "gitHead": "fe1e806628c08552c969d2b99d3d2e977be12b21",
64
+ "gitHead": "0985fa0fa2f1fdff7a57fced4fcb1385544cb457",
65
65
  "exports": {
66
66
  ".": {
67
67
  "types": "./dist/index.d.ts",