@box/blueprint-web 11.1.1 → 11.3.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/dist/lib-esm/ellipsizable-text/ellipsizable-text.d.ts +3 -0
- package/dist/lib-esm/ellipsizable-text/ellipsizable-text.js +50 -0
- package/dist/lib-esm/ellipsizable-text/index.d.ts +2 -0
- package/dist/lib-esm/ellipsizable-text/types.d.ts +5 -0
- package/dist/lib-esm/index.d.ts +2 -0
- package/dist/lib-esm/index.js +2 -0
- package/dist/lib-esm/utils/useIsEllipsized.js +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import { jsx } from 'react/jsx-runtime';
|
|
2
|
+
import { forwardRef, createRef } from 'react';
|
|
3
|
+
import { Focusable } from '../focusable/focusable.js';
|
|
4
|
+
import { Text } from '../text/text.js';
|
|
5
|
+
import { Tooltip } from '../tooltip/tooltip.js';
|
|
6
|
+
import { useForkRef } from '../utils/useForkRef.js';
|
|
7
|
+
import { useIsEllipsized } from '../utils/useIsEllipsized.js';
|
|
8
|
+
|
|
9
|
+
const Wrapper = ({
|
|
10
|
+
children,
|
|
11
|
+
withTooltip,
|
|
12
|
+
tooltipContent
|
|
13
|
+
}) => {
|
|
14
|
+
if (withTooltip) {
|
|
15
|
+
return jsx(Tooltip, {
|
|
16
|
+
content: tooltipContent,
|
|
17
|
+
children: jsx(Focusable, {
|
|
18
|
+
children: children
|
|
19
|
+
})
|
|
20
|
+
});
|
|
21
|
+
}
|
|
22
|
+
return children;
|
|
23
|
+
};
|
|
24
|
+
const EllipsizableText = /*#__PURE__*/forwardRef(({
|
|
25
|
+
children,
|
|
26
|
+
lineClamp,
|
|
27
|
+
style,
|
|
28
|
+
...rest
|
|
29
|
+
}, forwardedRef) => {
|
|
30
|
+
const textRef = /*#__PURE__*/createRef();
|
|
31
|
+
const isEllipsized = useIsEllipsized(textRef);
|
|
32
|
+
return jsx(Wrapper, {
|
|
33
|
+
tooltipContent: children,
|
|
34
|
+
withTooltip: isEllipsized,
|
|
35
|
+
children: jsx(Text, {
|
|
36
|
+
ref: useForkRef(textRef, forwardedRef),
|
|
37
|
+
...rest,
|
|
38
|
+
style: {
|
|
39
|
+
...style,
|
|
40
|
+
display: '-webkit-box',
|
|
41
|
+
overflow: 'hidden',
|
|
42
|
+
WebkitBoxOrient: 'vertical',
|
|
43
|
+
WebkitLineClamp: lineClamp.toString()
|
|
44
|
+
},
|
|
45
|
+
children: children
|
|
46
|
+
})
|
|
47
|
+
});
|
|
48
|
+
});
|
|
49
|
+
|
|
50
|
+
export { EllipsizableText };
|
package/dist/lib-esm/index.d.ts
CHANGED
|
@@ -17,6 +17,7 @@ export * from './content-field';
|
|
|
17
17
|
export * from './data-table/data-table';
|
|
18
18
|
export * from './date-picker';
|
|
19
19
|
export * from './divider';
|
|
20
|
+
export * from './ellipsizable-text';
|
|
20
21
|
export * from './empty-state';
|
|
21
22
|
export * from './focusable';
|
|
22
23
|
export * from './ghost';
|
|
@@ -79,5 +80,6 @@ export * from './utils/useBreakpoint';
|
|
|
79
80
|
export * from './utils/useControllableState';
|
|
80
81
|
export * from './utils/useForkRef';
|
|
81
82
|
export * from './utils/useFullTextTooltip';
|
|
83
|
+
export * from './utils/useIsEllipsized';
|
|
82
84
|
export * from './utils/useUniqueId';
|
|
83
85
|
export * from './visually-hidden';
|
package/dist/lib-esm/index.js
CHANGED
|
@@ -21,6 +21,7 @@ export { ContentField } from './content-field/content-field.js';
|
|
|
21
21
|
export { DataTableWrapper, StickyCell } from './data-table/data-table.js';
|
|
22
22
|
export { DatePicker } from './date-picker/date-picker.js';
|
|
23
23
|
export { Divider } from './divider/divider.js';
|
|
24
|
+
export { EllipsizableText } from './ellipsizable-text/ellipsizable-text.js';
|
|
24
25
|
export { EmptyState } from './empty-state/empty-state.js';
|
|
25
26
|
export { Focusable } from './focusable/focusable.js';
|
|
26
27
|
export { Ghost } from './ghost/ghost.js';
|
|
@@ -96,6 +97,7 @@ export { Breakpoint, useBreakpoint } from './utils/useBreakpoint.js';
|
|
|
96
97
|
export { useControllableState } from './utils/useControllableState.js';
|
|
97
98
|
export { useForkRef } from './utils/useForkRef.js';
|
|
98
99
|
export { useFullTextTooltip } from './utils/useFullTextTooltip.js';
|
|
100
|
+
export { useIsEllipsized } from './utils/useIsEllipsized.js';
|
|
99
101
|
export { getUniqueId, useUniqueId } from './utils/useUniqueId.js';
|
|
100
102
|
export { VisuallyHidden } from './visually-hidden/visually-hidden.js';
|
|
101
103
|
export { useMainSectionSidebar, usePageNavigation } from './page/page-context.js';
|