@lumx/react 3.0.2-alpha-react-utils.2 → 3.0.2-alpha-react-utils.3
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/_internal/{6340c129.js → ClickAwayProvider.js} +107 -2
- package/_internal/ClickAwayProvider.js.map +1 -0
- package/_internal/{eca6d4dc.d.ts → types.d.ts} +1 -1
- package/index.d.ts +2627 -56
- package/index.js +12438 -56
- package/index.js.map +1 -1
- package/package.json +4 -4
- package/utils/index.d.ts +1 -1
- package/utils/index.js +1 -1
- package/_internal/0062d1bc.js +0 -220
- package/_internal/0062d1bc.js.map +0 -1
- package/_internal/03e8323d.d.ts +0 -118
- package/_internal/0402f9bc.d.ts +0 -183
- package/_internal/0b370acc.js +0 -796
- package/_internal/0b370acc.js.map +0 -1
- package/_internal/0d154d73.d.ts +0 -67
- package/_internal/113e3b40.d.ts +0 -31
- package/_internal/12ab39e4.js +0 -58
- package/_internal/12ab39e4.js.map +0 -1
- package/_internal/13e759f3.js +0 -343
- package/_internal/13e759f3.js.map +0 -1
- package/_internal/158b46d5.js +0 -151
- package/_internal/158b46d5.js.map +0 -1
- package/_internal/17b74e16.d.ts +0 -31
- package/_internal/1b1530a4.d.ts +0 -43
- package/_internal/20976405.js +0 -87
- package/_internal/20976405.js.map +0 -1
- package/_internal/20b0e9a5.d.ts +0 -77
- package/_internal/26cd9c63.js +0 -118
- package/_internal/26cd9c63.js.map +0 -1
- package/_internal/27f21164.js +0 -79
- package/_internal/27f21164.js.map +0 -1
- package/_internal/288dfd0f.js +0 -13
- package/_internal/288dfd0f.js.map +0 -1
- package/_internal/28aaf23a.d.ts +0 -41
- package/_internal/2c829c0b.d.ts +0 -57
- package/_internal/2cc0aec5.js +0 -86
- package/_internal/2cc0aec5.js.map +0 -1
- package/_internal/2d0a5b28.js +0 -23
- package/_internal/2d0a5b28.js.map +0 -1
- package/_internal/2d4b5a5e.d.ts +0 -92
- package/_internal/2d770113.d.ts +0 -38
- package/_internal/2fe97f00.js +0 -291
- package/_internal/2fe97f00.js.map +0 -1
- package/_internal/31c16fa0.d.ts +0 -37
- package/_internal/329a01d3.js +0 -25
- package/_internal/329a01d3.js.map +0 -1
- package/_internal/3326e990.js +0 -168
- package/_internal/3326e990.js.map +0 -1
- package/_internal/377b2f44.js +0 -70
- package/_internal/377b2f44.js.map +0 -1
- package/_internal/3b8d2a6e.js +0 -124
- package/_internal/3b8d2a6e.js.map +0 -1
- package/_internal/3bd3186e.d.ts +0 -57
- package/_internal/48e40868.js +0 -101
- package/_internal/48e40868.js.map +0 -1
- package/_internal/490ec1da.js +0 -322
- package/_internal/490ec1da.js.map +0 -1
- package/_internal/49127d69.d.ts +0 -52
- package/_internal/4dcd87cb.js +0 -78
- package/_internal/4dcd87cb.js.map +0 -1
- package/_internal/4f44d848.js +0 -157
- package/_internal/4f44d848.js.map +0 -1
- package/_internal/4fc64a2e.js +0 -27
- package/_internal/4fc64a2e.js.map +0 -1
- package/_internal/53a831be.js +0 -108
- package/_internal/53a831be.js.map +0 -1
- package/_internal/55271fa1.d.ts +0 -34
- package/_internal/55d30377.d.ts +0 -22
- package/_internal/56385b04.js +0 -116
- package/_internal/56385b04.js.map +0 -1
- package/_internal/599e250a.d.ts +0 -88
- package/_internal/5a054691.d.ts +0 -33
- package/_internal/5a127b58.js +0 -82
- package/_internal/5a127b58.js.map +0 -1
- package/_internal/5a1c0db4.js +0 -156
- package/_internal/5a1c0db4.js.map +0 -1
- package/_internal/5babcc39.js +0 -147
- package/_internal/5babcc39.js.map +0 -1
- package/_internal/5c1bf4d4.d.ts +0 -81
- package/_internal/5d8ed4ee.js +0 -113
- package/_internal/5d8ed4ee.js.map +0 -1
- package/_internal/616f2912.js +0 -301
- package/_internal/616f2912.js.map +0 -1
- package/_internal/61f915de.d.ts +0 -49
- package/_internal/620081fa.js +0 -122
- package/_internal/620081fa.js.map +0 -1
- package/_internal/6340c129.js.map +0 -1
- package/_internal/6581c863.d.ts +0 -34
- package/_internal/66de4d45.d.ts +0 -32
- package/_internal/6735c5c8.d.ts +0 -62
- package/_internal/69dd1472.js +0 -112
- package/_internal/69dd1472.js.map +0 -1
- package/_internal/6a0e1c77.js +0 -327
- package/_internal/6a0e1c77.js.map +0 -1
- package/_internal/701c20b0.d.ts +0 -24
- package/_internal/7391188a.js +0 -81
- package/_internal/7391188a.js.map +0 -1
- package/_internal/74cb6c26.js +0 -136
- package/_internal/74cb6c26.js.map +0 -1
- package/_internal/761031bf.js +0 -314
- package/_internal/761031bf.js.map +0 -1
- package/_internal/76fed69d.js +0 -50
- package/_internal/76fed69d.js.map +0 -1
- package/_internal/78ef8e34.js +0 -40
- package/_internal/78ef8e34.js.map +0 -1
- package/_internal/7b906e16.d.ts +0 -17
- package/_internal/7be11ddc.d.ts +0 -35
- package/_internal/7d39705e.d.ts +0 -20
- package/_internal/7e03266f.js +0 -47
- package/_internal/7e03266f.js.map +0 -1
- package/_internal/7e8d0ac5.js +0 -84
- package/_internal/7e8d0ac5.js.map +0 -1
- package/_internal/7ffa45f6.js +0 -48
- package/_internal/7ffa45f6.js.map +0 -1
- package/_internal/84c1ec44.js +0 -257
- package/_internal/84c1ec44.js.map +0 -1
- package/_internal/8518279f.js +0 -96
- package/_internal/8518279f.js.map +0 -1
- package/_internal/853713cd.js +0 -25
- package/_internal/853713cd.js.map +0 -1
- package/_internal/86566d75.d.ts +0 -27
- package/_internal/86d22dde.d.ts +0 -57
- package/_internal/8e755ded.d.ts +0 -101
- package/_internal/901471f5.d.ts +0 -37
- package/_internal/935ce959.d.ts +0 -49
- package/_internal/97089888.d.ts +0 -16
- package/_internal/97cc728c.d.ts +0 -26
- package/_internal/9ab3c637.js +0 -2474
- package/_internal/9ab3c637.js.map +0 -1
- package/_internal/9ca3f59c.js +0 -60
- package/_internal/9ca3f59c.js.map +0 -1
- package/_internal/9e95ea38.d.ts +0 -43
- package/_internal/a0108f92.js +0 -84
- package/_internal/a0108f92.js.map +0 -1
- package/_internal/a493a193.d.ts +0 -65
- package/_internal/a521723d.js +0 -120
- package/_internal/a521723d.js.map +0 -1
- package/_internal/a6fad025.d.ts +0 -107
- package/_internal/a8fa525f.js +0 -124
- package/_internal/a8fa525f.js.map +0 -1
- package/_internal/aca2ecf5.js +0 -141
- package/_internal/aca2ecf5.js.map +0 -1
- package/_internal/aef2ef1c.js +0 -53
- package/_internal/aef2ef1c.js.map +0 -1
- package/_internal/af048b0c.js +0 -89
- package/_internal/af048b0c.js.map +0 -1
- package/_internal/af2cd0cd.d.ts +0 -17
- package/_internal/afec6b62.js +0 -864
- package/_internal/afec6b62.js.map +0 -1
- package/_internal/b0eb3a30.js +0 -72
- package/_internal/b0eb3a30.js.map +0 -1
- package/_internal/b89517ea.js +0 -275
- package/_internal/b89517ea.js.map +0 -1
- package/_internal/bafa6fcc.js +0 -116
- package/_internal/bafa6fcc.js.map +0 -1
- package/_internal/bbbeb49e.js +0 -47
- package/_internal/bbbeb49e.js.map +0 -1
- package/_internal/c11f6162.d.ts +0 -52
- package/_internal/c723dab4.js +0 -133
- package/_internal/c723dab4.js.map +0 -1
- package/_internal/c87cc857.d.ts +0 -42
- package/_internal/c97f8d04.js +0 -424
- package/_internal/c97f8d04.js.map +0 -1
- package/_internal/cbb373ea.d.ts +0 -6
- package/_internal/cbef23b6.d.ts +0 -104
- package/_internal/cdf77f06.d.ts +0 -88
- package/_internal/d350f2ff.js +0 -105
- package/_internal/d350f2ff.js.map +0 -1
- package/_internal/d71a8cf7.js +0 -54
- package/_internal/d71a8cf7.js.map +0 -1
- package/_internal/d9337952.js +0 -96
- package/_internal/d9337952.js.map +0 -1
- package/_internal/def14e1a.d.ts +0 -24
- package/_internal/e0cd29c7.d.ts +0 -35
- package/_internal/e354228f.js +0 -145
- package/_internal/e354228f.js.map +0 -1
- package/_internal/e3922a05.d.ts +0 -22
- package/_internal/e3cb6177.d.ts +0 -75
- package/_internal/e810c841.d.ts +0 -182
- package/_internal/ea700b01.d.ts +0 -43
- package/_internal/eed07003.js +0 -122
- package/_internal/eed07003.js.map +0 -1
- package/_internal/f1c9b334.d.ts +0 -22
- package/_internal/f3c3a674.js +0 -281
- package/_internal/f3c3a674.js.map +0 -1
- package/_internal/f571cdcd.js +0 -132
- package/_internal/f571cdcd.js.map +0 -1
- package/_internal/f5bdff7e.js +0 -282
- package/_internal/f5bdff7e.js.map +0 -1
- package/_internal/f851fc00.d.ts +0 -34
- package/_internal/f859b007.d.ts +0 -49
- package/_internal/fb384b79.d.ts +0 -38
- package/_internal/fc4c034b.js +0 -63
- package/_internal/fc4c034b.js.map +0 -1
- package/_internal/fc608bd9.js +0 -16
- package/_internal/fc608bd9.js.map +0 -1
- package/_internal/fd1f4d68.d.ts +0 -36
- package/_internal/fd867c9d.js +0 -346
- package/_internal/fd867c9d.js.map +0 -1
- package/_internal/ff8081e5.js +0 -57
- package/_internal/ff8081e5.js.map +0 -1
- package/_internal/ffd1bfe3.js +0 -123
- package/_internal/ffd1bfe3.js.map +0 -1
- package/components/alert-dialog.d.ts +0 -6
- package/components/alert-dialog.js +0 -2
- package/components/alert-dialog.js.map +0 -1
- package/components/autocomplete.d.ts +0 -8
- package/components/autocomplete.js +0 -2
- package/components/autocomplete.js.map +0 -1
- package/components/avatar.d.ts +0 -4
- package/components/avatar.js +0 -2
- package/components/avatar.js.map +0 -1
- package/components/badge.d.ts +0 -3
- package/components/badge.js +0 -2
- package/components/badge.js.map +0 -1
- package/components/button.d.ts +0 -8
- package/components/button.js +0 -4
- package/components/button.js.map +0 -1
- package/components/checkbox.d.ts +0 -3
- package/components/checkbox.js +0 -2
- package/components/checkbox.js.map +0 -1
- package/components/chip.d.ts +0 -3
- package/components/chip.js +0 -3
- package/components/chip.js.map +0 -1
- package/components/comment-block.d.ts +0 -5
- package/components/comment-block.js +0 -2
- package/components/comment-block.js.map +0 -1
- package/components/date-picker.d.ts +0 -7
- package/components/date-picker.js +0 -2
- package/components/date-picker.js.map +0 -1
- package/components/dialog.d.ts +0 -3
- package/components/dialog.js +0 -2
- package/components/dialog.js.map +0 -1
- package/components/divider.d.ts +0 -3
- package/components/divider.js +0 -2
- package/components/divider.js.map +0 -1
- package/components/drag-handle.d.ts +0 -3
- package/components/drag-handle.js +0 -2
- package/components/drag-handle.js.map +0 -1
- package/components/dropdown.d.ts +0 -4
- package/components/dropdown.js +0 -2
- package/components/dropdown.js.map +0 -1
- package/components/expansion-panel.d.ts +0 -7
- package/components/expansion-panel.js +0 -2
- package/components/expansion-panel.js.map +0 -1
- package/components/flag.d.ts +0 -3
- package/components/flag.js +0 -2
- package/components/flag.js.map +0 -1
- package/components/flex-box.d.ts +0 -3
- package/components/flex-box.js +0 -2
- package/components/flex-box.js.map +0 -1
- package/components/generic-block.d.ts +0 -4
- package/components/generic-block.js +0 -2
- package/components/generic-block.js.map +0 -1
- package/components/grid.d.ts +0 -3
- package/components/grid.js +0 -2
- package/components/grid.js.map +0 -1
- package/components/heading.d.ts +0 -4
- package/components/heading.js +0 -2
- package/components/heading.js.map +0 -1
- package/components/icon.d.ts +0 -3
- package/components/icon.js +0 -2
- package/components/icon.js.map +0 -1
- package/components/image-block.d.ts +0 -4
- package/components/image-block.js +0 -2
- package/components/image-block.js.map +0 -1
- package/components/input-helper.d.ts +0 -3
- package/components/input-helper.js +0 -2
- package/components/input-helper.js.map +0 -1
- package/components/input-label.d.ts +0 -3
- package/components/input-label.js +0 -2
- package/components/input-label.js.map +0 -1
- package/components/lightbox.d.ts +0 -7
- package/components/lightbox.js +0 -2
- package/components/lightbox.js.map +0 -1
- package/components/link-preview.d.ts +0 -5
- package/components/link-preview.js +0 -2
- package/components/link-preview.js.map +0 -1
- package/components/link.d.ts +0 -3
- package/components/link.js +0 -2
- package/components/link.js.map +0 -1
- package/components/list.d.ts +0 -3
- package/components/list.js +0 -3
- package/components/list.js.map +0 -1
- package/components/message.d.ts +0 -3
- package/components/message.js +0 -2
- package/components/message.js.map +0 -1
- package/components/mosaic.d.ts +0 -4
- package/components/mosaic.js +0 -2
- package/components/mosaic.js.map +0 -1
- package/components/notification.d.ts +0 -3
- package/components/notification.js +0 -2
- package/components/notification.js.map +0 -1
- package/components/popover.d.ts +0 -3
- package/components/popover.js +0 -2
- package/components/popover.js.map +0 -1
- package/components/post-block.d.ts +0 -4
- package/components/post-block.js +0 -2
- package/components/post-block.js.map +0 -1
- package/components/progress-tracker.d.ts +0 -3
- package/components/progress-tracker.js +0 -2
- package/components/progress-tracker.js.map +0 -1
- package/components/progress.d.ts +0 -3
- package/components/progress.js +0 -2
- package/components/progress.js.map +0 -1
- package/components/radio-button.d.ts +0 -3
- package/components/radio-button.js +0 -2
- package/components/radio-button.js.map +0 -1
- package/components/select.d.ts +0 -7
- package/components/select.js +0 -2
- package/components/select.js.map +0 -1
- package/components/side-navigation.d.ts +0 -7
- package/components/side-navigation.js +0 -2
- package/components/side-navigation.js.map +0 -1
- package/components/skeleton.d.ts +0 -3
- package/components/skeleton.js +0 -2
- package/components/skeleton.js.map +0 -1
- package/components/slider.d.ts +0 -3
- package/components/slider.js +0 -2
- package/components/slider.js.map +0 -1
- package/components/slideshow.d.ts +0 -7
- package/components/slideshow.js +0 -2
- package/components/slideshow.js.map +0 -1
- package/components/switch.d.ts +0 -3
- package/components/switch.js +0 -2
- package/components/switch.js.map +0 -1
- package/components/table.d.ts +0 -3
- package/components/table.js +0 -2
- package/components/table.js.map +0 -1
- package/components/tabs.d.ts +0 -4
- package/components/tabs.js +0 -2
- package/components/tabs.js.map +0 -1
- package/components/text-field.d.ts +0 -7
- package/components/text-field.js +0 -2
- package/components/text-field.js.map +0 -1
- package/components/text.d.ts +0 -3
- package/components/text.js +0 -2
- package/components/text.js.map +0 -1
- package/components/thumbnail.d.ts +0 -4
- package/components/thumbnail.js +0 -3
- package/components/thumbnail.js.map +0 -1
- package/components/toolbar.d.ts +0 -3
- package/components/toolbar.js +0 -2
- package/components/toolbar.js.map +0 -1
- package/components/tooltip.d.ts +0 -4
- package/components/tooltip.js +0 -2
- package/components/tooltip.js.map +0 -1
- package/components/uploader.d.ts +0 -3
- package/components/uploader.js +0 -2
- package/components/uploader.js.map +0 -1
- package/components/user-block.d.ts +0 -5
- package/components/user-block.js +0 -2
- package/components/user-block.js.map +0 -1
- package/components.d.ts +0 -2
- package/components.js +0 -156
- package/components.js.map +0 -1
package/_internal/f3c3a674.js
DELETED
|
@@ -1,281 +0,0 @@
|
|
|
1
|
-
import { b as _objectWithoutProperties, d as _slicedToArray, e as _toConsumableArray, c as _extends } from './6340c129.js';
|
|
2
|
-
import { Alignment, Theme, Size } from '../components.js';
|
|
3
|
-
import React, { useReducer, useEffect, forwardRef, useCallback } from 'react';
|
|
4
|
-
import { c as classnames, h as handleBasicClasses, C as CSS_PREFIX } from './fd867c9d.js';
|
|
5
|
-
import { I as Icon } from './a521723d.js';
|
|
6
|
-
import 'lodash/kebabCase';
|
|
7
|
-
import { m as mergeRefs } from './853713cd.js';
|
|
8
|
-
import { r as reducer, I as INIT_STATE, T as TabProviderContext, a as useTabProviderContext } from './e354228f.js';
|
|
9
|
-
import { u as useRovingTabIndex } from './20976405.js';
|
|
10
|
-
|
|
11
|
-
var DEFAULT_PROPS = {
|
|
12
|
-
isLazy: INIT_STATE.isLazy,
|
|
13
|
-
shouldActivateOnFocus: INIT_STATE.shouldActivateOnFocus
|
|
14
|
-
};
|
|
15
|
-
/**
|
|
16
|
-
* This component provides a context in which tabs can be defined and linked to their tab panel.
|
|
17
|
-
*
|
|
18
|
-
* It does not produce any markup so you can wrap it around any React elements and then split the TabList and TabPanel
|
|
19
|
-
* components in the react tree.
|
|
20
|
-
*
|
|
21
|
-
* @param props React component props.
|
|
22
|
-
* @return React element.
|
|
23
|
-
*/
|
|
24
|
-
|
|
25
|
-
var TabProvider = function TabProvider(props) {
|
|
26
|
-
var children = props.children,
|
|
27
|
-
onChange = props.onChange,
|
|
28
|
-
propState = _objectWithoutProperties(props, ["children", "onChange"]);
|
|
29
|
-
|
|
30
|
-
var _useReducer = useReducer(reducer, INIT_STATE),
|
|
31
|
-
_useReducer2 = _slicedToArray(_useReducer, 2),
|
|
32
|
-
state = _useReducer2[0],
|
|
33
|
-
dispatch = _useReducer2[1]; // On prop state change => dispatch update.
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
useEffect(function () {
|
|
37
|
-
dispatch({
|
|
38
|
-
type: 'update',
|
|
39
|
-
payload: propState
|
|
40
|
-
});
|
|
41
|
-
}, // eslint-disable-next-line react-hooks/exhaustive-deps
|
|
42
|
-
[dispatch].concat(_toConsumableArray(Object.values(propState)))); // On active tab index state change => send update to the onChange.
|
|
43
|
-
|
|
44
|
-
useEffect(function () {
|
|
45
|
-
if (state === INIT_STATE || !onChange || propState.activeTabIndex === state.activeTabIndex) {
|
|
46
|
-
return;
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
onChange(state.activeTabIndex);
|
|
50
|
-
}, // eslint-disable-next-line react-hooks/exhaustive-deps
|
|
51
|
-
[onChange, state.activeTabIndex]);
|
|
52
|
-
return React.createElement(TabProviderContext.Provider, {
|
|
53
|
-
value: [state, dispatch]
|
|
54
|
-
}, children);
|
|
55
|
-
};
|
|
56
|
-
TabProvider.defaultProps = DEFAULT_PROPS;
|
|
57
|
-
|
|
58
|
-
var TabListLayout;
|
|
59
|
-
/**
|
|
60
|
-
* Defines the props of the component.
|
|
61
|
-
*/
|
|
62
|
-
|
|
63
|
-
(function (TabListLayout) {
|
|
64
|
-
TabListLayout["clustered"] = "clustered";
|
|
65
|
-
TabListLayout["fixed"] = "fixed";
|
|
66
|
-
})(TabListLayout || (TabListLayout = {}));
|
|
67
|
-
|
|
68
|
-
/**
|
|
69
|
-
* Component display name.
|
|
70
|
-
*/
|
|
71
|
-
var COMPONENT_NAME = 'TabList';
|
|
72
|
-
/**
|
|
73
|
-
* Component default class name and class prefix.
|
|
74
|
-
*/
|
|
75
|
-
|
|
76
|
-
var CLASSNAME = "".concat(CSS_PREFIX, "-tabs");
|
|
77
|
-
/**
|
|
78
|
-
* Component default props.
|
|
79
|
-
*/
|
|
80
|
-
|
|
81
|
-
var DEFAULT_PROPS$1 = {
|
|
82
|
-
layout: TabListLayout.fixed,
|
|
83
|
-
position: Alignment.left,
|
|
84
|
-
theme: Theme.light
|
|
85
|
-
};
|
|
86
|
-
/**
|
|
87
|
-
* TabList component.
|
|
88
|
-
*
|
|
89
|
-
* Implements WAI-ARIA `tablist` role {@see https://www.w3.org/TR/wai-aria-practices-1.1/examples/tabs/tabs-1/tabs.html#rps_label}
|
|
90
|
-
*
|
|
91
|
-
* @param props Component props.
|
|
92
|
-
* @param ref Component ref.
|
|
93
|
-
* @return React element.
|
|
94
|
-
*/
|
|
95
|
-
|
|
96
|
-
var TabList = forwardRef(function (props, ref) {
|
|
97
|
-
var ariaLabel = props['aria-label'],
|
|
98
|
-
children = props.children,
|
|
99
|
-
className = props.className,
|
|
100
|
-
layout = props.layout,
|
|
101
|
-
position = props.position,
|
|
102
|
-
theme = props.theme,
|
|
103
|
-
forwardedProps = _objectWithoutProperties(props, ["aria-label", "children", "className", "layout", "position", "theme"]);
|
|
104
|
-
|
|
105
|
-
var tabListRef = React.useRef(null);
|
|
106
|
-
useRovingTabIndex({
|
|
107
|
-
parentRef: tabListRef,
|
|
108
|
-
elementSelector: '[role="tab"]',
|
|
109
|
-
keepTabIndex: false,
|
|
110
|
-
extraDependencies: [children]
|
|
111
|
-
});
|
|
112
|
-
return React.createElement("div", _extends({
|
|
113
|
-
ref: mergeRefs(ref, tabListRef)
|
|
114
|
-
}, forwardedProps, {
|
|
115
|
-
className: classnames(className, handleBasicClasses({
|
|
116
|
-
prefix: CLASSNAME,
|
|
117
|
-
layout: layout,
|
|
118
|
-
position: position,
|
|
119
|
-
theme: theme
|
|
120
|
-
}))
|
|
121
|
-
}), React.createElement("div", {
|
|
122
|
-
className: "".concat(CLASSNAME, "__links"),
|
|
123
|
-
role: "tablist",
|
|
124
|
-
"aria-label": ariaLabel
|
|
125
|
-
}, children));
|
|
126
|
-
});
|
|
127
|
-
TabList.displayName = COMPONENT_NAME;
|
|
128
|
-
TabList.className = CLASSNAME;
|
|
129
|
-
TabList.defaultProps = DEFAULT_PROPS$1;
|
|
130
|
-
|
|
131
|
-
/**
|
|
132
|
-
* Defines the props of the component.
|
|
133
|
-
*/
|
|
134
|
-
|
|
135
|
-
/**
|
|
136
|
-
* Component display name.
|
|
137
|
-
*/
|
|
138
|
-
var COMPONENT_NAME$1 = 'Tab';
|
|
139
|
-
/**
|
|
140
|
-
* Component default class name and class prefix.
|
|
141
|
-
*/
|
|
142
|
-
|
|
143
|
-
var CLASSNAME$1 = "".concat(CSS_PREFIX, "-tabs__link");
|
|
144
|
-
/**
|
|
145
|
-
* Component default props.
|
|
146
|
-
*/
|
|
147
|
-
|
|
148
|
-
var DEFAULT_PROPS$2 = {};
|
|
149
|
-
/**
|
|
150
|
-
* Tab component.
|
|
151
|
-
*
|
|
152
|
-
* Implements WAI-ARIA `tab` role {@see https://www.w3.org/TR/wai-aria-practices-1.1/examples/tabs/tabs-1/tabs.html#rps_label}
|
|
153
|
-
*
|
|
154
|
-
* @param props Component props.
|
|
155
|
-
* @param ref Component ref.
|
|
156
|
-
* @return React element.
|
|
157
|
-
*/
|
|
158
|
-
|
|
159
|
-
var Tab = forwardRef(function (props, ref) {
|
|
160
|
-
var className = props.className,
|
|
161
|
-
disabled = props.disabled,
|
|
162
|
-
icon = props.icon,
|
|
163
|
-
id = props.id,
|
|
164
|
-
propIsActive = props.isActive,
|
|
165
|
-
_props$isDisabled = props.isDisabled,
|
|
166
|
-
isDisabled = _props$isDisabled === void 0 ? disabled : _props$isDisabled,
|
|
167
|
-
label = props.label,
|
|
168
|
-
onFocus = props.onFocus,
|
|
169
|
-
onKeyPress = props.onKeyPress,
|
|
170
|
-
_props$tabIndex = props.tabIndex,
|
|
171
|
-
tabIndex = _props$tabIndex === void 0 ? -1 : _props$tabIndex,
|
|
172
|
-
forwardedProps = _objectWithoutProperties(props, ["className", "disabled", "icon", "id", "isActive", "isDisabled", "label", "onFocus", "onKeyPress", "tabIndex"]);
|
|
173
|
-
|
|
174
|
-
var state = useTabProviderContext('tab', id);
|
|
175
|
-
var isActive = propIsActive || (state === null || state === void 0 ? void 0 : state.isActive);
|
|
176
|
-
var changeToCurrentTab = useCallback(function () {
|
|
177
|
-
if (isDisabled) {
|
|
178
|
-
return;
|
|
179
|
-
}
|
|
180
|
-
|
|
181
|
-
state === null || state === void 0 ? void 0 : state.changeToTab();
|
|
182
|
-
}, [isDisabled, state]);
|
|
183
|
-
var handleFocus = useCallback(function (event) {
|
|
184
|
-
onFocus === null || onFocus === void 0 ? void 0 : onFocus(event);
|
|
185
|
-
|
|
186
|
-
if (state === null || state === void 0 ? void 0 : state.shouldActivateOnFocus) {
|
|
187
|
-
changeToCurrentTab();
|
|
188
|
-
}
|
|
189
|
-
}, [changeToCurrentTab, onFocus, state === null || state === void 0 ? void 0 : state.shouldActivateOnFocus]);
|
|
190
|
-
var handleKeyPress = useCallback(function (event) {
|
|
191
|
-
onKeyPress === null || onKeyPress === void 0 ? void 0 : onKeyPress(event);
|
|
192
|
-
|
|
193
|
-
if (event.key !== 'Enter') {
|
|
194
|
-
return;
|
|
195
|
-
}
|
|
196
|
-
|
|
197
|
-
changeToCurrentTab();
|
|
198
|
-
}, [changeToCurrentTab, onKeyPress]);
|
|
199
|
-
return React.createElement("button", _extends({
|
|
200
|
-
ref: ref
|
|
201
|
-
}, forwardedProps, {
|
|
202
|
-
type: "button",
|
|
203
|
-
id: state === null || state === void 0 ? void 0 : state.tabId,
|
|
204
|
-
className: classnames(className, handleBasicClasses({
|
|
205
|
-
prefix: CLASSNAME$1,
|
|
206
|
-
isActive: isActive,
|
|
207
|
-
isDisabled: isDisabled
|
|
208
|
-
})),
|
|
209
|
-
onClick: changeToCurrentTab,
|
|
210
|
-
onKeyPress: handleKeyPress,
|
|
211
|
-
onFocus: handleFocus,
|
|
212
|
-
role: "tab",
|
|
213
|
-
tabIndex: isActive ? 0 : tabIndex,
|
|
214
|
-
"aria-disabled": isDisabled,
|
|
215
|
-
"aria-selected": isActive,
|
|
216
|
-
"aria-controls": state === null || state === void 0 ? void 0 : state.tabPanelId
|
|
217
|
-
}), icon && React.createElement(Icon, {
|
|
218
|
-
icon: icon,
|
|
219
|
-
size: Size.xs
|
|
220
|
-
}), label && React.createElement("span", null, label));
|
|
221
|
-
});
|
|
222
|
-
Tab.displayName = COMPONENT_NAME$1;
|
|
223
|
-
Tab.className = CLASSNAME$1;
|
|
224
|
-
Tab.defaultProps = DEFAULT_PROPS$2;
|
|
225
|
-
|
|
226
|
-
/**
|
|
227
|
-
* Defines the props of the component.
|
|
228
|
-
*/
|
|
229
|
-
|
|
230
|
-
/**
|
|
231
|
-
* Component display name.
|
|
232
|
-
*/
|
|
233
|
-
var COMPONENT_NAME$2 = 'TabPanel';
|
|
234
|
-
/**
|
|
235
|
-
* Component default class name and class prefix.
|
|
236
|
-
*/
|
|
237
|
-
|
|
238
|
-
var CLASSNAME$2 = "".concat(CSS_PREFIX, "-tab-panel");
|
|
239
|
-
/**
|
|
240
|
-
* Component default props.
|
|
241
|
-
*/
|
|
242
|
-
|
|
243
|
-
var DEFAULT_PROPS$3 = {};
|
|
244
|
-
/**
|
|
245
|
-
* TabPanel component.
|
|
246
|
-
*
|
|
247
|
-
* Implements WAI-ARIA `tabpanel` role {@see https://www.w3.org/TR/wai-aria-practices-1.1/examples/tabs/tabs-1/tabs.html#rps_label}
|
|
248
|
-
*
|
|
249
|
-
* @param props Component props.
|
|
250
|
-
* @param ref Component ref.
|
|
251
|
-
* @return React element.
|
|
252
|
-
*/
|
|
253
|
-
|
|
254
|
-
var TabPanel = forwardRef(function (props, ref) {
|
|
255
|
-
var children = props.children,
|
|
256
|
-
id = props.id,
|
|
257
|
-
className = props.className,
|
|
258
|
-
propIsActive = props.isActive,
|
|
259
|
-
forwardedProps = _objectWithoutProperties(props, ["children", "id", "className", "isActive"]);
|
|
260
|
-
|
|
261
|
-
var state = useTabProviderContext('tabPanel', id);
|
|
262
|
-
var isActive = propIsActive || (state === null || state === void 0 ? void 0 : state.isActive);
|
|
263
|
-
return React.createElement("div", _extends({
|
|
264
|
-
ref: ref
|
|
265
|
-
}, forwardedProps, {
|
|
266
|
-
id: state === null || state === void 0 ? void 0 : state.tabPanelId,
|
|
267
|
-
className: classnames(className, handleBasicClasses({
|
|
268
|
-
prefix: CLASSNAME$2,
|
|
269
|
-
isActive: isActive
|
|
270
|
-
})),
|
|
271
|
-
role: "tabpanel",
|
|
272
|
-
tabIndex: 0,
|
|
273
|
-
"aria-labelledby": state === null || state === void 0 ? void 0 : state.tabId
|
|
274
|
-
}), (!(state === null || state === void 0 ? void 0 : state.isLazy) || isActive) && children);
|
|
275
|
-
});
|
|
276
|
-
TabPanel.displayName = COMPONENT_NAME$2;
|
|
277
|
-
TabPanel.className = CLASSNAME$2;
|
|
278
|
-
TabPanel.defaultProps = DEFAULT_PROPS$3;
|
|
279
|
-
|
|
280
|
-
export { TabProvider as T, TabListLayout as a, TabList as b, Tab as c, TabPanel as d };
|
|
281
|
-
//# sourceMappingURL=f3c3a674.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"f3c3a674.js","sources":["../../src/components/tabs/TabProvider.tsx","../../src/components/tabs/TabList.tsx","../../src/components/tabs/Tab.tsx","../../src/components/tabs/TabPanel.tsx"],"sourcesContent":["import React, { ReactNode, useEffect, useReducer } from 'react';\nimport { INIT_STATE, TabProviderContext, reducer } from './state';\n\nexport interface TabProviderProps {\n /** Active tab index. */\n activeTabIndex?: number;\n /** Tab provider children. */\n children: ReactNode;\n /** Tab panel children should not render if the tab panel is hidden. */\n isLazy?: boolean;\n /** Activate tabs on focus. */\n shouldActivateOnFocus?: boolean;\n\n /** Tab change callback. */\n onChange?(index: number): void;\n}\n\nconst DEFAULT_PROPS: Partial<TabProviderProps> = {\n isLazy: INIT_STATE.isLazy,\n shouldActivateOnFocus: INIT_STATE.shouldActivateOnFocus,\n};\n\n/**\n * This component provides a context in which tabs can be defined and linked to their tab panel.\n *\n * It does not produce any markup so you can wrap it around any React elements and then split the TabList and TabPanel\n * components in the react tree.\n *\n * @param props React component props.\n * @return React element.\n */\nexport const TabProvider: React.FC<TabProviderProps> = (props) => {\n const { children, onChange, ...propState } = props;\n const [state, dispatch] = useReducer(reducer, INIT_STATE);\n\n // On prop state change => dispatch update.\n useEffect(\n () => {\n dispatch({ type: 'update', payload: propState });\n },\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [dispatch, ...Object.values(propState)],\n );\n\n // On active tab index state change => send update to the onChange.\n useEffect(\n () => {\n if (state === INIT_STATE || !onChange || propState.activeTabIndex === state.activeTabIndex) {\n return;\n }\n onChange(state.activeTabIndex);\n },\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [onChange, state.activeTabIndex],\n );\n\n return <TabProviderContext.Provider value={[state, dispatch]}>{children}</TabProviderContext.Provider>;\n};\nTabProvider.defaultProps = DEFAULT_PROPS;\n","import { Alignment, Theme } from '@lumx/react';\nimport { CSS_PREFIX } from '@lumx/react/constants';\nimport { Comp, GenericProps, HasTheme } from '@lumx/react/utils/type';\nimport { handleBasicClasses } from '@lumx/react/utils/className';\nimport { mergeRefs } from '@lumx/react/utils/mergeRefs';\n\nimport classNames from 'classnames';\nimport React, { forwardRef, ReactNode } from 'react';\nimport { useRovingTabIndex } from '../../hooks/useRovingTabIndex';\n\nexport enum TabListLayout {\n clustered = 'clustered',\n fixed = 'fixed',\n}\n\n/**\n * Defines the props of the component.\n */\nexport interface TabListProps extends GenericProps, HasTheme {\n /** ARIA label (purpose of the set of tabs). */\n ['aria-label']: string;\n /** Tab list. */\n children: ReactNode;\n /** Layout of the tabs in the list. */\n layout?: TabListLayout;\n /** Position of the tabs in the list (requires 'clustered' layout). */\n position?: Alignment;\n}\n\n/**\n * Component display name.\n */\nconst COMPONENT_NAME = 'TabList';\n\n/**\n * Component default class name and class prefix.\n */\nconst CLASSNAME = `${CSS_PREFIX}-tabs`;\n\n/**\n * Component default props.\n */\nconst DEFAULT_PROPS: Partial<TabListProps> = {\n layout: TabListLayout.fixed,\n position: Alignment.left,\n theme: Theme.light,\n};\n\n/**\n * TabList component.\n *\n * Implements WAI-ARIA `tablist` role {@see https://www.w3.org/TR/wai-aria-practices-1.1/examples/tabs/tabs-1/tabs.html#rps_label}\n *\n * @param props Component props.\n * @param ref Component ref.\n * @return React element.\n */\nexport const TabList: Comp<TabListProps, HTMLDivElement> = forwardRef((props, ref) => {\n const { 'aria-label': ariaLabel, children, className, layout, position, theme, ...forwardedProps } = props;\n const tabListRef = React.useRef(null);\n useRovingTabIndex({\n parentRef: tabListRef,\n elementSelector: '[role=\"tab\"]',\n keepTabIndex: false,\n extraDependencies: [children],\n });\n\n return (\n <div\n ref={mergeRefs(ref, tabListRef)}\n {...forwardedProps}\n className={classNames(className, handleBasicClasses({ prefix: CLASSNAME, layout, position, theme }))}\n >\n <div className={`${CLASSNAME}__links`} role=\"tablist\" aria-label={ariaLabel}>\n {children}\n </div>\n </div>\n );\n});\nTabList.displayName = COMPONENT_NAME;\nTabList.className = CLASSNAME;\nTabList.defaultProps = DEFAULT_PROPS;\n","import { Icon, IconProps, Size } from '@lumx/react';\nimport { CSS_PREFIX } from '@lumx/react/constants';\nimport { Comp, GenericProps } from '@lumx/react/utils/type';\nimport { handleBasicClasses } from '@lumx/react/utils/className';\n\nimport classNames from 'classnames';\nimport React, { FocusEventHandler, forwardRef, KeyboardEventHandler, ReactNode, useCallback } from 'react';\nimport { useTabProviderContext } from './state';\n\n/**\n * Defines the props of the component.\n */\nexport interface TabProps extends GenericProps {\n /** Children are not supported. */\n children?: never;\n /** Icon (SVG path). */\n icon?: IconProps['icon'];\n /** Native id property. */\n id?: string;\n /** Whether the tab is active or not. */\n isActive?: boolean;\n /** Whether the component is disabled or not. */\n isDisabled?: boolean;\n /** Label content. */\n label: string | ReactNode;\n}\n\n/**\n * Component display name.\n */\nconst COMPONENT_NAME = 'Tab';\n\n/**\n * Component default class name and class prefix.\n */\nconst CLASSNAME = `${CSS_PREFIX}-tabs__link`;\n\n/**\n * Component default props.\n */\nconst DEFAULT_PROPS: Partial<TabProps> = {};\n\n/**\n * Tab component.\n *\n * Implements WAI-ARIA `tab` role {@see https://www.w3.org/TR/wai-aria-practices-1.1/examples/tabs/tabs-1/tabs.html#rps_label}\n *\n * @param props Component props.\n * @param ref Component ref.\n * @return React element.\n */\nexport const Tab: Comp<TabProps, HTMLButtonElement> = forwardRef((props, ref) => {\n const {\n className,\n disabled,\n icon,\n id,\n isActive: propIsActive,\n isDisabled = disabled,\n label,\n onFocus,\n onKeyPress,\n tabIndex = -1,\n ...forwardedProps\n } = props;\n const state = useTabProviderContext('tab', id);\n const isActive = propIsActive || state?.isActive;\n\n const changeToCurrentTab = useCallback(() => {\n if (isDisabled) {\n return;\n }\n state?.changeToTab();\n }, [isDisabled, state]);\n\n const handleFocus: FocusEventHandler = useCallback(\n (event) => {\n onFocus?.(event);\n if (state?.shouldActivateOnFocus) {\n changeToCurrentTab();\n }\n },\n [changeToCurrentTab, onFocus, state?.shouldActivateOnFocus],\n );\n\n const handleKeyPress: KeyboardEventHandler = useCallback(\n (event) => {\n onKeyPress?.(event);\n if (event.key !== 'Enter') {\n return;\n }\n changeToCurrentTab();\n },\n [changeToCurrentTab, onKeyPress],\n );\n\n return (\n <button\n ref={ref}\n {...forwardedProps}\n type=\"button\"\n id={state?.tabId}\n className={classNames(className, handleBasicClasses({ prefix: CLASSNAME, isActive, isDisabled }))}\n onClick={changeToCurrentTab}\n onKeyPress={handleKeyPress}\n onFocus={handleFocus}\n role=\"tab\"\n tabIndex={isActive ? 0 : tabIndex}\n aria-disabled={isDisabled}\n aria-selected={isActive}\n aria-controls={state?.tabPanelId}\n >\n {icon && <Icon icon={icon} size={Size.xs} />}\n {label && <span>{label}</span>}\n </button>\n );\n});\nTab.displayName = COMPONENT_NAME;\nTab.className = CLASSNAME;\nTab.defaultProps = DEFAULT_PROPS;\n","import { useTabProviderContext } from '@lumx/react/components/tabs/state';\nimport { CSS_PREFIX } from '@lumx/react/constants';\nimport { Comp, GenericProps } from '@lumx/react/utils/type';\nimport { handleBasicClasses } from '@lumx/react/utils/className';\n\nimport classNames from 'classnames';\nimport React, { forwardRef } from 'react';\n\n/**\n * Defines the props of the component.\n */\nexport interface TabPanelProps extends GenericProps {\n /** Native id property */\n id?: string;\n /** Whether the tab is active or not. */\n isActive?: boolean;\n}\n\n/**\n * Component display name.\n */\nconst COMPONENT_NAME = 'TabPanel';\n\n/**\n * Component default class name and class prefix.\n */\nconst CLASSNAME = `${CSS_PREFIX}-tab-panel`;\n\n/**\n * Component default props.\n */\nconst DEFAULT_PROPS: Partial<TabPanelProps> = {};\n\n/**\n * TabPanel component.\n *\n * Implements WAI-ARIA `tabpanel` role {@see https://www.w3.org/TR/wai-aria-practices-1.1/examples/tabs/tabs-1/tabs.html#rps_label}\n *\n * @param props Component props.\n * @param ref Component ref.\n * @return React element.\n */\nexport const TabPanel: Comp<TabPanelProps, HTMLDivElement> = forwardRef((props, ref) => {\n const { children, id, className, isActive: propIsActive, ...forwardedProps } = props;\n\n const state = useTabProviderContext('tabPanel', id);\n const isActive = propIsActive || state?.isActive;\n\n return (\n <div\n ref={ref}\n {...forwardedProps}\n id={state?.tabPanelId}\n className={classNames(className, handleBasicClasses({ prefix: CLASSNAME, isActive }))}\n role=\"tabpanel\"\n tabIndex={0}\n aria-labelledby={state?.tabId}\n >\n {(!state?.isLazy || isActive) && children}\n </div>\n );\n});\nTabPanel.displayName = COMPONENT_NAME;\nTabPanel.className = CLASSNAME;\nTabPanel.defaultProps = DEFAULT_PROPS;\n"],"names":["DEFAULT_PROPS","isLazy","INIT_STATE","shouldActivateOnFocus","TabProvider","props","children","onChange","propState","useReducer","reducer","state","dispatch","useEffect","type","payload","Object","values","activeTabIndex","defaultProps","TabListLayout","COMPONENT_NAME","CLASSNAME","CSS_PREFIX","layout","fixed","position","Alignment","left","theme","Theme","light","TabList","forwardRef","ref","ariaLabel","className","forwardedProps","tabListRef","React","useRef","useRovingTabIndex","parentRef","elementSelector","keepTabIndex","extraDependencies","mergeRefs","classNames","handleBasicClasses","prefix","displayName","Tab","disabled","icon","id","propIsActive","isActive","isDisabled","label","onFocus","onKeyPress","tabIndex","useTabProviderContext","changeToCurrentTab","useCallback","changeToTab","handleFocus","event","handleKeyPress","key","tabId","tabPanelId","Size","xs","TabPanel"],"mappings":"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"}
|
package/_internal/f571cdcd.js
DELETED
|
@@ -1,132 +0,0 @@
|
|
|
1
|
-
import { b as _objectWithoutProperties, _ as _objectSpread2, c as _extends } from './6340c129.js';
|
|
2
|
-
import { Size, Orientation, Theme, ColorPalette } from '../components.js';
|
|
3
|
-
import React, { forwardRef } from 'react';
|
|
4
|
-
import { g as getRootClassName, c as classnames, h as handleBasicClasses } from './fd867c9d.js';
|
|
5
|
-
import isEmpty from 'lodash/isEmpty';
|
|
6
|
-
import { A as Avatar } from './5a127b58.js';
|
|
7
|
-
import { L as Link } from './eed07003.js';
|
|
8
|
-
import set from 'lodash/set';
|
|
9
|
-
|
|
10
|
-
/**
|
|
11
|
-
* Component display name.
|
|
12
|
-
*/
|
|
13
|
-
var COMPONENT_NAME = 'UserBlock';
|
|
14
|
-
/**
|
|
15
|
-
* Component default class name and class prefix.
|
|
16
|
-
*/
|
|
17
|
-
|
|
18
|
-
var CLASSNAME = getRootClassName(COMPONENT_NAME);
|
|
19
|
-
/**
|
|
20
|
-
* Component default props.
|
|
21
|
-
*/
|
|
22
|
-
|
|
23
|
-
var DEFAULT_PROPS = {
|
|
24
|
-
orientation: Orientation.horizontal,
|
|
25
|
-
size: Size.m,
|
|
26
|
-
theme: Theme.light
|
|
27
|
-
};
|
|
28
|
-
/**
|
|
29
|
-
* UserBlock component.
|
|
30
|
-
*
|
|
31
|
-
* @param props Component props.
|
|
32
|
-
* @param ref Component ref.
|
|
33
|
-
* @return React element.
|
|
34
|
-
*/
|
|
35
|
-
|
|
36
|
-
var UserBlock = forwardRef(function (props, ref) {
|
|
37
|
-
var avatarProps = props.avatarProps,
|
|
38
|
-
className = props.className,
|
|
39
|
-
fields = props.fields,
|
|
40
|
-
linkProps = props.linkProps,
|
|
41
|
-
linkAs = props.linkAs,
|
|
42
|
-
multipleActions = props.multipleActions,
|
|
43
|
-
name = props.name,
|
|
44
|
-
nameProps = props.nameProps,
|
|
45
|
-
onClick = props.onClick,
|
|
46
|
-
onMouseEnter = props.onMouseEnter,
|
|
47
|
-
onMouseLeave = props.onMouseLeave,
|
|
48
|
-
orientation = props.orientation,
|
|
49
|
-
simpleAction = props.simpleAction,
|
|
50
|
-
size = props.size,
|
|
51
|
-
theme = props.theme,
|
|
52
|
-
forwardedProps = _objectWithoutProperties(props, ["avatarProps", "className", "fields", "linkProps", "linkAs", "multipleActions", "name", "nameProps", "onClick", "onMouseEnter", "onMouseLeave", "orientation", "simpleAction", "size", "theme"]);
|
|
53
|
-
|
|
54
|
-
var componentSize = size; // Special case - When using vertical orientation force the size to be Sizes.l.
|
|
55
|
-
|
|
56
|
-
if (orientation === Orientation.vertical) {
|
|
57
|
-
componentSize = Size.l;
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
var shouldDisplayActions = orientation === Orientation.vertical;
|
|
61
|
-
var isLink = Boolean((linkProps === null || linkProps === void 0 ? void 0 : linkProps.href) || linkAs);
|
|
62
|
-
var isClickable = !!onClick || isLink;
|
|
63
|
-
var nameBlock = React.useMemo(function () {
|
|
64
|
-
if (isEmpty(name)) {
|
|
65
|
-
return null;
|
|
66
|
-
}
|
|
67
|
-
|
|
68
|
-
var NameComponent = 'span';
|
|
69
|
-
|
|
70
|
-
var nProps = _objectSpread2({}, nameProps, {
|
|
71
|
-
className: classnames("".concat(CLASSNAME, "__name"), linkProps === null || linkProps === void 0 ? void 0 : linkProps.className, nameProps === null || nameProps === void 0 ? void 0 : nameProps.className)
|
|
72
|
-
});
|
|
73
|
-
|
|
74
|
-
if (isClickable) {
|
|
75
|
-
NameComponent = Link;
|
|
76
|
-
Object.assign(nProps, _objectSpread2({}, linkProps, {
|
|
77
|
-
onClick: onClick,
|
|
78
|
-
linkAs: linkAs,
|
|
79
|
-
color: ColorPalette.dark
|
|
80
|
-
}));
|
|
81
|
-
} // Disable avatar focus since the name block is the same link / same button.
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
if (avatarProps) {
|
|
85
|
-
set(avatarProps, ['thumbnailProps', 'tabIndex'], -1);
|
|
86
|
-
}
|
|
87
|
-
|
|
88
|
-
return React.createElement(NameComponent, nProps, name);
|
|
89
|
-
}, [avatarProps, isClickable, linkAs, linkProps, name, nameProps, onClick]);
|
|
90
|
-
var fieldsBlock = fields && componentSize !== Size.s && React.createElement("div", {
|
|
91
|
-
className: "".concat(CLASSNAME, "__fields")
|
|
92
|
-
}, fields.map(function (field, idx) {
|
|
93
|
-
return React.createElement("span", {
|
|
94
|
-
key: idx,
|
|
95
|
-
className: "".concat(CLASSNAME, "__field")
|
|
96
|
-
}, field);
|
|
97
|
-
}));
|
|
98
|
-
return React.createElement("div", _extends({
|
|
99
|
-
ref: ref
|
|
100
|
-
}, forwardedProps, {
|
|
101
|
-
className: classnames(className, handleBasicClasses({
|
|
102
|
-
prefix: CLASSNAME,
|
|
103
|
-
orientation: orientation,
|
|
104
|
-
size: componentSize,
|
|
105
|
-
theme: theme,
|
|
106
|
-
isClickable: isClickable
|
|
107
|
-
})),
|
|
108
|
-
onMouseLeave: onMouseLeave,
|
|
109
|
-
onMouseEnter: onMouseEnter
|
|
110
|
-
}), avatarProps && React.createElement(Avatar, _extends({
|
|
111
|
-
linkAs: linkAs,
|
|
112
|
-
linkProps: linkProps,
|
|
113
|
-
alt: ""
|
|
114
|
-
}, avatarProps, {
|
|
115
|
-
className: classnames("".concat(CLASSNAME, "__avatar"), avatarProps.className),
|
|
116
|
-
size: componentSize,
|
|
117
|
-
onClick: onClick,
|
|
118
|
-
theme: theme
|
|
119
|
-
})), (fields || name) && React.createElement("div", {
|
|
120
|
-
className: "".concat(CLASSNAME, "__wrapper")
|
|
121
|
-
}, nameBlock, fieldsBlock), shouldDisplayActions && simpleAction && React.createElement("div", {
|
|
122
|
-
className: "".concat(CLASSNAME, "__action")
|
|
123
|
-
}, simpleAction), shouldDisplayActions && multipleActions && React.createElement("div", {
|
|
124
|
-
className: "".concat(CLASSNAME, "__actions")
|
|
125
|
-
}, multipleActions));
|
|
126
|
-
});
|
|
127
|
-
UserBlock.displayName = COMPONENT_NAME;
|
|
128
|
-
UserBlock.className = CLASSNAME;
|
|
129
|
-
UserBlock.defaultProps = DEFAULT_PROPS;
|
|
130
|
-
|
|
131
|
-
export { UserBlock as U };
|
|
132
|
-
//# sourceMappingURL=f571cdcd.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"f571cdcd.js","sources":["../../src/components/user-block/UserBlock.tsx"],"sourcesContent":["import React, { forwardRef, ReactNode } from 'react';\nimport isEmpty from 'lodash/isEmpty';\nimport classNames from 'classnames';\nimport set from 'lodash/set';\n\nimport { Avatar, ColorPalette, Link, Orientation, Size, Theme } from '@lumx/react';\nimport { Comp, GenericProps, HasTheme } from '@lumx/react/utils/type';\nimport { getRootClassName, handleBasicClasses } from '@lumx/react/utils/className';\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, HasTheme {\n /** Props to pass to the avatar. */\n avatarProps?: Omit<AvatarProps, 'alt'>;\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 /** 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 // Disable avatar focus since the name block is the same link / same button.\n if (avatarProps) {\n set(avatarProps, ['thumbnailProps', 'tabIndex'], -1);\n }\n return <NameComponent {...nProps}>{name}</NameComponent>;\n }, [avatarProps, 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 alt=\"\"\n {...(avatarProps as any)}\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","set","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;AAEIK,QAAAA,OAAO,EAAPA,OAFJ;AAGIJ,QAAAA,MAAM,EAANA,MAHJ;AAII2B,QAAAA,KAAK,EAAEC,YAAY,CAACC;AAJxB;AAMH,KAjB4C;;;AAmB7C,QAAIjC,WAAJ,EAAiB;AACbkC,MAAAA,GAAG,CAAClC,WAAD,EAAc,CAAC,gBAAD,EAAmB,UAAnB,CAAd,EAA8C,CAAC,CAA/C,CAAH;AACH;;AACD,WAAO,oBAAC,aAAD,EAAmB0B,MAAnB,EAA4BpB,IAA5B,CAAP;AACH,GAvB4B,EAuB1B,CAACN,WAAD,EAAcoB,WAAd,EAA2BhB,MAA3B,EAAmCD,SAAnC,EAA8CG,IAA9C,EAAoDC,SAApD,EAA+DC,OAA/D,CAvB0B,CAA7B;AAyBA,MAAM2B,WAAsB,GAAGjC,MAAM,IAAIW,aAAa,KAAKtB,IAAI,CAAC6C,CAAjC,IAC3B;AAAK,IAAA,SAAS,YAAKpD,SAAL;AAAd,KACKkB,MAAM,CAACmC,GAAP,CAAW,UAACC,KAAD,EAAgBC,GAAhB;AAAA,WACR;AAAM,MAAA,GAAG,EAAEA,GAAX;AAAgB,MAAA,SAAS,YAAKvD,SAAL;AAAzB,OACKsD,KADL,CADQ;AAAA,GAAX,CADL,CADJ;AAUA,SACI;AACI,IAAA,GAAG,EAAEvC;AADT,KAEQa,cAFR;AAGI,IAAA,SAAS,EAAEe,UAAU,CACjB1B,SADiB,EAEjBuC,kBAAkB,CAAC;AAAEC,MAAAA,MAAM,EAAEzD,SAAV;AAAqBG,MAAAA,WAAW,EAAXA,WAArB;AAAkCG,MAAAA,IAAI,EAAEuB,aAAxC;AAAuDpB,MAAAA,KAAK,EAALA,KAAvD;AAA8D2B,MAAAA,WAAW,EAAXA;AAA9D,KAAD,CAFD,CAHzB;AAOI,IAAA,YAAY,EAAEV,YAPlB;AAQI,IAAA,YAAY,EAAED;AARlB,MAUKT,WAAW,IACR,oBAAC,MAAD;AACI,IAAA,MAAM,EAAEI,MADZ;AAEI,IAAA,SAAS,EAAED,SAFf;AAGI,IAAA,GAAG,EAAC;AAHR,KAISH,WAJT;AAKI,IAAA,SAAS,EAAE2B,UAAU,WAAI3C,SAAJ,eAAyBgB,WAAW,CAACC,SAArC,CALzB;AAMI,IAAA,IAAI,EAAEY,aANV;AAOI,IAAA,OAAO,EAAEL,OAPb;AAQI,IAAA,KAAK,EAAEf;AARX,KAXR,EAsBK,CAACS,MAAM,IAAII,IAAX,KACG;AAAK,IAAA,SAAS,YAAKtB,SAAL;AAAd,KACKqC,SADL,EAEKc,WAFL,CAvBR,EA4BKnB,oBAAoB,IAAIL,YAAxB,IAAwC;AAAK,IAAA,SAAS,YAAK3B,SAAL;AAAd,KAAyC2B,YAAzC,CA5B7C,EA6BKK,oBAAoB,IAAIX,eAAxB,IACG;AAAK,IAAA,SAAS,YAAKrB,SAAL;AAAd,KAA0CqB,eAA1C,CA9BR,CADJ;AAmCH,CArGwE;AAsGzET,SAAS,CAAC8C,WAAV,GAAwB3D,cAAxB;AACAa,SAAS,CAACK,SAAV,GAAsBjB,SAAtB;AACAY,SAAS,CAAC+C,YAAV,GAAyBzD,aAAzB;;;;"}
|