@lumx/react 3.0.2-alpha-react-utils.1 → 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.
Files changed (358) hide show
  1. package/_internal/{6340c129.js → ClickAwayProvider.js} +107 -2
  2. package/_internal/ClickAwayProvider.js.map +1 -0
  3. package/_internal/{eca6d4dc.d.ts → types.d.ts} +1 -1
  4. package/index.d.ts +2627 -56
  5. package/index.js +12438 -95
  6. package/index.js.map +1 -1
  7. package/package.json +4 -4
  8. package/utils/index.d.ts +1 -1
  9. package/utils/index.js +1 -4
  10. package/utils/index.js.map +1 -1
  11. package/_internal/0062d1bc.js +0 -220
  12. package/_internal/0062d1bc.js.map +0 -1
  13. package/_internal/03e8323d.d.ts +0 -118
  14. package/_internal/0402f9bc.d.ts +0 -183
  15. package/_internal/0b370acc.js +0 -796
  16. package/_internal/0b370acc.js.map +0 -1
  17. package/_internal/0d154d73.d.ts +0 -67
  18. package/_internal/113e3b40.d.ts +0 -31
  19. package/_internal/12ab39e4.js +0 -58
  20. package/_internal/12ab39e4.js.map +0 -1
  21. package/_internal/13e759f3.js +0 -343
  22. package/_internal/13e759f3.js.map +0 -1
  23. package/_internal/158b46d5.js +0 -151
  24. package/_internal/158b46d5.js.map +0 -1
  25. package/_internal/17b74e16.d.ts +0 -31
  26. package/_internal/1b1530a4.d.ts +0 -43
  27. package/_internal/20976405.js +0 -87
  28. package/_internal/20976405.js.map +0 -1
  29. package/_internal/20b0e9a5.d.ts +0 -77
  30. package/_internal/26cd9c63.js +0 -118
  31. package/_internal/26cd9c63.js.map +0 -1
  32. package/_internal/27f21164.js +0 -79
  33. package/_internal/27f21164.js.map +0 -1
  34. package/_internal/288dfd0f.js +0 -13
  35. package/_internal/288dfd0f.js.map +0 -1
  36. package/_internal/28aaf23a.d.ts +0 -41
  37. package/_internal/2c829c0b.d.ts +0 -57
  38. package/_internal/2cc0aec5.js +0 -86
  39. package/_internal/2cc0aec5.js.map +0 -1
  40. package/_internal/2d0a5b28.js +0 -23
  41. package/_internal/2d0a5b28.js.map +0 -1
  42. package/_internal/2d4b5a5e.d.ts +0 -92
  43. package/_internal/2d770113.d.ts +0 -38
  44. package/_internal/2fe97f00.js +0 -291
  45. package/_internal/2fe97f00.js.map +0 -1
  46. package/_internal/31c16fa0.d.ts +0 -37
  47. package/_internal/329a01d3.js +0 -25
  48. package/_internal/329a01d3.js.map +0 -1
  49. package/_internal/3326e990.js +0 -168
  50. package/_internal/3326e990.js.map +0 -1
  51. package/_internal/377b2f44.js +0 -70
  52. package/_internal/377b2f44.js.map +0 -1
  53. package/_internal/3b8d2a6e.js +0 -124
  54. package/_internal/3b8d2a6e.js.map +0 -1
  55. package/_internal/3bd3186e.d.ts +0 -57
  56. package/_internal/48e40868.js +0 -101
  57. package/_internal/48e40868.js.map +0 -1
  58. package/_internal/490ec1da.js +0 -322
  59. package/_internal/490ec1da.js.map +0 -1
  60. package/_internal/49127d69.d.ts +0 -52
  61. package/_internal/4dcd87cb.js +0 -78
  62. package/_internal/4dcd87cb.js.map +0 -1
  63. package/_internal/4f44d848.js +0 -157
  64. package/_internal/4f44d848.js.map +0 -1
  65. package/_internal/4fc64a2e.js +0 -27
  66. package/_internal/4fc64a2e.js.map +0 -1
  67. package/_internal/53a831be.js +0 -108
  68. package/_internal/53a831be.js.map +0 -1
  69. package/_internal/55271fa1.d.ts +0 -34
  70. package/_internal/55d30377.d.ts +0 -22
  71. package/_internal/56385b04.js +0 -116
  72. package/_internal/56385b04.js.map +0 -1
  73. package/_internal/599e250a.d.ts +0 -88
  74. package/_internal/5a054691.d.ts +0 -33
  75. package/_internal/5a127b58.js +0 -82
  76. package/_internal/5a127b58.js.map +0 -1
  77. package/_internal/5a1c0db4.js +0 -156
  78. package/_internal/5a1c0db4.js.map +0 -1
  79. package/_internal/5babcc39.js +0 -147
  80. package/_internal/5babcc39.js.map +0 -1
  81. package/_internal/5c1bf4d4.d.ts +0 -81
  82. package/_internal/5d8ed4ee.js +0 -113
  83. package/_internal/5d8ed4ee.js.map +0 -1
  84. package/_internal/616f2912.js +0 -301
  85. package/_internal/616f2912.js.map +0 -1
  86. package/_internal/61f915de.d.ts +0 -49
  87. package/_internal/620081fa.js +0 -122
  88. package/_internal/620081fa.js.map +0 -1
  89. package/_internal/6340c129.js.map +0 -1
  90. package/_internal/6581c863.d.ts +0 -34
  91. package/_internal/66de4d45.d.ts +0 -32
  92. package/_internal/6735c5c8.d.ts +0 -62
  93. package/_internal/69dd1472.js +0 -112
  94. package/_internal/69dd1472.js.map +0 -1
  95. package/_internal/6a0e1c77.js +0 -327
  96. package/_internal/6a0e1c77.js.map +0 -1
  97. package/_internal/701c20b0.d.ts +0 -24
  98. package/_internal/7391188a.js +0 -81
  99. package/_internal/7391188a.js.map +0 -1
  100. package/_internal/74cb6c26.js +0 -136
  101. package/_internal/74cb6c26.js.map +0 -1
  102. package/_internal/761031bf.js +0 -314
  103. package/_internal/761031bf.js.map +0 -1
  104. package/_internal/76fed69d.js +0 -50
  105. package/_internal/76fed69d.js.map +0 -1
  106. package/_internal/78ef8e34.js +0 -40
  107. package/_internal/78ef8e34.js.map +0 -1
  108. package/_internal/7b906e16.d.ts +0 -17
  109. package/_internal/7be11ddc.d.ts +0 -35
  110. package/_internal/7d39705e.d.ts +0 -20
  111. package/_internal/7e03266f.js +0 -47
  112. package/_internal/7e03266f.js.map +0 -1
  113. package/_internal/7e8d0ac5.js +0 -84
  114. package/_internal/7e8d0ac5.js.map +0 -1
  115. package/_internal/7ffa45f6.js +0 -48
  116. package/_internal/7ffa45f6.js.map +0 -1
  117. package/_internal/84c1ec44.js +0 -257
  118. package/_internal/84c1ec44.js.map +0 -1
  119. package/_internal/8518279f.js +0 -96
  120. package/_internal/8518279f.js.map +0 -1
  121. package/_internal/853713cd.js +0 -25
  122. package/_internal/853713cd.js.map +0 -1
  123. package/_internal/86566d75.d.ts +0 -27
  124. package/_internal/86d22dde.d.ts +0 -57
  125. package/_internal/8e755ded.d.ts +0 -101
  126. package/_internal/901471f5.d.ts +0 -37
  127. package/_internal/935ce959.d.ts +0 -49
  128. package/_internal/97089888.d.ts +0 -16
  129. package/_internal/97cc728c.d.ts +0 -26
  130. package/_internal/9ab3c637.js +0 -2474
  131. package/_internal/9ab3c637.js.map +0 -1
  132. package/_internal/9ca3f59c.js +0 -60
  133. package/_internal/9ca3f59c.js.map +0 -1
  134. package/_internal/9e95ea38.d.ts +0 -43
  135. package/_internal/a0108f92.js +0 -84
  136. package/_internal/a0108f92.js.map +0 -1
  137. package/_internal/a493a193.d.ts +0 -65
  138. package/_internal/a521723d.js +0 -120
  139. package/_internal/a521723d.js.map +0 -1
  140. package/_internal/a6fad025.d.ts +0 -107
  141. package/_internal/a8fa525f.js +0 -124
  142. package/_internal/a8fa525f.js.map +0 -1
  143. package/_internal/aca2ecf5.js +0 -141
  144. package/_internal/aca2ecf5.js.map +0 -1
  145. package/_internal/aef2ef1c.js +0 -53
  146. package/_internal/aef2ef1c.js.map +0 -1
  147. package/_internal/af048b0c.js +0 -89
  148. package/_internal/af048b0c.js.map +0 -1
  149. package/_internal/af2cd0cd.d.ts +0 -17
  150. package/_internal/afec6b62.js +0 -864
  151. package/_internal/afec6b62.js.map +0 -1
  152. package/_internal/b0eb3a30.js +0 -72
  153. package/_internal/b0eb3a30.js.map +0 -1
  154. package/_internal/b89517ea.js +0 -275
  155. package/_internal/b89517ea.js.map +0 -1
  156. package/_internal/bafa6fcc.js +0 -116
  157. package/_internal/bafa6fcc.js.map +0 -1
  158. package/_internal/bbbeb49e.js +0 -47
  159. package/_internal/bbbeb49e.js.map +0 -1
  160. package/_internal/c11f6162.d.ts +0 -52
  161. package/_internal/c723dab4.js +0 -133
  162. package/_internal/c723dab4.js.map +0 -1
  163. package/_internal/c87cc857.d.ts +0 -42
  164. package/_internal/c97f8d04.js +0 -424
  165. package/_internal/c97f8d04.js.map +0 -1
  166. package/_internal/cbb373ea.d.ts +0 -6
  167. package/_internal/cbef23b6.d.ts +0 -104
  168. package/_internal/cdf77f06.d.ts +0 -88
  169. package/_internal/d350f2ff.js +0 -105
  170. package/_internal/d350f2ff.js.map +0 -1
  171. package/_internal/d71a8cf7.js +0 -54
  172. package/_internal/d71a8cf7.js.map +0 -1
  173. package/_internal/d9337952.js +0 -96
  174. package/_internal/d9337952.js.map +0 -1
  175. package/_internal/def14e1a.d.ts +0 -24
  176. package/_internal/e0cd29c7.d.ts +0 -35
  177. package/_internal/e354228f.js +0 -145
  178. package/_internal/e354228f.js.map +0 -1
  179. package/_internal/e3922a05.d.ts +0 -22
  180. package/_internal/e3cb6177.d.ts +0 -75
  181. package/_internal/e810c841.d.ts +0 -182
  182. package/_internal/ea700b01.d.ts +0 -43
  183. package/_internal/eed07003.js +0 -122
  184. package/_internal/eed07003.js.map +0 -1
  185. package/_internal/f1c9b334.d.ts +0 -22
  186. package/_internal/f3c3a674.js +0 -281
  187. package/_internal/f3c3a674.js.map +0 -1
  188. package/_internal/f571cdcd.js +0 -132
  189. package/_internal/f571cdcd.js.map +0 -1
  190. package/_internal/f5bdff7e.js +0 -282
  191. package/_internal/f5bdff7e.js.map +0 -1
  192. package/_internal/f851fc00.d.ts +0 -34
  193. package/_internal/f859b007.d.ts +0 -49
  194. package/_internal/fb384b79.d.ts +0 -38
  195. package/_internal/fc4c034b.js +0 -63
  196. package/_internal/fc4c034b.js.map +0 -1
  197. package/_internal/fc608bd9.js +0 -16
  198. package/_internal/fc608bd9.js.map +0 -1
  199. package/_internal/fd1f4d68.d.ts +0 -36
  200. package/_internal/fd867c9d.js +0 -346
  201. package/_internal/fd867c9d.js.map +0 -1
  202. package/_internal/ff8081e5.js +0 -57
  203. package/_internal/ff8081e5.js.map +0 -1
  204. package/_internal/ffd1bfe3.js +0 -123
  205. package/_internal/ffd1bfe3.js.map +0 -1
  206. package/components/alert-dialog.d.ts +0 -6
  207. package/components/alert-dialog.js +0 -35
  208. package/components/alert-dialog.js.map +0 -1
  209. package/components/autocomplete.d.ts +0 -8
  210. package/components/autocomplete.js +0 -33
  211. package/components/autocomplete.js.map +0 -1
  212. package/components/avatar.d.ts +0 -4
  213. package/components/avatar.js +0 -13
  214. package/components/avatar.js.map +0 -1
  215. package/components/badge.d.ts +0 -3
  216. package/components/badge.js +0 -10
  217. package/components/badge.js.map +0 -1
  218. package/components/button.d.ts +0 -8
  219. package/components/button.js +0 -26
  220. package/components/button.js.map +0 -1
  221. package/components/checkbox.d.ts +0 -3
  222. package/components/checkbox.js +0 -14
  223. package/components/checkbox.js.map +0 -1
  224. package/components/chip.d.ts +0 -3
  225. package/components/chip.js +0 -12
  226. package/components/chip.js.map +0 -1
  227. package/components/comment-block.d.ts +0 -5
  228. package/components/comment-block.js +0 -25
  229. package/components/comment-block.js.map +0 -1
  230. package/components/date-picker.d.ts +0 -7
  231. package/components/date-picker.js +0 -33
  232. package/components/date-picker.js.map +0 -1
  233. package/components/dialog.d.ts +0 -3
  234. package/components/dialog.js +0 -28
  235. package/components/dialog.js.map +0 -1
  236. package/components/divider.d.ts +0 -3
  237. package/components/divider.js +0 -10
  238. package/components/divider.js.map +0 -1
  239. package/components/drag-handle.d.ts +0 -3
  240. package/components/drag-handle.js +0 -11
  241. package/components/drag-handle.js.map +0 -1
  242. package/components/dropdown.d.ts +0 -4
  243. package/components/dropdown.js +0 -22
  244. package/components/dropdown.js.map +0 -1
  245. package/components/expansion-panel.d.ts +0 -7
  246. package/components/expansion-panel.js +0 -33
  247. package/components/expansion-panel.js.map +0 -1
  248. package/components/flag.d.ts +0 -3
  249. package/components/flag.js +0 -11
  250. package/components/flag.js.map +0 -1
  251. package/components/flex-box.d.ts +0 -3
  252. package/components/flex-box.js +0 -11
  253. package/components/flex-box.js.map +0 -1
  254. package/components/generic-block.d.ts +0 -4
  255. package/components/generic-block.js +0 -20
  256. package/components/generic-block.js.map +0 -1
  257. package/components/grid.d.ts +0 -3
  258. package/components/grid.js +0 -10
  259. package/components/grid.js.map +0 -1
  260. package/components/heading.d.ts +0 -4
  261. package/components/heading.js +0 -11
  262. package/components/heading.js.map +0 -1
  263. package/components/icon.d.ts +0 -3
  264. package/components/icon.js +0 -10
  265. package/components/icon.js.map +0 -1
  266. package/components/image-block.d.ts +0 -4
  267. package/components/image-block.js +0 -14
  268. package/components/image-block.js.map +0 -1
  269. package/components/input-helper.d.ts +0 -3
  270. package/components/input-helper.js +0 -10
  271. package/components/input-helper.js.map +0 -1
  272. package/components/input-label.d.ts +0 -3
  273. package/components/input-label.js +0 -10
  274. package/components/input-label.js.map +0 -1
  275. package/components/lightbox.d.ts +0 -7
  276. package/components/lightbox.js +0 -28
  277. package/components/lightbox.js.map +0 -1
  278. package/components/link-preview.d.ts +0 -5
  279. package/components/link-preview.js +0 -15
  280. package/components/link-preview.js.map +0 -1
  281. package/components/link.d.ts +0 -3
  282. package/components/link.js +0 -12
  283. package/components/link.js.map +0 -1
  284. package/components/list.d.ts +0 -3
  285. package/components/list.js +0 -15
  286. package/components/list.js.map +0 -1
  287. package/components/message.d.ts +0 -3
  288. package/components/message.js +0 -11
  289. package/components/message.js.map +0 -1
  290. package/components/mosaic.d.ts +0 -4
  291. package/components/mosaic.js +0 -14
  292. package/components/mosaic.js.map +0 -1
  293. package/components/notification.d.ts +0 -3
  294. package/components/notification.js +0 -18
  295. package/components/notification.js.map +0 -1
  296. package/components/popover.d.ts +0 -3
  297. package/components/popover.js +0 -16
  298. package/components/popover.js.map +0 -1
  299. package/components/post-block.d.ts +0 -4
  300. package/components/post-block.js +0 -15
  301. package/components/post-block.js.map +0 -1
  302. package/components/progress-tracker.d.ts +0 -3
  303. package/components/progress-tracker.js +0 -17
  304. package/components/progress-tracker.js.map +0 -1
  305. package/components/progress.d.ts +0 -3
  306. package/components/progress.js +0 -10
  307. package/components/progress.js.map +0 -1
  308. package/components/radio-button.d.ts +0 -3
  309. package/components/radio-button.js +0 -13
  310. package/components/radio-button.js.map +0 -1
  311. package/components/select.d.ts +0 -7
  312. package/components/select.js +0 -32
  313. package/components/select.js.map +0 -1
  314. package/components/side-navigation.d.ts +0 -7
  315. package/components/side-navigation.js +0 -26
  316. package/components/side-navigation.js.map +0 -1
  317. package/components/skeleton.d.ts +0 -3
  318. package/components/skeleton.js +0 -10
  319. package/components/skeleton.js.map +0 -1
  320. package/components/slider.d.ts +0 -3
  321. package/components/slider.js +0 -13
  322. package/components/slider.js.map +0 -1
  323. package/components/slideshow.d.ts +0 -7
  324. package/components/slideshow.js +0 -30
  325. package/components/slideshow.js.map +0 -1
  326. package/components/switch.d.ts +0 -3
  327. package/components/switch.js +0 -13
  328. package/components/switch.js.map +0 -1
  329. package/components/table.d.ts +0 -3
  330. package/components/table.js +0 -12
  331. package/components/table.js.map +0 -1
  332. package/components/tabs.d.ts +0 -4
  333. package/components/tabs.js +0 -15
  334. package/components/tabs.js.map +0 -1
  335. package/components/text-field.d.ts +0 -7
  336. package/components/text-field.js +0 -27
  337. package/components/text-field.js.map +0 -1
  338. package/components/text.d.ts +0 -3
  339. package/components/text.js +0 -10
  340. package/components/text.js.map +0 -1
  341. package/components/thumbnail.d.ts +0 -4
  342. package/components/thumbnail.js +0 -13
  343. package/components/thumbnail.js.map +0 -1
  344. package/components/toolbar.d.ts +0 -3
  345. package/components/toolbar.js +0 -9
  346. package/components/toolbar.js.map +0 -1
  347. package/components/tooltip.d.ts +0 -4
  348. package/components/tooltip.js +0 -19
  349. package/components/tooltip.js.map +0 -1
  350. package/components/uploader.d.ts +0 -3
  351. package/components/uploader.js +0 -11
  352. package/components/uploader.js.map +0 -1
  353. package/components/user-block.d.ts +0 -5
  354. package/components/user-block.js +0 -17
  355. package/components/user-block.js.map +0 -1
  356. package/components.d.ts +0 -2
  357. package/components.js +0 -156
  358. package/components.js.map +0 -1
@@ -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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"}
@@ -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":"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"}