@hitachivantara/uikit-react-core 5.100.1 → 5.102.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.
@@ -292,6 +292,7 @@ const HvDropdown = generic.fixedForwardRef(function HvDropdown2(props, ref) {
292
292
  height,
293
293
  maxHeight,
294
294
  virtualized,
295
+ "data-is-dropdown": "true",
295
296
  ...listProps
296
297
  }
297
298
  )
@@ -49,7 +49,14 @@ const { staticClasses, useClasses } = uikitReactUtils.createClasses("HvPaginatio
49
49
  display: "flex",
50
50
  alignItems: "center",
51
51
  [`& .${BaseDropdown_styles.staticClasses.arrowContainer}`]: {
52
- marginTop: -2
52
+ display: "flex",
53
+ alignItems: "center",
54
+ top: "unset",
55
+ height: 24,
56
+ "> svg": {
57
+ marginTop: 0,
58
+ marginBottom: 0
59
+ }
53
60
  }
54
61
  },
55
62
  pageSizeRoot: {
@@ -91,6 +91,8 @@ const { staticClasses, useClasses } = uikitReactUtils.createClasses("HvTableHead
91
91
  },
92
92
  sortable: {},
93
93
  sortButton: {
94
+ paddingLeft: 4,
95
+ paddingTop: 4,
94
96
  ":focus-visible": {
95
97
  boxShadow: "none",
96
98
  backgroundColor: "transparent"
@@ -11,7 +11,6 @@ const SwitchColumnCell = require("./SwitchColumnCell.cjs");
11
11
  const Button = require("../../Button/Button.cjs");
12
12
  const Tag = require("../../Tag/Tag.cjs");
13
13
  const OverflowTooltip = require("../../OverflowTooltip/OverflowTooltip.cjs");
14
- const Typography = require("../../Typography/Typography.cjs");
15
14
  const EM_DASH = "—";
16
15
  const hvStringFallback = (value) => {
17
16
  return typeof value === "string" && value !== "" ? value : EM_DASH;
@@ -102,7 +101,7 @@ function hvTagColumn(col, valueDataKey, colorDataKey, textColorDataKey, fromRowD
102
101
  return /* @__PURE__ */ jsxRuntime.jsx(
103
102
  Tag.HvTag,
104
103
  {
105
- label: /* @__PURE__ */ jsxRuntime.jsx(Typography.HvTypography, { variant: "body", children: name }),
104
+ label: name,
106
105
  type: "semantic",
107
106
  color,
108
107
  style: textColor != null ? { color: textColor } : {},
@@ -10,7 +10,7 @@ const { staticClasses, useClasses } = uikitReactUtils.createClasses("HvTag", {
10
10
  cursor: "default",
11
11
  color: uikitStyles.theme.colors.textDark,
12
12
  borderColor: uikitStyles.theme.colors.border,
13
- borderRadius: 0,
13
+ borderRadius: uikitStyles.theme.radii.round,
14
14
  maxWidth: 180,
15
15
  whiteSpace: "nowrap",
16
16
  transition: "background-color 0.3s ease",
@@ -24,7 +24,7 @@ const { staticClasses, useClasses } = uikitReactUtils.createClasses("HvTag", {
24
24
  }
25
25
  },
26
26
  hasIcon: {
27
- paddingLeft: 2
27
+ paddingLeft: uikitStyles.theme.space.xxs
28
28
  },
29
29
  /** @deprecated */
30
30
  outlined: {
@@ -66,11 +66,12 @@ const { staticClasses, useClasses } = uikitReactUtils.createClasses("HvTag", {
66
66
  }
67
67
  },
68
68
  label: {
69
- padding: uikitStyles.theme.spacing(0, "xxs"),
69
+ padding: uikitStyles.theme.spacing(0, "xs"),
70
70
  color: "inherit"
71
71
  },
72
72
  deleteIcon: {
73
73
  margin: 0,
74
+ marginRight: uikitStyles.theme.space.xxs,
74
75
  padding: 2,
75
76
  ":hover": {
76
77
  backgroundColor: uikitStyles.theme.colors.bgHover
@@ -49,7 +49,7 @@ const defaultIconPathMap = {
49
49
  Close: "m8.7 8 5.3 5.3-.7.7L8 8.7 2.7 14l-.7-.7L7.3 8 2 2.7l.7-.7L8 7.3 13.3 2l.7.7z",
50
50
  Search: "M15.07 14.52 10.5 9.95a5.96 5.96 0 1 0-.72.7l4.58 4.58zM5.9 11A4.95 4.95 0 0 1 1 6v-.1A4.95 4.95 0 0 1 6 1h.1A4.95 4.95 0 0 1 11 6v.1A4.95 4.95 0 0 1 6 11z",
51
51
  SortAsc: "M.08 6.07 6.5.01l6.42 6.06Zm0 0",
52
- SortDesc: "M1.76 5 6 .76 10.24 5z",
52
+ SortDesc: "M12.92 8.93 6.5 14.99.08 8.93Zm0 0",
53
53
  Sort: "M10.24 7 6 11.24 1.76 7zM1.76 5 6 .76 10.24 5z",
54
54
  // single-use icons in Widgets
55
55
  Calendar: "M10.5 2V0h-1v2h-3V0h-1v2H0v14h16V2zM15 15H1V3h14zM3 6h2v2H3zm4 0h2v2H7zm4 0h2v2h-2zm-8 4h2v2H3zm4 0h2v2H7zm4 0h2v2h-2z",
@@ -31,16 +31,31 @@ const ds5 = uikitStyles.mergeTheme(uikitStyles.ds5, {
31
31
  panel: {
32
32
  "--r": uikitStyles.theme.radii.round,
33
33
  "&[data-popper-placement*='top']": {
34
+ top: 1,
35
+ borderRadius: "var(--r) var(--r) var(--r) 0"
36
+ },
37
+ "&[data-popper-placement*='top']:has([data-is-dropdown='true'])": {
34
38
  top: 1,
35
39
  borderRadius: "var(--r) var(--r) 0 0"
36
40
  },
37
41
  "&[data-popper-placement*='bottom']": {
42
+ top: -1,
43
+ borderRadius: "0 var(--r) var(--r) var(--r)"
44
+ },
45
+ "&[data-popper-placement*='bottom']:has([data-is-dropdown='true'])": {
38
46
  top: -1,
39
47
  borderRadius: "0 0 var(--r) var(--r)"
40
48
  }
41
49
  }
42
50
  }
43
51
  },
52
+ HvBreadCrumb: {
53
+ classes: {
54
+ link: {
55
+ borderRadius: uikitStyles.theme.radii.round
56
+ }
57
+ }
58
+ },
44
59
  HvButton: {
45
60
  radius: "round",
46
61
  classes: {
@@ -78,6 +93,26 @@ const ds5 = uikitStyles.mergeTheme(uikitStyles.ds5, {
78
93
  }
79
94
  }
80
95
  },
96
+ HvCalendar: {
97
+ classes: {
98
+ root: {
99
+ " .HvCalendarCell-cellContainer": {
100
+ borderRadius: uikitStyles.theme.radii.round,
101
+ "& .HvCalendarCell-startBookend": {
102
+ borderTopLeftRadius: uikitStyles.theme.radii.round,
103
+ borderBottomLeftRadius: uikitStyles.theme.radii.round
104
+ },
105
+ "& .HvCalendarCell-endBookend": {
106
+ borderTopRightRadius: uikitStyles.theme.radii.round,
107
+ borderBottomRightRadius: uikitStyles.theme.radii.round
108
+ }
109
+ },
110
+ " .HvCalendarCell-calendarDateSelected": {
111
+ borderRadius: uikitStyles.theme.radii.round
112
+ }
113
+ }
114
+ }
115
+ },
81
116
  HvCallout: {
82
117
  classes: {
83
118
  messageIcon: {
@@ -86,6 +121,27 @@ const ds5 = uikitStyles.mergeTheme(uikitStyles.ds5, {
86
121
  }
87
122
  }
88
123
  },
124
+ HvColorPicker: {
125
+ classes: {
126
+ colorPicker: {
127
+ " .HvColorPickerPresetColors-swatchWrap > span > div": {
128
+ borderRadius: uikitStyles.theme.radii.round
129
+ },
130
+ " .HvColorPickerSavedColors-swatchWrap > span > div": {
131
+ borderRadius: uikitStyles.theme.radii.round
132
+ },
133
+ " .HvColorPickerPicker-saturation > div": {
134
+ borderRadius: uikitStyles.theme.radii.round,
135
+ " .saturation-white": {
136
+ borderRadius: uikitStyles.theme.radii.round,
137
+ " .saturation-black": {
138
+ borderRadius: uikitStyles.theme.radii.round
139
+ }
140
+ }
141
+ }
142
+ }
143
+ }
144
+ },
89
145
  HvDropdownButton: {
90
146
  classes: {
91
147
  open: {
@@ -102,6 +158,22 @@ const ds5 = uikitStyles.mergeTheme(uikitStyles.ds5, {
102
158
  },
103
159
  HvMultiButton: {
104
160
  classes: {
161
+ multiple: {
162
+ borderRadius: uikitStyles.theme.radii.round,
163
+ "& .HvMultiButton-button.HvMultiButton-selected": {
164
+ borderRadius: uikitStyles.theme.radii.round,
165
+ borderColor: uikitStyles.theme.colors.primary,
166
+ borderWidth: 2
167
+ }
168
+ },
169
+ vertical: {
170
+ borderRadius: uikitStyles.theme.radii.round,
171
+ "& .HvMultiButton-button.HvMultiButton-selected": {
172
+ borderRadius: uikitStyles.theme.radii.round,
173
+ borderColor: uikitStyles.theme.colors.primary,
174
+ borderWidth: 2
175
+ }
176
+ },
105
177
  splitGroup: {
106
178
  // NEXT5 subtle multi-buttons have a custom background
107
179
  "& .HvButton-subtle": {
@@ -126,6 +198,13 @@ const ds5 = uikitStyles.mergeTheme(uikitStyles.ds5, {
126
198
  }
127
199
  }
128
200
  },
201
+ HvSnackbarContent: {
202
+ classes: {
203
+ root: {
204
+ borderRadius: uikitStyles.theme.radii.round
205
+ }
206
+ }
207
+ },
129
208
  HvStatusIcon: {
130
209
  type: "simple"
131
210
  },
@@ -138,6 +217,13 @@ const ds5 = uikitStyles.mergeTheme(uikitStyles.ds5, {
138
217
  }
139
218
  }
140
219
  },
220
+ HvTabs: {
221
+ classes: {
222
+ indicator: {
223
+ backgroundColor: uikitStyles.theme.colors.primaryStrong
224
+ }
225
+ }
226
+ },
141
227
  HvTag: {
142
228
  classes: {
143
229
  root: {
@@ -145,6 +231,17 @@ const ds5 = uikitStyles.mergeTheme(uikitStyles.ds5, {
145
231
  },
146
232
  categorical: {
147
233
  "--tagColor": uikitStyles.theme.alpha("cat1", 0.2)
234
+ },
235
+ xs: {
236
+ height: 19
237
+ }
238
+ }
239
+ },
240
+ HvDialog: {
241
+ classes: {
242
+ statusBar: {
243
+ borderTopLeftRadius: uikitStyles.theme.radii.round,
244
+ borderTopRightRadius: uikitStyles.theme.radii.round
148
245
  }
149
246
  }
150
247
  },
@@ -167,6 +264,13 @@ const ds5 = uikitStyles.mergeTheme(uikitStyles.ds5, {
167
264
  borderBottom: "none"
168
265
  }
169
266
  }
267
+ },
268
+ HvDialogActions: {
269
+ classes: {
270
+ root: {
271
+ borderTop: `1px solid ${uikitStyles.theme.colors.borderSubtle}`
272
+ }
273
+ }
170
274
  }
171
275
  }
172
276
  });
@@ -253,7 +253,6 @@ const pentahoPlus = uikitStyles.mergeTheme(uikitStyles.pentahoPlus, {
253
253
  root: {
254
254
  outline: `1px solid ${uikitStyles.theme.colors.border}`,
255
255
  outlineOffset: -1,
256
- borderRadius: uikitStyles.theme.radii.round,
257
256
  ":where(:not([data-color],.HvTag-disabled))": {
258
257
  color: uikitStyles.theme.colors.text,
259
258
  "--tagColor": uikitStyles.theme.colors.bgContainer
@@ -291,6 +291,7 @@ const HvDropdown = fixedForwardRef(function HvDropdown2(props, ref) {
291
291
  height,
292
292
  maxHeight,
293
293
  virtualized,
294
+ "data-is-dropdown": "true",
294
295
  ...listProps
295
296
  }
296
297
  )
@@ -47,7 +47,14 @@ const { staticClasses, useClasses } = createClasses("HvPagination", {
47
47
  display: "flex",
48
48
  alignItems: "center",
49
49
  [`& .${staticClasses$2.arrowContainer}`]: {
50
- marginTop: -2
50
+ display: "flex",
51
+ alignItems: "center",
52
+ top: "unset",
53
+ height: 24,
54
+ "> svg": {
55
+ marginTop: 0,
56
+ marginBottom: 0
57
+ }
51
58
  }
52
59
  },
53
60
  pageSizeRoot: {
@@ -89,6 +89,8 @@ const { staticClasses, useClasses } = createClasses("HvTableHeader", {
89
89
  },
90
90
  sortable: {},
91
91
  sortButton: {
92
+ paddingLeft: 4,
93
+ paddingTop: 4,
92
94
  ":focus-visible": {
93
95
  boxShadow: "none",
94
96
  backgroundColor: "transparent"
@@ -9,7 +9,6 @@ import { HvSwitchColumnCell } from "./SwitchColumnCell.js";
9
9
  import { HvButton } from "../../Button/Button.js";
10
10
  import { HvTag } from "../../Tag/Tag.js";
11
11
  import { HvOverflowTooltip } from "../../OverflowTooltip/OverflowTooltip.js";
12
- import { HvTypography } from "../../Typography/Typography.js";
13
12
  const EM_DASH = "—";
14
13
  const hvStringFallback = (value) => {
15
14
  return typeof value === "string" && value !== "" ? value : EM_DASH;
@@ -100,7 +99,7 @@ function hvTagColumn(col, valueDataKey, colorDataKey, textColorDataKey, fromRowD
100
99
  return /* @__PURE__ */ jsx(
101
100
  HvTag,
102
101
  {
103
- label: /* @__PURE__ */ jsx(HvTypography, { variant: "body", children: name }),
102
+ label: name,
104
103
  type: "semantic",
105
104
  color,
106
105
  style: textColor != null ? { color: textColor } : {},
@@ -8,7 +8,7 @@ const { staticClasses, useClasses } = createClasses("HvTag", {
8
8
  cursor: "default",
9
9
  color: theme.colors.textDark,
10
10
  borderColor: theme.colors.border,
11
- borderRadius: 0,
11
+ borderRadius: theme.radii.round,
12
12
  maxWidth: 180,
13
13
  whiteSpace: "nowrap",
14
14
  transition: "background-color 0.3s ease",
@@ -22,7 +22,7 @@ const { staticClasses, useClasses } = createClasses("HvTag", {
22
22
  }
23
23
  },
24
24
  hasIcon: {
25
- paddingLeft: 2
25
+ paddingLeft: theme.space.xxs
26
26
  },
27
27
  /** @deprecated */
28
28
  outlined: {
@@ -64,11 +64,12 @@ const { staticClasses, useClasses } = createClasses("HvTag", {
64
64
  }
65
65
  },
66
66
  label: {
67
- padding: theme.spacing(0, "xxs"),
67
+ padding: theme.spacing(0, "xs"),
68
68
  color: "inherit"
69
69
  },
70
70
  deleteIcon: {
71
71
  margin: 0,
72
+ marginRight: theme.space.xxs,
72
73
  padding: 2,
73
74
  ":hover": {
74
75
  backgroundColor: theme.colors.bgHover
package/dist/esm/icons.js CHANGED
@@ -45,7 +45,7 @@ const defaultIconPathMap = {
45
45
  Close: "m8.7 8 5.3 5.3-.7.7L8 8.7 2.7 14l-.7-.7L7.3 8 2 2.7l.7-.7L8 7.3 13.3 2l.7.7z",
46
46
  Search: "M15.07 14.52 10.5 9.95a5.96 5.96 0 1 0-.72.7l4.58 4.58zM5.9 11A4.95 4.95 0 0 1 1 6v-.1A4.95 4.95 0 0 1 6 1h.1A4.95 4.95 0 0 1 11 6v.1A4.95 4.95 0 0 1 6 11z",
47
47
  SortAsc: "M.08 6.07 6.5.01l6.42 6.06Zm0 0",
48
- SortDesc: "M1.76 5 6 .76 10.24 5z",
48
+ SortDesc: "M12.92 8.93 6.5 14.99.08 8.93Zm0 0",
49
49
  Sort: "M10.24 7 6 11.24 1.76 7zM1.76 5 6 .76 10.24 5z",
50
50
  // single-use icons in Widgets
51
51
  Calendar: "M10.5 2V0h-1v2h-3V0h-1v2H0v14h16V2zM15 15H1V3h14zM3 6h2v2H3zm4 0h2v2H7zm4 0h2v2h-2zm-8 4h2v2H3zm4 0h2v2H7zm4 0h2v2h-2z",
@@ -29,16 +29,31 @@ const ds5 = mergeTheme(ds5$1, {
29
29
  panel: {
30
30
  "--r": theme.radii.round,
31
31
  "&[data-popper-placement*='top']": {
32
+ top: 1,
33
+ borderRadius: "var(--r) var(--r) var(--r) 0"
34
+ },
35
+ "&[data-popper-placement*='top']:has([data-is-dropdown='true'])": {
32
36
  top: 1,
33
37
  borderRadius: "var(--r) var(--r) 0 0"
34
38
  },
35
39
  "&[data-popper-placement*='bottom']": {
40
+ top: -1,
41
+ borderRadius: "0 var(--r) var(--r) var(--r)"
42
+ },
43
+ "&[data-popper-placement*='bottom']:has([data-is-dropdown='true'])": {
36
44
  top: -1,
37
45
  borderRadius: "0 0 var(--r) var(--r)"
38
46
  }
39
47
  }
40
48
  }
41
49
  },
50
+ HvBreadCrumb: {
51
+ classes: {
52
+ link: {
53
+ borderRadius: theme.radii.round
54
+ }
55
+ }
56
+ },
42
57
  HvButton: {
43
58
  radius: "round",
44
59
  classes: {
@@ -76,6 +91,26 @@ const ds5 = mergeTheme(ds5$1, {
76
91
  }
77
92
  }
78
93
  },
94
+ HvCalendar: {
95
+ classes: {
96
+ root: {
97
+ " .HvCalendarCell-cellContainer": {
98
+ borderRadius: theme.radii.round,
99
+ "& .HvCalendarCell-startBookend": {
100
+ borderTopLeftRadius: theme.radii.round,
101
+ borderBottomLeftRadius: theme.radii.round
102
+ },
103
+ "& .HvCalendarCell-endBookend": {
104
+ borderTopRightRadius: theme.radii.round,
105
+ borderBottomRightRadius: theme.radii.round
106
+ }
107
+ },
108
+ " .HvCalendarCell-calendarDateSelected": {
109
+ borderRadius: theme.radii.round
110
+ }
111
+ }
112
+ }
113
+ },
79
114
  HvCallout: {
80
115
  classes: {
81
116
  messageIcon: {
@@ -84,6 +119,27 @@ const ds5 = mergeTheme(ds5$1, {
84
119
  }
85
120
  }
86
121
  },
122
+ HvColorPicker: {
123
+ classes: {
124
+ colorPicker: {
125
+ " .HvColorPickerPresetColors-swatchWrap > span > div": {
126
+ borderRadius: theme.radii.round
127
+ },
128
+ " .HvColorPickerSavedColors-swatchWrap > span > div": {
129
+ borderRadius: theme.radii.round
130
+ },
131
+ " .HvColorPickerPicker-saturation > div": {
132
+ borderRadius: theme.radii.round,
133
+ " .saturation-white": {
134
+ borderRadius: theme.radii.round,
135
+ " .saturation-black": {
136
+ borderRadius: theme.radii.round
137
+ }
138
+ }
139
+ }
140
+ }
141
+ }
142
+ },
87
143
  HvDropdownButton: {
88
144
  classes: {
89
145
  open: {
@@ -100,6 +156,22 @@ const ds5 = mergeTheme(ds5$1, {
100
156
  },
101
157
  HvMultiButton: {
102
158
  classes: {
159
+ multiple: {
160
+ borderRadius: theme.radii.round,
161
+ "& .HvMultiButton-button.HvMultiButton-selected": {
162
+ borderRadius: theme.radii.round,
163
+ borderColor: theme.colors.primary,
164
+ borderWidth: 2
165
+ }
166
+ },
167
+ vertical: {
168
+ borderRadius: theme.radii.round,
169
+ "& .HvMultiButton-button.HvMultiButton-selected": {
170
+ borderRadius: theme.radii.round,
171
+ borderColor: theme.colors.primary,
172
+ borderWidth: 2
173
+ }
174
+ },
103
175
  splitGroup: {
104
176
  // NEXT5 subtle multi-buttons have a custom background
105
177
  "& .HvButton-subtle": {
@@ -124,6 +196,13 @@ const ds5 = mergeTheme(ds5$1, {
124
196
  }
125
197
  }
126
198
  },
199
+ HvSnackbarContent: {
200
+ classes: {
201
+ root: {
202
+ borderRadius: theme.radii.round
203
+ }
204
+ }
205
+ },
127
206
  HvStatusIcon: {
128
207
  type: "simple"
129
208
  },
@@ -136,6 +215,13 @@ const ds5 = mergeTheme(ds5$1, {
136
215
  }
137
216
  }
138
217
  },
218
+ HvTabs: {
219
+ classes: {
220
+ indicator: {
221
+ backgroundColor: theme.colors.primaryStrong
222
+ }
223
+ }
224
+ },
139
225
  HvTag: {
140
226
  classes: {
141
227
  root: {
@@ -143,6 +229,17 @@ const ds5 = mergeTheme(ds5$1, {
143
229
  },
144
230
  categorical: {
145
231
  "--tagColor": theme.alpha("cat1", 0.2)
232
+ },
233
+ xs: {
234
+ height: 19
235
+ }
236
+ }
237
+ },
238
+ HvDialog: {
239
+ classes: {
240
+ statusBar: {
241
+ borderTopLeftRadius: theme.radii.round,
242
+ borderTopRightRadius: theme.radii.round
146
243
  }
147
244
  }
148
245
  },
@@ -165,6 +262,13 @@ const ds5 = mergeTheme(ds5$1, {
165
262
  borderBottom: "none"
166
263
  }
167
264
  }
265
+ },
266
+ HvDialogActions: {
267
+ classes: {
268
+ root: {
269
+ borderTop: `1px solid ${theme.colors.borderSubtle}`
270
+ }
271
+ }
168
272
  }
169
273
  }
170
274
  });
@@ -251,7 +251,6 @@ const pentahoPlus = mergeTheme(pentahoPlus$1, {
251
251
  root: {
252
252
  outline: `1px solid ${theme.colors.border}`,
253
253
  outlineOffset: -1,
254
- borderRadius: theme.radii.round,
255
254
  ":where(:not([data-color],.HvTag-disabled))": {
256
255
  color: theme.colors.text,
257
256
  "--tagColor": theme.colors.bgContainer
@@ -6597,7 +6597,9 @@ export declare interface HvTagProps extends Omit<HvButtonBaseProps, "type" | "co
6597
6597
  type?: "semantic" | "categorical";
6598
6598
  /** @deprecated */
6599
6599
  variant?: "filled" | "outlined";
6600
+ /** The size of the tag element. */
6600
6601
  size?: Extract<HvSize, "xs" | "sm" | "md">;
6602
+ /** The icon to use in the tag. */
6601
6603
  icon?: React.ReactNode;
6602
6604
  /** Whether to show the select icon checkbox. */
6603
6605
  showSelectIcon?: boolean;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hitachivantara/uikit-react-core",
3
- "version": "5.100.1",
3
+ "version": "5.102.0",
4
4
  "private": false,
5
5
  "author": "Hitachi Vantara UI Kit Team",
6
6
  "description": "UI Kit Core React components.",
@@ -61,7 +61,7 @@
61
61
  "access": "public",
62
62
  "directory": "package"
63
63
  },
64
- "gitHead": "597165cf787bef63a0f77d391d7333f608269aca",
64
+ "gitHead": "ebaccbc2b47777ea570e856cb1e21cf163e37316",
65
65
  "exports": {
66
66
  ".": {
67
67
  "types": "./dist/types/index.d.ts",