@lumx/react 2.2.1-alpha.0 → 2.2.3-alpha-export-hook1
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/esm/_internal/AlertDialog.js +1 -1
- package/esm/_internal/AutocompleteMultiple.js.map +1 -1
- package/esm/_internal/ButtonGroup.js +0 -4
- package/esm/_internal/ButtonGroup.js.map +1 -1
- package/esm/_internal/Checkbox2.js +6 -4
- package/esm/_internal/Checkbox2.js.map +1 -1
- package/esm/_internal/Chip2.js +2 -1
- package/esm/_internal/Chip2.js.map +1 -1
- package/esm/_internal/ChipGroup.js.map +1 -1
- package/esm/_internal/ClickAwayProvider.js +1 -1
- package/esm/_internal/ClickAwayProvider.js.map +1 -1
- package/esm/_internal/DatePickerField.js +0 -4
- package/esm/_internal/DatePickerField.js.map +1 -1
- package/esm/_internal/Dialog2.js.map +1 -1
- package/esm/_internal/Dropdown2.js +1 -1
- package/esm/_internal/Dropdown2.js.map +1 -1
- package/esm/_internal/IconButton.js +0 -4
- package/esm/_internal/IconButton.js.map +1 -1
- package/esm/_internal/Lightbox2.js.map +1 -1
- package/esm/_internal/List2.js +20 -4
- package/esm/_internal/List2.js.map +1 -1
- package/esm/_internal/Notification2.js.map +1 -1
- package/esm/_internal/Popover2.js.map +1 -1
- package/esm/_internal/ProgressTrackerStepPanel.js.map +1 -1
- package/esm/_internal/RadioGroup.js +1 -1
- package/esm/_internal/SelectMultiple.js +1 -1
- package/esm/_internal/SelectMultiple.js.map +1 -1
- package/esm/_internal/SideNavigationItem.js +2 -1
- package/esm/_internal/SideNavigationItem.js.map +1 -1
- package/esm/_internal/Slider2.js +1 -1
- package/esm/_internal/Slider2.js.map +1 -1
- package/esm/_internal/SlideshowControls.js +100 -2
- package/esm/_internal/SlideshowControls.js.map +1 -1
- package/esm/_internal/Switch2.js +6 -4
- package/esm/_internal/Switch2.js.map +1 -1
- package/esm/_internal/TabPanel.js.map +1 -1
- package/esm/_internal/TableRow.js +2 -1
- package/esm/_internal/TableRow.js.map +1 -1
- package/esm/_internal/TextField.js +1 -1
- package/esm/_internal/Tooltip2.js +12 -145
- package/esm/_internal/Tooltip2.js.map +1 -1
- package/esm/_internal/UserBlock.js +2 -1
- package/esm/_internal/UserBlock.js.map +1 -1
- package/esm/_internal/alert-dialog.js +3 -3
- package/esm/_internal/autocomplete.js +6 -5
- package/esm/_internal/autocomplete.js.map +1 -1
- package/esm/_internal/avatar.js +1 -2
- package/esm/_internal/avatar.js.map +1 -1
- package/esm/_internal/badge.js +1 -2
- package/esm/_internal/badge.js.map +1 -1
- package/esm/_internal/button.js +4 -4
- package/esm/_internal/checkbox.js +2 -3
- package/esm/_internal/checkbox.js.map +1 -1
- package/esm/_internal/chip.js +2 -2
- package/esm/_internal/comment-block.js +1 -2
- package/esm/_internal/comment-block.js.map +1 -1
- package/esm/_internal/constants.js.map +1 -1
- package/esm/_internal/date-picker.js +4 -4
- package/esm/_internal/dialog.js +2 -2
- package/esm/_internal/divider.js +1 -2
- package/esm/_internal/divider.js.map +1 -1
- package/esm/_internal/drag-handle.js +1 -2
- package/esm/_internal/drag-handle.js.map +1 -1
- package/esm/_internal/dropdown.js +4 -3
- package/esm/_internal/dropdown.js.map +1 -1
- package/esm/_internal/expansion-panel.js +4 -4
- package/esm/_internal/flag.js +1 -2
- package/esm/_internal/flag.js.map +1 -1
- package/esm/_internal/flex-box.js +1 -2
- package/esm/_internal/flex-box.js.map +1 -1
- package/esm/_internal/getRootClassName.js +40 -166
- package/esm/_internal/getRootClassName.js.map +1 -1
- package/esm/_internal/grid.js +1 -2
- package/esm/_internal/grid.js.map +1 -1
- package/esm/_internal/icon.js +1 -2
- package/esm/_internal/icon.js.map +1 -1
- package/esm/_internal/image-block.js +1 -2
- package/esm/_internal/image-block.js.map +1 -1
- package/esm/{index2.js → _internal/index.js} +1 -1
- package/esm/_internal/index.js.map +1 -0
- package/esm/_internal/input-helper.js +1 -2
- package/esm/_internal/input-helper.js.map +1 -1
- package/esm/_internal/input-label.js +1 -2
- package/esm/_internal/input-label.js.map +1 -1
- package/esm/_internal/lightbox.js +4 -4
- package/esm/_internal/link-preview.js +1 -2
- package/esm/_internal/link-preview.js.map +1 -1
- package/esm/_internal/link.js +1 -2
- package/esm/_internal/link.js.map +1 -1
- package/esm/_internal/list.js +3 -3
- package/esm/_internal/message.js +1 -2
- package/esm/_internal/message.js.map +1 -1
- package/esm/_internal/mosaic.js +1 -2
- package/esm/_internal/mosaic.js.map +1 -1
- package/esm/_internal/notification.js +1 -2
- package/esm/_internal/notification.js.map +1 -1
- package/esm/_internal/onEnterPressed.js +20 -0
- package/esm/_internal/onEnterPressed.js.map +1 -0
- package/esm/_internal/onEscapePressed.js +20 -0
- package/esm/_internal/onEscapePressed.js.map +1 -0
- package/esm/_internal/popover.js +2 -2
- package/esm/_internal/post-block.js +1 -2
- package/esm/_internal/post-block.js.map +1 -1
- package/esm/_internal/progress-tracker.js +2 -3
- package/esm/_internal/progress-tracker.js.map +1 -1
- package/esm/_internal/progress.js +1 -2
- package/esm/_internal/progress.js.map +1 -1
- package/esm/_internal/radio-button.js +2 -3
- package/esm/_internal/radio-button.js.map +1 -1
- package/esm/_internal/select.js +6 -5
- package/esm/_internal/select.js.map +1 -1
- package/esm/_internal/side-navigation.js +5 -4
- package/esm/_internal/side-navigation.js.map +1 -1
- package/esm/_internal/skeleton.js +1 -2
- package/esm/_internal/skeleton.js.map +1 -1
- package/esm/_internal/slider.js +2 -3
- package/esm/_internal/slider.js.map +1 -1
- package/esm/_internal/slideshow.js +6 -5
- package/esm/_internal/slideshow.js.map +1 -1
- package/esm/_internal/switch.js +2 -3
- package/esm/_internal/switch.js.map +1 -1
- package/esm/_internal/table.js +2 -2
- package/esm/_internal/tabs.js +2 -3
- package/esm/_internal/tabs.js.map +1 -1
- package/esm/_internal/text-field.js +4 -4
- package/esm/_internal/thumbnail.js +1 -2
- package/esm/_internal/thumbnail.js.map +1 -1
- package/esm/_internal/toolbar.js +1 -2
- package/esm/_internal/toolbar.js.map +1 -1
- package/esm/_internal/tooltip.js +4 -4
- package/esm/_internal/uploader.js +1 -2
- package/esm/_internal/uploader.js.map +1 -1
- package/esm/_internal/useDelayedVisibility.js.map +1 -1
- package/esm/_internal/useDisableBodyScroll.js.map +1 -1
- package/esm/_internal/useFocusTrap.js.map +1 -1
- package/esm/_internal/useRovingTabIndex.js +1 -1
- package/esm/_internal/useRovingTabIndex.js.map +1 -1
- package/esm/_internal/user-block.js +1 -2
- package/esm/_internal/user-block.js.map +1 -1
- package/esm/hooks/useOpenHoverOrLongPress.js +172 -0
- package/esm/hooks/useOpenHoverOrLongPress.js.map +1 -0
- package/esm/index.js +8 -6
- package/esm/index.js.map +1 -1
- package/package.json +4 -4
- package/src/{hooks → _internal/hooks}/useBooleanState.tsx +0 -0
- package/src/{hooks → _internal/hooks}/useCallbackOnEscape.ts +0 -0
- package/src/{hooks → _internal/hooks}/useChipGroupNavigation.tsx +0 -0
- package/src/{hooks → _internal/hooks}/useClickAway.tsx +0 -0
- package/src/{hooks → _internal/hooks}/useDelayedVisibility.tsx +0 -0
- package/src/{hooks → _internal/hooks}/useDisableBodyScroll.ts +0 -0
- package/src/{hooks → _internal/hooks}/useEventCallback.tsx +0 -0
- package/src/{hooks → _internal/hooks}/useFocus.tsx +0 -0
- package/src/{hooks → _internal/hooks}/useFocusTrap.ts +0 -0
- package/src/{hooks → _internal/hooks}/useInfiniteScroll.tsx +0 -0
- package/src/{hooks → _internal/hooks}/useIntersectionObserver.tsx +0 -0
- package/src/{hooks → _internal/hooks}/useInterval.tsx +1 -1
- package/src/{hooks → _internal/hooks}/useKeyboardListNavigation.tsx +0 -0
- package/src/{hooks → _internal/hooks}/useListenFocus.tsx +0 -0
- package/src/{hooks → _internal/hooks}/useOnResize.ts +0 -0
- package/src/{hooks → _internal/hooks}/useRovingTabIndex.tsx +0 -0
- package/src/{hooks → _internal/hooks}/useStopPropagation.ts +0 -0
- package/src/components/autocomplete/Autocomplete.tsx +1 -1
- package/src/components/button/__snapshots__/IconButton.test.tsx.snap +0 -5
- package/src/components/checkbox/Checkbox.test.tsx +14 -0
- package/src/components/checkbox/Checkbox.tsx +5 -1
- package/src/components/checkbox/__snapshots__/Checkbox.test.tsx.snap +51 -0
- package/src/components/chip/Chip.tsx +1 -1
- package/src/components/chip/ChipGroup.tsx +1 -1
- package/src/components/date-picker/DatePickerField.tsx +2 -2
- package/src/components/dialog/Dialog.test.tsx +1 -1
- package/src/components/dialog/Dialog.tsx +5 -5
- package/src/components/dropdown/Dropdown.tsx +1 -1
- package/src/components/lightbox/Lightbox.tsx +4 -4
- package/src/components/list/List.tsx +1 -1
- package/src/components/mosaic/Mosaic.test.tsx +1 -1
- package/src/components/notification/Notification.tsx +1 -1
- package/src/components/popover/Popover.tsx +2 -2
- package/src/components/progress-tracker/ProgressTracker.tsx +1 -1
- package/src/components/select/Select.stories.tsx +1 -1
- package/src/components/select/SelectMultiple.stories.tsx +1 -1
- package/src/components/select/WithSelectContext.tsx +1 -1
- package/src/components/slider/Slider.tsx +1 -1
- package/src/components/slideshow/Slideshow.tsx +1 -1
- package/src/components/slideshow/useSwipeNavigate.ts +1 -1
- package/src/components/switch/Switch.test.tsx +10 -0
- package/src/components/switch/Switch.tsx +5 -1
- package/src/components/switch/__snapshots__/Switch.test.tsx.snap +30 -0
- package/src/components/tabs/TabList.tsx +4 -4
- package/src/components/thumbnail/Thumbnail.stories.tsx +6 -0
- package/src/components/tooltip/Tooltip.tsx +7 -4
- package/src/components/user-block/UserBlock.tsx +2 -1
- package/src/components/user-block/__snapshots__/UserBlock.test.tsx.snap +1 -0
- package/src/constants.ts +7 -1
- package/src/hooks/useOpenHoverOrLongPress.ts +140 -0
- package/src/stories/generated/Badge/Demos.stories.tsx +1 -0
- package/src/stories/generated/Flag/Demos.stories.tsx +6 -0
- package/src/utils/ClickAwayProvider/ClickAwayProvider.tsx +1 -1
- package/src/utils/browserDoesNotSupportHover.test.js +24 -0
- package/src/utils/browserDoesNotSupportHover.ts +2 -0
- package/types.d.ts +6 -2
- package/esm/index2.js.map +0 -1
- package/src/components/tooltip/useTooltipOpen.tsx +0 -112
|
@@ -1,14 +1,13 @@
|
|
|
1
|
-
import { _ as _objectSpread2, c as _extends,
|
|
2
|
-
import React, { useMemo, cloneElement,
|
|
3
|
-
import {
|
|
4
|
-
import { u as uid } from '
|
|
1
|
+
import { _ as _objectSpread2, c as _extends, b as _objectWithoutProperties, d as _slicedToArray } from './_rollupPluginBabelHelpers.js';
|
|
2
|
+
import React, { useMemo, cloneElement, forwardRef, useState } from 'react';
|
|
3
|
+
import { g as getRootClassName, c as classnames, h as handleBasicClasses, T as TOOLTIP_HOVER_DELAY, d as TOOLTIP_LONG_PRESS_DELAY } from './getRootClassName.js';
|
|
4
|
+
import { u as uid } from './index.js';
|
|
5
5
|
import { D as DOCUMENT } from './constants.js';
|
|
6
6
|
import get from 'lodash/get';
|
|
7
7
|
import { b as usePopper, P as Placement } from './Popover2.js';
|
|
8
8
|
import { m as mergeRefs } from './mergeRefs.js';
|
|
9
9
|
import { createPortal } from 'react-dom';
|
|
10
|
-
import
|
|
11
|
-
import debounce from 'lodash/debounce';
|
|
10
|
+
import { useOpenHoverOrLongPress } from '../hooks/useOpenHoverOrLongPress.js';
|
|
12
11
|
|
|
13
12
|
/**
|
|
14
13
|
* Add ref and ARIA attribute(s) in tooltip children or wrapped children.
|
|
@@ -42,143 +41,6 @@ var useInjectTooltipRef = function useInjectTooltipRef(children, setAnchorElemen
|
|
|
42
41
|
}, [isOpen, id, children, setAnchorElement]);
|
|
43
42
|
};
|
|
44
43
|
|
|
45
|
-
/**
|
|
46
|
-
* This singleton handle a global `mouseover` event listener on the `document` in order to toggle tooltips when
|
|
47
|
-
* entering and leaving their anchor element.
|
|
48
|
-
*/
|
|
49
|
-
var tooltipMouseToggle = function () {
|
|
50
|
-
/** List of tooltips to toggle on anchor enter/leave. */
|
|
51
|
-
var tooltips;
|
|
52
|
-
/** Global listener added on the document. */
|
|
53
|
-
|
|
54
|
-
var globalListener;
|
|
55
|
-
|
|
56
|
-
function addGlobalListener() {
|
|
57
|
-
if (globalListener) return;
|
|
58
|
-
globalListener = debounce(function (evt) {
|
|
59
|
-
if (!tooltips || !evt.target) return;
|
|
60
|
-
var _iteratorNormalCompletion = true;
|
|
61
|
-
var _didIteratorError = false;
|
|
62
|
-
var _iteratorError = undefined;
|
|
63
|
-
|
|
64
|
-
try {
|
|
65
|
-
for (var _iterator = tooltips[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
|
|
66
|
-
var _step$value = _step.value,
|
|
67
|
-
open = _step$value.open,
|
|
68
|
-
close = _step$value.close,
|
|
69
|
-
anchorElement = _step$value.anchorElement;
|
|
70
|
-
|
|
71
|
-
if (anchorElement.contains(evt.target)) {
|
|
72
|
-
open();
|
|
73
|
-
} else {
|
|
74
|
-
close();
|
|
75
|
-
}
|
|
76
|
-
}
|
|
77
|
-
} catch (err) {
|
|
78
|
-
_didIteratorError = true;
|
|
79
|
-
_iteratorError = err;
|
|
80
|
-
} finally {
|
|
81
|
-
try {
|
|
82
|
-
if (!_iteratorNormalCompletion && _iterator.return != null) {
|
|
83
|
-
_iterator.return();
|
|
84
|
-
}
|
|
85
|
-
} finally {
|
|
86
|
-
if (_didIteratorError) {
|
|
87
|
-
throw _iteratorError;
|
|
88
|
-
}
|
|
89
|
-
}
|
|
90
|
-
}
|
|
91
|
-
}, 10);
|
|
92
|
-
document.addEventListener('mouseover', globalListener);
|
|
93
|
-
}
|
|
94
|
-
|
|
95
|
-
function removeGlobalListener() {
|
|
96
|
-
if (!globalListener) return;
|
|
97
|
-
document.removeEventListener('mouseover', globalListener);
|
|
98
|
-
globalListener = undefined;
|
|
99
|
-
}
|
|
100
|
-
|
|
101
|
-
return {
|
|
102
|
-
addTooltip: function addTooltip(tooltip) {
|
|
103
|
-
if (!tooltips) {
|
|
104
|
-
tooltips = [];
|
|
105
|
-
addGlobalListener();
|
|
106
|
-
}
|
|
107
|
-
|
|
108
|
-
tooltips.push(tooltip);
|
|
109
|
-
},
|
|
110
|
-
removeTooltip: function removeTooltip(actions) {
|
|
111
|
-
if (!tooltips) return;
|
|
112
|
-
pull(tooltips, actions);
|
|
113
|
-
|
|
114
|
-
if (tooltips.length === 0) {
|
|
115
|
-
removeGlobalListener();
|
|
116
|
-
tooltips = undefined;
|
|
117
|
-
}
|
|
118
|
-
}
|
|
119
|
-
};
|
|
120
|
-
}();
|
|
121
|
-
/**
|
|
122
|
-
* Hook controlling tooltip visibility using mouse hover the anchor and delay.
|
|
123
|
-
*
|
|
124
|
-
* @param delay Delay in millisecond to display the tooltip.
|
|
125
|
-
* @param anchorElement Tooltip anchor element.
|
|
126
|
-
* @return whether or not to show the tooltip.
|
|
127
|
-
*/
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
function useTooltipOpen(delay, anchorElement) {
|
|
131
|
-
var timer = useRef();
|
|
132
|
-
var shouldOpen = useRef(false);
|
|
133
|
-
|
|
134
|
-
var _useState = useState(false),
|
|
135
|
-
_useState2 = _slicedToArray(_useState, 2),
|
|
136
|
-
isOpen = _useState2[0],
|
|
137
|
-
setIsOpen = _useState2[1];
|
|
138
|
-
|
|
139
|
-
useEffect(function () {
|
|
140
|
-
if (!anchorElement) {
|
|
141
|
-
return undefined;
|
|
142
|
-
}
|
|
143
|
-
|
|
144
|
-
var tooltip = {
|
|
145
|
-
anchorElement: anchorElement,
|
|
146
|
-
open: function open() {
|
|
147
|
-
if (!shouldOpen.current) {
|
|
148
|
-
shouldOpen.current = true;
|
|
149
|
-
timer.current = setTimeout(function () {
|
|
150
|
-
setIsOpen(shouldOpen.current);
|
|
151
|
-
}, delay);
|
|
152
|
-
}
|
|
153
|
-
},
|
|
154
|
-
close: function close() {
|
|
155
|
-
if (timer.current) {
|
|
156
|
-
clearTimeout(timer.current);
|
|
157
|
-
timer.current = undefined;
|
|
158
|
-
}
|
|
159
|
-
|
|
160
|
-
if (shouldOpen.current) {
|
|
161
|
-
shouldOpen.current = false;
|
|
162
|
-
setIsOpen(shouldOpen.current);
|
|
163
|
-
}
|
|
164
|
-
}
|
|
165
|
-
};
|
|
166
|
-
var keydown = onEscapePressed(tooltip.close);
|
|
167
|
-
tooltipMouseToggle.addTooltip(tooltip);
|
|
168
|
-
anchorElement.addEventListener('focusin', tooltip.open);
|
|
169
|
-
anchorElement.addEventListener('focusout', tooltip.close);
|
|
170
|
-
anchorElement.addEventListener('keydown', keydown);
|
|
171
|
-
return function () {
|
|
172
|
-
tooltipMouseToggle.removeTooltip(tooltip);
|
|
173
|
-
anchorElement.removeEventListener('focusin', tooltip.open);
|
|
174
|
-
anchorElement.removeEventListener('focusout', tooltip.close);
|
|
175
|
-
anchorElement.removeEventListener('keydown', keydown);
|
|
176
|
-
tooltip.close();
|
|
177
|
-
};
|
|
178
|
-
}, [anchorElement, delay, timer, shouldOpen]);
|
|
179
|
-
return isOpen;
|
|
180
|
-
}
|
|
181
|
-
|
|
182
44
|
/** Position of the tooltip relative to the anchor element. */
|
|
183
45
|
|
|
184
46
|
/**
|
|
@@ -195,7 +57,6 @@ var CLASSNAME = getRootClassName(COMPONENT_NAME);
|
|
|
195
57
|
*/
|
|
196
58
|
|
|
197
59
|
var DEFAULT_PROPS = {
|
|
198
|
-
delay: 500,
|
|
199
60
|
placement: Placement.BOTTOM
|
|
200
61
|
};
|
|
201
62
|
/**
|
|
@@ -258,7 +119,13 @@ var Tooltip = forwardRef(function (props, ref) {
|
|
|
258
119
|
attributes = _usePopper.attributes;
|
|
259
120
|
|
|
260
121
|
var position = (_ref = attributes === null || attributes === void 0 ? void 0 : (_attributes$popper = attributes.popper) === null || _attributes$popper === void 0 ? void 0 : _attributes$popper['data-popper-placement']) !== null && _ref !== void 0 ? _ref : placement;
|
|
261
|
-
var isOpen =
|
|
122
|
+
var isOpen = useOpenHoverOrLongPress(anchorElement, {
|
|
123
|
+
hover: {
|
|
124
|
+
openDelay: delay !== null && delay !== void 0 ? delay : TOOLTIP_HOVER_DELAY.openDelay,
|
|
125
|
+
closeDelay: TOOLTIP_HOVER_DELAY.closeDelay
|
|
126
|
+
},
|
|
127
|
+
longPress: TOOLTIP_LONG_PRESS_DELAY
|
|
128
|
+
}) || forceOpen;
|
|
262
129
|
var wrappedChildren = useInjectTooltipRef(children, setAnchorElement, isOpen, id);
|
|
263
130
|
return React.createElement(React.Fragment, null, wrappedChildren, isOpen && createPortal(React.createElement("div", _extends({
|
|
264
131
|
ref: mergeRefs(ref, setPopperElement)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Tooltip2.js","sources":["../../../src/components/tooltip/useInjectTooltipRef.tsx","../../../src/components/tooltip/useTooltipOpen.tsx","../../../src/components/tooltip/Tooltip.tsx"],"sourcesContent":["import { mergeRefs } from '@lumx/react/utils/mergeRefs';\nimport get from 'lodash/get';\nimport React, { cloneElement, ReactNode, useMemo } from 'react';\n\n/**\n * Add ref and ARIA attribute(s) in tooltip children or wrapped children.\n * Button, IconButton, Icon and React HTML elements don't need to be wrapped but any other kind of children (array, fragment, custom components)\n * will be wrapped in a <span>.\n *\n * @param children Original tooltip anchor.\n * @param setAnchorElement Set tooltip anchor element.\n * @param isOpen Whether the tooltip is open or not.\n * @param id Tooltip id.\n * @return tooltip anchor.\n */\nexport const useInjectTooltipRef = (\n children: ReactNode,\n setAnchorElement: (e: HTMLDivElement) => void,\n isOpen: boolean,\n id: string,\n): ReactNode => {\n return useMemo(() => {\n const ariaProps = { 'aria-describedby': isOpen ? id : undefined };\n if (\n children &&\n get(children, '$$typeof') &&\n get(children, 'props.disabled') !== true &&\n get(children, 'props.isDisabled') !== true\n ) {\n const element = children as any;\n\n return cloneElement(element, {\n ...element.props,\n ...ariaProps,\n ref: mergeRefs(element.ref, setAnchorElement),\n });\n }\n return (\n <div className=\"lumx-tooltip-anchor-wrapper\" ref={setAnchorElement} {...ariaProps}>\n {children}\n </div>\n );\n }, [isOpen, id, children, setAnchorElement]);\n};\n","import { Callback, onEscapePressed } from '@lumx/react/utils';\nimport { useEffect, useRef, useState } from 'react';\nimport pull from 'lodash/pull';\nimport debounce from 'lodash/debounce';\n\ntype Tooltip = { open: Callback; close: Callback; anchorElement: HTMLElement };\n\n/**\n * This singleton handle a global `mouseover` event listener on the `document` in order to toggle tooltips when\n * entering and leaving their anchor element.\n */\nconst tooltipMouseToggle = (() => {\n /** List of tooltips to toggle on anchor enter/leave. */\n let tooltips: Array<Tooltip> | undefined;\n\n /** Global listener added on the document. */\n let globalListener: undefined | ((evt: MouseEvent) => void);\n\n function addGlobalListener() {\n if (globalListener) return;\n globalListener = debounce((evt) => {\n if (!tooltips || !evt.target) return;\n for (const { open, close, anchorElement } of tooltips) {\n if (anchorElement.contains(evt.target as any)) {\n open();\n } else {\n close();\n }\n }\n }, 10);\n document.addEventListener('mouseover', globalListener);\n }\n\n function removeGlobalListener() {\n if (!globalListener) return;\n document.removeEventListener('mouseover', globalListener);\n globalListener = undefined;\n }\n\n return {\n addTooltip(tooltip: Tooltip) {\n if (!tooltips) {\n tooltips = [];\n addGlobalListener();\n }\n tooltips.push(tooltip);\n },\n removeTooltip(actions: Tooltip) {\n if (!tooltips) return;\n pull(tooltips, actions);\n if (tooltips.length === 0) {\n removeGlobalListener();\n tooltips = undefined;\n }\n },\n };\n})();\n\n/**\n * Hook controlling tooltip visibility using mouse hover the anchor and delay.\n *\n * @param delay Delay in millisecond to display the tooltip.\n * @param anchorElement Tooltip anchor element.\n * @return whether or not to show the tooltip.\n */\nexport function useTooltipOpen(delay: number, anchorElement: HTMLElement | null): boolean {\n const timer = useRef<number>();\n const shouldOpen = useRef<boolean>(false);\n const [isOpen, setIsOpen] = useState(false);\n\n useEffect(() => {\n if (!anchorElement) {\n return undefined;\n }\n const tooltip: Tooltip = {\n anchorElement,\n open() {\n if (!shouldOpen.current) {\n shouldOpen.current = true;\n timer.current = setTimeout(() => {\n setIsOpen(shouldOpen.current);\n }, delay) as any;\n }\n },\n close() {\n if (timer.current) {\n clearTimeout(timer.current);\n timer.current = undefined;\n }\n if (shouldOpen.current) {\n shouldOpen.current = false;\n setIsOpen(shouldOpen.current);\n }\n },\n };\n const keydown = onEscapePressed(tooltip.close);\n\n tooltipMouseToggle.addTooltip(tooltip);\n anchorElement.addEventListener('focusin', tooltip.open);\n anchorElement.addEventListener('focusout', tooltip.close);\n anchorElement.addEventListener('keydown', keydown);\n return () => {\n tooltipMouseToggle.removeTooltip(tooltip);\n anchorElement.removeEventListener('focusin', tooltip.open);\n anchorElement.removeEventListener('focusout', tooltip.close);\n anchorElement.removeEventListener('keydown', keydown);\n tooltip.close();\n };\n }, [anchorElement, delay, timer, shouldOpen]);\n\n return isOpen;\n}\n","/* eslint-disable react-hooks/rules-of-hooks */\nimport React, { forwardRef, ReactNode, useMemo, useState } from 'react';\nimport { createPortal } from 'react-dom';\nimport { usePopper } from 'react-popper';\nimport { uid } from 'uid';\n\nimport classNames from 'classnames';\n\nimport { Placement } from '@lumx/react/components/popover/Popover';\n\nimport { DOCUMENT } from '@lumx/react/constants';\n\nimport { Comp, GenericProps, getRootClassName, handleBasicClasses } from '@lumx/react/utils';\nimport { mergeRefs } from '@lumx/react/utils/mergeRefs';\n\nimport { useInjectTooltipRef } from './useInjectTooltipRef';\nimport { useTooltipOpen } from './useTooltipOpen';\n\n/** Position of the tooltip relative to the anchor element. */\nexport type TooltipPlacement = Extract<Placement, 'top' | 'right' | 'bottom' | 'left'>;\n\n/**\n * Defines the props of the component.\n */\nexport interface TooltipProps extends GenericProps {\n /** Anchor (element on which we activate the tooltip). */\n children: ReactNode;\n /** Delay (in ms) before closing the tooltip. */\n delay?: number;\n /** Whether the tooltip is displayed even without the mouse hovering the anchor. */\n forceOpen?: boolean;\n /** Label text. */\n label?: string | null | false;\n /** Placement of the tooltip relative to the anchor. */\n placement?: TooltipPlacement;\n}\n\n/**\n * Component display name.\n */\nconst COMPONENT_NAME = 'Tooltip';\n\n/**\n * Component default class name and class prefix.\n */\nconst CLASSNAME = getRootClassName(COMPONENT_NAME);\n\n/**\n * Component default props.\n */\nconst DEFAULT_PROPS: Partial<TooltipProps> = {\n delay: 500,\n placement: Placement.BOTTOM,\n};\n\n/**\n * Arrow size (in pixel).\n */\nconst ARROW_SIZE = 8;\n\n/**\n * Tooltip component.\n *\n * @param props Component props.\n * @param ref Component ref.\n * @return React element.\n */\nexport const Tooltip: Comp<TooltipProps, HTMLDivElement> = forwardRef((props, ref) => {\n if (!DOCUMENT) {\n // Can't render in SSR.\n return null;\n }\n const { label, children, className, delay, placement, forceOpen, ...forwardedProps } = props;\n if (!label) {\n return <>{children}</>;\n }\n\n const id = useMemo(() => `tooltip-${uid()}`, []);\n\n const [popperElement, setPopperElement] = useState<null | HTMLElement>(null);\n const [anchorElement, setAnchorElement] = useState<null | HTMLElement>(null);\n const { styles, attributes } = usePopper(anchorElement, popperElement, {\n placement,\n modifiers: [\n {\n name: 'offset',\n options: { offset: [0, ARROW_SIZE] },\n },\n ],\n });\n\n const position = attributes?.popper?.['data-popper-placement'] ?? placement;\n const isOpen = useTooltipOpen(delay as number, anchorElement) || forceOpen;\n const wrappedChildren = useInjectTooltipRef(children, setAnchorElement, isOpen as boolean, id);\n\n return (\n <>\n {wrappedChildren}\n {isOpen &&\n createPortal(\n <div\n ref={mergeRefs(ref, setPopperElement)}\n {...forwardedProps}\n id={id}\n role=\"tooltip\"\n aria-label={label}\n className={classNames(className, handleBasicClasses({ prefix: CLASSNAME, position }))}\n style={styles.popper}\n {...attributes.popper}\n >\n <div className={`${CLASSNAME}__arrow`} />\n <div className={`${CLASSNAME}__inner`}>\n {label.indexOf('\\n') !== -1\n ? label.split('\\n').map((sentence: string) => <p key={sentence}>{sentence}</p>)\n : label}\n </div>\n </div>,\n document.body,\n )}\n </>\n );\n});\nTooltip.displayName = COMPONENT_NAME;\nTooltip.className = CLASSNAME;\nTooltip.defaultProps = DEFAULT_PROPS;\n"],"names":["useInjectTooltipRef","children","setAnchorElement","isOpen","id","useMemo","ariaProps","undefined","get","element","cloneElement","props","ref","mergeRefs","tooltipMouseToggle","tooltips","globalListener","addGlobalListener","debounce","evt","target","open","close","anchorElement","contains","document","addEventListener","removeGlobalListener","removeEventListener","addTooltip","tooltip","push","removeTooltip","actions","pull","length","useTooltipOpen","delay","timer","useRef","shouldOpen","useState","setIsOpen","useEffect","current","setTimeout","clearTimeout","keydown","onEscapePressed","COMPONENT_NAME","CLASSNAME","getRootClassName","DEFAULT_PROPS","placement","Placement","BOTTOM","ARROW_SIZE","Tooltip","forwardRef","DOCUMENT","label","className","forceOpen","forwardedProps","uid","popperElement","setPopperElement","usePopper","modifiers","name","options","offset","styles","attributes","position","popper","wrappedChildren","createPortal","classNames","handleBasicClasses","prefix","indexOf","split","map","sentence","body","displayName","defaultProps"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Tooltip2.js","sources":["../../../src/components/tooltip/useInjectTooltipRef.tsx","../../../src/components/tooltip/Tooltip.tsx"],"sourcesContent":["import { mergeRefs } from '@lumx/react/utils/mergeRefs';\nimport get from 'lodash/get';\nimport React, { cloneElement, ReactNode, useMemo } from 'react';\n\n/**\n * Add ref and ARIA attribute(s) in tooltip children or wrapped children.\n * Button, IconButton, Icon and React HTML elements don't need to be wrapped but any other kind of children (array, fragment, custom components)\n * will be wrapped in a <span>.\n *\n * @param children Original tooltip anchor.\n * @param setAnchorElement Set tooltip anchor element.\n * @param isOpen Whether the tooltip is open or not.\n * @param id Tooltip id.\n * @return tooltip anchor.\n */\nexport const useInjectTooltipRef = (\n children: ReactNode,\n setAnchorElement: (e: HTMLDivElement) => void,\n isOpen: boolean,\n id: string,\n): ReactNode => {\n return useMemo(() => {\n const ariaProps = { 'aria-describedby': isOpen ? id : undefined };\n if (\n children &&\n get(children, '$$typeof') &&\n get(children, 'props.disabled') !== true &&\n get(children, 'props.isDisabled') !== true\n ) {\n const element = children as any;\n\n return cloneElement(element, {\n ...element.props,\n ...ariaProps,\n ref: mergeRefs(element.ref, setAnchorElement),\n });\n }\n return (\n <div className=\"lumx-tooltip-anchor-wrapper\" ref={setAnchorElement} {...ariaProps}>\n {children}\n </div>\n );\n }, [isOpen, id, children, setAnchorElement]);\n};\n","/* eslint-disable react-hooks/rules-of-hooks */\nimport React, { forwardRef, ReactNode, useMemo, useState } from 'react';\nimport { createPortal } from 'react-dom';\nimport { usePopper } from 'react-popper';\nimport { uid } from 'uid';\n\nimport classNames from 'classnames';\n\nimport { Placement } from '@lumx/react/components/popover/Popover';\n\nimport { DOCUMENT, TOOLTIP_HOVER_DELAY, TOOLTIP_LONG_PRESS_DELAY } from '@lumx/react/constants';\n\nimport { Comp, GenericProps, getRootClassName, handleBasicClasses } from '@lumx/react/utils';\nimport { mergeRefs } from '@lumx/react/utils/mergeRefs';\n\nimport { useOpenHoverOrLongPress } from '@lumx/react/hooks/useOpenHoverOrLongPress';\nimport { useInjectTooltipRef } from './useInjectTooltipRef';\n\n/** Position of the tooltip relative to the anchor element. */\nexport type TooltipPlacement = Extract<Placement, 'top' | 'right' | 'bottom' | 'left'>;\n\n/**\n * Defines the props of the component.\n */\nexport interface TooltipProps extends GenericProps {\n /** Anchor (element on which we activate the tooltip). */\n children: ReactNode;\n /** Delay (in ms) before closing the tooltip. */\n delay?: number;\n /** Whether the tooltip is displayed even without the mouse hovering the anchor. */\n forceOpen?: boolean;\n /** Label text. */\n label?: string | null | false;\n /** Placement of the tooltip relative to the anchor. */\n placement?: TooltipPlacement;\n}\n\n/**\n * Component display name.\n */\nconst COMPONENT_NAME = 'Tooltip';\n\n/**\n * Component default class name and class prefix.\n */\nconst CLASSNAME = getRootClassName(COMPONENT_NAME);\n\n/**\n * Component default props.\n */\nconst DEFAULT_PROPS: Partial<TooltipProps> = {\n placement: Placement.BOTTOM,\n};\n\n/**\n * Arrow size (in pixel).\n */\nconst ARROW_SIZE = 8;\n\n/**\n * Tooltip component.\n *\n * @param props Component props.\n * @param ref Component ref.\n * @return React element.\n */\nexport const Tooltip: Comp<TooltipProps, HTMLDivElement> = forwardRef((props, ref) => {\n if (!DOCUMENT) {\n // Can't render in SSR.\n return null;\n }\n const { label, children, className, delay, placement, forceOpen, ...forwardedProps } = props;\n if (!label) {\n return <>{children}</>;\n }\n\n const id = useMemo(() => `tooltip-${uid()}`, []);\n\n const [popperElement, setPopperElement] = useState<null | HTMLElement>(null);\n const [anchorElement, setAnchorElement] = useState<null | HTMLElement>(null);\n const { styles, attributes } = usePopper(anchorElement, popperElement, {\n placement,\n modifiers: [\n {\n name: 'offset',\n options: { offset: [0, ARROW_SIZE] },\n },\n ],\n });\n\n const position = attributes?.popper?.['data-popper-placement'] ?? placement;\n const isOpen =\n useOpenHoverOrLongPress(anchorElement, {\n hover: { openDelay: delay ?? TOOLTIP_HOVER_DELAY.openDelay, closeDelay: TOOLTIP_HOVER_DELAY.closeDelay },\n longPress: TOOLTIP_LONG_PRESS_DELAY,\n }) || forceOpen;\n const wrappedChildren = useInjectTooltipRef(children, setAnchorElement, isOpen as boolean, id);\n\n return (\n <>\n {wrappedChildren}\n {isOpen &&\n createPortal(\n <div\n ref={mergeRefs(ref, setPopperElement)}\n {...forwardedProps}\n id={id}\n role=\"tooltip\"\n aria-label={label}\n className={classNames(className, handleBasicClasses({ prefix: CLASSNAME, position }))}\n style={styles.popper}\n {...attributes.popper}\n >\n <div className={`${CLASSNAME}__arrow`} />\n <div className={`${CLASSNAME}__inner`}>\n {label.indexOf('\\n') !== -1\n ? label.split('\\n').map((sentence: string) => <p key={sentence}>{sentence}</p>)\n : label}\n </div>\n </div>,\n document.body,\n )}\n </>\n );\n});\nTooltip.displayName = COMPONENT_NAME;\nTooltip.className = CLASSNAME;\nTooltip.defaultProps = DEFAULT_PROPS;\n"],"names":["useInjectTooltipRef","children","setAnchorElement","isOpen","id","useMemo","ariaProps","undefined","get","element","cloneElement","props","ref","mergeRefs","COMPONENT_NAME","CLASSNAME","getRootClassName","DEFAULT_PROPS","placement","Placement","BOTTOM","ARROW_SIZE","Tooltip","forwardRef","DOCUMENT","label","className","delay","forceOpen","forwardedProps","uid","useState","popperElement","setPopperElement","anchorElement","usePopper","modifiers","name","options","offset","styles","attributes","position","popper","useOpenHoverOrLongPress","hover","openDelay","TOOLTIP_HOVER_DELAY","closeDelay","longPress","TOOLTIP_LONG_PRESS_DELAY","wrappedChildren","createPortal","classNames","handleBasicClasses","prefix","indexOf","split","map","sentence","document","body","displayName","defaultProps"],"mappings":"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"}
|
|
@@ -73,13 +73,14 @@ var UserBlock = forwardRef(function (props, ref) {
|
|
|
73
73
|
if (isClickable) {
|
|
74
74
|
NameComponent = Link;
|
|
75
75
|
Object.assign(nProps, _objectSpread2({}, linkProps, {
|
|
76
|
+
onClick: onClick,
|
|
76
77
|
linkAs: linkAs,
|
|
77
78
|
color: ColorPalette.dark
|
|
78
79
|
}));
|
|
79
80
|
}
|
|
80
81
|
|
|
81
82
|
return React.createElement(NameComponent, nProps, name);
|
|
82
|
-
}, [isClickable, linkAs, linkProps, name, nameProps]);
|
|
83
|
+
}, [isClickable, linkAs, linkProps, name, nameProps, onClick]);
|
|
83
84
|
var fieldsBlock = fields && componentSize !== Size.s && React.createElement("div", {
|
|
84
85
|
className: "".concat(CLASSNAME, "__fields")
|
|
85
86
|
}, fields.map(function (field, idx) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UserBlock.js","sources":["../../../src/components/user-block/UserBlock.tsx"],"sourcesContent":["import React, { forwardRef, ReactNode } from 'react';\nimport isEmpty from 'lodash/isEmpty';\nimport classNames from 'classnames';\n\nimport { Avatar, ColorPalette, Link, Orientation, Size, Theme } from '@lumx/react';\nimport { Comp, GenericProps, getRootClassName, handleBasicClasses } from '@lumx/react/utils';\n\nimport { AvatarProps } from '../avatar/Avatar';\n\n/**\n * User block sizes.\n */\nexport type UserBlockSize = Extract<Size, 's' | 'm' | 'l'>;\n\n/**\n * Defines the props of the component.\n */\nexport interface UserBlockProps extends GenericProps {\n /** Props to pass to the avatar. */\n avatarProps?: AvatarProps;\n /** Additional fields used to describe the user. */\n fields?: string[];\n /** Props to pass to the link wrapping the avatar thumbnail. */\n linkProps?: React.DetailedHTMLProps<React.AnchorHTMLAttributes<HTMLAnchorElement>, HTMLAnchorElement>;\n /** Custom react component for the link (can be used to inject react router Link). */\n linkAs?: 'a' | any;\n /** Multiple action toolbar content. */\n multipleActions?: ReactNode;\n /** User name. */\n name?: string;\n /** Props to pass to the name block. */\n nameProps?: GenericProps;\n /** Orientation. */\n orientation?: Orientation;\n /** Simple action toolbar content. */\n simpleAction?: ReactNode;\n /** Size variant. */\n size?: UserBlockSize;\n /** Theme adapting the component to light or dark background. */\n theme?: Theme;\n /** On click callback. */\n onClick?(): void;\n /** On mouse enter callback. */\n onMouseEnter?(): void;\n /** On mouse leave callback. */\n onMouseLeave?(): void;\n}\n\n/**\n * Component display name.\n */\nconst COMPONENT_NAME = 'UserBlock';\n\n/**\n * Component default class name and class prefix.\n */\nconst CLASSNAME = getRootClassName(COMPONENT_NAME);\n\n/**\n * Component default props.\n */\nconst DEFAULT_PROPS: Partial<UserBlockProps> = {\n orientation: Orientation.horizontal,\n size: Size.m,\n theme: Theme.light,\n};\n\n/**\n * UserBlock component.\n *\n * @param props Component props.\n * @param ref Component ref.\n * @return React element.\n */\nexport const UserBlock: Comp<UserBlockProps, HTMLDivElement> = forwardRef((props, ref) => {\n const {\n avatarProps,\n className,\n fields,\n linkProps,\n linkAs,\n multipleActions,\n name,\n nameProps,\n onClick,\n onMouseEnter,\n onMouseLeave,\n orientation,\n simpleAction,\n size,\n theme,\n ...forwardedProps\n } = props;\n let componentSize = size;\n\n // Special case - When using vertical orientation force the size to be Sizes.l.\n if (orientation === Orientation.vertical) {\n componentSize = Size.l;\n }\n\n const shouldDisplayActions: boolean = orientation === Orientation.vertical;\n\n const isLink = Boolean(linkProps?.href || linkAs);\n const isClickable = !!onClick || isLink;\n\n const nameBlock: ReactNode = React.useMemo(() => {\n if (isEmpty(name)) {\n return null;\n }\n let NameComponent: any = 'span';\n const nProps: any = {\n ...nameProps,\n className: classNames(`${CLASSNAME}__name`, linkProps?.className, nameProps?.className),\n };\n if (isClickable) {\n NameComponent = Link;\n Object.assign(nProps, {\n ...linkProps,\n linkAs,\n color: ColorPalette.dark,\n });\n }\n return <NameComponent {...nProps}>{name}</NameComponent>;\n }, [isClickable, linkAs, linkProps, name, nameProps]);\n\n const fieldsBlock: ReactNode = fields && componentSize !== Size.s && (\n <div className={`${CLASSNAME}__fields`}>\n {fields.map((field: string, idx: number) => (\n <span key={idx} className={`${CLASSNAME}__field`}>\n {field}\n </span>\n ))}\n </div>\n );\n\n return (\n <div\n ref={ref}\n {...forwardedProps}\n className={classNames(\n className,\n handleBasicClasses({ prefix: CLASSNAME, orientation, size: componentSize, theme, isClickable }),\n )}\n onMouseLeave={onMouseLeave}\n onMouseEnter={onMouseEnter}\n >\n {avatarProps && (\n <Avatar\n linkAs={linkAs}\n linkProps={linkProps}\n {...avatarProps}\n className={classNames(`${CLASSNAME}__avatar`, avatarProps.className)}\n size={componentSize}\n onClick={onClick}\n theme={theme}\n />\n )}\n {(fields || name) && (\n <div className={`${CLASSNAME}__wrapper`}>\n {nameBlock}\n {fieldsBlock}\n </div>\n )}\n {shouldDisplayActions && simpleAction && <div className={`${CLASSNAME}__action`}>{simpleAction}</div>}\n {shouldDisplayActions && multipleActions && (\n <div className={`${CLASSNAME}__actions`}>{multipleActions}</div>\n )}\n </div>\n );\n});\nUserBlock.displayName = COMPONENT_NAME;\nUserBlock.className = CLASSNAME;\nUserBlock.defaultProps = DEFAULT_PROPS;\n"],"names":["COMPONENT_NAME","CLASSNAME","getRootClassName","DEFAULT_PROPS","orientation","Orientation","horizontal","size","Size","m","theme","Theme","light","UserBlock","forwardRef","props","ref","avatarProps","className","fields","linkProps","linkAs","multipleActions","name","nameProps","onClick","onMouseEnter","onMouseLeave","simpleAction","forwardedProps","componentSize","vertical","l","shouldDisplayActions","isLink","Boolean","href","isClickable","nameBlock","React","useMemo","isEmpty","NameComponent","nProps","classNames","Link","Object","assign","color","ColorPalette","dark","fieldsBlock","s","map","field","idx","handleBasicClasses","prefix","displayName","defaultProps"],"mappings":";;;;;;;;AAgDA;;;AAGA,IAAMA,cAAc,GAAG,WAAvB;AAEA;;;;AAGA,IAAMC,SAAS,GAAGC,gBAAgB,CAACF,cAAD,CAAlC;AAEA;;;;AAGA,IAAMG,aAAsC,GAAG;AAC3CC,EAAAA,WAAW,EAAEC,WAAW,CAACC,UADkB;AAE3CC,EAAAA,IAAI,EAAEC,IAAI,CAACC,CAFgC;AAG3CC,EAAAA,KAAK,EAAEC,KAAK,CAACC;AAH8B,CAA/C;AAMA;;;;;;;;IAOaC,SAA+C,GAAGC,UAAU,CAAC,UAACC,KAAD,EAAQC,GAAR,EAAgB;AAAA,MAElFC,WAFkF,GAkBlFF,KAlBkF,CAElFE,WAFkF;AAAA,MAGlFC,SAHkF,GAkBlFH,KAlBkF,CAGlFG,SAHkF;AAAA,MAIlFC,MAJkF,GAkBlFJ,KAlBkF,CAIlFI,MAJkF;AAAA,MAKlFC,SALkF,GAkBlFL,KAlBkF,CAKlFK,SALkF;AAAA,MAMlFC,MANkF,GAkBlFN,KAlBkF,CAMlFM,MANkF;AAAA,MAOlFC,eAPkF,GAkBlFP,KAlBkF,CAOlFO,eAPkF;AAAA,MAQlFC,IARkF,GAkBlFR,KAlBkF,CAQlFQ,IARkF;AAAA,MASlFC,SATkF,GAkBlFT,KAlBkF,CASlFS,SATkF;AAAA,MAUlFC,OAVkF,GAkBlFV,KAlBkF,CAUlFU,OAVkF;AAAA,MAWlFC,YAXkF,GAkBlFX,KAlBkF,CAWlFW,YAXkF;AAAA,MAYlFC,YAZkF,GAkBlFZ,KAlBkF,CAYlFY,YAZkF;AAAA,MAalFvB,WAbkF,GAkBlFW,KAlBkF,CAalFX,WAbkF;AAAA,MAclFwB,YAdkF,GAkBlFb,KAlBkF,CAclFa,YAdkF;AAAA,MAelFrB,IAfkF,GAkBlFQ,KAlBkF,CAelFR,IAfkF;AAAA,MAgBlFG,KAhBkF,GAkBlFK,KAlBkF,CAgBlFL,KAhBkF;AAAA,MAiB/EmB,cAjB+E,4BAkBlFd,KAlBkF;;AAmBtF,MAAIe,aAAa,GAAGvB,IAApB,CAnBsF;;AAsBtF,MAAIH,WAAW,KAAKC,WAAW,CAAC0B,QAAhC,EAA0C;AACtCD,IAAAA,aAAa,GAAGtB,IAAI,CAACwB,CAArB;AACH;;AAED,MAAMC,oBAA6B,GAAG7B,WAAW,KAAKC,WAAW,CAAC0B,QAAlE;AAEA,MAAMG,MAAM,GAAGC,OAAO,CAAC,CAAAf,SAAS,SAAT,IAAAA,SAAS,WAAT,YAAAA,SAAS,CAAEgB,IAAX,KAAmBf,MAApB,CAAtB;AACA,MAAMgB,WAAW,GAAG,CAAC,CAACZ,OAAF,IAAaS,MAAjC;AAEA,MAAMI,SAAoB,GAAGC,KAAK,CAACC,OAAN,CAAc,YAAM;AAC7C,QAAIC,OAAO,CAAClB,IAAD,CAAX,EAAmB;AACf,aAAO,IAAP;AACH;;AACD,QAAImB,aAAkB,GAAG,MAAzB;;AACA,QAAMC,MAAW,sBACVnB,SADU;AAEbN,MAAAA,SAAS,EAAE0B,UAAU,WAAI3C,SAAJ,aAAuBmB,SAAvB,aAAuBA,SAAvB,uBAAuBA,SAAS,CAAEF,SAAlC,EAA6CM,SAA7C,aAA6CA,SAA7C,uBAA6CA,SAAS,CAAEN,SAAxD;AAFR,MAAjB;;AAIA,QAAImB,WAAJ,EAAiB;AACbK,MAAAA,aAAa,GAAGG,IAAhB;AACAC,MAAAA,MAAM,CAACC,MAAP,CAAcJ,MAAd,qBACOvB,SADP;
|
|
1
|
+
{"version":3,"file":"UserBlock.js","sources":["../../../src/components/user-block/UserBlock.tsx"],"sourcesContent":["import React, { forwardRef, ReactNode } from 'react';\nimport isEmpty from 'lodash/isEmpty';\nimport classNames from 'classnames';\n\nimport { Avatar, ColorPalette, Link, Orientation, Size, Theme } from '@lumx/react';\nimport { Comp, GenericProps, getRootClassName, handleBasicClasses } from '@lumx/react/utils';\n\nimport { AvatarProps } from '../avatar/Avatar';\n\n/**\n * User block sizes.\n */\nexport type UserBlockSize = Extract<Size, 's' | 'm' | 'l'>;\n\n/**\n * Defines the props of the component.\n */\nexport interface UserBlockProps extends GenericProps {\n /** Props to pass to the avatar. */\n avatarProps?: AvatarProps;\n /** Additional fields used to describe the user. */\n fields?: string[];\n /** Props to pass to the link wrapping the avatar thumbnail. */\n linkProps?: React.DetailedHTMLProps<React.AnchorHTMLAttributes<HTMLAnchorElement>, HTMLAnchorElement>;\n /** Custom react component for the link (can be used to inject react router Link). */\n linkAs?: 'a' | any;\n /** Multiple action toolbar content. */\n multipleActions?: ReactNode;\n /** User name. */\n name?: string;\n /** Props to pass to the name block. */\n nameProps?: GenericProps;\n /** Orientation. */\n orientation?: Orientation;\n /** Simple action toolbar content. */\n simpleAction?: ReactNode;\n /** Size variant. */\n size?: UserBlockSize;\n /** Theme adapting the component to light or dark background. */\n theme?: Theme;\n /** On click callback. */\n onClick?(): void;\n /** On mouse enter callback. */\n onMouseEnter?(): void;\n /** On mouse leave callback. */\n onMouseLeave?(): void;\n}\n\n/**\n * Component display name.\n */\nconst COMPONENT_NAME = 'UserBlock';\n\n/**\n * Component default class name and class prefix.\n */\nconst CLASSNAME = getRootClassName(COMPONENT_NAME);\n\n/**\n * Component default props.\n */\nconst DEFAULT_PROPS: Partial<UserBlockProps> = {\n orientation: Orientation.horizontal,\n size: Size.m,\n theme: Theme.light,\n};\n\n/**\n * UserBlock component.\n *\n * @param props Component props.\n * @param ref Component ref.\n * @return React element.\n */\nexport const UserBlock: Comp<UserBlockProps, HTMLDivElement> = forwardRef((props, ref) => {\n const {\n avatarProps,\n className,\n fields,\n linkProps,\n linkAs,\n multipleActions,\n name,\n nameProps,\n onClick,\n onMouseEnter,\n onMouseLeave,\n orientation,\n simpleAction,\n size,\n theme,\n ...forwardedProps\n } = props;\n let componentSize = size;\n\n // Special case - When using vertical orientation force the size to be Sizes.l.\n if (orientation === Orientation.vertical) {\n componentSize = Size.l;\n }\n\n const shouldDisplayActions: boolean = orientation === Orientation.vertical;\n\n const isLink = Boolean(linkProps?.href || linkAs);\n const isClickable = !!onClick || isLink;\n\n const nameBlock: ReactNode = React.useMemo(() => {\n if (isEmpty(name)) {\n return null;\n }\n let NameComponent: any = 'span';\n const nProps: any = {\n ...nameProps,\n className: classNames(`${CLASSNAME}__name`, linkProps?.className, nameProps?.className),\n };\n if (isClickable) {\n NameComponent = Link;\n Object.assign(nProps, {\n ...linkProps,\n onClick,\n linkAs,\n color: ColorPalette.dark,\n });\n }\n return <NameComponent {...nProps}>{name}</NameComponent>;\n }, [isClickable, linkAs, linkProps, name, nameProps, onClick]);\n\n const fieldsBlock: ReactNode = fields && componentSize !== Size.s && (\n <div className={`${CLASSNAME}__fields`}>\n {fields.map((field: string, idx: number) => (\n <span key={idx} className={`${CLASSNAME}__field`}>\n {field}\n </span>\n ))}\n </div>\n );\n\n return (\n <div\n ref={ref}\n {...forwardedProps}\n className={classNames(\n className,\n handleBasicClasses({ prefix: CLASSNAME, orientation, size: componentSize, theme, isClickable }),\n )}\n onMouseLeave={onMouseLeave}\n onMouseEnter={onMouseEnter}\n >\n {avatarProps && (\n <Avatar\n linkAs={linkAs}\n linkProps={linkProps}\n {...avatarProps}\n className={classNames(`${CLASSNAME}__avatar`, avatarProps.className)}\n size={componentSize}\n onClick={onClick}\n theme={theme}\n />\n )}\n {(fields || name) && (\n <div className={`${CLASSNAME}__wrapper`}>\n {nameBlock}\n {fieldsBlock}\n </div>\n )}\n {shouldDisplayActions && simpleAction && <div className={`${CLASSNAME}__action`}>{simpleAction}</div>}\n {shouldDisplayActions && multipleActions && (\n <div className={`${CLASSNAME}__actions`}>{multipleActions}</div>\n )}\n </div>\n );\n});\nUserBlock.displayName = COMPONENT_NAME;\nUserBlock.className = CLASSNAME;\nUserBlock.defaultProps = DEFAULT_PROPS;\n"],"names":["COMPONENT_NAME","CLASSNAME","getRootClassName","DEFAULT_PROPS","orientation","Orientation","horizontal","size","Size","m","theme","Theme","light","UserBlock","forwardRef","props","ref","avatarProps","className","fields","linkProps","linkAs","multipleActions","name","nameProps","onClick","onMouseEnter","onMouseLeave","simpleAction","forwardedProps","componentSize","vertical","l","shouldDisplayActions","isLink","Boolean","href","isClickable","nameBlock","React","useMemo","isEmpty","NameComponent","nProps","classNames","Link","Object","assign","color","ColorPalette","dark","fieldsBlock","s","map","field","idx","handleBasicClasses","prefix","displayName","defaultProps"],"mappings":"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"}
|
|
@@ -3,11 +3,11 @@ import './components.js';
|
|
|
3
3
|
import 'react';
|
|
4
4
|
import './getRootClassName.js';
|
|
5
5
|
import './mdi.js';
|
|
6
|
-
import '
|
|
6
|
+
import './index.js';
|
|
7
7
|
import 'lodash/isBoolean';
|
|
8
|
-
import 'lodash/isEmpty';
|
|
9
8
|
import 'lodash/kebabCase';
|
|
10
|
-
import 'lodash/
|
|
9
|
+
import 'lodash/isEmpty';
|
|
10
|
+
import './onEscapePressed.js';
|
|
11
11
|
import './constants.js';
|
|
12
12
|
import 'lodash/concat';
|
|
13
13
|
import 'lodash/dropRight';
|
|
@@ -3,11 +3,13 @@ import './components.js';
|
|
|
3
3
|
import 'react';
|
|
4
4
|
import './getRootClassName.js';
|
|
5
5
|
import './mdi.js';
|
|
6
|
-
import '
|
|
6
|
+
import './index.js';
|
|
7
7
|
import 'lodash/isBoolean';
|
|
8
|
-
import 'lodash/isEmpty';
|
|
9
8
|
import 'lodash/kebabCase';
|
|
10
|
-
import 'lodash/
|
|
9
|
+
import 'lodash/isEmpty';
|
|
10
|
+
import './List2.js';
|
|
11
|
+
import './onEnterPressed.js';
|
|
12
|
+
import './onEscapePressed.js';
|
|
11
13
|
import './constants.js';
|
|
12
14
|
import 'lodash/get';
|
|
13
15
|
import './type.js';
|
|
@@ -22,12 +24,11 @@ import './Chip2.js';
|
|
|
22
24
|
import 'react-dom';
|
|
23
25
|
import './ClickAwayProvider.js';
|
|
24
26
|
import 'lodash/pull';
|
|
25
|
-
import './List2.js';
|
|
26
27
|
import './Dropdown2.js';
|
|
27
28
|
import './Icon2.js';
|
|
28
29
|
import './InputHelper.js';
|
|
29
30
|
import './InputLabel.js';
|
|
30
31
|
import './TextField.js';
|
|
32
|
+
import '../hooks/useOpenHoverOrLongPress.js';
|
|
31
33
|
import './Tooltip2.js';
|
|
32
|
-
import 'lodash/debounce';
|
|
33
34
|
//# sourceMappingURL=autocomplete.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"autocomplete.js","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"autocomplete.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
package/esm/_internal/avatar.js
CHANGED
|
@@ -4,9 +4,8 @@ import 'react';
|
|
|
4
4
|
import './getRootClassName.js';
|
|
5
5
|
import './mdi.js';
|
|
6
6
|
import 'lodash/isBoolean';
|
|
7
|
-
import 'lodash/isEmpty';
|
|
8
7
|
import 'lodash/kebabCase';
|
|
9
|
-
import 'lodash/
|
|
8
|
+
import 'lodash/isEmpty';
|
|
10
9
|
import './mergeRefs.js';
|
|
11
10
|
export { A as Avatar } from './Avatar2.js';
|
|
12
11
|
import './Icon2.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"avatar.js","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"avatar.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;"}
|
package/esm/_internal/badge.js
CHANGED
|
@@ -3,8 +3,7 @@ import './components.js';
|
|
|
3
3
|
import 'react';
|
|
4
4
|
import './getRootClassName.js';
|
|
5
5
|
import 'lodash/isBoolean';
|
|
6
|
-
import 'lodash/isEmpty';
|
|
7
6
|
import 'lodash/kebabCase';
|
|
8
|
-
import 'lodash/
|
|
7
|
+
import 'lodash/isEmpty';
|
|
9
8
|
export { B as Badge } from './Badge2.js';
|
|
10
9
|
//# sourceMappingURL=badge.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"badge.js","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"badge.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;"}
|
package/esm/_internal/button.js
CHANGED
|
@@ -2,11 +2,11 @@ import './_rollupPluginBabelHelpers.js';
|
|
|
2
2
|
import './components.js';
|
|
3
3
|
import 'react';
|
|
4
4
|
import './getRootClassName.js';
|
|
5
|
-
import '
|
|
5
|
+
import './index.js';
|
|
6
6
|
import 'lodash/isBoolean';
|
|
7
|
-
import 'lodash/isEmpty';
|
|
8
7
|
import 'lodash/kebabCase';
|
|
9
|
-
import 'lodash/
|
|
8
|
+
import 'lodash/isEmpty';
|
|
9
|
+
import './onEscapePressed.js';
|
|
10
10
|
import './constants.js';
|
|
11
11
|
import 'lodash/get';
|
|
12
12
|
import './Popover2.js';
|
|
@@ -20,6 +20,6 @@ import 'react-dom';
|
|
|
20
20
|
import './ClickAwayProvider.js';
|
|
21
21
|
import 'lodash/pull';
|
|
22
22
|
import './Icon2.js';
|
|
23
|
+
import '../hooks/useOpenHoverOrLongPress.js';
|
|
23
24
|
import './Tooltip2.js';
|
|
24
|
-
import 'lodash/debounce';
|
|
25
25
|
//# sourceMappingURL=button.js.map
|
|
@@ -3,11 +3,10 @@ import './components.js';
|
|
|
3
3
|
import 'react';
|
|
4
4
|
import './getRootClassName.js';
|
|
5
5
|
import './mdi.js';
|
|
6
|
-
import '
|
|
6
|
+
import './index.js';
|
|
7
7
|
import 'lodash/isBoolean';
|
|
8
|
-
import 'lodash/isEmpty';
|
|
9
8
|
import 'lodash/kebabCase';
|
|
10
|
-
import 'lodash/
|
|
9
|
+
import 'lodash/isEmpty';
|
|
11
10
|
export { C as Checkbox } from './Checkbox2.js';
|
|
12
11
|
import './Icon2.js';
|
|
13
12
|
import './InputHelper.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"checkbox.js","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"checkbox.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;"}
|
package/esm/_internal/chip.js
CHANGED
|
@@ -3,9 +3,9 @@ import './components.js';
|
|
|
3
3
|
import 'react';
|
|
4
4
|
import './getRootClassName.js';
|
|
5
5
|
import 'lodash/isBoolean';
|
|
6
|
-
import 'lodash/isEmpty';
|
|
7
6
|
import 'lodash/kebabCase';
|
|
8
|
-
import 'lodash/
|
|
7
|
+
import 'lodash/isEmpty';
|
|
8
|
+
import './onEnterPressed.js';
|
|
9
9
|
import 'lodash/isFunction';
|
|
10
10
|
export { C as Chip } from './Chip2.js';
|
|
11
11
|
export { C as ChipGroup } from './ChipGroup.js';
|
|
@@ -4,9 +4,8 @@ import 'react';
|
|
|
4
4
|
import './getRootClassName.js';
|
|
5
5
|
import './mdi.js';
|
|
6
6
|
import 'lodash/isBoolean';
|
|
7
|
-
import 'lodash/isEmpty';
|
|
8
7
|
import 'lodash/kebabCase';
|
|
9
|
-
import 'lodash/
|
|
8
|
+
import 'lodash/isEmpty';
|
|
10
9
|
import './mergeRefs.js';
|
|
11
10
|
import './Avatar2.js';
|
|
12
11
|
import 'lodash/isFunction';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"comment-block.js","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"comment-block.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","sources":["../../../src/constants.ts"],"sourcesContent":["export {
|
|
1
|
+
{"version":3,"file":"constants.js","sources":["../../../src/constants.ts"],"sourcesContent":["export {\n CSS_PREFIX,\n DIALOG_TRANSITION_DURATION,\n NOTIFICATION_TRANSITION_DURATION,\n TOOLTIP_HOVER_DELAY,\n TOOLTIP_LONG_PRESS_DELAY,\n} from '@lumx/core/js/constants';\n\n/**\n * Optional global `window` instance (not defined when running SSR).\n */\nexport const WINDOW = typeof window !== `undefined` ? window : undefined;\n\n/**\n * Optional global `document` instance (not defined when running SSR).\n */\nexport const DOCUMENT = typeof document !== `undefined` ? document : undefined;\n"],"names":["WINDOW","window","undefined","DOCUMENT","document"],"mappings":"AAQA;;;;IAGaA,MAAM,GAAG,OAAOC,MAAP,mBAAgCA,MAAhC,GAAyCC;AAE/D;;;;IAGaC,QAAQ,GAAG,OAAOC,QAAP,mBAAkCA,QAAlC,GAA6CF;;;;"}
|
|
@@ -3,11 +3,11 @@ import './components.js';
|
|
|
3
3
|
import 'react';
|
|
4
4
|
import './getRootClassName.js';
|
|
5
5
|
import './mdi.js';
|
|
6
|
-
import '
|
|
6
|
+
import './index.js';
|
|
7
7
|
import 'lodash/isBoolean';
|
|
8
|
-
import 'lodash/isEmpty';
|
|
9
8
|
import 'lodash/kebabCase';
|
|
10
|
-
import 'lodash/
|
|
9
|
+
import 'lodash/isEmpty';
|
|
10
|
+
import './onEscapePressed.js';
|
|
11
11
|
import './constants.js';
|
|
12
12
|
import 'lodash/get';
|
|
13
13
|
import './Popover2.js';
|
|
@@ -28,6 +28,6 @@ import './InputHelper.js';
|
|
|
28
28
|
import './InputLabel.js';
|
|
29
29
|
import './TextField.js';
|
|
30
30
|
import './Toolbar2.js';
|
|
31
|
+
import '../hooks/useOpenHoverOrLongPress.js';
|
|
31
32
|
import './Tooltip2.js';
|
|
32
|
-
import 'lodash/debounce';
|
|
33
33
|
//# sourceMappingURL=date-picker.js.map
|
package/esm/_internal/dialog.js
CHANGED
|
@@ -3,9 +3,9 @@ import './components.js';
|
|
|
3
3
|
import 'react';
|
|
4
4
|
import './getRootClassName.js';
|
|
5
5
|
import 'lodash/isBoolean';
|
|
6
|
-
import 'lodash/isEmpty';
|
|
7
6
|
import 'lodash/kebabCase';
|
|
8
|
-
import 'lodash/
|
|
7
|
+
import 'lodash/isEmpty';
|
|
8
|
+
import './onEscapePressed.js';
|
|
9
9
|
import './constants.js';
|
|
10
10
|
import 'lodash/concat';
|
|
11
11
|
import 'lodash/dropRight';
|
package/esm/_internal/divider.js
CHANGED
|
@@ -3,8 +3,7 @@ import './components.js';
|
|
|
3
3
|
import 'react';
|
|
4
4
|
import './getRootClassName.js';
|
|
5
5
|
import 'lodash/isBoolean';
|
|
6
|
-
import 'lodash/isEmpty';
|
|
7
6
|
import 'lodash/kebabCase';
|
|
8
|
-
import 'lodash/
|
|
7
|
+
import 'lodash/isEmpty';
|
|
9
8
|
export { D as DEFAULT_PROPS, a as Divider } from './Divider2.js';
|
|
10
9
|
//# sourceMappingURL=divider.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"divider.js","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"divider.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;"}
|
|
@@ -4,9 +4,8 @@ import 'react';
|
|
|
4
4
|
import './getRootClassName.js';
|
|
5
5
|
import './mdi.js';
|
|
6
6
|
import 'lodash/isBoolean';
|
|
7
|
-
import 'lodash/isEmpty';
|
|
8
7
|
import 'lodash/kebabCase';
|
|
9
|
-
import 'lodash/
|
|
8
|
+
import 'lodash/isEmpty';
|
|
10
9
|
export { D as DragHandle } from './DragHandle.js';
|
|
11
10
|
import './Icon2.js';
|
|
12
11
|
//# sourceMappingURL=drag-handle.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"drag-handle.js","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"drag-handle.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;"}
|
|
@@ -3,9 +3,11 @@ import './components.js';
|
|
|
3
3
|
import 'react';
|
|
4
4
|
import './getRootClassName.js';
|
|
5
5
|
import 'lodash/isBoolean';
|
|
6
|
-
import 'lodash/isEmpty';
|
|
7
6
|
import 'lodash/kebabCase';
|
|
8
|
-
import 'lodash/
|
|
7
|
+
import 'lodash/isEmpty';
|
|
8
|
+
import './List2.js';
|
|
9
|
+
import './onEnterPressed.js';
|
|
10
|
+
import './onEscapePressed.js';
|
|
9
11
|
import './constants.js';
|
|
10
12
|
import 'lodash/get';
|
|
11
13
|
import './type.js';
|
|
@@ -15,6 +17,5 @@ import './renderLink.js';
|
|
|
15
17
|
import 'react-dom';
|
|
16
18
|
import './ClickAwayProvider.js';
|
|
17
19
|
import 'lodash/pull';
|
|
18
|
-
import './List2.js';
|
|
19
20
|
export { D as Dropdown } from './Dropdown2.js';
|
|
20
21
|
//# sourceMappingURL=dropdown.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dropdown.js","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"dropdown.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;"}
|
|
@@ -3,11 +3,11 @@ import './components.js';
|
|
|
3
3
|
import 'react';
|
|
4
4
|
import './getRootClassName.js';
|
|
5
5
|
import './mdi.js';
|
|
6
|
-
import '
|
|
6
|
+
import './index.js';
|
|
7
7
|
import 'lodash/isBoolean';
|
|
8
|
-
import 'lodash/isEmpty';
|
|
9
8
|
import 'lodash/kebabCase';
|
|
10
|
-
import 'lodash/
|
|
9
|
+
import 'lodash/isEmpty';
|
|
10
|
+
import './onEscapePressed.js';
|
|
11
11
|
import './constants.js';
|
|
12
12
|
import 'lodash/concat';
|
|
13
13
|
import 'lodash/dropRight';
|
|
@@ -29,6 +29,6 @@ import 'lodash/pull';
|
|
|
29
29
|
import './DragHandle.js';
|
|
30
30
|
export { E as ExpansionPanel } from './ExpansionPanel.js';
|
|
31
31
|
import './Icon2.js';
|
|
32
|
+
import '../hooks/useOpenHoverOrLongPress.js';
|
|
32
33
|
import './Tooltip2.js';
|
|
33
|
-
import 'lodash/debounce';
|
|
34
34
|
//# sourceMappingURL=expansion-panel.js.map
|
package/esm/_internal/flag.js
CHANGED
|
@@ -3,9 +3,8 @@ import './components.js';
|
|
|
3
3
|
import 'react';
|
|
4
4
|
import './getRootClassName.js';
|
|
5
5
|
import 'lodash/isBoolean';
|
|
6
|
-
import 'lodash/isEmpty';
|
|
7
6
|
import 'lodash/kebabCase';
|
|
8
|
-
import 'lodash/
|
|
7
|
+
import 'lodash/isEmpty';
|
|
9
8
|
export { F as Flag } from './Flag2.js';
|
|
10
9
|
import './Icon2.js';
|
|
11
10
|
//# sourceMappingURL=flag.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"flag.js","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"flag.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;"}
|