@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,116 +0,0 @@
1
- import { b as _objectWithoutProperties, c as _extends } from './6340c129.js';
2
- import { Alignment, Theme } from '../components.js';
3
- import React, { forwardRef, useMemo, Children } from 'react';
4
- import { g as getRootClassName, c as classnames, h as handleBasicClasses } from './fd867c9d.js';
5
- import { u as uid } from './fc608bd9.js';
6
- import isEmpty from 'lodash/isEmpty';
7
- import { I as InputHelper } from './b0eb3a30.js';
8
- import { I as InputLabel } from './12ab39e4.js';
9
-
10
- /**
11
- * Defines the props of the component.
12
- */
13
-
14
- /**
15
- * Component display name.
16
- */
17
- var COMPONENT_NAME = 'Switch';
18
- /**
19
- * Component default class name and class prefix.
20
- */
21
-
22
- var CLASSNAME = getRootClassName(COMPONENT_NAME);
23
- /**
24
- * Component default props.
25
- */
26
-
27
- var DEFAULT_PROPS = {
28
- position: Alignment.left,
29
- theme: Theme.light
30
- };
31
- /**
32
- * Switch component.
33
- *
34
- * @param props Component props.
35
- * @param ref Component ref.
36
- * @return React element.
37
- */
38
-
39
- var Switch = forwardRef(function (props, ref) {
40
- var checked = props.checked,
41
- children = props.children,
42
- className = props.className,
43
- disabled = props.disabled,
44
- helper = props.helper,
45
- id = props.id,
46
- _props$isChecked = props.isChecked,
47
- isChecked = _props$isChecked === void 0 ? checked : _props$isChecked,
48
- _props$isDisabled = props.isDisabled,
49
- isDisabled = _props$isDisabled === void 0 ? disabled : _props$isDisabled,
50
- name = props.name,
51
- onChange = props.onChange,
52
- position = props.position,
53
- theme = props.theme,
54
- value = props.value,
55
- _props$inputProps = props.inputProps,
56
- inputProps = _props$inputProps === void 0 ? {} : _props$inputProps,
57
- forwardedProps = _objectWithoutProperties(props, ["checked", "children", "className", "disabled", "helper", "id", "isChecked", "isDisabled", "name", "onChange", "position", "theme", "value", "inputProps"]);
58
-
59
- var switchId = useMemo(function () {
60
- return id || "switch-".concat(uid());
61
- }, [id]);
62
-
63
- var handleChange = function handleChange(event) {
64
- if (onChange) {
65
- onChange(!isChecked, value, name, event);
66
- }
67
- };
68
-
69
- return React.createElement("div", _extends({
70
- ref: ref
71
- }, forwardedProps, {
72
- className: classnames(className, handleBasicClasses({
73
- prefix: CLASSNAME,
74
- isChecked: isChecked,
75
- isDisabled: isDisabled,
76
- position: position,
77
- theme: theme,
78
- isUnchecked: !isChecked
79
- })),
80
- "aria-disabled": isDisabled
81
- }), React.createElement("div", {
82
- className: "".concat(CLASSNAME, "__input-wrapper")
83
- }, React.createElement("input", _extends({
84
- type: "checkbox",
85
- role: "switch",
86
- id: switchId,
87
- className: "".concat(CLASSNAME, "__input-native"),
88
- name: name,
89
- value: value,
90
- disabled: isDisabled,
91
- checked: isChecked,
92
- "aria-checked": Boolean(isChecked),
93
- onChange: handleChange
94
- }, inputProps)), React.createElement("div", {
95
- className: "".concat(CLASSNAME, "__input-placeholder")
96
- }, React.createElement("div", {
97
- className: "".concat(CLASSNAME, "__input-background")
98
- }), React.createElement("div", {
99
- className: "".concat(CLASSNAME, "__input-indicator")
100
- }))), Children.count(children) > 0 && React.createElement("div", {
101
- className: "".concat(CLASSNAME, "__content")
102
- }, React.createElement(InputLabel, {
103
- htmlFor: switchId,
104
- theme: theme,
105
- className: "".concat(CLASSNAME, "__label")
106
- }, children), !isEmpty(helper) && React.createElement(InputHelper, {
107
- theme: theme,
108
- className: "".concat(CLASSNAME, "__helper")
109
- }, helper)));
110
- });
111
- Switch.displayName = COMPONENT_NAME;
112
- Switch.className = CLASSNAME;
113
- Switch.defaultProps = DEFAULT_PROPS;
114
-
115
- export { Switch as S };
116
- //# sourceMappingURL=56385b04.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"56385b04.js","sources":["../../src/components/switch/Switch.tsx"],"sourcesContent":["import React, { Children, forwardRef, InputHTMLAttributes, SyntheticEvent, useMemo } from 'react';\n\nimport classNames from 'classnames';\nimport { uid } from 'uid';\n\nimport isEmpty from 'lodash/isEmpty';\n\nimport { Alignment, InputHelper, InputLabel, Theme } from '@lumx/react';\n\nimport { Comp, GenericProps, HasTheme } from '@lumx/react/utils/type';\nimport { getRootClassName, handleBasicClasses } from '@lumx/react/utils/className';\n\n/**\n * Defines the props of the component.\n */\nexport interface SwitchProps extends GenericProps, HasTheme {\n /** Helper text. */\n helper?: string;\n /** Whether it is checked or not. */\n isChecked?: boolean;\n /** Whether the component is disabled or not. */\n isDisabled?: boolean;\n /** Native input name property. */\n name?: string;\n /** Position of the switch relative to the label. */\n position?: Extract<Alignment, 'right' | 'left'>;\n /** Native input value property. */\n value?: string;\n /** On change callback. */\n onChange?(isChecked: boolean, value?: string, name?: string, event?: SyntheticEvent): void;\n /** optional props for input */\n inputProps?: InputHTMLAttributes<HTMLInputElement>;\n}\n\n/**\n * Component display name.\n */\nconst COMPONENT_NAME = 'Switch';\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<SwitchProps> = {\n position: Alignment.left,\n theme: Theme.light,\n};\n\n/**\n * Switch component.\n *\n * @param props Component props.\n * @param ref Component ref.\n * @return React element.\n */\nexport const Switch: Comp<SwitchProps, HTMLDivElement> = forwardRef((props, ref) => {\n const {\n checked,\n children,\n className,\n disabled,\n helper,\n id,\n isChecked = checked,\n isDisabled = disabled,\n name,\n onChange,\n position,\n theme,\n value,\n inputProps = {},\n ...forwardedProps\n } = props;\n const switchId = useMemo(() => id || `switch-${uid()}`, [id]);\n const handleChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n if (onChange) {\n onChange(!isChecked, value, name, event);\n }\n };\n\n return (\n <div\n ref={ref}\n {...forwardedProps}\n className={classNames(\n className,\n handleBasicClasses({\n prefix: CLASSNAME,\n isChecked,\n isDisabled,\n position,\n theme,\n isUnchecked: !isChecked,\n }),\n )}\n aria-disabled={isDisabled}\n >\n <div className={`${CLASSNAME}__input-wrapper`}>\n <input\n type=\"checkbox\"\n role=\"switch\"\n id={switchId}\n className={`${CLASSNAME}__input-native`}\n name={name}\n value={value}\n disabled={isDisabled}\n checked={isChecked}\n aria-checked={Boolean(isChecked)}\n onChange={handleChange}\n {...inputProps}\n />\n\n <div className={`${CLASSNAME}__input-placeholder`}>\n <div className={`${CLASSNAME}__input-background`} />\n <div className={`${CLASSNAME}__input-indicator`} />\n </div>\n </div>\n\n {Children.count(children) > 0 && (\n <div className={`${CLASSNAME}__content`}>\n <InputLabel htmlFor={switchId} theme={theme} className={`${CLASSNAME}__label`}>\n {children}\n </InputLabel>\n {!isEmpty(helper) && (\n <InputHelper theme={theme} className={`${CLASSNAME}__helper`}>\n {helper}\n </InputHelper>\n )}\n </div>\n )}\n </div>\n );\n});\nSwitch.displayName = COMPONENT_NAME;\nSwitch.className = CLASSNAME;\nSwitch.defaultProps = DEFAULT_PROPS;\n"],"names":["COMPONENT_NAME","CLASSNAME","getRootClassName","DEFAULT_PROPS","position","Alignment","left","theme","Theme","light","Switch","forwardRef","props","ref","checked","children","className","disabled","helper","id","isChecked","isDisabled","name","onChange","value","inputProps","forwardedProps","switchId","useMemo","uid","handleChange","event","classNames","handleBasicClasses","prefix","isUnchecked","Boolean","Children","count","isEmpty","displayName","defaultProps"],"mappings":"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"}
@@ -1,88 +0,0 @@
1
- import React, { RefObject, ReactNode } from 'react';
2
- import { n as ValueOf, l as GenericProps, k as Comp } from './eca6d4dc.js';
3
-
4
- /**
5
- * Different possible placements for the popover.
6
- */
7
- declare const Placement: {
8
- readonly AUTO: "auto";
9
- readonly AUTO_END: "auto-end";
10
- readonly AUTO_START: "auto-start";
11
- readonly TOP: "top";
12
- readonly TOP_END: "top-end";
13
- readonly TOP_START: "top-start";
14
- readonly RIGHT: "right";
15
- readonly RIGHT_END: "right-end";
16
- readonly RIGHT_START: "right-start";
17
- readonly BOTTOM: "bottom";
18
- readonly BOTTOM_END: "bottom-end";
19
- readonly BOTTOM_START: "bottom-start";
20
- readonly LEFT: "left";
21
- readonly LEFT_END: "left-end";
22
- readonly LEFT_START: "left-start";
23
- };
24
- declare type Placement = ValueOf<typeof Placement>;
25
- /**
26
- * Offset of the popover.
27
- */
28
- interface Offset {
29
- /** Offset size along the reference. */
30
- along?: number;
31
- /** Offset size away from the reference. */
32
- away?: number;
33
- }
34
- /**
35
- * Popover elevation index.
36
- */
37
- declare type Elevation = 1 | 2 | 3 | 4 | 5;
38
- /**
39
- * Defines the props of the component.
40
- */
41
- interface PopoverProps extends GenericProps {
42
- /** Reference to the DOM element used to set the position of the popover. */
43
- anchorRef: React.RefObject<HTMLElement>;
44
- /** Element which will act as boundary when opening the popover. */
45
- boundaryRef?: RefObject<HTMLElement>;
46
- /** Content. */
47
- children: ReactNode;
48
- /** Whether a click anywhere out of the popover would close it. */
49
- closeOnClickAway?: boolean;
50
- /** Whether an escape key press would close the popover. */
51
- closeOnEscape?: boolean;
52
- /** Shadow elevation. */
53
- elevation?: Elevation;
54
- /** Whether the dropdown should fit to the anchor width (if dropdown is smaller). */
55
- fitToAnchorWidth?: boolean;
56
- /** Shrink popover if even after flipping there is not enough space. */
57
- fitWithinViewportHeight?: boolean;
58
- /** Element to focus when opening the popover. */
59
- focusElement?: RefObject<HTMLElement>;
60
- /** Whether the focus should go back on the anchor when popover closes and focus is within. */
61
- focusAnchorOnClose?: boolean;
62
- /** Whether we put an arrow or not. */
63
- hasArrow?: boolean;
64
- /** Whether the popover is open or not. */
65
- isOpen: boolean;
66
- /** Offset placement relative to anchor. */
67
- offset?: Offset;
68
- /** Reference to the parent element that triggered the popover (will get back focus on close or else fallback on the anchor element). */
69
- parentElement?: RefObject<HTMLElement>;
70
- /** Placement relative to anchor. */
71
- placement?: Placement;
72
- /** Whether the popover should be rendered into a DOM node that exists outside the DOM hierarchy of the parent component. */
73
- usePortal?: boolean;
74
- /** Z-axis position. */
75
- zIndex?: number;
76
- /** On close callback (on click away or Escape pressed). */
77
- onClose?(): void;
78
- }
79
- /**
80
- * Popover component.
81
- *
82
- * @param props Component props.
83
- * @param ref Component ref.
84
- * @return React element.
85
- */
86
- declare const Popover: Comp<PopoverProps, HTMLDivElement>;
87
-
88
- export { Elevation as E, Offset as O, Placement as P, PopoverProps as a, Popover as b };
@@ -1,33 +0,0 @@
1
- import { S as Size, l as GenericProps, m as HasTheme, a as Color, b as ColorVariant, k as Comp } from './eca6d4dc.js';
2
-
3
- declare type IconSizes = Extract<Size, 'xxs' | 'xs' | 's' | 'm' | 'l' | 'xl' | 'xxl'>;
4
- /**
5
- * Defines the props of the component.
6
- */
7
- interface IconProps extends GenericProps, HasTheme {
8
- /** Color variant. */
9
- color?: Color;
10
- /** Lightened or darkened variant of the selected icon color. */
11
- colorVariant?: ColorVariant;
12
- /** Whether the icon has a shape. */
13
- hasShape?: boolean;
14
- /**
15
- * Icon (SVG path) draw code (`d` property of the `<path>` SVG element).
16
- * See https://developer.mozilla.org/en-US/docs/Web/SVG/Tutorial/Paths
17
- */
18
- icon: string;
19
- /** Size variant. */
20
- size?: IconSizes;
21
- /** Sets an alternative text on the svg. Will set an `img` role to the svg. */
22
- alt?: string;
23
- }
24
- /**
25
- * Icon component.
26
- *
27
- * @param props Component props.
28
- * @param ref Component ref.
29
- * @return React element.
30
- */
31
- declare const Icon: Comp<IconProps, HTMLElement>;
32
-
33
- export { IconSizes as I, IconProps as a, Icon as b };
@@ -1,82 +0,0 @@
1
- import { b as _objectWithoutProperties, c as _extends } from './6340c129.js';
2
- import { AspectRatio, Size, Theme } 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 { T as Thumbnail } from './616f2912.js';
6
-
7
- /**
8
- * Avatar sizes.
9
- */
10
-
11
- /**
12
- * Component display name.
13
- */
14
- var COMPONENT_NAME = 'Avatar';
15
- /**
16
- * Component default class name and class prefix.
17
- */
18
-
19
- var CLASSNAME = getRootClassName(COMPONENT_NAME);
20
- /**
21
- * Component default props.
22
- */
23
-
24
- var DEFAULT_PROPS = {
25
- size: Size.m,
26
- theme: Theme.light
27
- };
28
- /**
29
- * Avatar component.
30
- *
31
- * @param props Component props.
32
- * @param ref Component ref.
33
- * @return React element.
34
- */
35
-
36
- var Avatar = forwardRef(function (props, ref) {
37
- var actions = props.actions,
38
- alt = props.alt,
39
- badge = props.badge,
40
- className = props.className,
41
- image = props.image,
42
- linkProps = props.linkProps,
43
- linkAs = props.linkAs,
44
- onClick = props.onClick,
45
- onKeyPress = props.onKeyPress,
46
- size = props.size,
47
- theme = props.theme,
48
- thumbnailProps = props.thumbnailProps,
49
- forwardedProps = _objectWithoutProperties(props, ["actions", "alt", "badge", "className", "image", "linkProps", "linkAs", "onClick", "onKeyPress", "size", "theme", "thumbnailProps"]);
50
-
51
- return React.createElement("div", _extends({
52
- ref: ref
53
- }, forwardedProps, {
54
- className: classnames(className, handleBasicClasses({
55
- prefix: CLASSNAME,
56
- size: size,
57
- theme: theme
58
- }))
59
- }), React.createElement(Thumbnail, _extends({
60
- linkProps: linkProps,
61
- linkAs: linkAs,
62
- className: "".concat(CLASSNAME, "__thumbnail"),
63
- onClick: onClick,
64
- onKeyPress: onKeyPress
65
- }, thumbnailProps, {
66
- aspectRatio: AspectRatio.square,
67
- size: size,
68
- image: image,
69
- alt: alt,
70
- theme: theme
71
- })), actions && React.createElement("div", {
72
- className: "".concat(CLASSNAME, "__actions")
73
- }, actions), badge && React.createElement("div", {
74
- className: "".concat(CLASSNAME, "__badge")
75
- }, badge));
76
- });
77
- Avatar.displayName = COMPONENT_NAME;
78
- Avatar.className = CLASSNAME;
79
- Avatar.defaultProps = DEFAULT_PROPS;
80
-
81
- export { Avatar as A };
82
- //# sourceMappingURL=5a127b58.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"5a127b58.js","sources":["../../src/components/avatar/Avatar.tsx"],"sourcesContent":["import React, { forwardRef, KeyboardEventHandler, MouseEventHandler, ReactElement, ReactNode } from 'react';\n\nimport classNames from 'classnames';\n\nimport { AspectRatio, Size, Theme, Thumbnail, ThumbnailProps } from '@lumx/react';\n\nimport { Comp, GenericProps, HasTheme } from '@lumx/react/utils/type';\nimport { getRootClassName, handleBasicClasses } from '@lumx/react/utils/className';\n\n/**\n * Avatar sizes.\n */\nexport type AvatarSize = Extract<Size, 'xs' | 's' | 'm' | 'l' | 'xl' | 'xxl'>;\n\n/**\n * Defines the props of the component.\n */\nexport interface AvatarProps extends GenericProps, HasTheme {\n /** Action toolbar content. */\n actions?: ReactNode;\n /** Image alternative text. */\n alt: string;\n /** Badge. */\n badge?: ReactElement;\n /** Image URL. */\n image: string;\n /** Props to pass to the link wrapping the 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 /** On click callback. */\n onClick?: MouseEventHandler<HTMLDivElement>;\n /** On key press callback. */\n onKeyPress?: KeyboardEventHandler<HTMLDivElement>;\n /** Size variant. */\n size?: AvatarSize;\n /** Props to pass to the thumbnail (minus those already set by the Avatar props). */\n thumbnailProps?: Omit<\n ThumbnailProps,\n 'image' | 'alt' | 'size' | 'theme' | 'align' | 'fillHeight' | 'variant' | 'aspectRatio'\n >;\n}\n\n/**\n * Component display name.\n */\nconst COMPONENT_NAME = 'Avatar';\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<AvatarProps> = {\n size: Size.m,\n theme: Theme.light,\n};\n\n/**\n * Avatar component.\n *\n * @param props Component props.\n * @param ref Component ref.\n * @return React element.\n */\nexport const Avatar: Comp<AvatarProps, HTMLDivElement> = forwardRef((props, ref) => {\n const {\n actions,\n alt,\n badge,\n className,\n image,\n linkProps,\n linkAs,\n onClick,\n onKeyPress,\n size,\n theme,\n thumbnailProps,\n ...forwardedProps\n } = props;\n\n return (\n <div\n ref={ref}\n {...forwardedProps}\n className={classNames(className, handleBasicClasses({ prefix: CLASSNAME, size, theme }))}\n >\n <Thumbnail\n linkProps={linkProps}\n linkAs={linkAs}\n className={`${CLASSNAME}__thumbnail`}\n onClick={onClick}\n onKeyPress={onKeyPress}\n {...thumbnailProps}\n aspectRatio={AspectRatio.square}\n size={size}\n image={image}\n alt={alt}\n theme={theme}\n />\n {actions && <div className={`${CLASSNAME}__actions`}>{actions}</div>}\n {badge && <div className={`${CLASSNAME}__badge`}>{badge}</div>}\n </div>\n );\n});\nAvatar.displayName = COMPONENT_NAME;\nAvatar.className = CLASSNAME;\nAvatar.defaultProps = DEFAULT_PROPS;\n"],"names":["COMPONENT_NAME","CLASSNAME","getRootClassName","DEFAULT_PROPS","size","Size","m","theme","Theme","light","Avatar","forwardRef","props","ref","actions","alt","badge","className","image","linkProps","linkAs","onClick","onKeyPress","thumbnailProps","forwardedProps","classNames","handleBasicClasses","prefix","AspectRatio","square","displayName","defaultProps"],"mappings":";;;;;;AASA;;;;AAkCA;;;AAGA,IAAMA,cAAc,GAAG,QAAvB;AAEA;;;;AAGA,IAAMC,SAAS,GAAGC,gBAAgB,CAACF,cAAD,CAAlC;AAEA;;;;AAGA,IAAMG,aAAmC,GAAG;AACxCC,EAAAA,IAAI,EAAEC,IAAI,CAACC,CAD6B;AAExCC,EAAAA,KAAK,EAAEC,KAAK,CAACC;AAF2B,CAA5C;AAKA;;;;;;;;IAOaC,MAAyC,GAAGC,UAAU,CAAC,UAACC,KAAD,EAAQC,GAAR,EAAgB;AAAA,MAE5EC,OAF4E,GAe5EF,KAf4E,CAE5EE,OAF4E;AAAA,MAG5EC,GAH4E,GAe5EH,KAf4E,CAG5EG,GAH4E;AAAA,MAI5EC,KAJ4E,GAe5EJ,KAf4E,CAI5EI,KAJ4E;AAAA,MAK5EC,SAL4E,GAe5EL,KAf4E,CAK5EK,SAL4E;AAAA,MAM5EC,KAN4E,GAe5EN,KAf4E,CAM5EM,KAN4E;AAAA,MAO5EC,SAP4E,GAe5EP,KAf4E,CAO5EO,SAP4E;AAAA,MAQ5EC,MAR4E,GAe5ER,KAf4E,CAQ5EQ,MAR4E;AAAA,MAS5EC,OAT4E,GAe5ET,KAf4E,CAS5ES,OAT4E;AAAA,MAU5EC,UAV4E,GAe5EV,KAf4E,CAU5EU,UAV4E;AAAA,MAW5ElB,IAX4E,GAe5EQ,KAf4E,CAW5ER,IAX4E;AAAA,MAY5EG,KAZ4E,GAe5EK,KAf4E,CAY5EL,KAZ4E;AAAA,MAa5EgB,cAb4E,GAe5EX,KAf4E,CAa5EW,cAb4E;AAAA,MAczEC,cAdyE,4BAe5EZ,KAf4E;;AAiBhF,SACI;AACI,IAAA,GAAG,EAAEC;AADT,KAEQW,cAFR;AAGI,IAAA,SAAS,EAAEC,UAAU,CAACR,SAAD,EAAYS,kBAAkB,CAAC;AAAEC,MAAAA,MAAM,EAAE1B,SAAV;AAAqBG,MAAAA,IAAI,EAAJA,IAArB;AAA2BG,MAAAA,KAAK,EAALA;AAA3B,KAAD,CAA9B;AAHzB,MAKI,oBAAC,SAAD;AACI,IAAA,SAAS,EAAEY,SADf;AAEI,IAAA,MAAM,EAAEC,MAFZ;AAGI,IAAA,SAAS,YAAKnB,SAAL,gBAHb;AAII,IAAA,OAAO,EAAEoB,OAJb;AAKI,IAAA,UAAU,EAAEC;AALhB,KAMQC,cANR;AAOI,IAAA,WAAW,EAAEK,WAAW,CAACC,MAP7B;AAQI,IAAA,IAAI,EAAEzB,IARV;AASI,IAAA,KAAK,EAAEc,KATX;AAUI,IAAA,GAAG,EAAEH,GAVT;AAWI,IAAA,KAAK,EAAER;AAXX,KALJ,EAkBKO,OAAO,IAAI;AAAK,IAAA,SAAS,YAAKb,SAAL;AAAd,KAA0Ca,OAA1C,CAlBhB,EAmBKE,KAAK,IAAI;AAAK,IAAA,SAAS,YAAKf,SAAL;AAAd,KAAwCe,KAAxC,CAnBd,CADJ;AAuBH,CAxCkE;AAyCnEN,MAAM,CAACoB,WAAP,GAAqB9B,cAArB;AACAU,MAAM,CAACO,SAAP,GAAmBhB,SAAnB;AACAS,MAAM,CAACqB,YAAP,GAAsB5B,aAAtB;;;;"}
@@ -1,156 +0,0 @@
1
- import { b as _objectWithoutProperties, d as _slicedToArray, c as _extends } from './6340c129.js';
2
- import { Emphasis, Theme, ColorPalette } from '../components.js';
3
- import React, { forwardRef, Children, useRef, useState, useEffect } from 'react';
4
- import { g as getRootClassName, c as classnames, h as handleBasicClasses } from './fd867c9d.js';
5
- import { i as mdiChevronUp, j as mdiChevronDown } from './a521723d.js';
6
- import isEmpty from 'lodash/isEmpty';
7
- import { I as IconButton } from './377b2f44.js';
8
- import isFunction from 'lodash/isFunction';
9
- import get from 'lodash/get';
10
- import { i as isComponent } from './78ef8e34.js';
11
- import { p as partitionMulti } from './4fc64a2e.js';
12
- import { D as DragHandle } from './76fed69d.js';
13
-
14
- /**
15
- * Defines the props of the component.
16
- */
17
-
18
- /**
19
- * Component display name.
20
- */
21
- var COMPONENT_NAME = 'ExpansionPanel';
22
- /**
23
- * Component default class name and class prefix.
24
- */
25
-
26
- var CLASSNAME = getRootClassName(COMPONENT_NAME);
27
- /**
28
- * Component default props.
29
- */
30
-
31
- var DEFAULT_PROPS = {
32
- theme: Theme.light
33
- };
34
- var isDragHandle = isComponent(DragHandle);
35
- var isHeader = isComponent('header');
36
- var isFooter = isComponent('footer');
37
- /**
38
- * ExpansionPanel component.
39
- *
40
- * @param props Component props.
41
- * @param ref Component ref.
42
- * @return React element.
43
- */
44
-
45
- var ExpansionPanel = forwardRef(function (props, ref) {
46
- var className = props.className,
47
- anyChildren = props.children,
48
- hasBackground = props.hasBackground,
49
- hasHeaderDivider = props.hasHeaderDivider,
50
- isOpen = props.isOpen,
51
- label = props.label,
52
- onClose = props.onClose,
53
- onOpen = props.onOpen,
54
- onToggleOpen = props.onToggleOpen,
55
- theme = props.theme,
56
- toggleButtonProps = props.toggleButtonProps,
57
- forwardedProps = _objectWithoutProperties(props, ["className", "children", "hasBackground", "hasHeaderDivider", "isOpen", "label", "onClose", "onOpen", "onToggleOpen", "theme", "toggleButtonProps"]);
58
-
59
- var children = Children.toArray(anyChildren); // Partition children by types.
60
-
61
- var _partitionMulti = partitionMulti(children, [isDragHandle, isHeader, isFooter]),
62
- _partitionMulti2 = _slicedToArray(_partitionMulti, 4),
63
- _partitionMulti2$ = _slicedToArray(_partitionMulti2[0], 1),
64
- dragHandle = _partitionMulti2$[0],
65
- _partitionMulti2$2 = _slicedToArray(_partitionMulti2[1], 1),
66
- header = _partitionMulti2$2[0],
67
- _partitionMulti2$3 = _slicedToArray(_partitionMulti2[2], 1),
68
- footer = _partitionMulti2$3[0],
69
- content = _partitionMulti2[3]; // Either take the header in children or create one with the label.
70
-
71
-
72
- var headerProps = React.isValidElement(header) ? header.props : {};
73
- var headerContent = !isEmpty(headerProps.children) ? headerProps.children : React.createElement("span", {
74
- className: "".concat(CLASSNAME, "__label")
75
- }, label);
76
-
77
- var toggleOpen = function toggleOpen() {
78
- var shouldOpen = !isOpen;
79
-
80
- if (isFunction(onOpen) && shouldOpen) {
81
- onOpen();
82
- }
83
-
84
- if (isFunction(onClose) && !shouldOpen) {
85
- onClose();
86
- }
87
-
88
- if (isFunction(onToggleOpen)) {
89
- onToggleOpen(shouldOpen);
90
- }
91
- };
92
-
93
- var color = theme === Theme.dark ? ColorPalette.light : ColorPalette.dark;
94
- var rootClassName = classnames(className, handleBasicClasses({
95
- hasBackground: hasBackground,
96
- hasHeader: Boolean(!isEmpty(headerProps.children)),
97
- hasHeaderDivider: hasHeaderDivider,
98
- isClose: !isOpen,
99
- isDraggable: Boolean(dragHandle),
100
- isOpen: isOpen,
101
- prefix: CLASSNAME,
102
- theme: theme
103
- }));
104
- var wrapperRef = useRef(null);
105
-
106
- var isContentVisible = function isContentVisible() {
107
- return get(wrapperRef.current, 'clientHeight', 0) > 0;
108
- }; // Switch max height on/off to activate the CSS transition (updates when children changes).
109
-
110
-
111
- var _useState = useState('0'),
112
- _useState2 = _slicedToArray(_useState, 2),
113
- maxHeight = _useState2[0],
114
- setMaxHeight = _useState2[1];
115
-
116
- useEffect(function () {
117
- var height = isOpen ? get(wrapperRef.current, 'offsetHeight', 0) : 0;
118
- setMaxHeight("".concat(height, "px"));
119
- }, [children, isOpen]);
120
- return React.createElement("section", _extends({
121
- ref: ref
122
- }, forwardedProps, {
123
- className: rootClassName
124
- }), React.createElement("header", {
125
- className: "".concat(CLASSNAME, "__header"),
126
- onClick: toggleOpen
127
- }, dragHandle && React.createElement("div", {
128
- className: "".concat(CLASSNAME, "__header-drag")
129
- }, dragHandle), React.createElement("div", _extends({}, headerProps, {
130
- className: "".concat(CLASSNAME, "__header-content")
131
- }), headerContent), React.createElement("div", {
132
- className: "".concat(CLASSNAME, "__header-toggle")
133
- }, React.createElement(IconButton, _extends({}, toggleButtonProps, {
134
- color: color,
135
- emphasis: Emphasis.low,
136
- icon: isOpen ? mdiChevronUp : mdiChevronDown
137
- })))), (isOpen || isContentVisible()) && React.createElement("div", {
138
- className: "".concat(CLASSNAME, "__wrapper"),
139
- style: {
140
- maxHeight: maxHeight
141
- }
142
- }, React.createElement("div", {
143
- className: "".concat(CLASSNAME, "__container"),
144
- ref: wrapperRef
145
- }, React.createElement("div", {
146
- className: "".concat(CLASSNAME, "__content")
147
- }, content), footer && React.createElement("div", {
148
- className: "".concat(CLASSNAME, "__footer")
149
- }, footer))));
150
- });
151
- ExpansionPanel.displayName = COMPONENT_NAME;
152
- ExpansionPanel.className = CLASSNAME;
153
- ExpansionPanel.defaultProps = DEFAULT_PROPS;
154
-
155
- export { ExpansionPanel as E };
156
- //# sourceMappingURL=5a1c0db4.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"5a1c0db4.js","sources":["../../src/components/expansion-panel/ExpansionPanel.tsx"],"sourcesContent":["import React, { Children, forwardRef, PropsWithChildren, ReactNode, useEffect, useRef, useState } from 'react';\n\nimport classNames from 'classnames';\n\nimport { mdiChevronDown, mdiChevronUp } from '@lumx/icons';\n\nimport get from 'lodash/get';\nimport isEmpty from 'lodash/isEmpty';\nimport isFunction from 'lodash/isFunction';\n\nimport { ColorPalette, DragHandle, Emphasis, IconButton, IconButtonProps, Theme } from '@lumx/react';\nimport { Callback, Comp, GenericProps, HasTheme, isComponent } from '@lumx/react/utils/type';\nimport { getRootClassName, handleBasicClasses } from '@lumx/react/utils/className';\nimport { partitionMulti } from '@lumx/react/utils/partitionMulti';\n\n/**\n * Defines the props of the component.\n */\nexport interface ExpansionPanelProps extends GenericProps, HasTheme {\n /** Whether the expansion panel has a background. */\n hasBackground?: boolean;\n /** Whether the header has a divider. */\n hasHeaderDivider?: boolean;\n /** Whether the component is open or not. */\n isOpen?: boolean;\n /** Label text (overwritten if a `<header>` is provided in the children). */\n label?: string;\n /** On open callback. */\n onOpen?: Callback;\n /** On close callback. */\n onClose?: Callback;\n /** Props to pass to the toggle button (minus those already set by the ExpansionPanel props). */\n toggleButtonProps: Pick<IconButtonProps, 'label'> &\n Omit<IconButtonProps, 'label' | 'onClick' | 'icon' | 'emphasis' | 'color'>;\n /** On toggle open or close callback. */\n onToggleOpen?(shouldOpen: boolean): void;\n}\n\n/**\n * Component display name.\n */\nconst COMPONENT_NAME = 'ExpansionPanel';\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<ExpansionPanelProps> = {\n theme: Theme.light,\n};\n\nconst isDragHandle = isComponent(DragHandle);\nconst isHeader = isComponent('header');\nconst isFooter = isComponent('footer');\n\n/**\n * ExpansionPanel component.\n *\n * @param props Component props.\n * @param ref Component ref.\n * @return React element.\n */\nexport const ExpansionPanel: Comp<ExpansionPanelProps, HTMLDivElement> = forwardRef((props, ref) => {\n const {\n className,\n children: anyChildren,\n hasBackground,\n hasHeaderDivider,\n isOpen,\n label,\n onClose,\n onOpen,\n onToggleOpen,\n theme,\n toggleButtonProps,\n ...forwardedProps\n } = props;\n\n const children: ReactNode[] = Children.toArray(anyChildren);\n\n // Partition children by types.\n const [[dragHandle], [header], [footer], content] = partitionMulti(children, [isDragHandle, isHeader, isFooter]);\n\n // Either take the header in children or create one with the label.\n const headerProps: PropsWithChildren<any> = React.isValidElement(header) ? header.props : {};\n const headerContent = !isEmpty(headerProps.children) ? (\n headerProps.children\n ) : (\n <span className={`${CLASSNAME}__label`}>{label}</span>\n );\n\n const toggleOpen = () => {\n const shouldOpen = !isOpen;\n if (isFunction(onOpen) && shouldOpen) {\n onOpen();\n }\n if (isFunction(onClose) && !shouldOpen) {\n onClose();\n }\n if (isFunction(onToggleOpen)) {\n onToggleOpen(shouldOpen);\n }\n };\n\n const color = theme === Theme.dark ? ColorPalette.light : ColorPalette.dark;\n\n const rootClassName = classNames(\n className,\n handleBasicClasses({\n hasBackground,\n hasHeader: Boolean(!isEmpty(headerProps.children)),\n hasHeaderDivider,\n isClose: !isOpen,\n isDraggable: Boolean(dragHandle),\n isOpen,\n prefix: CLASSNAME,\n theme,\n }),\n );\n\n const wrapperRef = useRef<HTMLDivElement>(null);\n const isContentVisible = (): boolean => get(wrapperRef.current, 'clientHeight', 0) > 0;\n\n // Switch max height on/off to activate the CSS transition (updates when children changes).\n const [maxHeight, setMaxHeight] = useState('0');\n useEffect(() => {\n const height = isOpen ? get(wrapperRef.current, 'offsetHeight', 0) : 0;\n setMaxHeight(`${height}px`);\n }, [children, isOpen]);\n\n return (\n <section ref={ref} {...forwardedProps} className={rootClassName}>\n {/* eslint-disable-next-line jsx-a11y/click-events-have-key-events,jsx-a11y/no-static-element-interactions */}\n <header className={`${CLASSNAME}__header`} onClick={toggleOpen}>\n {dragHandle && <div className={`${CLASSNAME}__header-drag`}>{dragHandle}</div>}\n\n <div {...headerProps} className={`${CLASSNAME}__header-content`}>\n {headerContent}\n </div>\n\n <div className={`${CLASSNAME}__header-toggle`}>\n <IconButton\n {...toggleButtonProps}\n color={color}\n emphasis={Emphasis.low}\n icon={isOpen ? mdiChevronUp : mdiChevronDown}\n />\n </div>\n </header>\n\n {(isOpen || isContentVisible()) && (\n <div className={`${CLASSNAME}__wrapper`} style={{ maxHeight }}>\n <div className={`${CLASSNAME}__container`} ref={wrapperRef}>\n <div className={`${CLASSNAME}__content`}>{content}</div>\n\n {footer && <div className={`${CLASSNAME}__footer`}>{footer}</div>}\n </div>\n </div>\n )}\n </section>\n );\n});\nExpansionPanel.displayName = COMPONENT_NAME;\nExpansionPanel.className = CLASSNAME;\nExpansionPanel.defaultProps = DEFAULT_PROPS;\n"],"names":["COMPONENT_NAME","CLASSNAME","getRootClassName","DEFAULT_PROPS","theme","Theme","light","isDragHandle","isComponent","DragHandle","isHeader","isFooter","ExpansionPanel","forwardRef","props","ref","className","anyChildren","children","hasBackground","hasHeaderDivider","isOpen","label","onClose","onOpen","onToggleOpen","toggleButtonProps","forwardedProps","Children","toArray","partitionMulti","dragHandle","header","footer","content","headerProps","React","isValidElement","headerContent","isEmpty","toggleOpen","shouldOpen","isFunction","color","dark","ColorPalette","rootClassName","classNames","handleBasicClasses","hasHeader","Boolean","isClose","isDraggable","prefix","wrapperRef","useRef","isContentVisible","get","current","useState","maxHeight","setMaxHeight","useEffect","height","Emphasis","low","mdiChevronUp","mdiChevronDown","displayName","defaultProps"],"mappings":"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"}