@digital-ai/dot-components 2.27.0 → 2.28.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.
- package/index.esm.js +108 -42
- package/package.json +1 -1
- package/src/lib/components/BaseButtonProps.d.ts +3 -0
- package/src/lib/components/button/IconButton.d.ts +4 -1
- package/src/lib/components/draggable-list/DraggableList.styles.d.ts +0 -1
- package/src/lib/components/index.d.ts +2 -1
- package/src/lib/components/list/utils/models.d.ts +2 -2
- package/src/lib/components/split-button/SplitButton.d.ts +1 -1
- package/src/lib/components/tooltip/Tooltip.d.ts +7 -3
- package/src/lib/components/tooltip/index.d.ts +2 -0
- package/src/lib/components/tooltip/utils/helpers.d.ts +1 -0
package/index.esm.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
|
|
2
2
|
import * as React from 'react';
|
|
3
|
-
import {
|
|
3
|
+
import { useState, useRef, useEffect, createContext, useMemo, useContext, forwardRef, useCallback, createElement, Fragment as Fragment$1, useLayoutEffect } from 'react';
|
|
4
4
|
import { Tooltip, Icon, Typography, Accordion, AccordionSummary, AccordionDetails, AccordionActions, InputAdornment, InputLabel, TextField, Toolbar, Alert, Fade, StyledEngineProvider, Avatar, Button, Link, List, ListSubheader, Divider, CircularProgress, Popper, MenuList, MenuItem, Paper, ClickAwayListener, Drawer, IconButton, ListItem, ListItemButton, Collapse, ListItemIcon, ListItemText, Badge, useMediaQuery, Autocomplete, Chip, AvatarGroup, Breadcrumbs, ToggleButtonGroup, ToggleButton, Card, CardContent, CardHeader, FormControlLabel, Checkbox, FormControl, FormGroup, FormLabel, FormHelperText, Dialog, DialogContent, DialogActions, useTheme as useTheme$1, RadioGroup, Radio, Switch, Skeleton, Snackbar, ButtonGroup, Stepper, Step, StepLabel, StepContent, TablePagination, TableContainer, TableBody, TableCell, TableRow, TableSortLabel, TableHead, Table, Tabs, Tab, LinearProgress, Slide } from '@mui/material';
|
|
5
5
|
import '@digital-ai/dot-icons';
|
|
6
6
|
import styled, { css, createGlobalStyle, ThemeProvider as ThemeProvider$1, keyframes } from 'styled-components';
|
|
@@ -29,6 +29,18 @@ function useStylesWithRootClass(name, className, ...args) {
|
|
|
29
29
|
return [name, ...(className ? [className] : [])].concat(args).join(' ').trim();
|
|
30
30
|
}
|
|
31
31
|
|
|
32
|
+
const checkIfOverflowPresentInElementTree = element => {
|
|
33
|
+
if (element.scrollWidth > element.clientWidth) {
|
|
34
|
+
return true;
|
|
35
|
+
}
|
|
36
|
+
for (const child of Array.from(element.children)) {
|
|
37
|
+
if (checkIfOverflowPresentInElementTree(child)) {
|
|
38
|
+
return true;
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
return false;
|
|
42
|
+
};
|
|
43
|
+
|
|
32
44
|
const DotTooltip = ({
|
|
33
45
|
ariaLabel,
|
|
34
46
|
ariaRole = 'tooltip',
|
|
@@ -36,6 +48,8 @@ const DotTooltip = ({
|
|
|
36
48
|
children,
|
|
37
49
|
className,
|
|
38
50
|
'data-testid': dataTestId,
|
|
51
|
+
disablePortal = false,
|
|
52
|
+
hoverVisibility = 'always',
|
|
39
53
|
leaveDelay,
|
|
40
54
|
onClose,
|
|
41
55
|
open,
|
|
@@ -43,19 +57,44 @@ const DotTooltip = ({
|
|
|
43
57
|
title
|
|
44
58
|
}) => {
|
|
45
59
|
const rootClasses = useStylesWithRootClass('dot-tooltip', className);
|
|
60
|
+
const [hasTooltipOnHover, setHasTooltipOnHover] = useState(false);
|
|
61
|
+
const childrenWrapperRef = useRef();
|
|
62
|
+
useEffect(() => {
|
|
63
|
+
if (hoverVisibility !== 'overflow') return;
|
|
64
|
+
const resizeObserver = new ResizeObserver(checkIfTooltipShouldBeRendered);
|
|
65
|
+
if (childrenWrapperRef.current) {
|
|
66
|
+
resizeObserver.observe(childrenWrapperRef.current);
|
|
67
|
+
}
|
|
68
|
+
checkIfTooltipShouldBeRendered();
|
|
69
|
+
return () => {
|
|
70
|
+
if (childrenWrapperRef.current) {
|
|
71
|
+
resizeObserver.unobserve(childrenWrapperRef.current);
|
|
72
|
+
}
|
|
73
|
+
};
|
|
74
|
+
}, [childrenWrapperRef.current, children, hoverVisibility]);
|
|
75
|
+
const checkIfTooltipShouldBeRendered = () => {
|
|
76
|
+
if (!childrenWrapperRef || !childrenWrapperRef.current) return;
|
|
77
|
+
const isOverflowPresent = checkIfOverflowPresentInElementTree(childrenWrapperRef.current);
|
|
78
|
+
setHasTooltipOnHover(isOverflowPresent);
|
|
79
|
+
};
|
|
46
80
|
return title ? jsx(Tooltip, {
|
|
47
81
|
"aria-hidden": false,
|
|
48
82
|
"aria-label": ariaLabel || title.toString(),
|
|
49
83
|
arrow: arrow,
|
|
50
84
|
className: rootClasses,
|
|
51
85
|
"data-testid": dataTestId,
|
|
86
|
+
disableHoverListener: hoverVisibility === 'never' || hoverVisibility === 'overflow' && !hasTooltipOnHover,
|
|
52
87
|
leaveDelay: leaveDelay,
|
|
53
88
|
onClose: onClose,
|
|
54
89
|
open: open,
|
|
55
90
|
placement: placement,
|
|
91
|
+
PopperProps: {
|
|
92
|
+
disablePortal
|
|
93
|
+
},
|
|
56
94
|
role: ariaRole,
|
|
57
95
|
title: title,
|
|
58
96
|
children: jsx("span", {
|
|
97
|
+
ref: childrenWrapperRef,
|
|
59
98
|
tabIndex: -1,
|
|
60
99
|
children: children
|
|
61
100
|
})
|
|
@@ -2623,6 +2662,7 @@ const DotButton = forwardRef(({
|
|
|
2623
2662
|
startIcon,
|
|
2624
2663
|
tabIndex,
|
|
2625
2664
|
tooltip,
|
|
2665
|
+
tooltipPlacement,
|
|
2626
2666
|
type = 'primary'
|
|
2627
2667
|
}, ref) => {
|
|
2628
2668
|
const rootClasses = useStylesWithRootClass(rootClassName$12, className);
|
|
@@ -2647,6 +2687,7 @@ const DotButton = forwardRef(({
|
|
|
2647
2687
|
break;
|
|
2648
2688
|
}
|
|
2649
2689
|
return jsx(DotTooltip, {
|
|
2690
|
+
placement: tooltipPlacement,
|
|
2650
2691
|
title: tooltip,
|
|
2651
2692
|
children: jsx(StyledButton, {
|
|
2652
2693
|
"aria-label": ariaLabel,
|
|
@@ -2973,6 +3014,10 @@ const StyledPopper = styled(Popper)`
|
|
|
2973
3014
|
max-height: ${getListMaxHeight($maxHeight)};
|
|
2974
3015
|
`}
|
|
2975
3016
|
|
|
3017
|
+
li {
|
|
3018
|
+
word-break: break-word;
|
|
3019
|
+
}
|
|
3020
|
+
|
|
2976
3021
|
.dot-li {
|
|
2977
3022
|
min-height: auto;
|
|
2978
3023
|
}
|
|
@@ -3423,19 +3468,21 @@ const DotIconButton = ({
|
|
|
3423
3468
|
color = 'inherit',
|
|
3424
3469
|
'data-pendoid': dataPendoId = rootClassName$V,
|
|
3425
3470
|
'data-testid': dataTestId,
|
|
3426
|
-
disabled = false,
|
|
3427
3471
|
disableRipple = false,
|
|
3472
|
+
disabled = false,
|
|
3428
3473
|
iconId,
|
|
3429
3474
|
iconSize = 'small',
|
|
3430
3475
|
onClick,
|
|
3431
|
-
tooltip,
|
|
3432
3476
|
shape = 'circle',
|
|
3433
|
-
size = 'medium'
|
|
3477
|
+
size = 'medium',
|
|
3478
|
+
tooltip,
|
|
3479
|
+
tooltipPlacement
|
|
3434
3480
|
}) => {
|
|
3435
3481
|
const rippleClassName = disableRipple ? 'ripple-disabled' : '';
|
|
3436
3482
|
const rootClasses = useStylesWithRootClass(rootClassName$V, rippleClassName, `shape-${shape}`, className);
|
|
3437
3483
|
return jsx(DotTooltip, {
|
|
3438
3484
|
"data-testid": "icon-button-tooltip",
|
|
3485
|
+
placement: tooltipPlacement,
|
|
3439
3486
|
title: tooltip,
|
|
3440
3487
|
children: jsx(StyledIconButton, {
|
|
3441
3488
|
"aria-label": ariaLabel || tooltip || `${iconId} icon button`,
|
|
@@ -3667,6 +3714,14 @@ const styledListItemElement = elementType => {
|
|
|
3667
3714
|
width: 100%;
|
|
3668
3715
|
}
|
|
3669
3716
|
|
|
3717
|
+
&.link-item {
|
|
3718
|
+
padding: 0;
|
|
3719
|
+
|
|
3720
|
+
.${listItemLinkClassName} {
|
|
3721
|
+
padding: ${theme.spacing(1, 2)};
|
|
3722
|
+
}
|
|
3723
|
+
}
|
|
3724
|
+
|
|
3670
3725
|
&.${flyoutListItemClassName} {
|
|
3671
3726
|
padding: 0;
|
|
3672
3727
|
}
|
|
@@ -3689,6 +3744,10 @@ const styledListItemElement = elementType => {
|
|
|
3689
3744
|
align-items: center;
|
|
3690
3745
|
display: flex;
|
|
3691
3746
|
flex-grow: 2;
|
|
3747
|
+
|
|
3748
|
+
&:focus-visible {
|
|
3749
|
+
outline: none;
|
|
3750
|
+
}
|
|
3692
3751
|
}
|
|
3693
3752
|
|
|
3694
3753
|
.${flyoutItemLinkClassName} .MuiIcon-root {
|
|
@@ -3841,7 +3900,8 @@ const DotListItem = ({
|
|
|
3841
3900
|
const hasChildren = items.length > 0;
|
|
3842
3901
|
const isFlyout = nestedListType === 'menu' && hasChildren;
|
|
3843
3902
|
const showEndIcon = endIcon || hasChildren;
|
|
3844
|
-
const
|
|
3903
|
+
const isLink = href && !onClick;
|
|
3904
|
+
const rootClasses = useStylesWithRootClass(listItemRootClass, className, nestedListType === 'expandable' && hasChildren ? 'expandable' : '', navIsOpened ? 'open' : '', isLink ? 'link-item' : '');
|
|
3845
3905
|
const toggleOpen = event => {
|
|
3846
3906
|
setAnchorEl(event.currentTarget);
|
|
3847
3907
|
setNavIsOpened(!navIsOpened);
|
|
@@ -3895,15 +3955,16 @@ const DotListItem = ({
|
|
|
3895
3955
|
"data-testid": dataTestId,
|
|
3896
3956
|
divider: divider,
|
|
3897
3957
|
href: onClick ? null : href,
|
|
3898
|
-
onClick:
|
|
3958
|
+
onClick: !isLink ? handleClick : null,
|
|
3899
3959
|
role: ariaRole,
|
|
3900
3960
|
selected: isFlyout ? navIsOpened : selected,
|
|
3961
|
+
tabIndex: isLink ? -1 : 0,
|
|
3901
3962
|
target: target,
|
|
3902
3963
|
children: jsx(DotTooltip, {
|
|
3903
3964
|
"data-testid": `${dataTestId}-tooltip`,
|
|
3904
3965
|
placement: tooltipPlacement,
|
|
3905
3966
|
title: tooltip,
|
|
3906
|
-
children:
|
|
3967
|
+
children: isLink ? renderListItemLink : jsxs(Fragment, {
|
|
3907
3968
|
children: [startIcon && jsx(ListItemIcon, {
|
|
3908
3969
|
children: startIcon
|
|
3909
3970
|
}), renderListItemText(), showEndIcon && renderListItemEndIcon()]
|
|
@@ -5276,6 +5337,12 @@ const StyledSidebar = styled.aside`
|
|
|
5276
5337
|
margin: 0;
|
|
5277
5338
|
padding: 0;
|
|
5278
5339
|
|
|
5340
|
+
.${listItemLinkClassName} {
|
|
5341
|
+
padding: 0;
|
|
5342
|
+
height: 100%;
|
|
5343
|
+
width: 100%;
|
|
5344
|
+
}
|
|
5345
|
+
|
|
5279
5346
|
.dot-typography {
|
|
5280
5347
|
margin-left: ${theme.spacing(1)};
|
|
5281
5348
|
}
|
|
@@ -5337,10 +5404,6 @@ const StyledSidebar = styled.aside`
|
|
|
5337
5404
|
border: 'none';
|
|
5338
5405
|
}
|
|
5339
5406
|
|
|
5340
|
-
.dot-list-item-link .dot-icon {
|
|
5341
|
-
margin-right: ${theme.spacing(1)};
|
|
5342
|
-
}
|
|
5343
|
-
|
|
5344
5407
|
.dot-icon {
|
|
5345
5408
|
border-radius: 50%;
|
|
5346
5409
|
display: flex;
|
|
@@ -6110,14 +6173,14 @@ const StyledChip = styled(Chip)`
|
|
|
6110
6173
|
|
|
6111
6174
|
&.Mui-disabled {
|
|
6112
6175
|
background: ${theme.palette.figma.disabled.normal};
|
|
6113
|
-
border-color: ${theme.palette.figma.border.default}
|
|
6176
|
+
border-color: ${theme.palette.figma.border.default};
|
|
6114
6177
|
opacity: 1;
|
|
6115
6178
|
|
|
6116
|
-
.dot-icon i
|
|
6179
|
+
.dot-icon i,
|
|
6180
|
+
.MuiChip-deleteIcon {
|
|
6117
6181
|
color: ${theme.palette.figma.icon.disabled};
|
|
6118
6182
|
}
|
|
6119
6183
|
|
|
6120
|
-
.MuiChip-deleteIcon,
|
|
6121
6184
|
.MuiChip-label {
|
|
6122
6185
|
color: ${theme.palette.figma.typography.disabled};
|
|
6123
6186
|
}
|
|
@@ -9475,6 +9538,7 @@ const StyledInlineEdit = styled.div`
|
|
|
9475
9538
|
position: relative;
|
|
9476
9539
|
|
|
9477
9540
|
.dot-edit-icon {
|
|
9541
|
+
background-color: ${theme.palette.figma.neutral.elevated};
|
|
9478
9542
|
border-radius: ${theme.spacing(0, 0.5, 0.5, 0)};
|
|
9479
9543
|
display: none;
|
|
9480
9544
|
height: 100%;
|
|
@@ -9505,6 +9569,7 @@ const StyledInlineEdit = styled.div`
|
|
|
9505
9569
|
.dot-view-mode-typography {
|
|
9506
9570
|
padding: ${theme.spacing(1.3125, 1)};
|
|
9507
9571
|
margin-bottom: 0;
|
|
9572
|
+
word-break: break-word;
|
|
9508
9573
|
|
|
9509
9574
|
&.${placeholderClassName} {
|
|
9510
9575
|
color: ${theme.palette.figma.typography.gray};
|
|
@@ -10462,6 +10527,7 @@ const DotSplitButton = ({
|
|
|
10462
10527
|
options = [],
|
|
10463
10528
|
size = 'medium',
|
|
10464
10529
|
tooltip,
|
|
10530
|
+
tooltipPlacement,
|
|
10465
10531
|
type = 'primary'
|
|
10466
10532
|
}) => {
|
|
10467
10533
|
const rootClasses = useStylesWithRootClass(rootClassName$l, className, type, disabled ? 'disabled' : '');
|
|
@@ -10499,6 +10565,7 @@ const DotSplitButton = ({
|
|
|
10499
10565
|
onClick: event => handleClick(event, null, mainOptionKey),
|
|
10500
10566
|
size: size,
|
|
10501
10567
|
tooltip: tooltip,
|
|
10568
|
+
tooltipPlacement: tooltipPlacement,
|
|
10502
10569
|
type: type,
|
|
10503
10570
|
children: mainOptionChildren
|
|
10504
10571
|
}), jsx(DotButton, {
|
|
@@ -11697,6 +11764,7 @@ const DotHeaderRow = ({
|
|
|
11697
11764
|
},
|
|
11698
11765
|
children: [multiSelectHeader && renderMultiSelectCell(), collapsibleTableOptions && jsx(DotHeaderCell, {
|
|
11699
11766
|
"aria-hidden": "true",
|
|
11767
|
+
sortable: false,
|
|
11700
11768
|
typography: typography,
|
|
11701
11769
|
uid: CreateUUID()
|
|
11702
11770
|
}), columns.map(cell => {
|
|
@@ -13137,6 +13205,24 @@ const DotPopper = ({
|
|
|
13137
13205
|
});
|
|
13138
13206
|
};
|
|
13139
13207
|
|
|
13208
|
+
const getOrderedListItems = (layout, listItems) => {
|
|
13209
|
+
if (!listItems || !layout) return [];
|
|
13210
|
+
return [...listItems].sort((a, b) => layout.find(layoutItem => layoutItem.i === a.id).y - layout.find(layoutItem => layoutItem.i === b.id).y);
|
|
13211
|
+
};
|
|
13212
|
+
const checkIfEqual = (oldList, newList) => {
|
|
13213
|
+
if (oldList.length !== newList.length) return false;
|
|
13214
|
+
return oldList.every((oldListItem, index) => oldListItem.id === newList[index].id);
|
|
13215
|
+
};
|
|
13216
|
+
const getListItemLayout = listItems => {
|
|
13217
|
+
return listItems === null || listItems === void 0 ? void 0 : listItems.map((item, index) => ({
|
|
13218
|
+
i: item.id,
|
|
13219
|
+
x: 0,
|
|
13220
|
+
y: index,
|
|
13221
|
+
w: 1,
|
|
13222
|
+
h: 1
|
|
13223
|
+
}));
|
|
13224
|
+
};
|
|
13225
|
+
|
|
13140
13226
|
const rootClassName$5 = 'dot-draggable-list';
|
|
13141
13227
|
const listItemClassName = 'dot-draggable-list-item';
|
|
13142
13228
|
const StyledDraggableList = styled.div`
|
|
@@ -13149,6 +13235,8 @@ const StyledDraggableList = styled.div`
|
|
|
13149
13235
|
position: relative;
|
|
13150
13236
|
|
|
13151
13237
|
.${listItemClassName} {
|
|
13238
|
+
width: 100% !important;
|
|
13239
|
+
|
|
13152
13240
|
.dot-icon {
|
|
13153
13241
|
color: ${theme.palette.layer.n700};
|
|
13154
13242
|
}
|
|
@@ -13163,30 +13251,14 @@ const StyledDraggableList = styled.div`
|
|
|
13163
13251
|
|
|
13164
13252
|
&.with-handle-grab-cursor ${draggableHandle} {
|
|
13165
13253
|
cursor: grab;
|
|
13254
|
+
user-select: unset !important;
|
|
13255
|
+
-moz-user-select: unset !important;
|
|
13166
13256
|
}
|
|
13167
13257
|
}
|
|
13168
13258
|
}
|
|
13169
13259
|
`}
|
|
13170
13260
|
`;
|
|
13171
13261
|
|
|
13172
|
-
const getOrderedListItems = (layout, listItems) => {
|
|
13173
|
-
if (!listItems || !layout) return [];
|
|
13174
|
-
return [...listItems].sort((a, b) => layout.find(layoutItem => layoutItem.i === a.id).y - layout.find(layoutItem => layoutItem.i === b.id).y);
|
|
13175
|
-
};
|
|
13176
|
-
const checkIfEqual = (oldList, newList) => {
|
|
13177
|
-
if (oldList.length !== newList.length) return false;
|
|
13178
|
-
return oldList.every((oldListItem, index) => oldListItem.id === newList[index].id);
|
|
13179
|
-
};
|
|
13180
|
-
const getListItemLayout = listItems => {
|
|
13181
|
-
return listItems === null || listItems === void 0 ? void 0 : listItems.map((item, index) => ({
|
|
13182
|
-
i: item.id,
|
|
13183
|
-
x: 0,
|
|
13184
|
-
y: index,
|
|
13185
|
-
w: 1,
|
|
13186
|
-
h: 1
|
|
13187
|
-
}));
|
|
13188
|
-
};
|
|
13189
|
-
|
|
13190
13262
|
const DEFAULT_LIST_WIDTH = '100%';
|
|
13191
13263
|
const DEFAULT_LIST_ITEM_HEIGHT = 36;
|
|
13192
13264
|
const ListGridLayout = WidthProvider(GridLayout);
|
|
@@ -13222,7 +13294,9 @@ const DotDraggableList = ({
|
|
|
13222
13294
|
"data-pendoid": dataPendoId,
|
|
13223
13295
|
"data-testid": dataTestId,
|
|
13224
13296
|
draggableHandle: draggableHandle,
|
|
13225
|
-
|
|
13297
|
+
style: {
|
|
13298
|
+
width: listWidth
|
|
13299
|
+
},
|
|
13226
13300
|
children: jsx(ListGridLayout, {
|
|
13227
13301
|
className: "layout",
|
|
13228
13302
|
draggableHandle: draggableHandle,
|
|
@@ -13232,9 +13306,6 @@ const DotDraggableList = ({
|
|
|
13232
13306
|
margin: [0, 0],
|
|
13233
13307
|
onLayoutChange: onChange && handleLayoutChange(),
|
|
13234
13308
|
rowHeight: rowHeight,
|
|
13235
|
-
style: {
|
|
13236
|
-
width: listWidth
|
|
13237
|
-
},
|
|
13238
13309
|
children: orderedItems.map(({
|
|
13239
13310
|
id: itemId,
|
|
13240
13311
|
children
|
|
@@ -13242,13 +13313,8 @@ const DotDraggableList = ({
|
|
|
13242
13313
|
return jsx(ListItem, {
|
|
13243
13314
|
"data-pendoid": dataPendoId && `${dataPendoId}-item`,
|
|
13244
13315
|
"data-testid": dataTestId && `${dataTestId}-item`,
|
|
13245
|
-
button: true,
|
|
13246
13316
|
children: renderNodeOrTypography(children),
|
|
13247
|
-
className: listItemClasses
|
|
13248
|
-
disableRipple: true,
|
|
13249
|
-
style: {
|
|
13250
|
-
width: listWidth
|
|
13251
|
-
}
|
|
13317
|
+
className: listItemClasses
|
|
13252
13318
|
}, itemId);
|
|
13253
13319
|
})
|
|
13254
13320
|
})
|
package/package.json
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { MouseEvent, KeyboardEvent } from 'react';
|
|
2
2
|
import { CommonProps } from './CommonProps';
|
|
3
|
+
import { TooltipPlacement } from './tooltip';
|
|
3
4
|
export type ButtonType = 'destructive' | 'primary' | 'outlined' | 'text';
|
|
4
5
|
export type ButtonSize = 'small' | 'medium' | 'large';
|
|
5
6
|
export interface BaseButtonProps extends CommonProps {
|
|
@@ -21,6 +22,8 @@ export interface BaseButtonProps extends CommonProps {
|
|
|
21
22
|
tabIndex?: number;
|
|
22
23
|
/** Help text to be displayed on hover */
|
|
23
24
|
tooltip?: string;
|
|
25
|
+
/** If set, determines the placement of the tooltip */
|
|
26
|
+
tooltipPlacement?: TooltipPlacement;
|
|
24
27
|
/** The type of button */
|
|
25
28
|
type?: ButtonType;
|
|
26
29
|
}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { MouseEvent } from 'react';
|
|
2
2
|
import { CommonProps } from '../CommonProps';
|
|
3
3
|
import { IconFontSize } from '../icon/Icon';
|
|
4
|
+
import { TooltipPlacement } from '../tooltip';
|
|
4
5
|
export type IconButtonColor = 'default' | 'inherit' | 'primary' | 'secondary';
|
|
5
6
|
export type IconButtonSize = 'small' | 'medium';
|
|
6
7
|
export type IconButtonShape = 'circle' | 'square';
|
|
@@ -21,9 +22,11 @@ export interface CommonIconButtonProps extends CommonProps {
|
|
|
21
22
|
size?: IconButtonSize;
|
|
22
23
|
/** Help text to be displayed on icon hover */
|
|
23
24
|
tooltip?: string;
|
|
25
|
+
/** If set, determines the placement of the tooltip */
|
|
26
|
+
tooltipPlacement?: TooltipPlacement;
|
|
24
27
|
}
|
|
25
28
|
export interface IconButtonProps extends CommonIconButtonProps {
|
|
26
29
|
/** The icon to display on the button */
|
|
27
30
|
iconId: string;
|
|
28
31
|
}
|
|
29
|
-
export declare const DotIconButton: ({ ariaLabel, ariaRole, className, color, "data-pendoid": dataPendoId, "data-testid": dataTestId,
|
|
32
|
+
export declare const DotIconButton: ({ ariaLabel, ariaRole, className, color, "data-pendoid": dataPendoId, "data-testid": dataTestId, disableRipple, disabled, iconId, iconSize, onClick, shape, size, tooltip, tooltipPlacement, }: IconButtonProps) => import("react/jsx-runtime").JSX.Element;
|
|
@@ -2,7 +2,6 @@ export declare const rootClassName = "dot-draggable-list";
|
|
|
2
2
|
export declare const listItemClassName = "dot-draggable-list-item";
|
|
3
3
|
interface StyledDraggableListProps {
|
|
4
4
|
draggableHandle?: string;
|
|
5
|
-
width: string;
|
|
6
5
|
}
|
|
7
6
|
export declare const StyledDraggableList: import("styled-components").StyledComponent<"div", any, StyledDraggableListProps, never>;
|
|
8
7
|
export {};
|
|
@@ -43,6 +43,7 @@ export type { ClickAwayListenerProps } from './click-away-listener';
|
|
|
43
43
|
export type { StepProps } from './stepper/Stepper';
|
|
44
44
|
export type { CarouselAnimationVariant, CarouselNavigationButtonDisplayOption, CarouselProps, } from './carousel/Carousel';
|
|
45
45
|
export type { StickyWithBorderProps } from './sticky-with-border';
|
|
46
|
+
export type { TooltipProps, TooltipHoverVisibility, TooltipPlacement, } from './tooltip';
|
|
46
47
|
export { DotAccordion } from './accordion/Accordion';
|
|
47
48
|
export { DotActionToolbar } from './action-toolbar/ActionToolbar';
|
|
48
49
|
export { DotAlertBanner } from './alert-banner/AlertBanner';
|
|
@@ -95,7 +96,7 @@ export { DotStepper } from './stepper/Stepper';
|
|
|
95
96
|
export { DotProgressButton } from './progress-button/ProgressButton';
|
|
96
97
|
export { DotSwitch } from './switch';
|
|
97
98
|
export { DotHeaderRow, DotTable, DotTablePagination, DotTableActions, DotTableAction, } from './table';
|
|
98
|
-
export { DotTooltip } from './tooltip
|
|
99
|
+
export { DotTooltip } from './tooltip';
|
|
99
100
|
export { DotTabs } from './tabs/Tabs';
|
|
100
101
|
export { DotTypography } from './typography/Typography';
|
|
101
102
|
export { DotFileUpload, DotFileListItem } from './file-upload';
|
|
@@ -2,7 +2,7 @@ import { ElementType, KeyboardEvent, MouseEvent, ReactNode } from 'react';
|
|
|
2
2
|
import { CommonProps } from '../../CommonProps';
|
|
3
3
|
import { PopperPlacement } from '../../menu/Menu';
|
|
4
4
|
import { LinkTarget } from '../../link/Link';
|
|
5
|
-
import {
|
|
5
|
+
import { TooltipPlacement } from '../../tooltip/Tooltip';
|
|
6
6
|
export declare const DEFAULT_TOOLTIP_PLACEMENT = "top-start";
|
|
7
7
|
export type NestedListType = 'drawer' | 'expandable' | 'menu';
|
|
8
8
|
export interface ListProps extends CommonProps {
|
|
@@ -65,7 +65,7 @@ export interface ListItemProps extends CommonProps {
|
|
|
65
65
|
/** Tooltip text displayed on hover */
|
|
66
66
|
tooltip?: string;
|
|
67
67
|
/** Tooltip placement displayed on hover */
|
|
68
|
-
tooltipPlacement?:
|
|
68
|
+
tooltipPlacement?: TooltipPlacement;
|
|
69
69
|
}
|
|
70
70
|
export interface NestedListProps extends CommonProps {
|
|
71
71
|
/** Element that menu is attached to */
|
|
@@ -12,4 +12,4 @@ export interface SplitButtonProps extends BaseButtonProps {
|
|
|
12
12
|
/**The options within the button dropdown */
|
|
13
13
|
options: Array<MenuItemProps>;
|
|
14
14
|
}
|
|
15
|
-
export declare const DotSplitButton: ({ autoFocus, ariaLabel, className, "data-pendoid": dataPendoId, "data-testid": dataTestId, defaultMainOptionKey, disabled, disablePortal, disableRipple, fullWidth, isSubmit, onOptionClick, options, size, tooltip, type, }: SplitButtonProps) => import("react/jsx-runtime").JSX.Element;
|
|
15
|
+
export declare const DotSplitButton: ({ autoFocus, ariaLabel, className, "data-pendoid": dataPendoId, "data-testid": dataTestId, defaultMainOptionKey, disabled, disablePortal, disableRipple, fullWidth, isSubmit, onOptionClick, options, size, tooltip, tooltipPlacement, type, }: SplitButtonProps) => import("react/jsx-runtime").JSX.Element;
|
|
@@ -1,14 +1,18 @@
|
|
|
1
1
|
import { ReactNode, ReactElement, ChangeEvent } from 'react';
|
|
2
2
|
import { CommonProps } from '../CommonProps';
|
|
3
|
-
export type
|
|
3
|
+
export type TooltipHoverVisibility = 'always' | 'overflow' | 'never';
|
|
4
|
+
export type TooltipPlacement = 'bottom-end' | 'bottom-start' | 'bottom' | 'left-end' | 'left-start' | 'left' | 'right-end' | 'right-start' | 'right' | 'top-end' | 'top-start' | 'top';
|
|
4
5
|
export interface TooltipProps extends CommonProps {
|
|
5
6
|
/** If true, adds an arrow to the tooltip indicating which element it refers to. */
|
|
6
7
|
arrow?: boolean;
|
|
7
8
|
children: ReactElement;
|
|
9
|
+
/** Disable the portal behavior. If true, children stay within parent DOM hierarchy. */
|
|
10
|
+
disablePortal?: boolean;
|
|
11
|
+
hoverVisibility?: TooltipHoverVisibility;
|
|
8
12
|
leaveDelay?: number;
|
|
9
13
|
onClose?: (event: ChangeEvent) => void;
|
|
10
14
|
open?: boolean;
|
|
11
|
-
placement?:
|
|
15
|
+
placement?: TooltipPlacement;
|
|
12
16
|
title?: ReactNode | string | number;
|
|
13
17
|
}
|
|
14
|
-
export declare const DotTooltip: ({ ariaLabel, ariaRole, arrow, children, className, "data-testid": dataTestId, leaveDelay, onClose, open, placement, title, }: TooltipProps) => import("react/jsx-runtime").JSX.Element;
|
|
18
|
+
export declare const DotTooltip: ({ ariaLabel, ariaRole, arrow, children, className, "data-testid": dataTestId, disablePortal, hoverVisibility, leaveDelay, onClose, open, placement, title, }: TooltipProps) => import("react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const checkIfOverflowPresentInElementTree: (element: HTMLElement) => boolean;
|