@hitachivantara/uikit-react-core 5.106.2 → 5.108.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.
@@ -6,7 +6,7 @@ const { staticClasses, useClasses } = uikitReactUtils.createClasses("HvActionBar
6
6
  root: {
7
7
  width: "100%",
8
8
  padding: uikitStyles.theme.space.sm,
9
- borderTop: `1px solid ${uikitStyles.theme.colors.border}`,
9
+ borderTop: `1px solid ${uikitStyles.theme.colors.borderSubtle}`,
10
10
  display: "flex",
11
11
  alignItems: "center",
12
12
  justifyContent: "flex-end"
@@ -10,9 +10,9 @@ const icons = require("../icons.cjs");
10
10
  const setId = require("../utils/setId.cjs");
11
11
  const Pagination_styles = require("./Pagination.styles.cjs");
12
12
  const Select = require("./Select.cjs");
13
- const Typography = require("../Typography/Typography.cjs");
14
13
  const IconButton = require("../IconButton/IconButton.cjs");
15
- const Input = require("../Input/Input.cjs");
14
+ const Typography = require("../Typography/Typography.cjs");
15
+ const BaseInput = require("../BaseInput/BaseInput.cjs");
16
16
  const _interopDefault = (e) => e && e.__esModule ? e : { default: e };
17
17
  const useMediaQuery__default = /* @__PURE__ */ _interopDefault(useMediaQuery);
18
18
  const defaultPageSizeOptions = [5, 10, 20, 25, 50, 100];
@@ -86,64 +86,53 @@ const HvPagination = React.forwardRef(function HvPagination2(props, ref) {
86
86
  React.useEffect(() => {
87
87
  setPageInput(page);
88
88
  }, [page]);
89
- const renderPageJump = () => /* @__PURE__ */ jsxRuntime.jsx("div", { className: classes.pageJump, children: /* @__PURE__ */ jsxRuntime.jsx(
90
- Input.HvInput,
89
+ const renderPageJump = () => /* @__PURE__ */ jsxRuntime.jsx(
90
+ BaseInput.HvBaseInput,
91
91
  {
92
92
  id: setId.setId(id, "currentPage"),
93
- labels,
94
93
  inputProps: {
95
94
  "aria-label": labels?.paginationInputLabel,
96
95
  // We really want the native number input
97
96
  type: "number"
98
97
  },
99
98
  classes: {
100
- root: classes?.pageSizeInputContainer,
101
- input: classes?.pageSizeInput,
102
- inputRoot: classes?.pageSizeInputRoot
99
+ root: cx(
100
+ classes.pageJump,
101
+ classes.pageSizeInputRoot,
102
+ classes.pageSizeInputContainer
103
+ ),
104
+ input: classes.pageSizeInput
103
105
  },
104
106
  value: String(pageInput + 1),
105
107
  onChange: (event, value) => setPageInput(Number(value) - 1),
106
- onBlur: (evt, value) => changePage(Math.round(Number(value)) - 1),
107
- onEnter: (evt, value) => changePage(Math.round(Number(value)) - 1),
108
+ onBlur: (evt) => changePage(Math.round(Number(evt.target.value)) - 1),
109
+ onKeyDown: (evt) => {
110
+ if (evt.key !== "Enter") return;
111
+ changePage(Math.round(Number(evt.currentTarget.value)) - 1);
112
+ },
108
113
  disabled: pageSize === 0,
109
- disableClear: true,
110
114
  ...currentPageInputProps
111
115
  }
112
- ) });
116
+ );
113
117
  return /* @__PURE__ */ jsxRuntime.jsxs("div", { ref, id, className: cx(classes.root, className), ...others, children: [
114
118
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: classes.pageSizeOptions, ...showPageProps, children: showPageSizeOptions && /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
115
- !isXsDown && /* @__PURE__ */ jsxRuntime.jsx(
116
- Typography.HvTypography,
117
- {
118
- component: "span",
119
- className: classes?.pageSizeTextContainer,
120
- children: labels?.pageSizePrev
121
- }
122
- ),
119
+ !isXsDown && /* @__PURE__ */ jsxRuntime.jsx("span", { className: classes?.pageSizeTextContainer, children: labels?.pageSizePrev }),
123
120
  /* @__PURE__ */ jsxRuntime.jsx(
124
121
  Select.default,
125
122
  {
126
123
  id: setId.setId(id, "pageSize"),
127
124
  disabled: pageSize === 0,
128
- className: classes.pageSizeOptionsSelect,
129
125
  "aria-label": labels?.pageSizeSelectorDescription,
130
- onChange: (_, val) => onPageSizeChange?.(val),
126
+ onChange: (evt, val) => onPageSizeChange?.(val),
131
127
  value: pageSize,
132
128
  classes: {
133
129
  header: classes.pageSizeHeader,
134
- root: classes.pageSizeRoot
130
+ root: cx(classes.pageSizeOptionsSelect, classes.pageSizeRoot)
135
131
  },
136
132
  children: pageSizeOptions.map((option) => /* @__PURE__ */ jsxRuntime.jsx(Select.Option, { value: option, children: option }, option))
137
133
  }
138
134
  ),
139
- !isXsDown && /* @__PURE__ */ jsxRuntime.jsx(
140
- Typography.HvTypography,
141
- {
142
- component: "span",
143
- className: classes.pageSizeTextContainer,
144
- children: labels?.pageSizeEntryName
145
- }
146
- )
135
+ !isXsDown && /* @__PURE__ */ jsxRuntime.jsx("span", { className: classes.pageSizeTextContainer, children: labels?.pageSizeEntryName })
147
136
  ] }) }),
148
137
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: classes.pageNavigator, ...navigationProps, children: [
149
138
  /* @__PURE__ */ jsxRuntime.jsx(
@@ -169,17 +158,9 @@ const HvPagination = React.forwardRef(function HvPagination2(props, ref) {
169
158
  }
170
159
  ),
171
160
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: classes.pageInfo, children: [
172
- showPageJump ? renderPageJump() : /* @__PURE__ */ jsxRuntime.jsx(Typography.HvTypography, { variant: "caption2", component: "span", children: `${page + 1}` }),
161
+ showPageJump ? renderPageJump() : /* @__PURE__ */ jsxRuntime.jsx("span", { children: `${page + 1}` }),
173
162
  /* @__PURE__ */ jsxRuntime.jsx(Typography.HvTypography, { component: "span", children: `${labels?.pagesSeparator} ` }),
174
- /* @__PURE__ */ jsxRuntime.jsx(
175
- Typography.HvTypography,
176
- {
177
- component: "span",
178
- id: setId.setId(id, "totalPages"),
179
- className: classes.totalPagesTextContainer,
180
- children: pages
181
- }
182
- )
163
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: classes.totalPagesTextContainer, children: pages })
183
164
  ] }),
