@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.
Files changed (357) 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 -56
  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 -1
  10. package/_internal/0062d1bc.js +0 -220
  11. package/_internal/0062d1bc.js.map +0 -1
  12. package/_internal/03e8323d.d.ts +0 -118
  13. package/_internal/0402f9bc.d.ts +0 -183
  14. package/_internal/0b370acc.js +0 -796
  15. package/_internal/0b370acc.js.map +0 -1
  16. package/_internal/0d154d73.d.ts +0 -67
  17. package/_internal/113e3b40.d.ts +0 -31
  18. package/_internal/12ab39e4.js +0 -58
  19. package/_internal/12ab39e4.js.map +0 -1
  20. package/_internal/13e759f3.js +0 -343
  21. package/_internal/13e759f3.js.map +0 -1
  22. package/_internal/158b46d5.js +0 -151
  23. package/_internal/158b46d5.js.map +0 -1
  24. package/_internal/17b74e16.d.ts +0 -31
  25. package/_internal/1b1530a4.d.ts +0 -43
  26. package/_internal/20976405.js +0 -87
  27. package/_internal/20976405.js.map +0 -1
  28. package/_internal/20b0e9a5.d.ts +0 -77
  29. package/_internal/26cd9c63.js +0 -118
  30. package/_internal/26cd9c63.js.map +0 -1
  31. package/_internal/27f21164.js +0 -79
  32. package/_internal/27f21164.js.map +0 -1
  33. package/_internal/288dfd0f.js +0 -13
  34. package/_internal/288dfd0f.js.map +0 -1
  35. package/_internal/28aaf23a.d.ts +0 -41
  36. package/_internal/2c829c0b.d.ts +0 -57
  37. package/_internal/2cc0aec5.js +0 -86
  38. package/_internal/2cc0aec5.js.map +0 -1
  39. package/_internal/2d0a5b28.js +0 -23
  40. package/_internal/2d0a5b28.js.map +0 -1
  41. package/_internal/2d4b5a5e.d.ts +0 -92
  42. package/_internal/2d770113.d.ts +0 -38
  43. package/_internal/2fe97f00.js +0 -291
  44. package/_internal/2fe97f00.js.map +0 -1
  45. package/_internal/31c16fa0.d.ts +0 -37
  46. package/_internal/329a01d3.js +0 -25
  47. package/_internal/329a01d3.js.map +0 -1
  48. package/_internal/3326e990.js +0 -168
  49. package/_internal/3326e990.js.map +0 -1
  50. package/_internal/377b2f44.js +0 -70
  51. package/_internal/377b2f44.js.map +0 -1
  52. package/_internal/3b8d2a6e.js +0 -124
  53. package/_internal/3b8d2a6e.js.map +0 -1
  54. package/_internal/3bd3186e.d.ts +0 -57
  55. package/_internal/48e40868.js +0 -101
  56. package/_internal/48e40868.js.map +0 -1
  57. package/_internal/490ec1da.js +0 -322
  58. package/_internal/490ec1da.js.map +0 -1
  59. package/_internal/49127d69.d.ts +0 -52
  60. package/_internal/4dcd87cb.js +0 -78
  61. package/_internal/4dcd87cb.js.map +0 -1
  62. package/_internal/4f44d848.js +0 -157
  63. package/_internal/4f44d848.js.map +0 -1
  64. package/_internal/4fc64a2e.js +0 -27
  65. package/_internal/4fc64a2e.js.map +0 -1
  66. package/_internal/53a831be.js +0 -108
  67. package/_internal/53a831be.js.map +0 -1
  68. package/_internal/55271fa1.d.ts +0 -34
  69. package/_internal/55d30377.d.ts +0 -22
  70. package/_internal/56385b04.js +0 -116
  71. package/_internal/56385b04.js.map +0 -1
  72. package/_internal/599e250a.d.ts +0 -88
  73. package/_internal/5a054691.d.ts +0 -33
  74. package/_internal/5a127b58.js +0 -82
  75. package/_internal/5a127b58.js.map +0 -1
  76. package/_internal/5a1c0db4.js +0 -156
  77. package/_internal/5a1c0db4.js.map +0 -1
  78. package/_internal/5babcc39.js +0 -147
  79. package/_internal/5babcc39.js.map +0 -1
  80. package/_internal/5c1bf4d4.d.ts +0 -81
  81. package/_internal/5d8ed4ee.js +0 -113
  82. package/_internal/5d8ed4ee.js.map +0 -1
  83. package/_internal/616f2912.js +0 -301
  84. package/_internal/616f2912.js.map +0 -1
  85. package/_internal/61f915de.d.ts +0 -49
  86. package/_internal/620081fa.js +0 -122
  87. package/_internal/620081fa.js.map +0 -1
  88. package/_internal/6340c129.js.map +0 -1
  89. package/_internal/6581c863.d.ts +0 -34
  90. package/_internal/66de4d45.d.ts +0 -32
  91. package/_internal/6735c5c8.d.ts +0 -62
  92. package/_internal/69dd1472.js +0 -112
  93. package/_internal/69dd1472.js.map +0 -1
  94. package/_internal/6a0e1c77.js +0 -327
  95. package/_internal/6a0e1c77.js.map +0 -1
  96. package/_internal/701c20b0.d.ts +0 -24
  97. package/_internal/7391188a.js +0 -81
  98. package/_internal/7391188a.js.map +0 -1
  99. package/_internal/74cb6c26.js +0 -136
  100. package/_internal/74cb6c26.js.map +0 -1
  101. package/_internal/761031bf.js +0 -314
  102. package/_internal/761031bf.js.map +0 -1
  103. package/_internal/76fed69d.js +0 -50
  104. package/_internal/76fed69d.js.map +0 -1
  105. package/_internal/78ef8e34.js +0 -40
  106. package/_internal/78ef8e34.js.map +0 -1
  107. package/_internal/7b906e16.d.ts +0 -17
  108. package/_internal/7be11ddc.d.ts +0 -35
  109. package/_internal/7d39705e.d.ts +0 -20
  110. package/_internal/7e03266f.js +0 -47
  111. package/_internal/7e03266f.js.map +0 -1
  112. package/_internal/7e8d0ac5.js +0 -84
  113. package/_internal/7e8d0ac5.js.map +0 -1
  114. package/_internal/7ffa45f6.js +0 -48
  115. package/_internal/7ffa45f6.js.map +0 -1
  116. package/_internal/84c1ec44.js +0 -257
  117. package/_internal/84c1ec44.js.map +0 -1
  118. package/_internal/8518279f.js +0 -96
  119. package/_internal/8518279f.js.map +0 -1
  120. package/_internal/853713cd.js +0 -25
  121. package/_internal/853713cd.js.map +0 -1
  122. package/_internal/86566d75.d.ts +0 -27
  123. package/_internal/86d22dde.d.ts +0 -57
  124. package/_internal/8e755ded.d.ts +0 -101
  125. package/_internal/901471f5.d.ts +0 -37
  126. package/_internal/935ce959.d.ts +0 -49
  127. package/_internal/97089888.d.ts +0 -16
  128. package/_internal/97cc728c.d.ts +0 -26
  129. package/_internal/9ab3c637.js +0 -2474
  130. package/_internal/9ab3c637.js.map +0 -1
  131. package/_internal/9ca3f59c.js +0 -60
  132. package/_internal/9ca3f59c.js.map +0 -1
  133. package/_internal/9e95ea38.d.ts +0 -43
  134. package/_internal/a0108f92.js +0 -84
  135. package/_internal/a0108f92.js.map +0 -1
  136. package/_internal/a493a193.d.ts +0 -65
  137. package/_internal/a521723d.js +0 -120
  138. package/_internal/a521723d.js.map +0 -1
  139. package/_internal/a6fad025.d.ts +0 -107
  140. package/_internal/a8fa525f.js +0 -124
  141. package/_internal/a8fa525f.js.map +0 -1
  142. package/_internal/aca2ecf5.js +0 -141
  143. package/_internal/aca2ecf5.js.map +0 -1
  144. package/_internal/aef2ef1c.js +0 -53
  145. package/_internal/aef2ef1c.js.map +0 -1
  146. package/_internal/af048b0c.js +0 -89
  147. package/_internal/af048b0c.js.map +0 -1
  148. package/_internal/af2cd0cd.d.ts +0 -17
  149. package/_internal/afec6b62.js +0 -864
  150. package/_internal/afec6b62.js.map +0 -1
  151. package/_internal/b0eb3a30.js +0 -72
  152. package/_internal/b0eb3a30.js.map +0 -1
  153. package/_internal/b89517ea.js +0 -275
  154. package/_internal/b89517ea.js.map +0 -1
  155. package/_internal/bafa6fcc.js +0 -116
  156. package/_internal/bafa6fcc.js.map +0 -1
  157. package/_internal/bbbeb49e.js +0 -47
  158. package/_internal/bbbeb49e.js.map +0 -1
  159. package/_internal/c11f6162.d.ts +0 -52
  160. package/_internal/c723dab4.js +0 -133
  161. package/_internal/c723dab4.js.map +0 -1
  162. package/_internal/c87cc857.d.ts +0 -42
  163. package/_internal/c97f8d04.js +0 -424
  164. package/_internal/c97f8d04.js.map +0 -1
  165. package/_internal/cbb373ea.d.ts +0 -6
  166. package/_internal/cbef23b6.d.ts +0 -104
  167. package/_internal/cdf77f06.d.ts +0 -88
  168. package/_internal/d350f2ff.js +0 -105
  169. package/_internal/d350f2ff.js.map +0 -1
  170. package/_internal/d71a8cf7.js +0 -54
  171. package/_internal/d71a8cf7.js.map +0 -1
  172. package/_internal/d9337952.js +0 -96
  173. package/_internal/d9337952.js.map +0 -1
  174. package/_internal/def14e1a.d.ts +0 -24
  175. package/_internal/e0cd29c7.d.ts +0 -35
  176. package/_internal/e354228f.js +0 -145
  177. package/_internal/e354228f.js.map +0 -1
  178. package/_internal/e3922a05.d.ts +0 -22
  179. package/_internal/e3cb6177.d.ts +0 -75
  180. package/_internal/e810c841.d.ts +0 -182
  181. package/_internal/ea700b01.d.ts +0 -43
  182. package/_internal/eed07003.js +0 -122
  183. package/_internal/eed07003.js.map +0 -1
  184. package/_internal/f1c9b334.d.ts +0 -22
  185. package/_internal/f3c3a674.js +0 -281
  186. package/_internal/f3c3a674.js.map +0 -1
  187. package/_internal/f571cdcd.js +0 -132
  188. package/_internal/f571cdcd.js.map +0 -1
  189. package/_internal/f5bdff7e.js +0 -282
  190. package/_internal/f5bdff7e.js.map +0 -1
  191. package/_internal/f851fc00.d.ts +0 -34
  192. package/_internal/f859b007.d.ts +0 -49
  193. package/_internal/fb384b79.d.ts +0 -38
  194. package/_internal/fc4c034b.js +0 -63
  195. package/_internal/fc4c034b.js.map +0 -1
  196. package/_internal/fc608bd9.js +0 -16
  197. package/_internal/fc608bd9.js.map +0 -1
  198. package/_internal/fd1f4d68.d.ts +0 -36
  199. package/_internal/fd867c9d.js +0 -346
  200. package/_internal/fd867c9d.js.map +0 -1
  201. package/_internal/ff8081e5.js +0 -57
  202. package/_internal/ff8081e5.js.map +0 -1
  203. package/_internal/ffd1bfe3.js +0 -123
  204. package/_internal/ffd1bfe3.js.map +0 -1
  205. package/components/alert-dialog.d.ts +0 -6
  206. package/components/alert-dialog.js +0 -2
  207. package/components/alert-dialog.js.map +0 -1
  208. package/components/autocomplete.d.ts +0 -8
  209. package/components/autocomplete.js +0 -2
  210. package/components/autocomplete.js.map +0 -1
  211. package/components/avatar.d.ts +0 -4
  212. package/components/avatar.js +0 -2
  213. package/components/avatar.js.map +0 -1
  214. package/components/badge.d.ts +0 -3
  215. package/components/badge.js +0 -2
  216. package/components/badge.js.map +0 -1
  217. package/components/button.d.ts +0 -8
  218. package/components/button.js +0 -4
  219. package/components/button.js.map +0 -1
  220. package/components/checkbox.d.ts +0 -3
  221. package/components/checkbox.js +0 -2
  222. package/components/checkbox.js.map +0 -1
  223. package/components/chip.d.ts +0 -3
  224. package/components/chip.js +0 -3
  225. package/components/chip.js.map +0 -1
  226. package/components/comment-block.d.ts +0 -5
  227. package/components/comment-block.js +0 -2
  228. package/components/comment-block.js.map +0 -1
  229. package/components/date-picker.d.ts +0 -7
  230. package/components/date-picker.js +0 -2
  231. package/components/date-picker.js.map +0 -1
  232. package/components/dialog.d.ts +0 -3
  233. package/components/dialog.js +0 -2
  234. package/components/dialog.js.map +0 -1
  235. package/components/divider.d.ts +0 -3
  236. package/components/divider.js +0 -2
  237. package/components/divider.js.map +0 -1
  238. package/components/drag-handle.d.ts +0 -3
  239. package/components/drag-handle.js +0 -2
  240. package/components/drag-handle.js.map +0 -1
  241. package/components/dropdown.d.ts +0 -4
  242. package/components/dropdown.js +0 -2
  243. package/components/dropdown.js.map +0 -1
  244. package/components/expansion-panel.d.ts +0 -7
  245. package/components/expansion-panel.js +0 -2
  246. package/components/expansion-panel.js.map +0 -1
  247. package/components/flag.d.ts +0 -3
  248. package/components/flag.js +0 -2
  249. package/components/flag.js.map +0 -1
  250. package/components/flex-box.d.ts +0 -3
  251. package/components/flex-box.js +0 -2
  252. package/components/flex-box.js.map +0 -1
  253. package/components/generic-block.d.ts +0 -4
  254. package/components/generic-block.js +0 -2
  255. package/components/generic-block.js.map +0 -1
  256. package/components/grid.d.ts +0 -3
  257. package/components/grid.js +0 -2
  258. package/components/grid.js.map +0 -1
  259. package/components/heading.d.ts +0 -4
  260. package/components/heading.js +0 -2
  261. package/components/heading.js.map +0 -1
  262. package/components/icon.d.ts +0 -3
  263. package/components/icon.js +0 -2
  264. package/components/icon.js.map +0 -1
  265. package/components/image-block.d.ts +0 -4
  266. package/components/image-block.js +0 -2
  267. package/components/image-block.js.map +0 -1
  268. package/components/input-helper.d.ts +0 -3
  269. package/components/input-helper.js +0 -2
  270. package/components/input-helper.js.map +0 -1
  271. package/components/input-label.d.ts +0 -3
  272. package/components/input-label.js +0 -2
  273. package/components/input-label.js.map +0 -1
  274. package/components/lightbox.d.ts +0 -7
  275. package/components/lightbox.js +0 -2
  276. package/components/lightbox.js.map +0 -1
  277. package/components/link-preview.d.ts +0 -5
  278. package/components/link-preview.js +0 -2
  279. package/components/link-preview.js.map +0 -1
  280. package/components/link.d.ts +0 -3
  281. package/components/link.js +0 -2
  282. package/components/link.js.map +0 -1
  283. package/components/list.d.ts +0 -3
  284. package/components/list.js +0 -3
  285. package/components/list.js.map +0 -1
  286. package/components/message.d.ts +0 -3
  287. package/components/message.js +0 -2
  288. package/components/message.js.map +0 -1
  289. package/components/mosaic.d.ts +0 -4
  290. package/components/mosaic.js +0 -2
  291. package/components/mosaic.js.map +0 -1
  292. package/components/notification.d.ts +0 -3
  293. package/components/notification.js +0 -2
  294. package/components/notification.js.map +0 -1
  295. package/components/popover.d.ts +0 -3
  296. package/components/popover.js +0 -2
  297. package/components/popover.js.map +0 -1
  298. package/components/post-block.d.ts +0 -4
  299. package/components/post-block.js +0 -2
  300. package/components/post-block.js.map +0 -1
  301. package/components/progress-tracker.d.ts +0 -3
  302. package/components/progress-tracker.js +0 -2
  303. package/components/progress-tracker.js.map +0 -1
  304. package/components/progress.d.ts +0 -3
  305. package/components/progress.js +0 -2
  306. package/components/progress.js.map +0 -1
  307. package/components/radio-button.d.ts +0 -3
  308. package/components/radio-button.js +0 -2
  309. package/components/radio-button.js.map +0 -1
  310. package/components/select.d.ts +0 -7
  311. package/components/select.js +0 -2
  312. package/components/select.js.map +0 -1
  313. package/components/side-navigation.d.ts +0 -7
  314. package/components/side-navigation.js +0 -2
  315. package/components/side-navigation.js.map +0 -1
  316. package/components/skeleton.d.ts +0 -3
  317. package/components/skeleton.js +0 -2
  318. package/components/skeleton.js.map +0 -1
  319. package/components/slider.d.ts +0 -3
  320. package/components/slider.js +0 -2
  321. package/components/slider.js.map +0 -1
  322. package/components/slideshow.d.ts +0 -7
  323. package/components/slideshow.js +0 -2
  324. package/components/slideshow.js.map +0 -1
  325. package/components/switch.d.ts +0 -3
  326. package/components/switch.js +0 -2
  327. package/components/switch.js.map +0 -1
  328. package/components/table.d.ts +0 -3
  329. package/components/table.js +0 -2
  330. package/components/table.js.map +0 -1
  331. package/components/tabs.d.ts +0 -4
  332. package/components/tabs.js +0 -2
  333. package/components/tabs.js.map +0 -1
  334. package/components/text-field.d.ts +0 -7
  335. package/components/text-field.js +0 -2
  336. package/components/text-field.js.map +0 -1
  337. package/components/text.d.ts +0 -3
  338. package/components/text.js +0 -2
  339. package/components/text.js.map +0 -1
  340. package/components/thumbnail.d.ts +0 -4
  341. package/components/thumbnail.js +0 -3
  342. package/components/thumbnail.js.map +0 -1
  343. package/components/toolbar.d.ts +0 -3
  344. package/components/toolbar.js +0 -2
  345. package/components/toolbar.js.map +0 -1
  346. package/components/tooltip.d.ts +0 -4
  347. package/components/tooltip.js +0 -2
  348. package/components/tooltip.js.map +0 -1
  349. package/components/uploader.d.ts +0 -3
  350. package/components/uploader.js +0 -2
  351. package/components/uploader.js.map +0 -1
  352. package/components/user-block.d.ts +0 -5
  353. package/components/user-block.js +0 -2
  354. package/components/user-block.js.map +0 -1
  355. package/components.d.ts +0 -2
  356. package/components.js +0 -156
  357. package/components.js.map +0 -1