184
165
  /* @__PURE__ */ jsxRuntime.jsx(
185
166
  IconButton.HvIconButton,
@@ -4,7 +4,6 @@ const uikitReactUtils = require("@hitachivantara/uikit-react-utils");
4
4
  const uikitStyles = require("@hitachivantara/uikit-styles");
5
5
  const BaseDropdown_styles = require("../BaseDropdown/BaseDropdown.styles.cjs");
6
6
  require("../BaseDropdown/BaseDropdown.cjs");
7
- const Input_styles = require("../Input/Input.styles.cjs");
8
7
  const { staticClasses, useClasses } = uikitReactUtils.createClasses("HvPagination", {
9
8
  /** Styles applied to the component root class. */
10
9
  root: {
@@ -15,24 +14,7 @@ const { staticClasses, useClasses } = uikitReactUtils.createClasses("HvPaginatio
15
14
  alignItems: "stretch",
16
15
  flexWrap: "wrap",
17
16
  marginTop: uikitStyles.theme.space.sm,
18
- [`& $pageSizeInput`]: {
19
- ...uikitStyles.theme.typography.caption2,
20
- "&:focus": {
21
- padding: 0
22
- }
23
- },
24
- [`& $pageSizeInputContainer`]: {
25
- width: 24,
26
- minWidth: 24,
27
- maxWidth: uikitStyles.theme.spacing(8)
28
- },
29
- [`&& $pageSizeInputRoot`]: {
30
- backgroundColor: "transparent",
31
- height: "24px",
32
- "&:focus, &:focus-within, &:hover": {
33
- backgroundColor: uikitStyles.theme.colors.bgHover
34
- }
35
- }
17
+ ...uikitStyles.theme.typography.caption2
36
18
  },
37
19
  /** Styles applied to the page size selector container. */
38
20
  pageSizeOptions: {
@@ -60,6 +42,7 @@ const { staticClasses, useClasses } = uikitReactUtils.createClasses("HvPaginatio
60
42
  }
61
43
  },
62
44
  pageSizeRoot: {
45
+ display: "inline-block",
63
46
  width: "auto"
64
47
  },
65
48
  /** Styles applied to the element that holds the labels for the page size selector */
@@ -68,18 +51,12 @@ const { staticClasses, useClasses } = uikitReactUtils.createClasses("HvPaginatio
68
51
  alignItems: "center",
69
52
  justifyContent: "center",
70
53
  height: "24px",
71
- padding: "8px 0",
72
- ...uikitStyles.theme.typography.caption2
73
- },
74
- totalPagesTextContainer: {
75
- ...uikitStyles.theme.typography.caption2
76
- },
77
- /** Styles applied to the page size selector dropdown element. */
78
- pageSizeOptionsSelect: {
79
- display: "inline-block",
80
- width: "auto",
81
- ...uikitStyles.theme.typography.caption2
54
+ padding: "8px 0"
82
55
  },
56
+ /** @deprecated unused */
57
+ totalPagesTextContainer: {},
58
+ /** Styles applied to the page size selector dropdown element. @deprecated use `classes.pageSizeRoot` instead. */
59
+ pageSizeOptionsSelect: {},
83
60
  /** Styles applied to the page navigation container. */
84
61
  pageNavigator: {
85
62
  display: "flex",
@@ -102,30 +79,39 @@ const { staticClasses, useClasses } = uikitReactUtils.createClasses("HvPaginatio
102
79
  },
103
80
  /** Styles applied to the page selector input container. */
104
81
  pageJump: {
105
- display: "inline-block",
106
- marginRight: `4px`,
107
- [`& .${Input_styles.staticClasses.inputRoot}`]: {
108
- [`& $pageSizeInput`]: {
109
- paddingLeft: `4px`,
110
- paddingRight: `4px`,
111
- margin: 0,
112
- textAlign: "center",
113
- borderRadius: uikitStyles.theme.radii.base,
114
- MozAppearance: "textfield",
115
- "&:focus": {
116
- backgroundColor: uikitStyles.theme.colors.bgHover
117
- },
118
- "&:hover": {
119
- cursor: "pointer"
120
- }
121
- }
82
+ marginRight: 4,
83
+ width: 24,
84
+ minWidth: 24,
85
+ maxWidth: uikitStyles.theme.spacing(8),
86
+ backgroundColor: "transparent",
87
+ height: "24px",
88
+ "&:focus, &:focus-within, &:hover": {
89
+ backgroundColor: uikitStyles.theme.colors.bgHover
90
+ },
91
+ "&, & $pageSizeInput": {
92
+ fontSize: "inherit",
93
+ lineHeight: "inherit"
122
94
  }
123
95
  },
124
96
  /** Styles passed down to the page selector Input component as `input`. */
125
- pageSizeInput: {},
126
- /** Styles passed down to the page selector Input root. */
97
+ pageSizeInput: {
98
+ paddingLeft: 4,
99
+ paddingRight: 4,
100
+ margin: 0,
101
+ textAlign: "center",
102
+ borderRadius: uikitStyles.theme.radii.base,
103
+ MozAppearance: "textfield",
104
+ "&:focus": {
105
+ padding: 0,
106
+ backgroundColor: uikitStyles.theme.colors.bgHover
107
+ },
108
+ "&:hover": {
109
+ cursor: "pointer"
110
+ }
111
+ },
112
+ /** Styles passed down to the page selector Input root. @deprecated use `classes.pageJump` instead. */
127
113
  pageSizeInputRoot: {},
128
- /** Styles passed down to the page selector Input component as `container`. */
114
+ /** Styles passed down to the page selector Input component as `container`. @deprecated use `classes.pageJump` instead. */
129
115
  pageSizeInputContainer: {}
130
116
  });
131
117
  exports.staticClasses = staticClasses;
@@ -1,9 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
3
  const uikitReactUtils = require("@hitachivantara/uikit-react-utils");
4
- const uikitStyles = require("@hitachivantara/uikit-styles");
5
4
  const { staticClasses, useClasses } = uikitReactUtils.createClasses("HvSearchInput", {
6
- root: { paddingLeft: uikitStyles.theme.space.xs },
5
+ root: {},
7
6
  input: { marginLeft: 0 }
8
7
  });
9
8
  exports.staticClasses = staticClasses;
@@ -20,7 +20,6 @@ const ListContainer = require("../ListContainer/ListContainer.cjs");
20
20
  const WarningText = require("../FormElement/WarningText/WarningText.cjs");
21
21
  function defaultRenderValue(options) {
22
22
  if (Array.isArray(options)) {
23
- if (options.length === 0) return null;
24
23
  return /* @__PURE__ */ jsxRuntime.jsx(jsxRuntime.Fragment, { children: options.map((o) => o.label).join(", ") });
25
24
  }
26
25
  return options?.label ?? null;
@@ -46,6 +45,7 @@ const HvSelect = generic.fixedForwardRef(function HvSelect2(props, ref) {
46
45
  defaultOpen,
47
46
  multiple,
48
47
  autoComplete,
48
+ renderValue: renderValueProp,
49
49
  options: optionsProp,
50
50
  variableWidth,
51
51
  value: valueProp,
@@ -96,6 +96,7 @@ const HvSelect = generic.fixedForwardRef(function HvSelect2(props, ref) {
96
96
  onChange,
97
97
  onOpenChange: handleOpenChange
98
98
  });
99
+ const renderValue = renderValueProp ?? defaultRenderValue;
99
100
  const id = useUniqueId.useUniqueId(idProp);
100
101
  const labelId = useUniqueId.useUniqueId(setId.setId(idProp, "label"));
101
102
  const descriptionId = useUniqueId.useUniqueId(setId.setId(idProp, "description"));
@@ -172,7 +173,7 @@ const HvSelect = generic.fixedForwardRef(function HvSelect2(props, ref) {
172
173
  [descriptionId]: description
173
174
  }),
174
175
  ...getButtonProps(),
175
- children: defaultRenderValue(actualValue) ?? placeholder
176
+ children: renderValue(actualValue) ?? placeholder
176
177
  }
177
178
  ),
178
179
  /* @__PURE__ */ jsxRuntime.jsx(
@@ -56,8 +56,8 @@ const pentahoIconsMap = {
56
56
  ] })
57
57
  },
58
58
  info: {
59
- regular: /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M140,180a12,12,0,1,1-12-12A12,12,0,0,1,140,180ZM128,72c-22.06,0-40,16.15-40,36v4a8,8,0,0,0,16,0v-4c0-11,10.77-20,24-20s24,9,24,20-10.77,20-24,20a8,8,0,0,0-8,8v8a8,8,0,0,0,16,0v-.72c18.24-3.35,32-17.9,32-35.28C168,88.15,150.06,72,128,72Zm104,56A104,104,0,1,1,128,24,104.11,104.11,0,0,1,232,128Zm-16,0a88,88,0,1,0-88,88A88.1,88.1,0,0,0,216,128Z" }),
60
- fill: /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M128,24A104,104,0,1,0,232,128,104.11,104.11,0,0,0,128,24Zm0,168a12,12,0,1,1,12-12A12,12,0,0,1,128,192Zm8-48.72V144a8,8,0,0,1-16,0v-8a8,8,0,0,1,8-8c13.23,0,24-9,24-20s-10.77-20-24-20-24,9-24,20v4a8,8,0,0,1-16,0v-4c0-19.85,17.94-36,40-36s40,16.15,40,36C168,125.38,154.24,139.93,136,143.28Z" }),
59
+ regular: /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M128,24A104,104,0,1,0,232,128,104.11,104.11,0,0,0,128,24Zm0,192a88,88,0,1,1,88-88A88.1,88.1,0,0,1,128,216Zm16-40a8,8,0,0,1-8,8,16,16,0,0,1-16-16V128a8,8,0,0,1,0-16,16,16,0,0,1,16,16v40A8,8,0,0,1,144,176ZM112,84a12,12,0,1,1,12,12A12,12,0,0,1,112,84Z" }),
60
+ fill: /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M128,24A104,104,0,1,0,232,128,104.11,104.11,0,0,0,128,24Zm-4,48a12,12,0,1,1-12,12A12,12,0,0,1,124,72Zm12,112a16,16,0,0,1-16-16V128a8,8,0,0,1,0-16,16,16,0,0,1,16,16v40a8,8,0,0,1,0,16Z" }),
61
61
  duotone: /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
62
62
  /* @__PURE__ */ jsxRuntime.jsx(
63
63
  "path",
@@ -66,7 +66,7 @@ const pentahoIconsMap = {
66
66
  opacity: "0.2"
67
67
  }
68
68
  ),
69
- /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M140,180a12,12,0,1,1-12-12A12,12,0,0,1,140,180ZM128,72c-22.06,0-40,16.15-40,36v4a8,8,0,0,0,16,0v-4c0-11,10.77-20,24-20s24,9,24,20-10.77,20-24,20a8,8,0,0,0-8,8v8a8,8,0,0,0,16,0v-.72c18.24-3.35,32-17.9,32-35.28C168,88.15,150.06,72,128,72Zm104,56A104,104,0,1,1,128,24,104.11,104.11,0,0,1,232,128Zm-16,0a88,88,0,1,0-88,88A88.1,88.1,0,0,0,216,128Z" })
69
+ /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M144,176a8,8,0,0,1-8,8,16,16,0,0,1-16-16V128a8,8,0,0,1,0-16,16,16,0,0,1,16,16v40A8,8,0,0,1,144,176Zm88-48A104,104,0,1,1,128,24,104.11,104.11,0,0,1,232,128Zm-16,0a88,88,0,1,0-88,88A88.1,88.1,0,0,0,216,128ZM124,96a12,12,0,1,0-12-12A12,12,0,0,0,124,96Z" })
70
70
  ] })
71
71
  }