@@ -1,282 +0,0 @@
1
- import { _ as _objectSpread2, c as _extends, d as _slicedToArray, b as _objectWithoutProperties } from './6340c129.js';
2
- import React, { useMemo, cloneElement, useState, useEffect, forwardRef } from 'react';
3
- import { f as onEscapePressed, T as TOOLTIP_LONG_PRESS_DELAY, i as TOOLTIP_HOVER_DELAY, g as getRootClassName, c as classnames, h as handleBasicClasses } from './fd867c9d.js';
4
- import { u as uid } from './fc608bd9.js';
5
- import { D as DOCUMENT } from './288dfd0f.js';
6
- import { c as usePopper, P as Placement } from './9ab3c637.js';
7
- import { m as mergeRefs } from './853713cd.js';
8
- import { createPortal } from 'react-dom';
9
- import get from 'lodash/get';
10
-
11
- /**
12
- * Add ref and ARIA attribute(s) in tooltip children or wrapped children.
13
- * Button, IconButton, Icon and React HTML elements don't need to be wrapped but any other kind of children (array, fragment, custom components)
14
- * will be wrapped in a <span>.
15
- *
16
- * @param children Original tooltip anchor.
17
- * @param setAnchorElement Set tooltip anchor element.
18
- * @param isOpen Whether the tooltip is open or not.
19
- * @param id Tooltip id.
20
- * @return tooltip anchor.
21
- */
22
-
23
- var useInjectTooltipRef = function useInjectTooltipRef(children, setAnchorElement, isOpen, id) {
24
- return useMemo(function () {
25
- var ariaProps = {
26
- 'aria-describedby': isOpen ? id : undefined
27
- };
28
-
29
- if (children && get(children, '$$typeof') && get(children, 'props.disabled') !== true && get(children, 'props.isDisabled') !== true) {
30
- var element = children;
31
- return cloneElement(element, _objectSpread2({}, element.props, {}, ariaProps, {
32
- ref: mergeRefs(element.ref, setAnchorElement)
33
- }));
34
- }
35
-
36
- return React.createElement("div", _extends({
37
- className: "lumx-tooltip-anchor-wrapper",
38
- ref: setAnchorElement
39
- }, ariaProps), children);
40
- }, [isOpen, id, children, setAnchorElement]);
41
- };
42
-
43
- /** Return true if the browser does not support pointer hover */
44
- var browserDoesNotSupportHover = function browserDoesNotSupportHover() {
45
- var _window$matchMedia, _window;
46
-
47
- return !!((_window$matchMedia = (_window = window).matchMedia) === null || _window$matchMedia === void 0 ? void 0 : _window$matchMedia.call(_window, '(hover: none)').matches);
48
- };
49
-
50
- /**
51
- * Hook controlling tooltip visibility using mouse hover the anchor and delay.
52
- *
53
- * @param delay Delay in millisecond to display the tooltip.
54
- * @param anchorElement Tooltip anchor element.
55
- * @return whether or not to show the tooltip.
56
- */
57
-
58
- function useTooltipOpen(delay, anchorElement) {
59
- var _useState = useState(false),
60
- _useState2 = _slicedToArray(_useState, 2),
61
- isOpen = _useState2[0],
62
- setIsOpen = _useState2[1];
63
-
64
- useEffect(function () {
65
- if (!anchorElement) {
66
- return undefined;
67
- }
68
-
69
- var timer;
70
- var openStartTime;
71
- var shouldOpen; // Run timer to defer updating the isOpen state.
72
-
73
- var deferUpdate = function deferUpdate(duration) {
74
- if (timer) clearTimeout(timer);
75
- timer = setTimeout(function () {
76
- setIsOpen(!!shouldOpen);
77
- }, duration);
78
- };
79
-
80
- var hoverNotSupported = browserDoesNotSupportHover();
81
- var hasTouch = 'ontouchstart' in window; // Adapt open/close delay
82
-
83
- var openDelay = delay || (hoverNotSupported ? TOOLTIP_LONG_PRESS_DELAY.open : TOOLTIP_HOVER_DELAY.open);
84
- var closeDelay = hoverNotSupported ? TOOLTIP_LONG_PRESS_DELAY.close : TOOLTIP_HOVER_DELAY.close; // Open (or/and cancel closing) of tooltip.
85
-
86
- var open = function open() {
87
- if (shouldOpen && !timer) return;
88
- shouldOpen = true;
89
- openStartTime = Date.now();
90
- deferUpdate(openDelay);
91
- }; // Close or cancel opening of tooltip
92
-
93
-
94
- var close = function close() {
95
- var overrideDelay = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : closeDelay;
96
- if (!shouldOpen && !timer) return;
97
- shouldOpen = false;
98
- deferUpdate(overrideDelay);
99
- };
100
-
101
- var closeImmediately = function closeImmediately() {
102
- return close(0);
103
- };
104
- /**
105
- * Handle touchend event
106
- * If `touchend` comes before the open delay => cancel tooltip (close immediate).
107
- * Else if `touchend` comes after the open delay => tooltip takes priority, the anchor's default touch end event is prevented.
108
- */
109
-
110
-
111
- var touchEnd = function touchEnd(evt) {
112
- if (!openStartTime) return;
113
-
114
- if (Date.now() - openStartTime >= openDelay) {
115
- // Tooltip take priority, event prevented.
116
- evt.stopPropagation();
117
- evt.preventDefault();
118
- anchorElement.focus(); // Close with delay.
119
-
120
- close();
121
- } else {
122
- // Close immediately.
123
- closeImmediately();
124
- }
125
- }; // Adapt event to browsers with or without `hover` support.
126
-
127
-
128
- var events = hoverNotSupported ? [[anchorElement, hasTouch ? 'touchstart' : 'mousedown', open], [anchorElement, hasTouch ? 'touchend' : 'mouseup', touchEnd]] : [[anchorElement, 'mouseenter', open], [anchorElement, 'mouseleave', close], [anchorElement, 'mouseup', closeImmediately]]; // Events always applied no matter the browser:.
129
-
130
- events.push( // Open on focus.
131
- [anchorElement, 'focusin', open], // Close on lost focus.
132
- [anchorElement, 'focusout', closeImmediately], // Close on ESC keydown
133
- [anchorElement, 'keydown', onEscapePressed(closeImmediately)]); // Attach events
134
-
135
- for (var _i = 0, _events = events; _i < _events.length; _i++) {
136
- var _events$_i = _slicedToArray(_events[_i], 3),
137
- node = _events$_i[0],
138
- eventType = _events$_i[1],
139
- eventHandler = _events$_i[2];
140
-
141
- node.addEventListener(eventType, eventHandler);
142
- }
143
-
144
- return function () {
145
- // Clear pending timers.
146
- if (timer) clearTimeout(timer); // Detach events.
147
-
148
- var _iteratorNormalCompletion = true;
149
- var _didIteratorError = false;
150
- var _iteratorError = undefined;
151
-
152
- try {
153
- for (var _iterator = events[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
154
- var _step$value = _slicedToArray(_step.value, 3),
155
- node = _step$value[0],
156
- eventType = _step$value[1],
157
- eventHandler = _step$value[2];
158
-
159
- node.removeEventListener(eventType, eventHandler);
160
- }
161
- } catch (err) {
162
- _didIteratorError = true;
163
- _iteratorError = err;
164
- } finally {
165
- try {
166
- if (!_iteratorNormalCompletion && _iterator.return != null) {
167
- _iterator.return();
168
- }
169
- } finally {
170
- if (_didIteratorError) {
171
- throw _iteratorError;
172
- }
173
- }
174
- }
175
- };
176
- }, [anchorElement, delay]);
177
- return isOpen;
178
- }
179
-
180
- /** Position of the tooltip relative to the anchor element. */
181
-
182
- /**
183
- * Component display name.
184
- */
185
- var COMPONENT_NAME = 'Tooltip';
186
- /**
187
- * Component default class name and class prefix.
188
- */
189
-
190
- var CLASSNAME = getRootClassName(COMPONENT_NAME);
191
- /**
192
- * Component default props.
193
- */
194
-
195
- var DEFAULT_PROPS = {
196
- placement: Placement.BOTTOM
197
- };
198
- /**
199
- * Arrow size (in pixel).
200
- */
201
-
202
- var ARROW_SIZE = 8;
203
- /**
204
- * Tooltip component.
205
- *
206
- * @param props Component props.
207
- * @param ref Component ref.
208
- * @return React element.
209
- */
210
-
211
- var Tooltip = forwardRef(function (props, ref) {
212
- var _ref, _attributes$popper;
213
-
214
- var label = props.label,
215
- children = props.children,
216
- className = props.className,
217
- delay = props.delay,
218
- placement = props.placement,
219
- forceOpen = props.forceOpen,
220
- forwardedProps = _objectWithoutProperties(props, ["label", "children", "className", "delay", "placement", "forceOpen"]); // Disable in SSR or without a label.
221
-
222
-
223
- if (!DOCUMENT || !label) {
224
- return React.createElement(React.Fragment, null, children);
225
- }
226
-
227
- var id = useMemo(function () {
228
- return "tooltip-".concat(uid());
229
- }, []);
230
-
231
- var _useState = useState(null),
232
- _useState2 = _slicedToArray(_useState, 2),
233
- popperElement = _useState2[0],
234
- setPopperElement = _useState2[1];
235
-
236
- var _useState3 = useState(null),
237
- _useState4 = _slicedToArray(_useState3, 2),
238
- anchorElement = _useState4[0],
239
- setAnchorElement = _useState4[1];
240
-
241
- var _usePopper = usePopper(anchorElement, popperElement, {
242
- placement: placement,
243
- modifiers: [{
244
- name: 'offset',
245
- options: {
246
- offset: [0, ARROW_SIZE]
247
- }
248
- }]
249
- }),
250
- styles = _usePopper.styles,
251
- attributes = _usePopper.attributes;
252
-
253
- var position = (_ref = attributes === null || attributes === void 0 ? void 0 : (_attributes$popper = attributes.popper) === null || _attributes$popper === void 0 ? void 0 : _attributes$popper['data-popper-placement']) !== null && _ref !== void 0 ? _ref : placement;
254
- var isOpen = useTooltipOpen(delay, anchorElement) || forceOpen;
255
- var wrappedChildren = useInjectTooltipRef(children, setAnchorElement, isOpen, id);
256
- return React.createElement(React.Fragment, null, wrappedChildren, isOpen && createPortal(React.createElement("div", _extends({
257
- ref: mergeRefs(ref, setPopperElement)
258
- }, forwardedProps, {
259
- id: id,
260
- role: "tooltip",
261
- "aria-label": label,
262
- className: classnames(className, handleBasicClasses({
263
- prefix: CLASSNAME,
264
- position: position
265
- })),
266
- style: styles.popper
267
- }, attributes.popper), React.createElement("div", {
268
- className: "".concat(CLASSNAME, "__arrow")
269
- }), React.createElement("div", {
270
- className: "".concat(CLASSNAME, "__inner")
271
- }, label.indexOf('\n') !== -1 ? label.split('\n').map(function (sentence) {
272
- return React.createElement("p", {
273
- key: sentence
274
- }, sentence);
275
- }) : label)), document.body));
276
- });
277
- Tooltip.displayName = COMPONENT_NAME;
278
- Tooltip.className = CLASSNAME;
279
- Tooltip.defaultProps = DEFAULT_PROPS;
280
-
281
- export { Tooltip as T };
282
- //# sourceMappingURL=f5bdff7e.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"f5bdff7e.js","sources":["../../src/components/tooltip/useInjectTooltipRef.tsx","../../src/utils/browserDoesNotSupportHover.ts","../../src/components/tooltip/useTooltipOpen.tsx","../../src/components/tooltip/Tooltip.tsx"],"sourcesContent":["import { mergeRefs } from '@lumx/react/utils/mergeRefs';\nimport get from 'lodash/get';\nimport React, { cloneElement, ReactNode, useMemo } from 'react';\n\n/**\n * Add ref and ARIA attribute(s) in tooltip children or wrapped children.\n * Button, IconButton, Icon and React HTML elements don't need to be wrapped but any other kind of children (array, fragment, custom components)\n * will be wrapped in a <span>.\n *\n * @param children Original tooltip anchor.\n * @param setAnchorElement Set tooltip anchor element.\n * @param isOpen Whether the tooltip is open or not.\n * @param id Tooltip id.\n * @return tooltip anchor.\n */\nexport const useInjectTooltipRef = (\n children: ReactNode,\n setAnchorElement: (e: HTMLDivElement) => void,\n isOpen: boolean,\n id: string,\n): ReactNode => {\n return useMemo(() => {\n const ariaProps = { 'aria-describedby': isOpen ? id : undefined };\n if (\n children &&\n get(children, '$$typeof') &&\n get(children, 'props.disabled') !== true &&\n get(children, 'props.isDisabled') !== true\n ) {\n const element = children as any;\n\n return cloneElement(element, {\n ...element.props,\n ...ariaProps,\n ref: mergeRefs(element.ref, setAnchorElement),\n });\n }\n return (\n <div className=\"lumx-tooltip-anchor-wrapper\" ref={setAnchorElement} {...ariaProps}>\n {children}\n </div>\n );\n }, [isOpen, id, children, setAnchorElement]);\n};\n","/** Return true if the browser does not support pointer hover */\nexport const browserDoesNotSupportHover = (): boolean => !!window.matchMedia?.('(hover: none)').matches;\n","import { onEscapePressed } from '@lumx/react/utils/event';\nimport { useEffect, useState } from 'react';\nimport { browserDoesNotSupportHover } from '@lumx/react/utils/browserDoesNotSupportHover';\nimport { TOOLTIP_HOVER_DELAY, TOOLTIP_LONG_PRESS_DELAY } from '@lumx/react/constants';\n\n/**\n * Hook controlling tooltip visibility using mouse hover the anchor and delay.\n *\n * @param delay Delay in millisecond to display the tooltip.\n * @param anchorElement Tooltip anchor element.\n * @return whether or not to show the tooltip.\n */\nexport function useTooltipOpen(delay: number | undefined, anchorElement: HTMLElement | null): boolean {\n const [isOpen, setIsOpen] = useState(false);\n\n useEffect(() => {\n if (!anchorElement) {\n return undefined;\n }\n let timer: number | undefined;\n let openStartTime: number | undefined;\n let shouldOpen: boolean | undefined;\n\n // Run timer to defer updating the isOpen state.\n const deferUpdate = (duration: number) => {\n if (timer) clearTimeout(timer);\n timer = setTimeout(() => {\n setIsOpen(!!shouldOpen);\n }, duration) as any;\n };\n\n const hoverNotSupported = browserDoesNotSupportHover();\n const hasTouch = 'ontouchstart' in window;\n\n // Adapt open/close delay\n const openDelay = delay || (hoverNotSupported ? TOOLTIP_LONG_PRESS_DELAY.open : TOOLTIP_HOVER_DELAY.open);\n const closeDelay = hoverNotSupported ? TOOLTIP_LONG_PRESS_DELAY.close : TOOLTIP_HOVER_DELAY.close;\n\n // Open (or/and cancel closing) of tooltip.\n const open = () => {\n if (shouldOpen && !timer) return;\n shouldOpen = true;\n openStartTime = Date.now();\n deferUpdate(openDelay);\n };\n\n // Close or cancel opening of tooltip\n const close = (overrideDelay = closeDelay) => {\n if (!shouldOpen && !timer) return;\n shouldOpen = false;\n deferUpdate(overrideDelay);\n };\n const closeImmediately = () => close(0);\n\n /**\n * Handle touchend event\n * If `touchend` comes before the open delay => cancel tooltip (close immediate).\n * Else if `touchend` comes after the open delay => tooltip takes priority, the anchor's default touch end event is prevented.\n */\n const touchEnd = (evt: Event) => {\n if (!openStartTime) return;\n if (Date.now() - openStartTime >= openDelay) {\n // Tooltip take priority, event prevented.\n evt.stopPropagation();\n evt.preventDefault();\n anchorElement.focus();\n // Close with delay.\n close();\n } else {\n // Close immediately.\n closeImmediately();\n }\n };\n\n // Adapt event to browsers with or without `hover` support.\n const events: Array<[Node, Event['type'], any]> = hoverNotSupported\n ? [\n [anchorElement, hasTouch ? 'touchstart' : 'mousedown', open],\n [anchorElement, hasTouch ? 'touchend' : 'mouseup', touchEnd],\n ]\n : [\n [anchorElement, 'mouseenter', open],\n [anchorElement, 'mouseleave', close],\n [anchorElement, 'mouseup', closeImmediately],\n ];\n\n // Events always applied no matter the browser:.\n events.push(\n // Open on focus.\n [anchorElement, 'focusin', open],\n // Close on lost focus.\n [anchorElement, 'focusout', closeImmediately],\n // Close on ESC keydown\n [anchorElement, 'keydown', onEscapePressed(closeImmediately)],\n );\n\n // Attach events\n for (const [node, eventType, eventHandler] of events) {\n node.addEventListener(eventType, eventHandler);\n }\n return () => {\n // Clear pending timers.\n if (timer) clearTimeout(timer);\n\n // Detach events.\n for (const [node, eventType, eventHandler] of events) {\n node.removeEventListener(eventType, eventHandler);\n }\n };\n }, [anchorElement, delay]);\n\n return isOpen;\n}\n","/* eslint-disable react-hooks/rules-of-hooks */\nimport React, { forwardRef, ReactNode, useMemo, useState } from 'react';\nimport { createPortal } from 'react-dom';\nimport { usePopper } from 'react-popper';\nimport { uid } from 'uid';\n\nimport classNames from 'classnames';\n\nimport { Placement } from '@lumx/react/components/popover/Popover';\n\nimport { DOCUMENT } from '@lumx/react/constants';\n\nimport { Comp, GenericProps } from '@lumx/react/utils/type';\nimport { getRootClassName, handleBasicClasses } from '@lumx/react/utils/className';\nimport { mergeRefs } from '@lumx/react/utils/mergeRefs';\n\nimport { useInjectTooltipRef } from './useInjectTooltipRef';\nimport { useTooltipOpen } from './useTooltipOpen';\n\n/** Position of the tooltip relative to the anchor element. */\nexport type TooltipPlacement = Extract<Placement, 'top' | 'right' | 'bottom' | 'left'>;\n\n/**\n * Defines the props of the component.\n */\nexport interface TooltipProps extends GenericProps {\n /** Anchor (element on which we activate the tooltip). */\n children: ReactNode;\n /** Delay (in ms) before closing the tooltip. */\n delay?: number;\n /** Whether the tooltip is displayed even without the mouse hovering the anchor. */\n forceOpen?: boolean;\n /** Label text. */\n label?: string | null | false;\n /** Placement of the tooltip relative to the anchor. */\n placement?: TooltipPlacement;\n}\n\n/**\n * Component display name.\n */\nconst COMPONENT_NAME = 'Tooltip';\n\n/**\n * Component default class name and class prefix.\n */\nconst CLASSNAME = getRootClassName(COMPONENT_NAME);\n\n/**\n * Component default props.\n */\nconst DEFAULT_PROPS: Partial<TooltipProps> = {\n placement: Placement.BOTTOM,\n};\n\n/**\n * Arrow size (in pixel).\n */\nconst ARROW_SIZE = 8;\n\n/**\n * Tooltip component.\n *\n * @param props Component props.\n * @param ref Component ref.\n * @return React element.\n */\nexport const Tooltip: Comp<TooltipProps, HTMLDivElement> = forwardRef((props, ref) => {\n const { label, children, className, delay, placement, forceOpen, ...forwardedProps } = props;\n // Disable in SSR or without a label.\n if (!DOCUMENT || !label) {\n return <>{children}</>;\n }\n\n const id = useMemo(() => `tooltip-${uid()}`, []);\n\n const [popperElement, setPopperElement] = useState<null | HTMLElement>(null);\n const [anchorElement, setAnchorElement] = useState<null | HTMLElement>(null);\n const { styles, attributes } = usePopper(anchorElement, popperElement, {\n placement,\n modifiers: [\n {\n name: 'offset',\n options: { offset: [0, ARROW_SIZE] },\n },\n ],\n });\n\n const position = attributes?.popper?.['data-popper-placement'] ?? placement;\n const isOpen = useTooltipOpen(delay, anchorElement) || forceOpen;\n const wrappedChildren = useInjectTooltipRef(children, setAnchorElement, isOpen as boolean, id);\n\n return (\n <>\n {wrappedChildren}\n {isOpen &&\n createPortal(\n <div\n ref={mergeRefs(ref, setPopperElement)}\n {...forwardedProps}\n id={id}\n role=\"tooltip\"\n aria-label={label}\n className={classNames(className, handleBasicClasses({ prefix: CLASSNAME, position }))}\n style={styles.popper}\n {...attributes.popper}\n >\n <div className={`${CLASSNAME}__arrow`} />\n <div className={`${CLASSNAME}__inner`}>\n {label.indexOf('\\n') !== -1\n ? label.split('\\n').map((sentence: string) => <p key={sentence}>{sentence}</p>)\n : label}\n </div>\n </div>,\n document.body,\n )}\n </>\n );\n});\nTooltip.displayName = COMPONENT_NAME;\nTooltip.className = CLASSNAME;\nTooltip.defaultProps = DEFAULT_PROPS;\n"],"names":["useInjectTooltipRef","children","setAnchorElement","isOpen","id","useMemo","ariaProps","undefined","get","element","cloneElement","props","ref","mergeRefs","browserDoesNotSupportHover","window","matchMedia","matches","useTooltipOpen","delay","anchorElement","useState","setIsOpen","useEffect","timer","openStartTime","shouldOpen","deferUpdate","duration","clearTimeout","setTimeout","hoverNotSupported","hasTouch","openDelay","TOOLTIP_LONG_PRESS_DELAY","open","TOOLTIP_HOVER_DELAY","closeDelay","close","Date","now","overrideDelay","closeImmediately","touchEnd","evt","stopPropagation","preventDefault","focus","events","push","onEscapePressed","node","eventType","eventHandler","addEventListener","removeEventListener","COMPONENT_NAME","CLASSNAME","getRootClassName","DEFAULT_PROPS","placement","Placement","BOTTOM","ARROW_SIZE","Tooltip","forwardRef","label","className","forceOpen","forwardedProps","DOCUMENT","uid","popperElement","setPopperElement","usePopper","modifiers","name","options","offset","styles","attributes","position","popper","wrappedChildren","createPortal","classNames","handleBasicClasses","prefix","indexOf","split","map","sentence","document","body","displayName","defaultProps"],"mappings":"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"}
@@ -1,34 +0,0 @@
1
- import { l as GenericProps, m as HasTheme, o as Callback, k as Comp } from './eca6d4dc.js';
2
- import { I as IconButtonProps } from './2d770113.js';
3
-
4
- /**
5
- * Defines the props of the component.
6
- */
7
- interface ExpansionPanelProps extends GenericProps, HasTheme {
8
- /** Whether the expansion panel has a background. */
9
- hasBackground?: boolean;
10
- /** Whether the header has a divider. */
11
- hasHeaderDivider?: boolean;
12
- /** Whether the component is open or not. */
13
- isOpen?: boolean;
14
- /** Label text (overwritten if a `<header>` is provided in the children). */
15
- label?: string;
16
- /** On open callback. */
17
- onOpen?: Callback;
18
- /** On close callback. */
19
- onClose?: Callback;
20
- /** Props to pass to the toggle button (minus those already set by the ExpansionPanel props). */
21
- toggleButtonProps: Pick<IconButtonProps, 'label'> & Omit<IconButtonProps, 'label' | 'onClick' | 'icon' | 'emphasis' | 'color'>;
22
- /** On toggle open or close callback. */
23
- onToggleOpen?(shouldOpen: boolean): void;
24
- }
25
- /**
26
- * ExpansionPanel component.
27
- *
28
- * @param props Component props.
29
- * @param ref Component ref.
30
- * @return React element.
31
- */
32
- declare const ExpansionPanel: Comp<ExpansionPanelProps, HTMLDivElement>;
33
-
34
- export { ExpansionPanelProps as E, ExpansionPanel as a };
@@ -1,49 +0,0 @@
1
- import { l as GenericProps, O as Orientation, A as Alignment, k as Comp, S as Size } from './eca6d4dc.js';
2
-
3
- declare type GridGutterSize = Extract<Size, 'regular' | 'big' | 'huge'>;
4
- /**
5
- * Defines the props of the component.
6
- */
7
- interface GridProps extends GenericProps {
8
- /** Orientation. */
9
- orientation?: Orientation;
10
- /** Whether the children are wrapped or not. */
11
- wrap?: string;
12
- /** Vertical alignment. */
13
- vAlign?: Alignment;
14
- /** Horizontal alignment. */
15
- hAlign?: Alignment;
16
- /** Gutter size. */
17
- gutter?: GridGutterSize;
18
- }
19
- /**
20
- * Grid component.
21
- *
22
- * @param props Component props.
23
- * @param ref Component ref.
24
- * @return React element.
25
- */
26
- declare const Grid: Comp<GridProps, HTMLDivElement>;
27
-
28
- declare type Columns = '1' | '2' | '3' | '4' | '5' | '6' | '7' | '8' | '9' | '10' | '11' | '12';
29
- /**
30
- * Defines the props of the component.
31
- */
32
- interface GridItemProps extends GenericProps {
33
- /** Alignment. */
34
- align?: Alignment;
35
- /** Order. */
36
- order?: Columns;
37
- /** Width. */
38
- width?: Columns;
39
- }
40
- /**
41
- * GridItem component.
42
- *
43
- * @param props Component props.
44
- * @param ref Component ref.
45
- * @return React element.
46
- */
47
- declare const GridItem: Comp<GridItemProps, HTMLDivElement>;
48
-
49
- export { GridProps as G, Grid as a, GridItemProps as b, GridItem as c };
@@ -1,38 +0,0 @@
1
- import React, { ReactNode, SyntheticEvent, InputHTMLAttributes } from 'react';
2
- import { l as GenericProps, m as HasTheme, k as Comp } from './eca6d4dc.js';
3
-
4
- /**
5
- * Defines the props of the component.
6
- */
7
- interface CheckboxProps extends GenericProps, HasTheme {
8
- /** Helper text. */
9
- helper?: string;
10
- /** Native input id property. */
11
- id?: string;
12
- /** Native input ref. */
13
- inputRef?: React.Ref<HTMLInputElement>;
14
- /** Whether it is checked or not. */
15
- isChecked?: boolean;
16
- /** Whether the component is disabled or not. */
17
- isDisabled?: boolean;
18
- /** Label text. */
19
- label?: ReactNode;
20
- /** Native input name property. */
21
- name?: string;
22
- /** Native input value property. */
23
- value?: string;
24
- /** On change callback. */
25
- onChange?(isChecked: boolean, value?: string, name?: string, event?: SyntheticEvent): void;
26
- /** optional props for input */
27
- inputProps?: InputHTMLAttributes<HTMLInputElement>;
28
- }
29
- /**
30
- * Checkbox component.
31
- *
32
- * @param props Component props.
33
- * @param ref Component ref.
34
- * @return React element.
35
- */
36
- declare const Checkbox: Comp<CheckboxProps, HTMLDivElement>;
37
-
38
- export { CheckboxProps as C, Checkbox as a };
@@ -1,63 +0,0 @@
1
- import { b as _objectWithoutProperties, g as _typeof, c as _extends, _ as _objectSpread2 } from './6340c129.js';
2
- import { ColorVariant } from '../components.js';
3
- import React, { forwardRef } from 'react';
4
- import { g as getRootClassName, c as classnames, h as handleBasicClasses } from './fd867c9d.js';
5
-
6
- /**
7
- * Component display name.
8
- */
9
- var COMPONENT_NAME = 'Text';
10
- /**
11
- * Component default class name and class prefix.
12
- */
13
-
14
- var CLASSNAME = getRootClassName(COMPONENT_NAME);
15
- /**
16
- * Component default props.
17
- */
18
-
19
- var DEFAULT_PROPS = {};
20
- /**
21
- * Text component.
22
- *
23
- * @param props Component props.
24
- * @param ref Component ref.
25
- * @return React element.
26
- */
27
-
28
- var Text = forwardRef(function (props, ref) {
29
- var as = props.as,
30
- children = props.children,
31
- className = props.className,
32
- color = props.color,
33
- colorVariant = props.colorVariant,
34
- typography = props.typography,
35
- truncate = props.truncate,
36
- style = props.style,
37
- forwardedProps = _objectWithoutProperties(props, ["as", "children", "className", "color", "colorVariant", "typography", "truncate", "style"]);
38
-
39
- var Component = as;
40
- var colorClass = color && "lumx-color-font-".concat(color, "-").concat(colorVariant || ColorVariant.N);
41
- var typographyClass = typography && "lumx-typography-".concat(typography); // Truncate mode
42
-
43
- var truncateLinesStyle = _typeof(truncate) === 'object' && truncate.lines > 1 && {
44
- '--lumx-text-truncate-lines': truncate.lines
45
- };
46
- var isTruncatedMultiline = !!truncateLinesStyle;
47
- var isTruncated = !!truncate;
48
- return React.createElement(Component, _extends({
49
- ref: ref,
50
- className: classnames(className, handleBasicClasses({
51
- prefix: CLASSNAME,
52
- isTruncated: isTruncated && !isTruncatedMultiline,
53
- isTruncatedMultiline: isTruncatedMultiline
54
- }), typographyClass, colorClass),
55
- style: _objectSpread2({}, truncateLinesStyle, {}, style)
56
- }, forwardedProps), children);
57
- });
58
- Text.displayName = COMPONENT_NAME;
59
- Text.className = CLASSNAME;
60
- Text.defaultProps = DEFAULT_PROPS;
61
-
62
- export { Text as T };
63
- //# sourceMappingURL=fc4c034b.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"fc4c034b.js","sources":["../../src/components/text/Text.tsx"],"sourcesContent":["import React, { forwardRef } from 'react';\n\nimport { Color, ColorVariant, Typography } from '@lumx/react';\nimport { Comp, GenericProps, HeadingElement } from '@lumx/react/utils/type';\nimport { getRootClassName, handleBasicClasses } from '@lumx/react/utils/className';\nimport classNames from 'classnames';\n\ntype TextComponents = 'span' | 'p' | HeadingElement;\n\n/**\n * Defines the props of the component.\n */\nexport interface TextProps extends GenericProps {\n /**\n * Color variant.\n */\n color?: Color;\n /**\n * Lightened or darkened variant of the selected color.\n */\n colorVariant?: ColorVariant;\n /**\n * Typography variant.\n */\n typography?: Typography;\n /**\n * Custom component to render the text.\n */\n as: TextComponents;\n /**\n * Control whether the text should truncate or not.\n * Setting as `true` will make the text truncate on a single line.\n * Setting as `{ lines: number }` will make the text truncate on a multiple lines.\n */\n truncate?: boolean | { lines: number };\n}\n\n/**\n * Component display name.\n */\nconst COMPONENT_NAME = 'Text';\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 = {} as const;\n\n/**\n * Text component.\n *\n * @param props Component props.\n * @param ref Component ref.\n * @return React element.\n */\nexport const Text: Comp<TextProps> = forwardRef((props, ref) => {\n const { as, children, className, color, colorVariant, typography, truncate, style, ...forwardedProps } = props;\n\n const Component = as as TextComponents;\n const colorClass = color && `lumx-color-font-${color}-${colorVariant || ColorVariant.N}`;\n const typographyClass = typography && `lumx-typography-${typography}`;\n\n // Truncate mode\n const truncateLinesStyle = typeof truncate === 'object' &&\n truncate.lines > 1 && { '--lumx-text-truncate-lines': truncate.lines };\n const isTruncatedMultiline = !!truncateLinesStyle;\n const isTruncated = !!truncate;\n\n return (\n <Component\n ref={ref as React.Ref<any>}\n className={classNames(\n className,\n handleBasicClasses({\n prefix: CLASSNAME,\n isTruncated: isTruncated && !isTruncatedMultiline,\n isTruncatedMultiline,\n }),\n typographyClass,\n colorClass,\n )}\n style={{ ...truncateLinesStyle, ...style }}\n {...forwardedProps}\n >\n {children}\n </Component>\n );\n});\nText.displayName = COMPONENT_NAME;\nText.className = CLASSNAME;\nText.defaultProps = DEFAULT_PROPS;\n"],"names":["COMPONENT_NAME","CLASSNAME","getRootClassName","DEFAULT_PROPS","Text","forwardRef","props","ref","as","children","className","color","colorVariant","typography","truncate","style","forwardedProps","Component","colorClass","ColorVariant","N","typographyClass","truncateLinesStyle","lines","isTruncatedMultiline","isTruncated","classNames","handleBasicClasses","prefix","displayName","defaultProps"],"mappings":";;;;;AAqCA;;;AAGA,IAAMA,cAAc,GAAG,MAAvB;AAEA;;;;AAGA,IAAMC,SAAS,GAAGC,gBAAgB,CAACF,cAAD,CAAlC;AAEA;;;;AAGA,IAAMG,aAAa,GAAG,EAAtB;AAEA;;;;;;;;IAOaC,IAAqB,GAAGC,UAAU,CAAC,UAACC,KAAD,EAAQC,GAAR,EAAgB;AAAA,MACpDC,EADoD,GAC6CF,KAD7C,CACpDE,EADoD;AAAA,MAChDC,QADgD,GAC6CH,KAD7C,CAChDG,QADgD;AAAA,MACtCC,SADsC,GAC6CJ,KAD7C,CACtCI,SADsC;AAAA,MAC3BC,KAD2B,GAC6CL,KAD7C,CAC3BK,KAD2B;AAAA,MACpBC,YADoB,GAC6CN,KAD7C,CACpBM,YADoB;AAAA,MACNC,UADM,GAC6CP,KAD7C,CACNO,UADM;AAAA,MACMC,QADN,GAC6CR,KAD7C,CACMQ,QADN;AAAA,MACgBC,KADhB,GAC6CT,KAD7C,CACgBS,KADhB;AAAA,MAC0BC,cAD1B,4BAC6CV,KAD7C;;AAG5D,MAAMW,SAAS,GAAGT,EAAlB;AACA,MAAMU,UAAU,GAAGP,KAAK,8BAAuBA,KAAvB,cAAgCC,YAAY,IAAIO,YAAY,CAACC,CAA7D,CAAxB;AACA,MAAMC,eAAe,GAAGR,UAAU,8BAAuBA,UAAvB,CAAlC,CAL4D;;AAQ5D,MAAMS,kBAAkB,GAAG,QAAOR,QAAP,MAAoB,QAApB,IACvBA,QAAQ,CAACS,KAAT,GAAiB,CADM,IACD;AAAE,kCAA8BT,QAAQ,CAACS;AAAzC,GAD1B;AAEA,MAAMC,oBAAoB,GAAG,CAAC,CAACF,kBAA/B;AACA,MAAMG,WAAW,GAAG,CAAC,CAACX,QAAtB;AAEA,SACI,oBAAC,SAAD;AACI,IAAA,GAAG,EAAEP,GADT;AAEI,IAAA,SAAS,EAAEmB,UAAU,CACjBhB,SADiB,EAEjBiB,kBAAkB,CAAC;AACfC,MAAAA,MAAM,EAAE3B,SADO;AAEfwB,MAAAA,WAAW,EAAEA,WAAW,IAAI,CAACD,oBAFd;AAGfA,MAAAA,oBAAoB,EAApBA;AAHe,KAAD,CAFD,EAOjBH,eAPiB,EAQjBH,UARiB,CAFzB;AAYI,IAAA,KAAK,qBAAOI,kBAAP,MAA8BP,KAA9B;AAZT,KAaQC,cAbR,GAeKP,QAfL,CADJ;AAmBH,CAhC8C;AAiC/CL,IAAI,CAACyB,WAAL,GAAmB7B,cAAnB;AACAI,IAAI,CAACM,SAAL,GAAiBT,SAAjB;AACAG,IAAI,CAAC0B,YAAL,GAAoB3B,aAApB;;;;"}
@@ -1,16 +0,0 @@
1
- var IDX=256, HEX=[], SIZE=256, BUFFER;
2
- while (IDX--) HEX[IDX] = (IDX + 256).toString(16).substring(1);
3
-
4
- function uid(len) {
5
- var i=0, tmp=(len || 11);
6
- if (!BUFFER || ((IDX + tmp) > SIZE*2)) {
7
- for (BUFFER='',IDX=0; i < SIZE; i++) {
8
- BUFFER += HEX[Math.random() * 256 | 0];
9
- }
10
- }
11
-
12
- return BUFFER.substring(IDX, IDX++ + tmp);
13
- }
14
-
15
- export { uid as u };
16
- //# sourceMappingURL=fc608bd9.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"fc608bd9.js","sources":["../../../../node_modules/uid/dist/index.mjs"],"sourcesContent":["var IDX=256, HEX=[], SIZE=256, BUFFER;\nwhile (IDX--) HEX[IDX] = (IDX + 256).toString(16).substring(1);\n\nexport function uid(len) {\n\tvar i=0, tmp=(len || 11);\n\tif (!BUFFER || ((IDX + tmp) > SIZE*2)) {\n\t\tfor (BUFFER='',IDX=0; i < SIZE; i++) {\n\t\t\tBUFFER += HEX[Math.random() * 256 | 0];\n\t\t}\n\t}\n\n\treturn BUFFER.substring(IDX, IDX++ + tmp);\n}\n"],"names":[],"mappings":"AAAA,IAAI,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC;AACtC,OAAO,GAAG,EAAE,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;AAC/D;AACO,SAAS,GAAG,CAAC,GAAG,EAAE;AACzB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE,CAAC,CAAC;AAC1B,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,GAAG,GAAG,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE;AACxC,EAAE,KAAK,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,EAAE;AACvC,GAAG,MAAM,IAAI,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC;AAC1C,GAAG;AACH,EAAE;AACF;AACA,CAAC,OAAO,MAAM,CAAC,SAAS,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG,CAAC,CAAC;AAC3C;;;;"}
@@ -1,36 +0,0 @@
1
- import { ReactNode } from 'react';
2
- import { k as Comp } from './eca6d4dc.js';
3
- import { B as BaseButtonProps } from './55271fa1.js';
4
-
5
- /**
6
- * Button emphasis definition.
7
- * @deprecated Use Emphasis instead.
8
- */
9
- declare const ButtonEmphasis: {
10
- readonly low: "low";
11
- readonly medium: "medium";
12
- readonly high: "high";
13
- };
14
- /**
15
- * Defines the props of the component.
16
- */
17
- interface ButtonProps extends BaseButtonProps {
18
- /** Button content. */
19
- children?: ReactNode;
20
- /** Left icon (SVG path). */
21
- leftIcon?: string;
22
- /** Right icon (SVG path). */
23
- rightIcon?: string;
24
- /** When `true`, the button gets as large as possible. */
25
- fullWidth?: boolean;
26
- }
27
- /**
28
- * Button component.
29
- *
30
- * @param props Component props.
31
- * @param ref Component ref.
32
- * @return React element.
33
- */
34
- declare const Button: Comp<ButtonProps, HTMLButtonElement | HTMLAnchorElement>;
35
-
36
- export { ButtonEmphasis as B, ButtonProps as a, Button as b };