72
72
  };
@@ -59,7 +59,7 @@ const HvThemeProvider = ({
59
59
  ]
60
60
  );
61
61
  const muiTheme = React.useMemo(() => {
62
- const colors = activeTheme.colors.modes[colorMode];
62
+ const colors = activeTheme.colors.modes[selectedMode];
63
63
  return styles.createTheme({
64
64
  spacing: activeTheme.space.base,
65
65
  typography: {
@@ -99,7 +99,7 @@ const HvThemeProvider = ({
99
99
  },
100
100
  breakpoints: activeTheme.breakpoints
101
101
  });
102
- }, [activeTheme, colorMode]);
102
+ }, [activeTheme, selectedMode]);
103
103
  const emotionCacheValue = React.useMemo(
104
104
  () => ({ cache: emotionCache }),
105
105
  [emotionCache]
@@ -786,20 +786,19 @@ const ds3 = uikitStyles.mergeTheme(uikitStyles.ds3, {
786
786
  HvPagination: {
787
787
  classes: {
788
788
  root: {
789
- [`& .HvPagination-pageSizeInput`]: {
790
- ...uikitStyles.theme.typography.label,
791
- "&:focus": {
792
- padding: "unset"
793
- }
794
- },
795
- [`& .HvPagination-pageSizeInputContainer`]: {
796
- width: 40,
797
- minWidth: 40
798
- },
799
- [`&& .HvPagination-pageSizeInputRoot`]: {
800
- height: 32
789
+ ...uikitStyles.theme.typography.body
790
+ },
791
+ pageSizeInput: {
792
+ ...uikitStyles.theme.typography.label,
793
+ "&:focus": {
794
+ padding: "unset"
801
795
  }
802
796
  },
797
+ pageJump: {
798
+ width: 40,
799
+ minWidth: 40,
800
+ height: 32
801
+ },
803
802
  icon: {
804
803
  fontSize: 16
805
804
  },
@@ -807,20 +806,10 @@ const ds3 = uikitStyles.mergeTheme(uikitStyles.ds3, {
807
806
  height: 32
808
807
  },
809
808
  pageSizeHeader: {
810
- height: "unset",
811
- [`& .HvBaseDropdown-arrowContainer`]: {
812
- marginTop: 0
813
- }
809
+ height: "unset"
814
810
  },
815
811
  pageSizeTextContainer: {
816
- height: 32,
817
- ...uikitStyles.theme.typography.body
818
- },
819
- pageSizeOptionsSelect: {
820
- ...uikitStyles.theme.typography.body
821
- },
822
- totalPagesTextContainer: {
823
- ...uikitStyles.theme.typography.body
812
+ height: 32
824
813
  },
825
814
  pageNavigator: {
826
815
  alignItems: "stretch"
@@ -15,12 +15,25 @@ const inputColors = {
15
15
  bg: ld("#FFFFFF", "#020617")
16
16
  };
17
17
  const popperStyles = {
18
+ margin: uikitStyles.theme.spacing("xxs", 0),
18
19
  backgroundColor: uikitStyles.theme.colors.bgContainer,
19
20
  border: `1px solid ${uikitStyles.theme.colors.borderSubtle}`,
20
21
  borderRadius: uikitStyles.theme.radii.large,
21
22
  boxShadow: `0px 0px 6px 0px rgba(65, 65, 65, 0.08)`
22
23
  };
23
24
  const pentahoPlus = uikitStyles.mergeTheme(uikitStyles.pentahoPlus, {
25
+ icons: {
26
+ viewBox: "0 0 256 256",
27
+ // Semantic icons
28
+ Success: "M173.66,98.34a8,8,0,0,1,0,11.32l-56,56a8,8,0,0,1-11.32,0l-24-24a8,8,0,0,1,11.32-11.32L112,148.69l50.34-50.35A8,8,0,0,1,173.66,98.34ZM232,128A104,104,0,1,1,128,24,104.11,104.11,0,0,1,232,128Zm-16,0a88,88,0,1,0-88,88A88.1,88.1,0,0,0,216,128Z",
29
+ Caution: "M236.8,188.09,149.35,36.22h0a24.76,24.76,0,0,0-42.7,0L19.2,188.09a23.51,23.51,0,0,0,0,23.72A24.35,24.35,0,0,0,40.55,224h174.9a24.35,24.35,0,0,0,21.33-12.19A23.51,23.51,0,0,0,236.8,188.09ZM222.93,203.8a8.5,8.5,0,0,1-7.48,4.2H40.55a8.5,8.5,0,0,1-7.48-4.2,7.59,7.59,0,0,1,0-7.72L120.52,44.21a8.75,8.75,0,0,1,15,0l87.45,151.87A7.59,7.59,0,0,1,222.93,203.8ZM120,144V104a8,8,0,0,1,16,0v40a8,8,0,0,1-16,0Zm20,36a12,12,0,1,1-12-12A12,12,0,0,1,140,180Z",
30
+ Fail: "M128,72a8,8,0,0,1,8,8v56a8,8,0,0,1-16,0V80A8,8,0,0,1,128,72ZM116,172a12,12,0,1,0,12-12A12,12,0,0,0,116,172Zm124-44a15.85,15.85,0,0,1-4.67,11.28l-96.05,96.06a16,16,0,0,1-22.56,0h0l-96-96.06a16,16,0,0,1,0-22.56l96.05-96.06a16,16,0,0,1,22.56,0l96.05,96.06A15.85,15.85,0,0,1,240,128Zm-16,0L128,32,32,128,128,224h0Z",
31
+ Info: "M128,24A104,104,0,1,0,232,128,104.11,104.11,0,0,0,128,24Zm0,192a88,88,0,1,1,88-88A88.1,88.1,0,0,1,128,216Zm16-40a8,8,0,0,1-8,8,16,16,0,0,1-16-16V128a8,8,0,0,1,0-16,16,16,0,0,1,16,16v40A8,8,0,0,1,144,176ZM112,84a12,12,0,1,1,12,12A12,12,0,0,1,112,84Z",
32
+ Start: "M205.66,202.34a8,8,0,0,1-11.32,11.32l-80-80a8,8,0,0,1,0-11.32l80-80a8,8,0,0,1,11.32,11.32L131.31,128ZM51.31,128l74.35-74.34a8,8,0,0,0-11.32-11.32l-80,80a8,8,0,0,0,0,11.32l80,80a8,8,0,0,0,11.32-11.32Z",
33
+ Backwards: "M165.66,202.34a8,8,0,0,1-11.32,11.32l-80-80a8,8,0,0,1,0-11.32l80-80a8,8,0,0,1,11.32,11.32L91.31,128Z",
34
+ Forwards: "M181.66,133.66l-80,80a8,8,0,0,1-11.32-11.32L164.69,128,90.34,53.66a8,8,0,0,1,11.32-11.32l80,80A8,8,0,0,1,181.66,133.66Z",
35
+ End: "M141.66,133.66l-80,80a8,8,0,0,1-11.32-11.32L124.69,128,50.34,53.66A8,8,0,0,1,61.66,42.34l80,80A8,8,0,0,1,141.66,133.66Zm80-11.32-80-80a8,8,0,0,0-11.32,11.32L204.69,128l-74.35,74.34a8,8,0,0,0,11.32,11.32l80-80A8,8,0,0,0,221.66,122.34Z"
36
+ },
24
37
  components: {
25
38
  HvLoading: {
26
39
  classes: {
@@ -539,6 +552,16 @@ const pentahoPlus = uikitStyles.mergeTheme(uikitStyles.pentahoPlus, {
539
552
  }
540
553
  }
541
554
  },
555
+ HvPagination: {
556
+ classes: {
557
+ root: {
558
+ ...uikitStyles.theme.typography.caption1
559
+ },
560
+ icon: {
561
+ fontSize: 16
562
+ }
563
+ }
564
+ },
542
565
  HvHeader: {
543
566
  classes: {
544
567
  root: {
@@ -684,6 +707,9 @@ const pentahoPlus = uikitStyles.mergeTheme(uikitStyles.pentahoPlus, {
684
707
  display: "none"
685
708
  }
686
709
  },
710
+ "& .MuiCardContent-root:last-child": {
711
+ paddingBottom: 0
712
+ },
687
713
  "& > :last-child:not(.HvCardMedia-root)": {
688
714
  paddingBottom: uikitStyles.theme.space.sm
689
715
  },
@@ -838,6 +864,15 @@ const pentahoPlus = uikitStyles.mergeTheme(uikitStyles.pentahoPlus, {
838
864
  borderRadius: uikitStyles.theme.radii.none
839
865
  }
840
866
  }
867
+ },
868
+ HvTooltip: {
869
+ classes: {
870
+ popper: {
871
+ "& .HvTooltip-tooltip": {
872
+ padding: uikitStyles.theme.spacing("xs", "sm")
873
+ }
874
+ }
875
+ }
841
876
  }
842
877
  }
843
878
  });
@@ -4,7 +4,7 @@ const { staticClasses, useClasses } = createClasses("HvActionBar", {
4
4
  root: {
5
5
  width: "100%",
6
6
  padding: theme.space.sm,
7
- borderTop: `1px solid ${theme.colors.border}`,
7
+ borderTop: `1px solid ${theme.colors.borderSubtle}`,
8
8
  display: "flex",
9
9
  alignItems: "center",
10
10
  justifyContent: "flex-end"
@@ -9,9 +9,9 @@ import { setId } from "../utils/setId.js";
9
9
  import { useClasses } from "./Pagination.styles.js";
10
10
  import { staticClasses } from "./Pagination.styles.js";
11
11
  import HvSelect, { Option } from "./Select.js";
12
- import { HvTypography } from "../Typography/Typography.js";
13
12
  import { HvIconButton } from "../IconButton/IconButton.js";
14
- import { HvInput } from "../Input/Input.js";
13
+ import { HvTypography } from "../Typography/Typography.js";
14
+ import { HvBaseInput } from "../BaseInput/BaseInput.js";
15
15
  const defaultPageSizeOptions = [5, 10, 20, 25, 50, 100];
16
16
  const DEFAULT_LABELS = {
17
17
  /** The show label. */
@@ -83,64 +83,53 @@ const HvPagination = forwardRef(function HvPagination2(props, ref) {
83
83
  useEffect(() => {
84
84
  setPageInput(page);
85
85
  }, [page]);
86
- const renderPageJump = () => /* @__PURE__ */ jsx("div", { className: classes.pageJump, children: /* @__PURE__ */ jsx(
87
- HvInput,
86
+ const renderPageJump = () => /* @__PURE__ */ jsx(
87
+ HvBaseInput,
88
88
  {
89
89
  id: setId(id, "currentPage"),
90
- labels,
91
90
  inputProps: {
92
91
  "aria-label": labels?.paginationInputLabel,
93
92
  // We really want the native number input
94
93
  type: "number"
95
94
  },
96
95
  classes: {
97
- root: classes?.pageSizeInputContainer,
98
- input: classes?.pageSizeInput,
99
- inputRoot: classes?.pageSizeInputRoot
96
+ root: cx(
97
+ classes.pageJump,
98
+ classes.pageSizeInputRoot,
99
+ classes.pageSizeInputContainer
100
+ ),
101
+ input: classes.pageSizeInput
100
102
  },
101
103
  value: String(pageInput + 1),
102
104
  onChange: (event, value) => setPageInput(Number(value) - 1),
103
- onBlur: (evt, value) => changePage(Math.round(Number(value)) - 1),
104
- onEnter: (evt, value) => changePage(Math.round(Number(value)) - 1),
105
+ onBlur: (evt) => changePage(Math.round(Number(evt.target.value)) - 1),
106
+ onKeyDown: (evt) => {
107
+ if (evt.key !== "Enter") return;
108
+ changePage(Math.round(Number(evt.currentTarget.value)) - 1);
109
+ },
105
110
  disabled: pageSize === 0,
106
- disableClear: true,
107
111
  ...currentPageInputProps
108
112
  }
109
- ) });
113
+ );
110
114
  return /* @__PURE__ */ jsxs("div", { ref, id, className: cx(classes.root, className), ...others, children: [
111
115
  /* @__PURE__ */ jsx("div", { className: classes.pageSizeOptions, ...showPageProps, children: showPageSizeOptions && /* @__PURE__ */ jsxs(Fragment, { children: [
112
- !isXsDown && /* @__PURE__ */ jsx(
113
- HvTypography,
114
- {
115
- component: "span",
116
- className: classes?.pageSizeTextContainer,
117
- children: labels?.pageSizePrev
118
- }
119
- ),
116
+ !isXsDown && /* @__PURE__ */ jsx("span", { className: classes?.pageSizeTextContainer, children: labels?.pageSizePrev }),
120
117
  /* @__PURE__ */ jsx(
121
118
  HvSelect,
122
119
  {
123
120
  id: setId(id, "pageSize"),
124
121
  disabled: pageSize === 0,
125
- className: classes.pageSizeOptionsSelect,
126
122
  "aria-label": labels?.pageSizeSelectorDescription,
127
- onChange: (_, val) => onPageSizeChange?.(val),
123
+ onChange: (evt, val) => onPageSizeChange?.(val),
128
124
  value: pageSize,
129
125
  classes: {
130
126
  header: classes.pageSizeHeader,
131
- root: classes.pageSizeRoot
127
+ root: cx(classes.pageSizeOptionsSelect, classes.pageSizeRoot)
132
128
  },
133
129
  children: pageSizeOptions.map((option) => /* @__PURE__ */ jsx(Option, { value: option, children: option }, option))
134
130
  }
135
131
  ),
136
- !isXsDown && /* @__PURE__ */ jsx(
137
- HvTypography,
138
- {
139
- component: "span",
140
- className: classes.pageSizeTextContainer,
141
- children: labels?.pageSizeEntryName
142
- }
143
- )
132
+ !isXsDown && /* @__PURE__ */ jsx("span", { className: classes.pageSizeTextContainer, children: labels?.pageSizeEntryName })
144
133
  ] }) }),
145
134
  /* @__PURE__ */ jsxs("div", { className: classes.pageNavigator, ...navigationProps, children: [
146
135
  /* @__PURE__ */ jsx(
@@ -166,17 +155,9 @@ const HvPagination = forwardRef(function HvPagination2(props, ref) {
166
155
  }
167
156
  ),
168
157
  /* @__PURE__ */ jsxs("div", { className: classes.pageInfo, children: [
169
- showPageJump ? renderPageJump() : /* @__PURE__ */ jsx(HvTypography, { variant: "caption2", component: "span", children: `${page + 1}` }),
158
+ showPageJump ? renderPageJump() : /* @__PURE__ */ jsx("span", { children: `${page + 1}` }),
170
159
  /* @__PURE__ */ jsx(HvTypography, { component: "span", children: `${labels?.pagesSeparator} ` }),
171
- /* @__PURE__ */ jsx(
172
- HvTypography,
173
- {
174
- component: "span",
175
- id: setId(id, "totalPages"),
176
- className: classes.totalPagesTextContainer,
177
- children: pages
178
- }
179
- )
160
+ /* @__PURE__ */ jsx("span", { className: classes.totalPagesTextContainer, children: pages })
180
161
  ] }),
181
162
  /* @__PURE__ */ jsx(
182
163
  HvIconButton,